]> git.openstreetmap.org Git - rails.git/blobdiff - test/controllers/oauth2_authorized_applications_controller_test.rb
Add tests for OAuth2
[rails.git] / test / controllers / oauth2_authorized_applications_controller_test.rb
diff --git a/test/controllers/oauth2_authorized_applications_controller_test.rb b/test/controllers/oauth2_authorized_applications_controller_test.rb
new file mode 100644 (file)
index 0000000..45a60ef
--- /dev/null
@@ -0,0 +1,63 @@
+require "test_helper"
+
+class Oauth2AuthorizedApplicationsControllerTest < ActionDispatch::IntegrationTest
+  ##
+  # test all routes which lead to this controller
+  def test_routes
+    assert_routing(
+      { :path => "/oauth2/authorized_applications", :method => :get },
+      { :controller => "oauth2_authorized_applications", :action => "index" }
+    )
+    assert_routing(
+      { :path => "/oauth2/authorized_applications/1", :method => :delete },
+      { :controller => "oauth2_authorized_applications", :action => "destroy", :id => "1" }
+    )
+  end
+
+  def test_index
+    user = create(:user)
+    application1 = create(:oauth_application)
+    create(:oauth_access_grant, :resource_owner_id => user.id, :application => application1)
+    create(:oauth_access_token, :resource_owner_id => user.id, :application => application1)
+    application2 = create(:oauth_application)
+    create(:oauth_access_grant, :resource_owner_id => user.id, :application => application2)
+    create(:oauth_access_token, :resource_owner_id => user.id, :application => application2)
+    create(:oauth_application)
+
+    get oauth_authorized_applications_path
+    assert_response :redirect
+    assert_redirected_to login_path(:referer => oauth_authorized_applications_path)
+
+    session_for(user)
+
+    get oauth_authorized_applications_path
+    assert_response :success
+    assert_template "oauth2_authorized_applications/index"
+    assert_select "tr", 2
+  end
+
+  def test_destroy
+    user = create(:user)
+    application1 = create(:oauth_application)
+    create(:oauth_access_grant, :resource_owner_id => user.id, :application => application1)
+    create(:oauth_access_token, :resource_owner_id => user.id, :application => application1)
+    application2 = create(:oauth_application)
+    create(:oauth_access_grant, :resource_owner_id => user.id, :application => application2)
+    create(:oauth_access_token, :resource_owner_id => user.id, :application => application2)
+    create(:oauth_application)
+
+    delete oauth_authorized_application_path(:id => application1.id)
+    assert_response :forbidden
+
+    session_for(user)
+
+    delete oauth_authorized_application_path(:id => application1.id)
+    assert_response :redirect
+    assert_redirected_to oauth_authorized_applications_path
+
+    get oauth_authorized_applications_path
+    assert_response :success
+    assert_template "oauth2_authorized_applications/index"
+    assert_select "tr", 1
+  end
+end