123456789_123456789_123456789_123456789_123456789_

Class: Capybara::RackTest::Driver

Relationships & Source Files
Super Chains via Extension / Inclusion / Inheritance
Class Chain:
self, Driver::Base
Instance Chain:
self, Driver::Base
Inherits: Capybara::Driver::Base
Defined in: lib/capybara/rack_test/driver.rb

Constant Summary

Class Method Summary

Instance Attribute Summary

Instance Method Summary

Constructor Details

.new(app, **options) ⇒ Driver

Raises:

  • (ArgumentError)
[ GitHub ]

  
# File 'lib/capybara/rack_test/driver.rb', line 17

def initialize(app, **options)
  raise ArgumentError, 'rack-test requires a rack application, but none was given' unless app

  super()
  @app = app
  @options = DEFAULT_OPTIONS.merge(options)
end

Instance Attribute Details

#app (readonly)

[ GitHub ]

  
# File 'lib/capybara/rack_test/driver.rb', line 15

attr_reader :app, :options

#follow_redirects?Boolean (readonly)

[ GitHub ]

  
# File 'lib/capybara/rack_test/driver.rb', line 29

def follow_redirects?
  @options[:follow_redirects]
end

#options (readonly)

[ GitHub ]

  
# File 'lib/capybara/rack_test/driver.rb', line 15

attr_reader :app, :options

Instance Method Details

#browser

[ GitHub ]

  
# File 'lib/capybara/rack_test/driver.rb', line 25

def browser
  @browser ||= Capybara::RackTest::Browser.new(self)
end

#current_url

[ GitHub ]

  
# File 'lib/capybara/rack_test/driver.rb', line 61

def current_url
  browser.current_url
end

#delete

[ GitHub ]

  
# File 'lib/capybara/rack_test/driver.rb', line 104

def delete(...); browser.delete(...); end

#dom

[ GitHub ]

  
# File 'lib/capybara/rack_test/driver.rb', line 89

def dom
  browser.dom
end

#find_css(selector)

[ GitHub ]

  
# File 'lib/capybara/rack_test/driver.rb', line 77

def find_css(selector)
  browser.find(:css, selector)
rescue Nokogiri::CSS::SyntaxError
  raise unless selector.include?(' i]')

  raise ArgumentError, "This driver doesn't support case insensitive attribute matching when using CSS base selectors"
end

#find_xpath(selector)

[ GitHub ]

  
# File 'lib/capybara/rack_test/driver.rb', line 73

def find_xpath(selector)
  browser.find(:xpath, selector)
end

#follow(method, path, **attributes)

[ GitHub ]

  
# File 'lib/capybara/rack_test/driver.rb', line 57

def follow(method, path, **attributes)
  browser.follow(method, path, attributes)
end

#get

[ GitHub ]

  
# File 'lib/capybara/rack_test/driver.rb', line 101

def get(...); browser.get(...); end

#header(key, value)

[ GitHub ]

  
# File 'lib/capybara/rack_test/driver.rb', line 105

def header(key, value); browser.header(key, value); end

#html

[ GitHub ]

  
# File 'lib/capybara/rack_test/driver.rb', line 85

def html
  browser.html
end

#invalid_element_errors

[ GitHub ]

  
# File 'lib/capybara/rack_test/driver.rb', line 107

def invalid_element_errors
  [Capybara::RackTest::Errors::StaleElementReferenceError]
end

#post

[ GitHub ]

  
# File 'lib/capybara/rack_test/driver.rb', line 102

def post(...); browser.post(...); end

#put

[ GitHub ]

  
# File 'lib/capybara/rack_test/driver.rb', line 103

def put(...); browser.put(...); end

#redirect_limit

[ GitHub ]

  
# File 'lib/capybara/rack_test/driver.rb', line 33

def redirect_limit
  @options[:redirect_limit]
end

#refresh

[ GitHub ]

  
# File 'lib/capybara/rack_test/driver.rb', line 49

def refresh
  browser.refresh
end

#request

[ GitHub ]

  
# File 'lib/capybara/rack_test/driver.rb', line 41

def request
  browser.last_request
end

#reset!

[ GitHub ]

  
# File 'lib/capybara/rack_test/driver.rb', line 97

def reset!
  @browser = nil
end

#response

[ GitHub ]

  
# File 'lib/capybara/rack_test/driver.rb', line 37

def response
  browser.last_response
end

#response_headers

[ GitHub ]

  
# File 'lib/capybara/rack_test/driver.rb', line 65

def response_headers
  response.headers
end

#status_code

[ GitHub ]

  
# File 'lib/capybara/rack_test/driver.rb', line 69

def status_code
  response.status
end

#submit(method, path, attributes)

[ GitHub ]

  
# File 'lib/capybara/rack_test/driver.rb', line 53

def submit(method, path, attributes)
  browser.submit(method, path, attributes)
end

#title

[ GitHub ]

  
# File 'lib/capybara/rack_test/driver.rb', line 93

def title
  browser.title
end

#visit(path, **attributes)

[ GitHub ]

  
# File 'lib/capybara/rack_test/driver.rb', line 45

def visit(path, **attributes)
  browser.visit(path, **attributes)
end