Class: TestAbstractions::Client

Inherits:
Object
  • Object
show all
Defined in:
lib/test_abstractions/client.rb

Defined Under Namespace

Modules: Accessor

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(base_uri, driver) ⇒ Client



6
7
8
9
# File 'lib/test_abstractions/client.rb', line 6

def initialize(base_uri, driver)
  @base_uri = base_uri
  @driver = driver
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(meth, *args, &block) ⇒ Object



23
24
25
# File 'lib/test_abstractions/client.rb', line 23

def method_missing(meth, *args, &block)
  delegate_to_driver(meth, *args, &block)        
end

Instance Attribute Details

#base_uriObject

Returns the value of attribute base_uri.



3
4
5
# File 'lib/test_abstractions/client.rb', line 3

def base_uri
  @base_uri
end

#driverObject

Returns the value of attribute driver.



4
5
6
# File 'lib/test_abstractions/client.rb', line 4

def driver
  @driver
end

Class Method Details

.build(base_uri: nil, driver: nil) ⇒ Object



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

def self.build(base_uri: nil, driver: nil)
  base_uri ||= Context.instance.base_uri
  driver = Context.instance.driver

  instance = new base_uri, driver
  instance
end

.instanceObject



11
12
13
# File 'lib/test_abstractions/client.rb', line 11

def self.instance
  @instance ||= build
end

Instance Method Details

#absolute_uri(uri) ⇒ Object



36
37
38
39
40
# File 'lib/test_abstractions/client.rb', line 36

def absolute_uri(uri)
  base = URI(base_uri)
  u = URI(uri)
  (base + u).to_s
end

#click(selector) ⇒ Object



50
51
52
# File 'lib/test_abstractions/client.rb', line 50

def click(selector)
  click_on(selector)
end

#delegate_to_driver(meth, *args, &block) ⇒ Object



27
28
29
# File 'lib/test_abstractions/client.rb', line 27

def delegate_to_driver(meth, *args, &block)
  driver.send meth, *args, &block
end

#enter(content, selector) ⇒ Object



42
43
44
# File 'lib/test_abstractions/client.rb', line 42

def enter(content, selector)
  driver.fill_in(selector, :with => content)
end

#open(uri) ⇒ Object



31
32
33
34
# File 'lib/test_abstractions/client.rb', line 31

def open(uri)
  uri = absolute_uri(uri)
  driver.visit(uri)
end

#select(option, selector) ⇒ Object



46
47
48
# File 'lib/test_abstractions/client.rb', line 46

def select(option, selector)
  driver.select(option, :from => selector)
end