page_object_wrapper 1.5.7 → 1.5.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/good_pages/some_test_page.rb +1 -1
- data/lib/page_object_wrapper/PageObject.rb +48 -15
- data/lib/version.rb +1 -1
- data/spec/feed_xxx_spec.rb +8 -0
- data/spec/spec_helper.rb +2 -2
- metadata +14 -14
@@ -384,14 +384,15 @@ module PageObjectWrapper
|
|
384
384
|
watir_elements << watir_element
|
385
385
|
case watir_element
|
386
386
|
when Watir::CheckBox
|
387
|
-
|
387
|
+
food = eval food if ['true', 'false'].include? food
|
388
|
+
watir_element.when_present.set food if [true, false].include? food
|
388
389
|
when Watir::Radio
|
389
|
-
watir_element.when_present.set if food
|
390
|
+
watir_element.when_present.set if ['true', true].include? food
|
390
391
|
when Watir::Select
|
391
392
|
watir_element.select food if watir_element.include? food
|
392
393
|
else
|
393
394
|
if watir_element.respond_to?(:set)
|
394
|
-
watir_element.when_present.set food if food!=''
|
395
|
+
watir_element.when_present.set food if food != ''
|
395
396
|
else
|
396
397
|
# this is an element which does not support input (e.g. button) => skipping it
|
397
398
|
next
|
@@ -406,11 +407,12 @@ module PageObjectWrapper
|
|
406
407
|
watir_element = PageObject.return_watir_element e
|
407
408
|
case watir_element
|
408
409
|
when Watir::CheckBox
|
409
|
-
|
410
|
+
value = eval value if ['true', 'false'].include? value
|
411
|
+
watir_element.when_present.set value if [true, false].include? value
|
410
412
|
when Watir::Radio
|
411
|
-
|
413
|
+
watir_element.when_present.set if ['true', true].include? value
|
412
414
|
when Watir::Select
|
413
|
-
|
415
|
+
watir_element.select value if watir_element.include? value
|
414
416
|
else
|
415
417
|
if watir_element.respond_to?(:set)
|
416
418
|
watir_element.when_present.set value
|
@@ -524,8 +526,6 @@ module PageObjectWrapper
|
|
524
526
|
conditions = query.clone
|
525
527
|
conditions.delete(:number)
|
526
528
|
raise PageObjectWrapper::BrowserNotFound if PageObjectWrapper.browser.nil? or not PageObjectWrapper.browser.exist?
|
527
|
-
PageObjectWrapper.browser.table(table.locator_value).wait_until_present
|
528
|
-
t = PageObjectWrapper.browser.table(table.locator_value)
|
529
529
|
found_row = {}
|
530
530
|
candidate_rows = nil
|
531
531
|
raise ArgumentError, "argument should be a meaningful Hash, got #{query.inspect}" if not query.is_a?(Hash) or query.empty?
|
@@ -535,15 +535,13 @@ module PageObjectWrapper
|
|
535
535
|
if not conditions.empty? and (conditions.keys.collect(&:class).uniq != [Symbol] or conditions.values.collect(&:class).uniq != [String])
|
536
536
|
raise ArgumentError, "arguments hash should be like :symbol => 'a string' (for all columns except :number), got #{query.inspect}"
|
537
537
|
end
|
538
|
+
|
539
|
+
PageObjectWrapper.browser.table(table.locator_value).wait_until_present
|
540
|
+
t = PageObjectWrapper.browser.table(table.locator_value)
|
538
541
|
|
539
542
|
if query.has_key? :number
|
540
|
-
|
543
|
+
r = t[query[:number]]
|
541
544
|
query.delete(:number)
|
542
|
-
else
|
543
|
-
candidate_rows = t.rows
|
544
|
-
end
|
545
|
-
|
546
|
-
candidate_rows.each{ |r|
|
547
545
|
conditions_met = true
|
548
546
|
unless query.empty?
|
549
547
|
query.each_key{ |column_name|
|
@@ -575,7 +573,42 @@ module PageObjectWrapper
|
|
575
573
|
}
|
576
574
|
return found_row
|
577
575
|
end
|
578
|
-
|
576
|
+
else
|
577
|
+
t.rows.each{ |r|
|
578
|
+
conditions_met = true
|
579
|
+
unless query.empty?
|
580
|
+
query.each_key{ |column_name|
|
581
|
+
raise ArgumentError, "column #{column_name.inspect} not in table header and not == :number" if not table.header_value.include?(column_name)
|
582
|
+
column_index = table.header_value.index(column_name)
|
583
|
+
column_text = ''
|
584
|
+
# workaround for rows with small number of columns
|
585
|
+
begin
|
586
|
+
if r[column_index].checkbox.present?
|
587
|
+
column_text = r[column_index].checkbox.set?.to_s
|
588
|
+
elsif r[column_index].radio.present?
|
589
|
+
column_text = r[column_index].radio.set?.to_s
|
590
|
+
else
|
591
|
+
column_text = r[column_index].text
|
592
|
+
end
|
593
|
+
rescue Watir::Exception::UnknownObjectException
|
594
|
+
# just moving to next row
|
595
|
+
conditions_met = false
|
596
|
+
break
|
597
|
+
end
|
598
|
+
conditions_met = false if column_text != query[column_name]
|
599
|
+
}
|
600
|
+
end
|
601
|
+
if conditions_met
|
602
|
+
column_index = 0
|
603
|
+
r.cells.each{ |cell|
|
604
|
+
found_row[table.header_value[column_index]] = cell
|
605
|
+
column_index += 1
|
606
|
+
}
|
607
|
+
return found_row
|
608
|
+
end
|
609
|
+
}
|
610
|
+
end
|
611
|
+
|
579
612
|
return nil
|
580
613
|
end
|
581
614
|
|
data/lib/version.rb
CHANGED
data/spec/feed_xxx_spec.rb
CHANGED
@@ -60,11 +60,19 @@ describe "page_object.feed_xxx" do
|
|
60
60
|
it "FEEDS checkbox with true value" do
|
61
61
|
@tp.feed_cb1(true)
|
62
62
|
@b.checkbox(:id => 'f5').should be_set
|
63
|
+
@tp.feed_cb1(false)
|
64
|
+
@b.checkbox(:id => 'f5').should_not be_set
|
65
|
+
@tp.feed_cb1("true")
|
66
|
+
@b.checkbox(:id => 'f5').should be_set
|
67
|
+
@tp.feed_cb1("false")
|
68
|
+
@b.checkbox(:id => 'f5').should_not be_set
|
63
69
|
end
|
64
70
|
|
65
71
|
it "FEEDS radio with true" do
|
66
72
|
@tp.feed_rb1(true)
|
67
73
|
@b.radio(:id => 'f3').should be_set
|
74
|
+
@tp.feed_rb1("true")
|
75
|
+
@b.radio(:id => 'f3').should be_set
|
68
76
|
end
|
69
77
|
|
70
78
|
it "FEEDS select list if provided value exists in it" do
|
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.5.
|
4
|
+
version: 1.5.8
|
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: 2013-
|
12
|
+
date: 2013-08-01 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: watir-webdriver
|
16
|
-
requirement: &
|
16
|
+
requirement: &8142420 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *8142420
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: activesupport
|
27
|
-
requirement: &
|
27
|
+
requirement: &8141680 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *8141680
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: babosa
|
38
|
-
requirement: &
|
38
|
+
requirement: &8140840 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :runtime
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *8140840
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: rspec
|
49
|
-
requirement: &
|
49
|
+
requirement: &8139880 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ! '>='
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: 2.0.0
|
55
55
|
type: :development
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *8139880
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: debugger
|
60
|
-
requirement: &
|
60
|
+
requirement: &8139060 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ! '>='
|
@@ -65,10 +65,10 @@ dependencies:
|
|
65
65
|
version: '0'
|
66
66
|
type: :development
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *8139060
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: headless
|
71
|
-
requirement: &
|
71
|
+
requirement: &8138320 !ruby/object:Gem::Requirement
|
72
72
|
none: false
|
73
73
|
requirements:
|
74
74
|
- - ! '>='
|
@@ -76,7 +76,7 @@ dependencies:
|
|
76
76
|
version: '0'
|
77
77
|
type: :development
|
78
78
|
prerelease: false
|
79
|
-
version_requirements: *
|
79
|
+
version_requirements: *8138320
|
80
80
|
description: Wraps watir-webdriver with convenient testing interface, based on PageObjects
|
81
81
|
automation testing pattern. Simplifies resulting automated test understanding.
|
82
82
|
email:
|