module Capybara::ChromeResponseHeaders::DriverExtensions
Attributes
listener_thread[R]
listening_to_network_traffic[R]
request_for_url[R]
response_for_url[R]
Public Class Methods
new(*)
click to toggle source
Calls superclass method
# File lib/capybara/chrome_response_headers/driver_extensions.rb, line 9 def initialize(*) super @request_for_url = {} @response_for_url = {} end
Public Instance Methods
browser()
click to toggle source
Calls superclass method
# File lib/capybara/chrome_response_headers/driver_extensions.rb, line 15 def browser super.tap do |browser| if Capybara::ChromeDevTools.enabled and !@listening_to_network_traffic listen_to_network_traffic end end end
listen_to_network_traffic()
click to toggle source
# File lib/capybara/chrome_response_headers/driver_extensions.rb, line 23 def listen_to_network_traffic @listening_to_network_traffic = true chrome = dev_tools chrome.send_cmd "Network.enable" chrome.on "Network.requestWillBeSent" do |arg| request = OpenStruct.new(arg["request"]) next if Capybara::ChromeResponseHeaders.ignore_urls && request.url.match(Capybara::ChromeResponseHeaders.ignore_urls) @request_for_url[request.url] = request puts "Requesting #{request.url}" if Capybara::ChromeResponseHeaders.trace_requests end chrome.on "Network.responseReceived" do |arg| response = OpenStruct.new(arg["response"]) next if Capybara::ChromeResponseHeaders.ignore_urls && response.url.match(Capybara::ChromeResponseHeaders.ignore_urls) # TODO: Use/return a Rack::Response like Rack::Test does @response_for_url[response.url] = response puts %(Response for #{response.url}: #{response.status} #{response.statusText}) if Capybara::ChromeResponseHeaders.trace_responses end @listener_thread = Thread.new do chrome.listen @listening_to_network_traffic = false end end
request()
click to toggle source
# File lib/capybara/chrome_response_headers/driver_extensions.rb, line 51 def request #@request_for_url[current_url] or byebug @request_for_url[current_url] end
response()
click to toggle source
# File lib/capybara/chrome_response_headers/driver_extensions.rb, line 56 def response #@response_for_url[current_url] or byebug @response_for_url[current_url] end
response_headers()
click to toggle source
# File lib/capybara/chrome_response_headers/driver_extensions.rb, line 61 def response_headers response&.headers end
status_code()
click to toggle source
# File lib/capybara/chrome_response_headers/driver_extensions.rb, line 65 def status_code response&.status end
status_text()
click to toggle source
# File lib/capybara/chrome_response_headers/driver_extensions.rb, line 69 def status_text response&.statusText end