Module: Testable

Includes:
Situation
Defined in:
lib/testable.rb,
lib/testable/ready.rb,
lib/testable/errors.rb,
lib/testable/element.rb,
lib/testable/factory.rb,
lib/testable/version.rb,
lib/testable/interface.rb,
lib/testable/situation.rb,
lib/testable/data_setter.rb

Defined Under Namespace

Modules: DataSetter, Element, Errors, Factory, Interface, Ready, Situation

Constant Summary collapse

VERSION =
"0.3.0".freeze

Class Attribute Summary collapse

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Class Attribute Details

.browser ⇒ Object

Returns the value of attribute browser.



32
33
34
# File 'lib/testable.rb', line 32

def browser
  @browser
end

Instance Attribute Details

#browser ⇒ Object

Returns the value of attribute browser.



29
30
31
# File 'lib/testable.rb', line 29

def browser
  @browser
end

Class Method Details

.dependencies ⇒ Object



14
15
16
17
# File 'lib/testable/version.rb', line 14

def dependencies
  Gem.loaded_specs.values.map { |spec| "#{spec.name} #{spec.version}\n" }
     .uniq.sort.join(",").split(",")
end

.elements ⇒ Object



9
10
11
# File 'lib/testable/element.rb', line 9

def elements
  @elements = Watir::Container.instance_methods unless @elements
end

.elements? ⇒ Boolean

Returns:

  • (Boolean)


13
14
15
# File 'lib/testable/element.rb', line 13

def elements?
  @elements
end

.gem_version(name) ⇒ Object



19
20
21
22
23
# File 'lib/testable/version.rb', line 19

def gem_version(name)
  Gem.loaded_specs[name].version
rescue NoMethodError
  puts "No gem loaded for #{name}."
end

.included(caller) ⇒ Object



14
15
16
17
18
19
20
21
# File 'lib/testable.rb', line 14

def self.included(caller)
  caller.extend Testable::Element
  caller.extend Testable::Interface::Page::Attribute
  caller.__send__ :include, Testable::Ready
  caller.__send__ :include, Testable::DataSetter
  caller.__send__ :include, Testable::Interface::Page
  caller.__send__ :include, Testable::Element::Locator
end

.quit_browser ⇒ Object



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

def quit_browser
  @browser.quit
end

.recognizes?(method) ⇒ Boolean

Returns:

  • (Boolean)


17
18
19
# File 'lib/testable/element.rb', line 17

def recognizes?(method)
  @elements.include? method.to_sym
end

.set_browser(app = :chrome, *args) ⇒ Object



34
35
36
37
# File 'lib/testable.rb', line 34

def set_browser(app = :chrome, *args)
  @browser = Watir::Browser.new(app, *args)
  Testable.browser = @browser
end

.version ⇒ Object



6
7
8
9
10
11
12
# File 'lib/testable/version.rb', line 6

def version
  """
Testable v#{Testable::VERSION}
watir: #{gem_version('watir')}
selenium-webdriver: #{gem_version('selenium-webdriver')}
  """
end

Instance Method Details

#initialize(browser = nil, &block) ⇒ Object



23
24
25
26
27
# File 'lib/testable.rb', line 23

def initialize(browser = nil, &block)
  @browser = Testable.browser unless Testable.browser.nil?
  @browser = browser if Testable.browser.nil?
  instance_eval(&block) if block
end