aboutsummaryrefslogblamecommitdiffstats
path: root/actionpack/test/dispatch/system_testing/system_test_case_test.rb
blob: 847b09dcfebe57d576c8f50f6e30f4a1a2102ad6 (plain) (tree)
1
2
3
4
5
6
7
8
9

                             
                       
                            
 
                                                

                                                    
     
   
 







                                                                         
                                                          
                         
                                                   

     
 





                                                                                





                                                                                  










                                                        


                                                   
                                             

                              
                                                                                                                                                                                                                        


                
                                             

                               
                                                                                                                                                                                                                         


               
                                             

                              
                                                                                                                                                                                                                        


                 
                                             

                                
                                                                                                                                                                                                                          


                  
                                             

                                 
                                                                                                                                                                                                                           

     
# frozen_string_literal: true

require "abstract_unit"
require "selenium/webdriver"

class SetDriverToRackTestTest < DrivenByRackTest
  test "uses rack_test" do
    assert_equal :rack_test, Capybara.current_driver
  end
end

class OverrideSeleniumSubclassToRackTestTest < DrivenBySeleniumWithChrome
  driven_by :rack_test

  test "uses rack_test" do
    assert_equal :rack_test, Capybara.current_driver
  end
end

class SetDriverToSeleniumTest < DrivenBySeleniumWithChrome
  test "uses selenium" do
    assert_equal :selenium, Capybara.current_driver
  end
end

class SetDriverToSeleniumHeadlessChromeTest < DrivenBySeleniumWithHeadlessChrome
  test "uses selenium headless chrome" do
    assert_equal :selenium, Capybara.current_driver
  end
end

class SetDriverToSeleniumHeadlessFirefoxTest < DrivenBySeleniumWithHeadlessFirefox
  test "uses selenium headless firefox" do
    assert_equal :selenium, Capybara.current_driver
  end
end

class SetHostTest < DrivenByRackTest
  test "sets default host" do
    assert_equal "http://127.0.0.1", Capybara.app_host
  end

  test "overrides host" do
    host! "http://example.com"

    assert_equal "http://example.com", Capybara.app_host
  end
end

class UndefMethodsTest < DrivenBySeleniumWithChrome
  test "get" do
    exception = assert_raise NoMethodError do
      get "http://example.com"
    end
    assert_equal "System tests cannot make direct requests via #get; use #visit and #click_on instead. See http://www.rubydoc.info/github/teamcapybara/capybara/master#The_DSL for more information.", exception.message
  end

  test "post" do
    exception = assert_raise NoMethodError do
      post "http://example.com"
    end
    assert_equal "System tests cannot make direct requests via #post; use #visit and #click_on instead. See http://www.rubydoc.info/github/teamcapybara/capybara/master#The_DSL for more information.", exception.message
  end

  test "put" do
    exception = assert_raise NoMethodError do
      put "http://example.com"
    end
    assert_equal "System tests cannot make direct requests via #put; use #visit and #click_on instead. See http://www.rubydoc.info/github/teamcapybara/capybara/master#The_DSL for more information.", exception.message
  end

  test "patch" do
    exception = assert_raise NoMethodError do
      patch "http://example.com"
    end
    assert_equal "System tests cannot make direct requests via #patch; use #visit and #click_on instead. See http://www.rubydoc.info/github/teamcapybara/capybara/master#The_DSL for more information.", exception.message
  end

  test "delete" do
    exception = assert_raise NoMethodError do
      delete "http://example.com"
    end
    assert_equal "System tests cannot make direct requests via #delete; use #visit and #click_on instead. See http://www.rubydoc.info/github/teamcapybara/capybara/master#The_DSL for more information.", exception.message
  end
end