class Selenium::WebDriver::Remote::Http::Common
Constants
- CONTENT_TYPE
- DEFAULT_HEADERS
- MAX_REDIRECTS
Attributes
server_url[W]
timeout[RW]
Public Class Methods
new()
click to toggle source
# File lib/selenium/webdriver/remote/http/common.rb, line 13 def initialize @timeout = nil end
Public Instance Methods
call(verb, url, command_hash)
click to toggle source
# File lib/selenium/webdriver/remote/http/common.rb, line 21 def call(verb, url, command_hash) url = server_url.merge(url) unless url.kind_of?(URI) headers = DEFAULT_HEADERS.dup headers['Cache-Control'] = "no-cache" if verb == :get if command_hash payload = WebDriver.json_dump(command_hash) headers["Content-Type"] = "#{CONTENT_TYPE}; charset=utf-8" headers["Content-Length"] = payload.bytesize.to_s if [:post, :put].include?(verb) if $DEBUG puts " >>> #{url} | #{payload}" puts " > #{headers.inspect}" end elsif verb == :post payload = "{}" # work around http://code.google.com/p/selenium/issues/detail?id=1396 headers["Content-Length"] = "2" end request verb, url, headers, payload end
close()
click to toggle source
# File lib/selenium/webdriver/remote/http/common.rb, line 17 def close # hook for subclasses - will be called on Driver#quit end
Private Instance Methods
create_response(code, body, content_type)
click to toggle source
# File lib/selenium/webdriver/remote/http/common.rb, line 53 def create_response(code, body, content_type) code, body, content_type = code.to_i, body.to_s.strip, content_type.to_s puts "<- #{body}\n" if $DEBUG if content_type.include? CONTENT_TYPE raise Error::WebDriverError, "empty body: #{content_type.inspect} (#{code})\n#{body}" if body.empty? Response.new(code, WebDriver.json_load(body)) elsif code == 204 Response.new(code) else msg = "unexpected response, code=#{code}, content-type=#{content_type.inspect}" msg << "\n#{body}" unless body.empty? raise Error::WebDriverError, msg end end
request(verb, url, headers, payload)
click to toggle source
# File lib/selenium/webdriver/remote/http/common.rb, line 49 def request(verb, url, headers, payload) raise NotImplementedError, "subclass responsibility" end
server_url()
click to toggle source
# File lib/selenium/webdriver/remote/http/common.rb, line 45 def server_url @server_url or raise Error::WebDriverError, "server_url not set" end