]> git.openstreetmap.org Git - rails.git/blob - test/system/user_login_test.rb
Merge remote-tracking branch 'upstream/pull/5957'
[rails.git] / test / system / user_login_test.rb
1 require "application_system_test_case"
2
3 class UserLoginTest < ApplicationSystemTestCase
4   test "Warn on login page when already logged in" do
5     user1 = create(:user, :display_name => "First User")
6     user2 = create(:user, :display_name => "Second User")
7     sign_in_as(user1)
8
9     visit login_path
10
11     assert_button "First User"
12     within_content_body do
13       assert_text "logged in as First User"
14       assert_no_link "Visit referring page"
15     end
16
17     fill_in "username", :with => user2.email
18     fill_in "password", :with => "test"
19     click_on "Log in"
20
21     assert_button "Second User"
22   end
23
24   test "Warn on login page when already logged in with referer link" do
25     user1 = create(:user, :display_name => "First User")
26     sign_in_as(user1)
27
28     visit login_path(:referer => copyright_path, :anchor => "trademarks")
29
30     assert_button "First User"
31     within_content_body do
32       assert_text "logged in as First User"
33       assert_link "Visit referring page"
34
35       click_on "Visit referring page"
36     end
37
38     assert_current_path copyright_path
39     assert_equal "#trademarks", execute_script("return location.hash")
40   end
41
42   test "Only show safe referer links inside warnings" do
43     user1 = create(:user, :display_name => "First User")
44     sign_in_as(user1)
45
46     visit login_path(:referer => "https://example.com/")
47
48     assert_button "First User"
49     within_content_body do
50       assert_text "logged in as First User"
51       assert_no_link "Visit referring page"
52     end
53   end
54
55   test "Show OpenID form when OpenID provider button is clicked" do
56     visit login_path
57
58     within_content_body do
59       assert_no_field "OpenID URL"
60       assert_no_button "Continue"
61
62       click_on "Log in with OpenID"
63
64       assert_field "OpenID URL"
65       assert_button "Continue"
66     end
67   end
68 end