Module: Geordi::FirefoxForSelenium

Defined in:
lib/geordi/firefox_for_selenium.rb

Defined Under Namespace

Classes: Installer

Constant Summary collapse

FIREFOX_FOR_SELENIUM_BASE_PATH =
Pathname.new('~/bin/firefoxes').expand_path
FIREFOX_FOR_SELENIUM_PROFILE_NAME =
'firefox-for-selenium'.freeze
FIREFOX_VERSION_FILE =
Pathname.new('.firefox-version')

Class Method Summary collapse

Class Method Details

.binary(version, name = 'firefox') ⇒ Object



39
40
41
# File 'lib/geordi/firefox_for_selenium.rb', line 39

def self.binary(version, name = 'firefox')
  path(version).join(name)
end

.install(version) ⇒ Object



12
13
14
# File 'lib/geordi/firefox_for_selenium.rb', line 12

def self.install(version)
  Installer.new(version).run
end

.path(version) ⇒ Object



35
36
37
# File 'lib/geordi/firefox_for_selenium.rb', line 35

def self.path(version)
  FIREFOX_FOR_SELENIUM_BASE_PATH.join(version)
end

.path_from_configObject



16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/geordi/firefox_for_selenium.rb', line 16

def self.path_from_config
  version = FIREFOX_VERSION_FILE.exist? && File.read(FIREFOX_VERSION_FILE).strip

  if version && (version != 'system')
    unless FirefoxForSelenium.binary(version).exist?
      Interaction.warn "Firefox #{version} not found"

      Interaction.note Util.strip_heredoc(<<-INSTRUCTIONS)
      Install it with
        geordi firefox --setup #{version}
      INSTRUCTIONS

      Interaction.prompt('Run tests anyway?', 'n', /y|yes/) || Interaction.fail('Cancelled.')
    end

    path(version)
  end
end

.setup_firefoxObject



43
44
45
46
47
48
49
50
# File 'lib/geordi/firefox_for_selenium.rb', line 43

def self.setup_firefox
  path = path_from_config

  if path
    ENV['PATH'] = "#{path}:#{ENV['PATH']}"
    Interaction.note 'Firefox for Selenium set up'
  end
end