Class: AcceptanceTestsSupport

Inherits:
Object
  • Object
show all
Defined in:
lib/acceptance_tests_support/version.rb,
lib/acceptance_tests_support/acceptance_tests_support.rb

Constant Summary collapse

VERSION =
"1.0.2"

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(project_root, selenium_config) ⇒ AcceptanceTestsSupport

Returns a new instance of AcceptanceTestsSupport.



26
27
28
29
30
31
32
33
34
35
# File 'lib/acceptance_tests_support/acceptance_tests_support.rb', line 26

def initialize project_root, selenium_config
  @project_root = project_root
  @selenium_config = selenium_config

  @app_host = default_app_host

  set_defaults

  configure
end

Instance Attribute Details

#app_hostObject

Returns the value of attribute app_host.



5
6
7
# File 'lib/acceptance_tests_support/acceptance_tests_support.rb', line 5

def app_host
  @app_host
end

Class Method Details

.get_localhostObject



7
8
9
10
11
12
13
14
15
16
# File 'lib/acceptance_tests_support/acceptance_tests_support.rb', line 7

def self.get_localhost
  orig, Socket.do_not_reverse_lookup = Socket.do_not_reverse_lookup, true  # turn off reverse DNS resolution temporarily

  UDPSocket.open do |s|
    s.connect '192.168.1.1', 1
    s.addr.last
  end
ensure
  Socket.do_not_reverse_lookup = orig
end

.load_selenium_config(file_name, config_name) ⇒ Object



18
19
20
21
22
23
24
# File 'lib/acceptance_tests_support/acceptance_tests_support.rb', line 18

def self.load_selenium_config file_name, config_name
  selenium_config = HashWithIndifferentAccess.new YAML.load_file(file_name)[config_name]

  selenium_config[:name] = config_name

  selenium_config
end

Instance Method Details

#after(context) ⇒ Object



56
57
58
59
60
61
62
63
64
65
66
67
68
# File 'lib/acceptance_tests_support/acceptance_tests_support.rb', line 56

def after context
  context.reset_session!

  if context.example.exception
    driver = driver(context)

    if driver and not [:webkit].include? driver
      save_screenshot context.example, context.page
    end
  end

  Capybara.current_driver = Capybara.default_driver
end

#before(context) ⇒ Object



37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# File 'lib/acceptance_tests_support/acceptance_tests_support.rb', line 37

def before context
  driver = driver(context)

  if driver
    register_driver driver

    select_driver driver

    if driver.to_s =~ /selenium/
      puts "\nSelenium Configuration: #{@selenium_config[:name]}"
      puts "Environment: #{@selenium_config[:env]}"
      puts "Application: #{@selenium_config[:webapp_url]}"
      puts "Selenium: #{@selenium_config[:selenium_host]}:#{@selenium_config[:selenium_port]}"
    end
  end

  setup_app_host app_host
end