Sha256: f58d75a5929b706dc6217ce9a729e0eb7798120f32c648e37f84ee52c1e9dec1
Contents?: true
Size: 1.85 KB
Versions: 1
Compression:
Stored size: 1.85 KB
Contents
module Selenium module WebDriver module Remote module Http class Common MAX_REDIRECTS = 20 # same as chromium/gecko CONTENT_TYPE = "application/json" DEFAULT_HEADERS = { "Accept" => CONTENT_TYPE } class << self attr_accessor :timeout end def initialize(url) @server_url = url end def call(verb, url, command_hash) url = @server_url.merge(url) unless url.kind_of?(URI) headers = DEFAULT_HEADERS.dup if command_hash payload = command_hash.to_json headers["Content-Type"] = "#{CONTENT_TYPE}; charset=utf-8" headers["Content-Length"] = payload.bytesize.to_s if [:post, :put].include?(verb) if $DEBUG puts " >>> #{payload}" puts " > #{headers.inspect}" end end request verb, url, headers, payload end private def request(verb, url, headers, payload) raise NotImplementedError, "subclass responsibility" end 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, JSON.parse(body)) elsif code == 204 Response.new(code) else raise Error::WebDriverError, "unexpected content type: #{content_type.inspect} (#{code})\n#{body}" end end end # Common end # Http end # Remote end # WebDriver end # Selenium
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
selenium-webdriver-0.1.0 | lib/selenium/webdriver/remote/http/common.rb |