1 # frozen_string_literal: true
 
   3 require "application_system_test_case"
 
   5 class UserLoginTest < ApplicationSystemTestCase
 
   6   test "Warn on login page when already logged in" do
 
   7     user1 = create(:user, :display_name => "First User")
 
   8     user2 = create(:user, :display_name => "Second User")
 
  13     assert_button "First User"
 
  14     within_content_body do
 
  15       assert_text "logged in as First User"
 
  16       assert_no_link "Visit referring page"
 
  19     fill_in "username", :with => user2.email
 
  20     fill_in "password", :with => "s3cr3t"
 
  23     assert_button "Second User"
 
  26   test "Warn on login page when already logged in with referer link" do
 
  27     user1 = create(:user, :display_name => "First User")
 
  30     visit login_path(:referer => copyright_path, :anchor => "trademarks")
 
  32     assert_button "First User"
 
  33     within_content_body do
 
  34       assert_text "logged in as First User"
 
  35       assert_link "Visit referring page"
 
  37       click_on "Visit referring page"
 
  40     assert_current_path copyright_path
 
  41     assert_equal "#trademarks", execute_script("return location.hash")
 
  44   test "Only show safe referer links inside warnings" do
 
  45     user1 = create(:user, :display_name => "First User")
 
  48     visit login_path(:referer => "https://example.com/")
 
  50     assert_button "First User"
 
  51     within_content_body do
 
  52       assert_text "logged in as First User"
 
  53       assert_no_link "Visit referring page"