]> git.openstreetmap.org Git - rails.git/blob - test/system/user_login_test.rb
9800752a67aaa133655c11c8bb6c5954f8e8caef
[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 => about_path)
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 about_path
39   end
40
41   test "Only show safe referer links inside warnings" do
42     user1 = create(:user, :display_name => "First User")
43     sign_in_as(user1)
44
45     visit login_path(:referer => "https://example.com/")
46
47     assert_button "First User"
48     within_content_body do
49       assert_text "logged in as First User"
50       assert_no_link "Visit referring page"
51     end
52   end
53
54   test "Show OpenID form when OpenID provider button is clicked" do
55     visit login_path
56
57     within_content_body do
58       assert_no_field "OpenID URL"
59       assert_no_button "Continue"
60
61       click_on "Log in with OpenID"
62
63       assert_field "OpenID URL"
64       assert_button "Continue"
65     end
66   end
67 end