Class: Speedos::Page

Inherits:
Object
  • Object
show all
Defined in:
lib/speedos/page.rb

Instance Method Summary collapse

Instance Method Details

#driverObject



34
35
36
# File 'lib/speedos/page.rb', line 34

def driver
  @driver ||= reset_driver
end

#firefox_profileObject



26
27
28
29
30
31
32
# File 'lib/speedos/page.rb', line 26

def firefox_profile
  profile       = Selenium::WebDriver::Firefox::Profile.new
  profile.proxy = server_proxy.selenium_proxy
  profile["network.proxy.ssl"]      = server_proxy.host
  profile["network.proxy.ssl_port"] = server_proxy.port
  profile
end

#get_harObject



18
19
20
# File 'lib/speedos/page.rb', line 18

def get_har
  server_proxy.har
end

#is(value) ⇒ Object



51
52
53
54
55
# File 'lib/speedos/page.rb', line 51

def is value
  raise "Page name cannot be empty" if value.empty?
  server_proxy.new_page value
  yield
end

#new_harObject



22
23
24
# File 'lib/speedos/page.rb', line 22

def new_har
  server_proxy.new_har "", capture_headers: true
end

#reset_driverObject



38
39
40
41
42
43
44
45
46
47
48
49
# File 'lib/speedos/page.rb', line 38

def reset_driver
  Capybara.register_driver :selenium do |app|
    http_client         = Selenium::WebDriver::Remote::Http::Default.new
    http_client.timeout = 300
    Capybara::Selenium::Driver.new(app,
      :profile     => firefox_profile,
      :http_client => http_client,
    )
  end
  Capybara.default_driver = :selenium
  @driver = Capybara::Session.new(:selenium)
end

#serverObject



3
4
5
6
7
8
9
# File 'lib/speedos/page.rb', line 3

def server
  if !@server
    @server = BrowserMob::Proxy::Server.new(File.join(File.dirname(__FILE__), '..', '..', 'bin', 'browsermob-proxy-2.0-beta-8', 'bin', 'browsermob-proxy'))
    @server.start
  end
  @server
end

#server_proxyObject



11
12
13
14
15
16
# File 'lib/speedos/page.rb', line 11

def server_proxy
  if !@proxy
    @proxy = server.create_proxy
  end
  @proxy
end