page_object_wrapper 1.5.7 → 1.5.8
Sign up to get free protection for your applications and to get access to all the features.
- 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:
|