Class: Selenium::WebDriver::Remote::Http::Common Private

Inherits:
Object
  • Object
show all
Defined in:
lib/selenium/webdriver/remote/http/common.rb

This class is part of a private API. You should avoid using this class if possible, as it may be removed or be changed in the future.

Direct Known Subclasses

Curb, Default

Constant Summary collapse

MAX_REDIRECTS =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

same as chromium/gecko

20
CONTENT_TYPE =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

"application/json"
DEFAULT_HEADERS =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

{ "Accept" => CONTENT_TYPE }

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeCommon

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns a new instance of Common.



13
14
15
# File 'lib/selenium/webdriver/remote/http/common.rb', line 13

def initialize
  @timeout = nil
end

Instance Attribute Details

#server_url=(value) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.



11
12
13
# File 'lib/selenium/webdriver/remote/http/common.rb', line 11

def server_url=(value)
  @server_url = value
end

#timeoutObject

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.



10
11
12
# File 'lib/selenium/webdriver/remote/http/common.rb', line 10

def timeout
  @timeout
end

Instance Method Details

#call(verb, url, command_hash) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.



17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/selenium/webdriver/remote/http/common.rb', line 17

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
  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