]> git.openstreetmap.org Git - rails.git/commitdiff
Update tests to ensure referer is working
authorAndy Allan <git@gravitystorm.co.uk>
Wed, 8 Jan 2020 17:26:57 +0000 (18:26 +0100)
committerAndy Allan <git@gravitystorm.co.uk>
Wed, 8 Jan 2020 17:26:57 +0000 (18:26 +0100)
This reinstates the form tests in the controller test, but uses
the system tests to actually click the button and make sure that
it works

test/controllers/users_controller_test.rb
test/system/user_logout_test.rb

index 4417d353facae1e55092a6dbb86e4b8f03b2886f..c40c30b28a986f1ce794edb57700256035c31e4b 100644 (file)
@@ -355,6 +355,20 @@ class UsersControllerTest < ActionController::TestCase
     assert_redirected_to "/test"
   end
 
+  def test_logout_fallback_without_referer
+    get :logout
+    assert_response :success
+    assert_template :logout
+    assert_select "input[name=referer][value=?]", ""
+  end
+
+  def test_logout_fallback_with_referer
+    get :logout, :params => { :referer => "/test" }
+    assert_response :success
+    assert_template :logout
+    assert_select "input[name=referer][value=?]", "/test"
+  end
+
   def test_logout_with_token
     token = create(:user).tokens.create
 
index a2e145fcc6aae2b6380acc3825e44021c445081f..099d2c0c02775ba95f2b616090aa98196e16452a 100644 (file)
@@ -4,14 +4,28 @@ class UserLogoutTest < ApplicationSystemTestCase
   test "Sign out via link" do
     user = create(:user)
     sign_in_as(user)
+    assert_not page.has_content? "Log In"
 
     click_on user.display_name
     click_on "Log Out"
     assert page.has_content? "Log In"
   end
 
+  test "Sign out via link with referer" do
+    user = create(:user)
+    sign_in_as(user)
+    visit traces_path
+    assert_not page.has_content? "Log In"
+
+    click_on user.display_name
+    click_on "Log Out"
+    assert page.has_content? "Log In"
+    assert page.has_content? "Public GPS traces"
+  end
+
   test "Sign out via fallback page" do
     sign_in_as(create(:user))
+    assert_not page.has_content? "Log In"
 
     visit logout_path
     assert page.has_content? "Logout from OpenStreetMap"
@@ -19,4 +33,16 @@ class UserLogoutTest < ApplicationSystemTestCase
     click_button "Logout"
     assert page.has_content? "Log In"
   end
+
+  test "Sign out via fallback page with referer" do
+    sign_in_as(create(:user))
+    assert_not page.has_content? "Log In"
+
+    visit logout_path(:referer => "/traces")
+    assert page.has_content? "Logout from OpenStreetMap"
+
+    click_button "Logout"
+    assert page.has_content? "Log In"
+    assert page.has_content? "Public GPS traces"
+  end
 end