page_object_wrapper 1.3.0 → 1.3.1
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +2 -0
- data/lib/page_object_wrapper.rb +0 -4
- data/lib/page_object_wrapper/PageObject.rb +11 -57
- data/lib/page_object_wrapper/version.rb +1 -1
- data/page_object_wrapper.gemspec +2 -0
- data/page_object_wrapper.gemspec.orig +27 -0
- data/spec/spec_helper.rb +0 -1
- metadata +29 -6
data/.gitignore
CHANGED
data/lib/page_object_wrapper.rb
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
require 'active_support/inflector'
|
1
2
|
require 'Dsl'
|
2
3
|
require 'Exceptions'
|
3
4
|
include PageObjectWrapper
|
@@ -156,8 +157,8 @@ class PageObject < DslElementWithLocator
|
|
156
157
|
raise PageObjectWrapper::UnknownPageObject, label if not @@pages.collect(&:label_value).include?(label)
|
157
158
|
page_object = PageObject.find_page_object(label)
|
158
159
|
if not page_object.uniq_element_type.nil?
|
159
|
-
watir_uniq_element = @@browser.send page_object.uniq_element_type, page_object.uniq_element_hash
|
160
160
|
begin
|
161
|
+
watir_uniq_element = @@browser.send page_object.uniq_element_type, page_object.uniq_element_hash
|
161
162
|
watir_uniq_element.wait_until_present UNIQ_ELEMENT_WAIT_PERIOD
|
162
163
|
rescue Watir::Wait::TimeoutError => e
|
163
164
|
raise PageObjectWrapper::UnmappedPageObject, "#{label} <=> #{@@browser.url} (#{e.message})" if not watir_uniq_element.present?
|
@@ -396,7 +397,7 @@ private
|
|
396
397
|
end
|
397
398
|
}
|
398
399
|
else # where == nil
|
399
|
-
found = t.rows.
|
400
|
+
found = t.rows[t.rows.length/2].cells[search_for_index] # returning some "middle" row cell value
|
400
401
|
end
|
401
402
|
|
402
403
|
if not next_page.nil?
|
@@ -423,59 +424,12 @@ private
|
|
423
424
|
ary.collect(&:label_value)
|
424
425
|
end
|
425
426
|
|
426
|
-
|
427
|
-
|
428
|
-
|
429
|
-
|
430
|
-
|
431
|
-
|
432
|
-
|
433
|
-
|
434
|
-
def has_table?(label)
|
435
|
-
labeled(@tables).include?(label.to_sym)
|
436
|
-
end
|
437
|
-
|
438
|
-
def has_pagination?(label)
|
439
|
-
labeled(@paginations).include?(label.to_sym)
|
440
|
-
end
|
441
|
-
|
442
|
-
def has_action?(label)
|
443
|
-
labeled(@actions).include?(label.to_sym)
|
444
|
-
end
|
445
|
-
|
446
|
-
def has_validator?(label)
|
447
|
-
labeled(@validators).include?(label.to_sym)
|
448
|
-
end
|
449
|
-
|
450
|
-
def has_alias?(label)
|
451
|
-
labeled(@aliases).include?(label.to_sym)
|
452
|
-
end
|
453
|
-
|
454
|
-
def eset_for(label)
|
455
|
-
@esets[labeled(@esets).index(label.to_sym)]
|
456
|
-
end
|
457
|
-
|
458
|
-
def element_for(label)
|
459
|
-
@elements[labeled(@elements).index(label.to_sym)]
|
460
|
-
end
|
461
|
-
|
462
|
-
def table_for(label)
|
463
|
-
@tables[labeled(@tables).index(label.to_sym)]
|
464
|
-
end
|
465
|
-
|
466
|
-
def pagination_for(label)
|
467
|
-
@paginations[labeled(@paginations).index(label.to_sym)]
|
468
|
-
end
|
469
|
-
|
470
|
-
def action_for(label)
|
471
|
-
@actions[labeled(@actions).index(label.to_sym)]
|
472
|
-
end
|
473
|
-
|
474
|
-
def validator_for(label)
|
475
|
-
@validators[labeled(@validators).index(label.to_sym)]
|
476
|
-
end
|
477
|
-
|
478
|
-
def alias_for(label)
|
479
|
-
@aliases[labeled(@aliases).index(label.to_sym)]
|
480
|
-
end
|
427
|
+
[:eset, :element, :table, :pagination, :action, :alias, :validator].each{|el|
|
428
|
+
PageObject.send :define_method, 'has_'+el.to_s+'?' do |label| # has_xxx?(label)
|
429
|
+
labeled(instance_variable_get("@#{el.to_s.pluralize}")).include?(label.to_sym)
|
430
|
+
end
|
431
|
+
PageObject.send :define_method, el.to_s+'_for' do |label| # xxx_for(label)
|
432
|
+
instance_variable_get("@#{el.to_s.pluralize}")[labeled(instance_variable_get("@#{el.to_s.pluralize}")).index(label.to_sym)]
|
433
|
+
end
|
434
|
+
}
|
481
435
|
end
|
data/page_object_wrapper.gemspec
CHANGED
@@ -12,7 +12,9 @@ Gem::Specification.new do |gem|
|
|
12
12
|
gem.summary = %q{Wraps watir-webdriver with convenient testing interface.}
|
13
13
|
gem.homepage = "https://github.com/evgeniy-khatko/page_object_wrapper"
|
14
14
|
gem.add_dependency "watir-webdriver"
|
15
|
+
gem.add_dependency "activesupport"
|
15
16
|
gem.add_development_dependency "rspec", ">= 2.0.0"
|
17
|
+
gem.add_development_dependency "debugger"
|
16
18
|
|
17
19
|
gem.files = `git ls-files`.split($/)
|
18
20
|
gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
|
@@ -0,0 +1,27 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'page_object_wrapper/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |gem|
|
7
|
+
gem.name = "page_object_wrapper"
|
8
|
+
gem.version = PageObjectWrapper::VERSION
|
9
|
+
gem.authors = ["Evgeniy Khatko"]
|
10
|
+
gem.email = ["evgeniy.khatko@gmail.com"]
|
11
|
+
gem.description = %q{Wraps watir-webdriver with convenient testing interface, based on PageObjects automation testing pattern. Simplifies resulting automated test understanding.}
|
12
|
+
gem.summary = %q{Wraps watir-webdriver with convenient testing interface.}
|
13
|
+
gem.homepage = "https://github.com/evgeniy-khatko/page_object_wrapper"
|
14
|
+
gem.add_dependency "watir-webdriver"
|
15
|
+
gem.add_dependency "activesupport"
|
16
|
+
gem.add_development_dependency "rspec", ">= 2.0.0"
|
17
|
+
<<<<<<< HEAD
|
18
|
+
gem.add_development_dependency "debugger"
|
19
|
+
|
20
|
+
=======
|
21
|
+
>>>>>>> 3c944dcc705aa45b76ecda84a061beb9ee0ed4af
|
22
|
+
|
23
|
+
gem.files = `git ls-files`.split($/)
|
24
|
+
gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
|
25
|
+
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
|
26
|
+
gem.require_paths = ["lib","lib/page_object_wrapper"]
|
27
|
+
end
|
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: page_object_wrapper
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.3.
|
4
|
+
version: 1.3.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-12-
|
12
|
+
date: 2012-12-25 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: watir-webdriver
|
16
|
-
requirement: &
|
16
|
+
requirement: &12728460 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,21 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *12728460
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: activesupport
|
27
|
+
requirement: &12728000 !ruby/object:Gem::Requirement
|
28
|
+
none: false
|
29
|
+
requirements:
|
30
|
+
- - ! '>='
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '0'
|
33
|
+
type: :runtime
|
34
|
+
prerelease: false
|
35
|
+
version_requirements: *12728000
|
25
36
|
- !ruby/object:Gem::Dependency
|
26
37
|
name: rspec
|
27
|
-
requirement: &
|
38
|
+
requirement: &12727480 !ruby/object:Gem::Requirement
|
28
39
|
none: false
|
29
40
|
requirements:
|
30
41
|
- - ! '>='
|
@@ -32,7 +43,18 @@ dependencies:
|
|
32
43
|
version: 2.0.0
|
33
44
|
type: :development
|
34
45
|
prerelease: false
|
35
|
-
version_requirements: *
|
46
|
+
version_requirements: *12727480
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: debugger
|
49
|
+
requirement: &12727020 !ruby/object:Gem::Requirement
|
50
|
+
none: false
|
51
|
+
requirements:
|
52
|
+
- - ! '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
type: :development
|
56
|
+
prerelease: false
|
57
|
+
version_requirements: *12727020
|
36
58
|
description: Wraps watir-webdriver with convenient testing interface, based on PageObjects
|
37
59
|
automation testing pattern. Simplifies resulting automated test understanding.
|
38
60
|
email:
|
@@ -69,6 +91,7 @@ files:
|
|
69
91
|
- lib/page_object_wrapper/known_elements.rb
|
70
92
|
- lib/page_object_wrapper/version.rb
|
71
93
|
- page_object_wrapper.gemspec
|
94
|
+
- page_object_wrapper.gemspec.orig
|
72
95
|
- spec/define_page_object_spec.rb
|
73
96
|
- spec/defined_elements_spec.rb
|
74
97
|
- spec/each_page.rb
|