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 "tbody tr", 2 end def test_index_scopes user = create(:user) application1 = create(:oauth_application, :scopes => %w[read_prefs write_prefs write_diary read_gpx write_gpx]) create(:oauth_access_grant, :resource_owner_id => user.id, :application => application1, :scopes => %w[read_prefs write_prefs]) create(:oauth_access_token, :resource_owner_id => user.id, :application => application1, :scopes => %w[read_prefs write_prefs]) create(:oauth_access_grant, :resource_owner_id => user.id, :application => application1, :scopes => %w[read_prefs write_diary]) create(:oauth_access_token, :resource_owner_id => user.id, :application => application1, :scopes => %w[read_prefs write_diary]) 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 "tbody tr", 1 assert_select "tbody tr td ul" do assert_select "li", :count => 3 assert_select "li", :text => "Read user preferences" assert_select "li", :text => "Modify user preferences" assert_select "li", :text => "Create diary entries, comments and make friends" end 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 "tbody tr", 1 end end