105 lines
2.2 KiB
Ruby
105 lines
2.2 KiB
Ruby
module Capybara
|
|
module Webkit
|
|
class Configuration
|
|
class << self
|
|
private
|
|
|
|
def instance
|
|
@instance ||= new
|
|
end
|
|
end
|
|
|
|
def self.to_hash
|
|
instance.freeze.to_hash
|
|
end
|
|
|
|
def self.modify
|
|
if instance.frozen?
|
|
raise "All configuration must take place before the driver starts"
|
|
else
|
|
yield instance
|
|
end
|
|
end
|
|
|
|
attr_accessor :allowed_urls
|
|
attr_writer :block_unknown_urls
|
|
attr_accessor :blocked_urls
|
|
attr_accessor :debug
|
|
attr_writer :ignore_ssl_errors
|
|
attr_accessor :proxy
|
|
attr_accessor :stderr
|
|
attr_accessor :timeout
|
|
attr_writer :skip_image_loading
|
|
attr_accessor :raise_javascript_errors
|
|
|
|
def initialize
|
|
@allowed_urls = []
|
|
@blocked_urls = []
|
|
@block_unknown_urls = false
|
|
@debug = false
|
|
@ignore_ssl_errors = false
|
|
@proxy = nil
|
|
@skip_image_loading = false
|
|
@stderr = $stderr
|
|
@timeout = -1
|
|
@raise_javascript_errors = false
|
|
end
|
|
|
|
def allow_url(url)
|
|
@allowed_urls << url
|
|
end
|
|
|
|
def block_url(url)
|
|
@blocked_urls << url
|
|
end
|
|
|
|
def block_unknown_urls
|
|
@block_unknown_urls = true
|
|
end
|
|
|
|
def block_unknown_urls?
|
|
@block_unknown_urls
|
|
end
|
|
|
|
def allow_unknown_urls
|
|
allow_url("*")
|
|
end
|
|
|
|
def ignore_ssl_errors
|
|
@ignore_ssl_errors = true
|
|
end
|
|
|
|
def ignore_ssl_errors?
|
|
@ignore_ssl_errors
|
|
end
|
|
|
|
def skip_image_loading
|
|
@skip_image_loading = true
|
|
end
|
|
|
|
def skip_image_loading?
|
|
@skip_image_loading
|
|
end
|
|
|
|
def use_proxy(proxy)
|
|
@proxy = proxy
|
|
end
|
|
|
|
def to_hash
|
|
{
|
|
allowed_urls: allowed_urls,
|
|
block_unknown_urls: block_unknown_urls?,
|
|
blocked_urls: blocked_urls,
|
|
debug: debug,
|
|
ignore_ssl_errors: ignore_ssl_errors?,
|
|
proxy: proxy,
|
|
skip_image_loading: skip_image_loading?,
|
|
stderr: stderr,
|
|
timeout: timeout,
|
|
raise_javascript_errors: raise_javascript_errors,
|
|
}
|
|
end
|
|
end
|
|
end
|
|
end
|