marekj-watirloo 0.0.3 → 0.0.5
Sign up to get free protection for your applications and to get access to all the features.
- data/History.txt +12 -0
- data/Manifest.txt +59 -34
- data/README.rdoc +63 -80
- data/Rakefile.rb +32 -39
- data/config/locker.yml +0 -0
- data/lib/watirloo.rb +9 -162
- data/lib/watirloo/browsers.rb +73 -0
- data/lib/watirloo/desktop.rb +44 -0
- data/lib/watirloo/{firewatir_ducktape.rb → extension/firewatir_ducktape.rb} +0 -0
- data/lib/watirloo/extension/object.rb +26 -0
- data/lib/watirloo/{watir_ducktape.rb → extension/watir_ducktape.rb} +181 -16
- data/lib/watirloo/extension/watir_reflector.rb +83 -0
- data/lib/watirloo/locker.rb +84 -0
- data/lib/watirloo/page.rb +105 -0
- data/spec/browser_spec.rb +38 -0
- data/spec/browser_threads_spec.rb +45 -0
- data/spec/checkbox_group_spec.rb +136 -0
- data/spec/checkbox_groups_spec.rb +55 -0
- data/spec/checkboxes_value_spec.rb +35 -0
- data/spec/desktop_spec.rb +54 -0
- data/spec/extra/browser_events_spec.rb +76 -0
- data/spec/extra/page_objects_metrics.rb +139 -0
- data/spec/face_mixing_spec.rb +55 -0
- data/{test → spec}/firewatir/attach_instance_test.rb +0 -0
- data/spec/firewatir/spec_results.html +263 -0
- data/spec/firewatir/spec_results.txt +23 -0
- data/spec/firewatir/spec_results_failed.txt +3 -0
- data/{test → spec}/html/census.html +0 -0
- data/spec/html/checkbox_group1.html +33 -0
- data/spec/html/labels.html +53 -0
- data/spec/html/no_title.html +13 -0
- data/{test → spec}/html/person.html +0 -0
- data/spec/html/radio_group.html +35 -0
- data/{test → spec}/html/select_lists.html +0 -0
- data/spec/input_element_spec.rb +51 -0
- data/spec/label_spec.rb +65 -0
- data/spec/locker_spec.rb +49 -0
- data/spec/page_spec.rb +53 -0
- data/spec/person_def_wrappers_spec.rb +40 -0
- data/spec/radio_group_spec.rb +95 -0
- data/spec/radio_groups_spec.rb +55 -0
- data/spec/reflector_spec.rb +82 -0
- data/spec/select_list_options_spec.rb +40 -0
- data/spec/select_lists_spec.rb +151 -0
- data/{test/test_helper.rb → spec/spec_helper.rb} +6 -4
- data/spec/spec_helper_ff.rb +5 -0
- data/spec/spec_helper_runner.rb +13 -0
- data/spec/spec_results.html +566 -0
- data/spec/spec_results.txt +179 -0
- data/spec/spec_results_failed.txt +1 -0
- data/spec/text_fields_spec.rb +56 -0
- data/watirloo.gemspec +44 -44
- metadata +80 -39
- data/lib/watirloo/reflector.rb +0 -137
- data/test/checkbox_group_test.rb +0 -83
- data/test/checkboxes_value_test.rb +0 -50
- data/test/html/checkbox_group1.html +0 -20
- data/test/html/labels.html +0 -32
- data/test/html/radio_group.html +0 -41
- data/test/interfaces_test.rb +0 -79
- data/test/label_test.rb +0 -64
- data/test/person_def_wrappers_test.rb +0 -55
- data/test/radio_group_test.rb +0 -97
- data/test/select_list_in_class_test.rb +0 -39
- data/test/select_list_options_test.rb +0 -39
- data/test/select_lists_test.rb +0 -145
- data/test/text_fields_test.rb +0 -68
@@ -0,0 +1,55 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/spec_helper'
|
2
|
+
|
3
|
+
describe 'RadioGroup class access in watir browser' do
|
4
|
+
include Watirloo::Page
|
5
|
+
|
6
|
+
before :each do
|
7
|
+
browser.goto testfile('radio_group.html')
|
8
|
+
end
|
9
|
+
|
10
|
+
it 'browser responds to radio_group' do
|
11
|
+
browser.should respond_to(:radio_groups)
|
12
|
+
end
|
13
|
+
|
14
|
+
it 'returns RadioGroups class' do
|
15
|
+
browser.radio_groups.should be_kind_of(Watir::RadioGroups)
|
16
|
+
end
|
17
|
+
|
18
|
+
it 'lenght returns integer count of groups' do
|
19
|
+
browser.radio_groups.length.should == 2
|
20
|
+
end
|
21
|
+
|
22
|
+
it 'each iterator returns RadioGroup' do
|
23
|
+
browser.radio_groups.each do |rg|
|
24
|
+
rg.class.should == Watir::RadioGroup #single
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
it 'each accesses the group and returns name' do
|
29
|
+
names =[]
|
30
|
+
browser.radio_groups.each do |rg|
|
31
|
+
names << rg.name
|
32
|
+
end
|
33
|
+
names.should == ['food', 'fooda']
|
34
|
+
end
|
35
|
+
|
36
|
+
it 'bracket access[] returns 1-based indexed group' do
|
37
|
+
browser.radio_groups[1].class.should == Watir::RadioGroup
|
38
|
+
browser.radio_groups[1].values.should == ["hotdog", "burger", "tofu"]
|
39
|
+
browser.radio_groups[2].name.should == 'fooda'
|
40
|
+
end
|
41
|
+
|
42
|
+
it 'if radio group does not exists it returns size 0 or name nil (or should it blow up? or respond to exists? method' do
|
43
|
+
browser.radio_groups[6].size.should == 0 # does not exist. let's not blow up. suggestions?
|
44
|
+
browser.radio_groups[6].name.should == nil #suggestions?
|
45
|
+
end
|
46
|
+
|
47
|
+
it 'groups contained by a form element' do
|
48
|
+
browser.forms[1].radio_groups.length.should == 1
|
49
|
+
names =[]
|
50
|
+
browser.forms[1].radio_groups.each do |rg|
|
51
|
+
names << rg.name
|
52
|
+
end
|
53
|
+
names.should == ['food']
|
54
|
+
end
|
55
|
+
end
|
@@ -0,0 +1,82 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/spec_helper'
|
2
|
+
|
3
|
+
|
4
|
+
#each collection can reflect the accessors and specs for its own members
|
5
|
+
describe 'reflext :text_fields' do
|
6
|
+
|
7
|
+
include Watirloo::Page
|
8
|
+
|
9
|
+
before do
|
10
|
+
browser.goto testfile('person.html')
|
11
|
+
end
|
12
|
+
|
13
|
+
it 'text_fields.reflect each :text_field' do
|
14
|
+
expected = ["face(:last_nm) {doc.text_field(:name, \"last_nm\")}",
|
15
|
+
"last_nm.value.should == \"Begoodnuffski\"",
|
16
|
+
"face(:first_nm) {doc.text_field(:name, \"first_nm\")}",
|
17
|
+
"first_nm.value.should == \"Joanney\"",
|
18
|
+
"face(:dob) {doc.text_field(:name, \"dob\")}",
|
19
|
+
"dob.value.should == \"05/09/1964\"",
|
20
|
+
"face(:addr1) {doc.text_field(:name, \"addr1\")}",
|
21
|
+
"addr1.value.should == \"1600 Transylavnia Ave.\""]
|
22
|
+
|
23
|
+
browser.text_fields.reflect.should == expected
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
|
28
|
+
|
29
|
+
describe 'reflect :radio_groups' do
|
30
|
+
|
31
|
+
include Watirloo::Page
|
32
|
+
|
33
|
+
before do
|
34
|
+
browser.goto testfile('radio_group.html')
|
35
|
+
end
|
36
|
+
|
37
|
+
it 'reflects each radio group' do
|
38
|
+
|
39
|
+
expected = ["face(:food) {doc.radio_group(\"food\")}",
|
40
|
+
"food.values.should == [\"hotdog\", \"burger\", \"tofu\"]",
|
41
|
+
"food.selected.should == \"burger\"",
|
42
|
+
"face(:fooda) {doc.radio_group(\"fooda\")}",
|
43
|
+
"fooda.values.should == [\"hotdoga\", \"burgera\", \"tofua\", \"hotdoga_t\", \"burgera_t\", \"tofua_t\"]",
|
44
|
+
"fooda.selected.should == \"tofua\""]
|
45
|
+
|
46
|
+
# here the radio_group pics up the same named elemnets in two distinct form containers
|
47
|
+
# this would be a bug if container is browser
|
48
|
+
browser.radio_groups.reflect.should == expected
|
49
|
+
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
|
54
|
+
|
55
|
+
|
56
|
+
describe 'reflect :checkbox_groups' do
|
57
|
+
|
58
|
+
include Watirloo::Page
|
59
|
+
|
60
|
+
before do
|
61
|
+
browser.goto testfile('checkbox_group1.html')
|
62
|
+
end
|
63
|
+
|
64
|
+
it 'reflects each checkbox_group' do
|
65
|
+
|
66
|
+
expected = ["face(:pets) {doc.checkbox_group(\"pets\")}",
|
67
|
+
"pets.values.should == [\"cat\", \"dog\", \"zook\", \"zebra\", \"wumpa\"]",
|
68
|
+
"pets.selected.should == nil",
|
69
|
+
"face(:single_indicator) {doc.checkbox_group(\"singleIndicator\")}",
|
70
|
+
"single_indicator.values.should == [\"on\"]",
|
71
|
+
"single_indicator.selected.should == nil",
|
72
|
+
"face(:petsa) {doc.checkbox_group(\"petsa\")}",
|
73
|
+
"petsa.values.should == [\"cata\", \"doga\", \"zooka\", \"zebraa\", \"wumpaa\"]",
|
74
|
+
"petsa.selected.should == nil",
|
75
|
+
"face(:single_indicatora) {doc.checkbox_group(\"singleIndicatora\")}",
|
76
|
+
"single_indicatora.values.should == [\"on\"]",
|
77
|
+
"single_indicatora.selected.should == nil"]
|
78
|
+
|
79
|
+
browser.checkbox_groups.reflect.should == expected
|
80
|
+
end
|
81
|
+
|
82
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/spec_helper'
|
2
|
+
|
3
|
+
describe "SelectList options as visible items and values as hidden to the user attributes" do
|
4
|
+
|
5
|
+
include Watirloo::Page
|
6
|
+
|
7
|
+
face(:pets) { doc.select_list(:name, 'animals') }
|
8
|
+
face(:gender) { doc.select_list(:name, 'sex_cd') }
|
9
|
+
face(:toys) { doc.select_list(:name, 'bubel') }
|
10
|
+
|
11
|
+
before :each do
|
12
|
+
browser.goto testfile('select_lists.html')
|
13
|
+
end
|
14
|
+
|
15
|
+
it 'values of options by facename method' do
|
16
|
+
gender.values.should == ['', 'm', 'f']
|
17
|
+
pets.values.should == ['o1', 'o2', 'o3', 'o4', 'o5']
|
18
|
+
end
|
19
|
+
|
20
|
+
it 'options with no value attribute' do
|
21
|
+
# in case of IE it will return all blanks
|
22
|
+
if browser.kind_of?(Watir::IE)
|
23
|
+
toys.values.should == ["", "", "", "", ""]
|
24
|
+
elsif browser.kind_of?(FireWatir::Firefox)
|
25
|
+
toys.values.should == ["", "foobel", "barbel", "bazbel", "chuchu"]
|
26
|
+
# for Firfox it returns actual items
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
it 'items method returns visible contents as array of text items' do
|
31
|
+
toys.items.should == ["", "foobel", "barbel", "bazbel", "chuchu"]
|
32
|
+
end
|
33
|
+
|
34
|
+
it 'items returns visible text items as array' do
|
35
|
+
pets.items.should == ['cat', 'dog', 'zook', 'zebra', 'wumpa']
|
36
|
+
gender.items.should == ["", "M", "F"]
|
37
|
+
end
|
38
|
+
|
39
|
+
|
40
|
+
end
|
@@ -0,0 +1,151 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/spec_helper'
|
2
|
+
|
3
|
+
|
4
|
+
# testing single select and multiselect controls
|
5
|
+
describe "SelectList selections" do
|
6
|
+
|
7
|
+
include Watirloo::Page
|
8
|
+
|
9
|
+
face(:pets) {doc.select_list(:name, 'animals')}
|
10
|
+
face(:gender) {doc.select_list(:name, 'sex_cd')}
|
11
|
+
|
12
|
+
|
13
|
+
before do
|
14
|
+
browser.goto testfile('select_lists.html')
|
15
|
+
end
|
16
|
+
|
17
|
+
it 'selected returns preselected item in single select' do
|
18
|
+
gender.selected.should == '' # in single select "" is preselected
|
19
|
+
gender.selected_item.should == '' # in single select "" is preselected
|
20
|
+
gender.selected_items.should == ['']
|
21
|
+
end
|
22
|
+
|
23
|
+
it 'selected returns preselected value in single select' do
|
24
|
+
gender.selected_value.should == '' # in single select "" is preselected
|
25
|
+
gender.selected_values.should == ['']
|
26
|
+
end
|
27
|
+
|
28
|
+
|
29
|
+
it 'selected returns nil for none selected items in multi select' do
|
30
|
+
pets.selected.should == nil # in multiselect noting is selected
|
31
|
+
pets.selected_item.should == nil
|
32
|
+
pets.selected_items.should == [] # as array
|
33
|
+
end
|
34
|
+
|
35
|
+
it 'selected returns nil for none selected values in multi select' do
|
36
|
+
pets.selected_value.should == nil
|
37
|
+
pets.selected_values.should == [] # as array
|
38
|
+
end
|
39
|
+
|
40
|
+
it 'set item text and find selected item and text for multiselect' do
|
41
|
+
pets.set 'dog'
|
42
|
+
pets.selected.should == 'dog' #multi select one item selected
|
43
|
+
pets.selected_item.should == 'dog' #multi select one item selected
|
44
|
+
pets.selected_items.should == ['dog']
|
45
|
+
end
|
46
|
+
|
47
|
+
it 'set value and find selected item and value for multiselect' do
|
48
|
+
pets.set_value 'o2'
|
49
|
+
pets.selected.should == 'dog' #multi select one item selected
|
50
|
+
pets.selected_value.should == 'o2' #multi select one item selected
|
51
|
+
pets.selected_values.should == ['o2']
|
52
|
+
end
|
53
|
+
|
54
|
+
it 'set and query option by text for single select' do
|
55
|
+
gender.set 'F'
|
56
|
+
gender.selected.should == 'F' # single select one item
|
57
|
+
gender.selected_item.should == 'F' # single select one item
|
58
|
+
gender.selected_items.should == ['F'] # single select one item
|
59
|
+
end
|
60
|
+
|
61
|
+
it 'set and query option by value for single select' do
|
62
|
+
gender.set_value 'f'
|
63
|
+
gender.selected.should == 'F'
|
64
|
+
gender.selected_value.should == 'f' # single select one item
|
65
|
+
gender.selected_values.should == ['f'] # single select one item
|
66
|
+
end
|
67
|
+
|
68
|
+
|
69
|
+
it 'set by text multple items for multiselect selects each item' do
|
70
|
+
pets.set ['cat', 'dog']
|
71
|
+
pets.selected.should == ['cat','dog']
|
72
|
+
pets.selected_item.should == ['cat','dog'] # bypass filter when more than one item
|
73
|
+
pets.selected_items.should == ['cat','dog']
|
74
|
+
end
|
75
|
+
|
76
|
+
it 'set by value multple items for multiselect selects each item' do
|
77
|
+
pets.set_value ['o1', 'o2']
|
78
|
+
pets.selected.should == ['cat','dog']
|
79
|
+
pets.selected_value.should == ['o1','o2'] # bypass filter when more than one item
|
80
|
+
pets.selected_value.should == ['o1','o2']
|
81
|
+
end
|
82
|
+
|
83
|
+
# this is not practical for single select but can be done for testing
|
84
|
+
# conditions arising from switching items in a batch approach
|
85
|
+
it 'set items array for single select selects each in turn. selected is the last item in array' do
|
86
|
+
gender.set ['M', 'F', '','F']
|
87
|
+
gender.selected.should == 'F'
|
88
|
+
end
|
89
|
+
|
90
|
+
it 'set item after multiple items were set returns all values selected for multiselect' do
|
91
|
+
pets.set ['cat','zook']
|
92
|
+
pets.set 'zebra'
|
93
|
+
pets.selected.should == ['cat', 'zook', 'zebra']
|
94
|
+
pets.selected_values.should == ['o1', 'o3', 'o4']
|
95
|
+
end
|
96
|
+
|
97
|
+
it 'set using position for multiselect' do
|
98
|
+
pets.set 3
|
99
|
+
pets.selected.should == 'zook'
|
100
|
+
pets.set_value 2 # translate to second text item
|
101
|
+
pets.selected.should == ['dog', 'zook']
|
102
|
+
pets.set [1,4,5]
|
103
|
+
pets.selected.should == ['cat','dog','zook', 'zebra','wumpa']
|
104
|
+
end
|
105
|
+
|
106
|
+
it 'set using position and item for multiselect' do
|
107
|
+
pets.set [1,'zebra', 'zook', 2, 4] #select already selected
|
108
|
+
pets.selected.should == ['cat','dog','zook','zebra']
|
109
|
+
end
|
110
|
+
|
111
|
+
it 'set using position for single select' do
|
112
|
+
gender.set 2
|
113
|
+
gender.selected.should == 'M'
|
114
|
+
gender.selected_value.should == 'm'
|
115
|
+
end
|
116
|
+
|
117
|
+
it 'clear removes selected attribute for all selected items in multiselect' do
|
118
|
+
pets.selected.should == nil
|
119
|
+
pets.set ['zook', 'cat']
|
120
|
+
pets.selected.should == ['cat','zook']
|
121
|
+
pets.clear
|
122
|
+
pets.selected.should == nil
|
123
|
+
end
|
124
|
+
|
125
|
+
it 'clear removes selected attribute for item in single select list' do
|
126
|
+
gender.selected.should == ''
|
127
|
+
gender.set 'F'
|
128
|
+
gender.selected.should == 'F'
|
129
|
+
|
130
|
+
# This fails on IE in single select list.
|
131
|
+
# The test passes in Firefox
|
132
|
+
# option item select = false does not set false like it does in multiselect
|
133
|
+
gender.clear
|
134
|
+
gender.selected.should_not == 'F'
|
135
|
+
end
|
136
|
+
|
137
|
+
it 'set_value selects value atribute text' do
|
138
|
+
gender.set_value 'm'
|
139
|
+
gender.selected.should == 'M'
|
140
|
+
gender.selected_value.should == 'm' #when you know there is only one item expected
|
141
|
+
gender.selected_values.should == ['m'] # array of items
|
142
|
+
end
|
143
|
+
|
144
|
+
it 'set_value for multiselect returns selected and selected_values' do
|
145
|
+
pets.set_value 'o2'
|
146
|
+
pets.set_value 'o4'
|
147
|
+
pets.selected.should == ['dog', 'zebra']
|
148
|
+
pets.selected_value.should == ['o2', 'o4'] # if array then bypass filter
|
149
|
+
pets.selected_values.should == ['o2', 'o4'] # plural
|
150
|
+
end
|
151
|
+
end
|
@@ -1,9 +1,11 @@
|
|
1
|
-
require 'stringio'
|
2
|
-
require 'test/spec'
|
3
1
|
require File.dirname(__FILE__) + '/../lib/watirloo'
|
4
|
-
|
2
|
+
require 'stringio'
|
3
|
+
require 'spec/autorun'
|
4
|
+
|
5
5
|
def testfile(filename)
|
6
6
|
path = File.expand_path(File.dirname(__FILE__))
|
7
7
|
uri = "file://#{path}/html/" + filename
|
8
8
|
return uri
|
9
|
-
end
|
9
|
+
end
|
10
|
+
|
11
|
+
|
@@ -0,0 +1,13 @@
|
|
1
|
+
# precondition for IE tests.
|
2
|
+
# configure the Spec::Runner
|
3
|
+
# to clear all browsers from desktop
|
4
|
+
# and clear locker then sleep to make sure all browser proceses finished.
|
5
|
+
# This file is used by rakefile global all test runner
|
6
|
+
require 'spec'
|
7
|
+
Spec::Runner.configure do |config|
|
8
|
+
config.before(:all) do
|
9
|
+
Watirloo::Desktop.clear
|
10
|
+
Watirloo::Locker.clear
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
@@ -0,0 +1,566 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<!DOCTYPE html
|
3
|
+
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
4
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
5
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
6
|
+
<head>
|
7
|
+
<title>RSpec results</title>
|
8
|
+
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
9
|
+
<meta http-equiv="Expires" content="-1" />
|
10
|
+
<meta http-equiv="Pragma" content="no-cache" />
|
11
|
+
<style type="text/css">
|
12
|
+
body {
|
13
|
+
margin: 0;
|
14
|
+
padding: 0;
|
15
|
+
background: #fff;
|
16
|
+
font-size: 80%;
|
17
|
+
}
|
18
|
+
</style>
|
19
|
+
<script type="text/javascript">
|
20
|
+
// <![CDATA[
|
21
|
+
function moveProgressBar(percentDone) {
|
22
|
+
document.getElementById("rspec-header").style.width = percentDone +"%";
|
23
|
+
}
|
24
|
+
function makeRed(element_id) {
|
25
|
+
document.getElementById(element_id).style.background = '#C40D0D';
|
26
|
+
document.getElementById(element_id).style.color = '#FFFFFF';
|
27
|
+
}
|
28
|
+
|
29
|
+
function makeYellow(element_id) {
|
30
|
+
if (element_id == "rspec-header" && document.getElementById(element_id).style.background != '#C40D0D')
|
31
|
+
{
|
32
|
+
document.getElementById(element_id).style.background = '#FAF834';
|
33
|
+
document.getElementById(element_id).style.color = '#000000';
|
34
|
+
}
|
35
|
+
else
|
36
|
+
{
|
37
|
+
document.getElementById(element_id).style.background = '#FAF834';
|
38
|
+
document.getElementById(element_id).style.color = '#000000';
|
39
|
+
}
|
40
|
+
}
|
41
|
+
|
42
|
+
// ]]>
|
43
|
+
</script>
|
44
|
+
<style type="text/css">
|
45
|
+
#rspec-header {
|
46
|
+
background: #65C400; color: #fff; height: 4em;
|
47
|
+
}
|
48
|
+
|
49
|
+
.rspec-report h1 {
|
50
|
+
margin: 0px 10px 0px 10px;
|
51
|
+
padding: 10px;
|
52
|
+
font-family: "Lucida Grande", Helvetica, sans-serif;
|
53
|
+
font-size: 1.8em;
|
54
|
+
position: absolute;
|
55
|
+
}
|
56
|
+
|
57
|
+
#summary {
|
58
|
+
margin: 0; padding: 5px 10px;
|
59
|
+
font-family: "Lucida Grande", Helvetica, sans-serif;
|
60
|
+
text-align: right;
|
61
|
+
top: 0px;
|
62
|
+
right: 0px;
|
63
|
+
float:right;
|
64
|
+
}
|
65
|
+
|
66
|
+
#summary p {
|
67
|
+
margin: 0 0 0 2px;
|
68
|
+
}
|
69
|
+
|
70
|
+
#summary #totals {
|
71
|
+
font-size: 1.2em;
|
72
|
+
}
|
73
|
+
|
74
|
+
.example_group {
|
75
|
+
margin: 0 10px 5px;
|
76
|
+
background: #fff;
|
77
|
+
}
|
78
|
+
|
79
|
+
dl {
|
80
|
+
margin: 0; padding: 0 0 5px;
|
81
|
+
font: normal 11px "Lucida Grande", Helvetica, sans-serif;
|
82
|
+
}
|
83
|
+
|
84
|
+
dt {
|
85
|
+
padding: 3px;
|
86
|
+
background: #65C400;
|
87
|
+
color: #fff;
|
88
|
+
font-weight: bold;
|
89
|
+
}
|
90
|
+
|
91
|
+
dd {
|
92
|
+
margin: 5px 0 5px 5px;
|
93
|
+
padding: 3px 3px 3px 18px;
|
94
|
+
}
|
95
|
+
|
96
|
+
dd.spec.passed {
|
97
|
+
border-left: 5px solid #65C400;
|
98
|
+
border-bottom: 1px solid #65C400;
|
99
|
+
background: #DBFFB4; color: #3D7700;
|
100
|
+
}
|
101
|
+
|
102
|
+
dd.spec.failed {
|
103
|
+
border-left: 5px solid #C20000;
|
104
|
+
border-bottom: 1px solid #C20000;
|
105
|
+
color: #C20000; background: #FFFBD3;
|
106
|
+
}
|
107
|
+
|
108
|
+
dd.spec.not_implemented {
|
109
|
+
border-left: 5px solid #FAF834;
|
110
|
+
border-bottom: 1px solid #FAF834;
|
111
|
+
background: #FCFB98; color: #131313;
|
112
|
+
}
|
113
|
+
|
114
|
+
dd.spec.pending_fixed {
|
115
|
+
border-left: 5px solid #0000C2;
|
116
|
+
border-bottom: 1px solid #0000C2;
|
117
|
+
color: #0000C2; background: #D3FBFF;
|
118
|
+
}
|
119
|
+
|
120
|
+
.backtrace {
|
121
|
+
color: #000;
|
122
|
+
font-size: 12px;
|
123
|
+
}
|
124
|
+
|
125
|
+
a {
|
126
|
+
color: #BE5C00;
|
127
|
+
}
|
128
|
+
|
129
|
+
/* Ruby code, style similar to vibrant ink */
|
130
|
+
.ruby {
|
131
|
+
font-size: 12px;
|
132
|
+
font-family: monospace;
|
133
|
+
color: white;
|
134
|
+
background-color: black;
|
135
|
+
padding: 0.1em 0 0.2em 0;
|
136
|
+
}
|
137
|
+
|
138
|
+
.ruby .keyword { color: #FF6600; }
|
139
|
+
.ruby .constant { color: #339999; }
|
140
|
+
.ruby .attribute { color: white; }
|
141
|
+
.ruby .global { color: white; }
|
142
|
+
.ruby .module { color: white; }
|
143
|
+
.ruby .class { color: white; }
|
144
|
+
.ruby .string { color: #66FF00; }
|
145
|
+
.ruby .ident { color: white; }
|
146
|
+
.ruby .method { color: #FFCC00; }
|
147
|
+
.ruby .number { color: white; }
|
148
|
+
.ruby .char { color: white; }
|
149
|
+
.ruby .comment { color: #9933CC; }
|
150
|
+
.ruby .symbol { color: white; }
|
151
|
+
.ruby .regex { color: #44B4CC; }
|
152
|
+
.ruby .punct { color: white; }
|
153
|
+
.ruby .escape { color: white; }
|
154
|
+
.ruby .interp { color: white; }
|
155
|
+
.ruby .expr { color: white; }
|
156
|
+
|
157
|
+
.ruby .offending { background-color: gray; }
|
158
|
+
.ruby .linenum {
|
159
|
+
width: 75px;
|
160
|
+
padding: 0.1em 1em 0.2em 0;
|
161
|
+
color: #000000;
|
162
|
+
background-color: #FFFBD3;
|
163
|
+
}
|
164
|
+
|
165
|
+
</style>
|
166
|
+
</head>
|
167
|
+
<body>
|
168
|
+
<div class="rspec-report">
|
169
|
+
|
170
|
+
<div id="rspec-header">
|
171
|
+
<div id="label">
|
172
|
+
<h1>RSpec Code Examples</h1>
|
173
|
+
</div>
|
174
|
+
|
175
|
+
<div id="summary">
|
176
|
+
<p id="totals"> </p>
|
177
|
+
<p id="duration"> </p>
|
178
|
+
</div>
|
179
|
+
</div>
|
180
|
+
|
181
|
+
<div class="results">
|
182
|
+
<div class="example_group">
|
183
|
+
<dl>
|
184
|
+
<dt id="example_group_1">Page class with face definitions</dt>
|
185
|
+
<script type="text/javascript">moveProgressBar('0.8');</script>
|
186
|
+
<dd class="spec passed"><span class="passed_spec_name">has face method as singleton</span></dd>
|
187
|
+
<script type="text/javascript">moveProgressBar('1.7');</script>
|
188
|
+
<dd class="spec passed"><span class="passed_spec_name">face class method defines method</span></dd>
|
189
|
+
<script type="text/javascript">moveProgressBar('2.6');</script>
|
190
|
+
<dd class="spec passed"><span class="passed_spec_name">face accepts args used by method body</span></dd>
|
191
|
+
</dl>
|
192
|
+
</div>
|
193
|
+
<div class="example_group">
|
194
|
+
<dl>
|
195
|
+
<dt id="example_group_2">Page faces included in rspec</dt>
|
196
|
+
<script type="text/javascript">moveProgressBar('3.4');</script>
|
197
|
+
<dd class="spec passed"><span class="passed_spec_name">face defines a watir element access</span></dd>
|
198
|
+
<script type="text/javascript">moveProgressBar('4.3');</script>
|
199
|
+
<dd class="spec passed"><span class="passed_spec_name">faces with arguments</span></dd>
|
200
|
+
</dl>
|
201
|
+
</div>
|
202
|
+
<div class="example_group">
|
203
|
+
<dl>
|
204
|
+
<dt id="example_group_3">text field wrapped in label tag without for attribute defined</dt>
|
205
|
+
<script type="text/javascript">moveProgressBar('5.2');</script>
|
206
|
+
<dd class="spec passed"><span class="passed_spec_name">parent of text_field should be Watir Element</span></dd>
|
207
|
+
<script type="text/javascript">moveProgressBar('6.0');</script>
|
208
|
+
<dd class="spec passed"><span class="passed_spec_name">parent tagName should be a LABEL</span></dd>
|
209
|
+
<script type="text/javascript">moveProgressBar('6.9');</script>
|
210
|
+
<dd class="spec passed"><span class="passed_spec_name">parent text returns text of label</span></dd>
|
211
|
+
</dl>
|
212
|
+
</div>
|
213
|
+
<div class="example_group">
|
214
|
+
<dl>
|
215
|
+
<dt id="example_group_4">label for text field not wrapped</dt>
|
216
|
+
<script type="text/javascript">moveProgressBar('7.8');</script>
|
217
|
+
<dd class="spec passed"><span class="passed_spec_name">text value of label</span></dd>
|
218
|
+
</dl>
|
219
|
+
</div>
|
220
|
+
<div class="example_group">
|
221
|
+
<dl>
|
222
|
+
<dt id="example_group_5">SelectList selections</dt>
|
223
|
+
<script type="text/javascript">moveProgressBar('8.6');</script>
|
224
|
+
<dd class="spec passed"><span class="passed_spec_name">selected returns preselected item in single select</span></dd>
|
225
|
+
<script type="text/javascript">moveProgressBar('9.5');</script>
|
226
|
+
<dd class="spec passed"><span class="passed_spec_name">selected returns preselected value in single select</span></dd>
|
227
|
+
<script type="text/javascript">moveProgressBar('10.4');</script>
|
228
|
+
<dd class="spec passed"><span class="passed_spec_name">selected returns nil for none selected items in multi select</span></dd>
|
229
|
+
<script type="text/javascript">moveProgressBar('11.3');</script>
|
230
|
+
<dd class="spec passed"><span class="passed_spec_name">selected returns nil for none selected values in multi select</span></dd>
|
231
|
+
<script type="text/javascript">moveProgressBar('12.1');</script>
|
232
|
+
<dd class="spec passed"><span class="passed_spec_name">set item text and find selected item and text for multiselect</span></dd>
|
233
|
+
<script type="text/javascript">moveProgressBar('13.0');</script>
|
234
|
+
<dd class="spec passed"><span class="passed_spec_name">set value and find selected item and value for multiselect</span></dd>
|
235
|
+
<script type="text/javascript">moveProgressBar('13.9');</script>
|
236
|
+
<dd class="spec passed"><span class="passed_spec_name">set and query option by text for single select</span></dd>
|
237
|
+
<script type="text/javascript">moveProgressBar('14.7');</script>
|
238
|
+
<dd class="spec passed"><span class="passed_spec_name">set and query option by value for single select</span></dd>
|
239
|
+
<script type="text/javascript">moveProgressBar('15.6');</script>
|
240
|
+
<dd class="spec passed"><span class="passed_spec_name">set by text multple items for multiselect selects each item</span></dd>
|
241
|
+
<script type="text/javascript">moveProgressBar('16.5');</script>
|
242
|
+
<dd class="spec passed"><span class="passed_spec_name">set by value multple items for multiselect selects each item</span></dd>
|
243
|
+
<script type="text/javascript">moveProgressBar('17.3');</script>
|
244
|
+
<dd class="spec passed"><span class="passed_spec_name">set items array for single select selects each in turn. selected is the last item in array</span></dd>
|
245
|
+
<script type="text/javascript">moveProgressBar('18.2');</script>
|
246
|
+
<dd class="spec passed"><span class="passed_spec_name">set item after multiple items were set returns all values selected for multiselect</span></dd>
|
247
|
+
<script type="text/javascript">moveProgressBar('19.1');</script>
|
248
|
+
<dd class="spec passed"><span class="passed_spec_name">set using position for multiselect</span></dd>
|
249
|
+
<script type="text/javascript">moveProgressBar('20.0');</script>
|
250
|
+
<dd class="spec passed"><span class="passed_spec_name">set using position and item for multiselect</span></dd>
|
251
|
+
<script type="text/javascript">moveProgressBar('20.8');</script>
|
252
|
+
<dd class="spec passed"><span class="passed_spec_name">set using position for single select</span></dd>
|
253
|
+
<script type="text/javascript">moveProgressBar('21.7');</script>
|
254
|
+
<dd class="spec passed"><span class="passed_spec_name">clear removes selected attribute for all selected items in multiselect</span></dd>
|
255
|
+
<script type="text/javascript">makeRed('rspec-header');</script>
|
256
|
+
<script type="text/javascript">makeRed('example_group_5');</script>
|
257
|
+
<script type="text/javascript">moveProgressBar('22.6');</script>
|
258
|
+
<dd class="spec failed">
|
259
|
+
<span class="failed_spec_name">clear removes selected attribute for item in single select list</span>
|
260
|
+
<div class="failure" id="failure_1">
|
261
|
+
<div class="message"><pre>expected not: == "F",
|
262
|
+
got: "F"</pre></div>
|
263
|
+
<div class="backtrace"><pre>./spec/select_lists_spec.rb:134:</pre></div>
|
264
|
+
<pre class="ruby"><code><span class="linenum">132</span> <span class="comment"># option item select = false does not set false like it does in multiselect</span>
|
265
|
+
<span class="linenum">133</span> <span class="ident">gender</span><span class="punct">.</span><span class="ident">clear</span>
|
266
|
+
<span class="offending"><span class="linenum">134</span> <span class="ident">gender</span><span class="punct">.</span><span class="ident">selected</span><span class="punct">.</span><span class="ident">should_not</span> <span class="punct">==</span> <span class="punct">'</span><span class="string">F</span><span class="punct">'</span></span>
|
267
|
+
<span class="linenum">135</span> <span class="keyword">end</span>
|
268
|
+
<span class="linenum">136</span> </code></pre>
|
269
|
+
</div>
|
270
|
+
</dd>
|
271
|
+
<script type="text/javascript">moveProgressBar('23.4');</script>
|
272
|
+
<dd class="spec passed"><span class="passed_spec_name">set_value selects value atribute text</span></dd>
|
273
|
+
<script type="text/javascript">moveProgressBar('24.3');</script>
|
274
|
+
<dd class="spec passed"><span class="passed_spec_name">set_value for multiselect returns selected and selected_values</span></dd>
|
275
|
+
</dl>
|
276
|
+
</div>
|
277
|
+
<div class="example_group">
|
278
|
+
<dl>
|
279
|
+
<dt id="example_group_6">Watirloo browser when no browsers on desktop nor in locker</dt>
|
280
|
+
<script type="text/javascript">moveProgressBar('25.2');</script>
|
281
|
+
<dd class="spec passed"><span class="passed_spec_name">should start a default new browser and load a testfile</span></dd>
|
282
|
+
<script type="text/javascript">moveProgressBar('26.0');</script>
|
283
|
+
<dd class="spec passed"><span class="passed_spec_name">should attach to a default browser with loaded testfile and return its title</span></dd>
|
284
|
+
<script type="text/javascript">moveProgressBar('26.9');</script>
|
285
|
+
<dd class="spec passed"><span class="passed_spec_name">should start second browser with a named keyword</span></dd>
|
286
|
+
<script type="text/javascript">moveProgressBar('27.8');</script>
|
287
|
+
<dd class="spec passed"><span class="passed_spec_name">should attach to second browser with keyword and navigate to a testfile</span></dd>
|
288
|
+
<script type="text/javascript">moveProgressBar('28.6');</script>
|
289
|
+
<dd class="spec passed"><span class="passed_spec_name">should attach to two distinct browsers by key values by kewords used to start them</span></dd>
|
290
|
+
</dl>
|
291
|
+
</div>
|
292
|
+
<div class="example_group">
|
293
|
+
<dl>
|
294
|
+
<dt id="example_group_7">Watirloo multiple browsers and threads</dt>
|
295
|
+
<script type="text/javascript">moveProgressBar('29.5');</script>
|
296
|
+
<dd class="spec passed"><span class="passed_spec_name">open 5 new browsers in threads and add them to locker</span></dd>
|
297
|
+
<script type="text/javascript">moveProgressBar('30.4');</script>
|
298
|
+
<dd class="spec passed"><span class="passed_spec_name">use locker to reattach to 5 browsers and load 5 diff pages at once</span></dd>
|
299
|
+
<script type="text/javascript">moveProgressBar('31.3');</script>
|
300
|
+
<dd class="spec passed"><span class="passed_spec_name">reattach and close all 5 browsers</span></dd>
|
301
|
+
</dl>
|
302
|
+
</div>
|
303
|
+
<div class="example_group">
|
304
|
+
<dl>
|
305
|
+
<dt id="example_group_8">Locker</dt>
|
306
|
+
<script type="text/javascript">moveProgressBar('32.1');</script>
|
307
|
+
<dd class="spec passed"><span class="passed_spec_name">locker file does not exist. create it. mapping should return empty hash</span></dd>
|
308
|
+
<script type="text/javascript">moveProgressBar('33.0');</script>
|
309
|
+
<dd class="spec passed"><span class="passed_spec_name">clear should create locker file and save empty mapping</span></dd>
|
310
|
+
<script type="text/javascript">moveProgressBar('33.9');</script>
|
311
|
+
<dd class="spec passed"><span class="passed_spec_name">add stores ie.hwnd with friendly name and adds it to mapping</span></dd>
|
312
|
+
<script type="text/javascript">moveProgressBar('34.7');</script>
|
313
|
+
<dd class="spec passed"><span class="passed_spec_name">mapping holds what was added</span></dd>
|
314
|
+
<script type="text/javascript">moveProgressBar('35.6');</script>
|
315
|
+
<dd class="spec passed"><span class="passed_spec_name">remove deletes a key value record </span></dd>
|
316
|
+
<script type="text/javascript">moveProgressBar('36.5');</script>
|
317
|
+
<dd class="spec passed"><span class="passed_spec_name">browser reattaches to named browser based on windows handle</span></dd>
|
318
|
+
<script type="text/javascript">moveProgressBar('37.3');</script>
|
319
|
+
<dd class="spec passed"><span class="passed_spec_name">browser attach to nonexisting windows behaves like IE.attach, it raises error</span></dd>
|
320
|
+
</dl>
|
321
|
+
</div>
|
322
|
+
<div class="example_group">
|
323
|
+
<dl>
|
324
|
+
<dt id="example_group_9">browser checkbox_group accesses a group of checkboxes sharing the same name on a page</dt>
|
325
|
+
<script type="text/javascript">moveProgressBar('38.2');</script>
|
326
|
+
<dd class="spec passed"><span class="passed_spec_name">browser responds to checkbox_group</span></dd>
|
327
|
+
<script type="text/javascript">moveProgressBar('39.1');</script>
|
328
|
+
<dd class="spec passed"><span class="passed_spec_name">access by name as default returns CheckboxGroup</span></dd>
|
329
|
+
<script type="text/javascript">moveProgressBar('40.0');</script>
|
330
|
+
<dd class="spec passed"><span class="passed_spec_name">size retuns checkboxes as items count in a group</span></dd>
|
331
|
+
<script type="text/javascript">moveProgressBar('40.8');</script>
|
332
|
+
<dd class="spec passed"><span class="passed_spec_name">values returns array of value attributes for each checkbox in a group</span></dd>
|
333
|
+
</dl>
|
334
|
+
</div>
|
335
|
+
<div class="example_group">
|
336
|
+
<dl>
|
337
|
+
<dt id="example_group_10">checkbox_group values when no checkbox is checked in a group</dt>
|
338
|
+
<script type="text/javascript">moveProgressBar('41.7');</script>
|
339
|
+
<dd class="spec passed"><span class="passed_spec_name">selected should return nil</span></dd>
|
340
|
+
<script type="text/javascript">moveProgressBar('42.6');</script>
|
341
|
+
<dd class="spec passed"><span class="passed_spec_name">selected_value should return nil</span></dd>
|
342
|
+
<script type="text/javascript">moveProgressBar('43.4');</script>
|
343
|
+
<dd class="spec passed"><span class="passed_spec_name">selected_values should return empty array</span></dd>
|
344
|
+
<script type="text/javascript">moveProgressBar('44.3');</script>
|
345
|
+
<dd class="spec passed"><span class="passed_spec_name">set? should return false when no checkbox is checked in a group</span></dd>
|
346
|
+
</dl>
|
347
|
+
</div>
|
348
|
+
<div class="example_group">
|
349
|
+
<dl>
|
350
|
+
<dt id="example_group_11">checkbox_group values when set string selecs one item only</dt>
|
351
|
+
<script type="text/javascript">moveProgressBar('45.2');</script>
|
352
|
+
<dd class="spec passed"><span class="passed_spec_name">selected should return the string used to select it</span></dd>
|
353
|
+
<script type="text/javascript">moveProgressBar('46.0');</script>
|
354
|
+
<dd class="spec passed"><span class="passed_spec_name">selected_value should return the string when one item is selected</span></dd>
|
355
|
+
<script type="text/javascript">moveProgressBar('46.9');</script>
|
356
|
+
<dd class="spec passed"><span class="passed_spec_name">selected values returns array with one element</span></dd>
|
357
|
+
<script type="text/javascript">moveProgressBar('47.8');</script>
|
358
|
+
<dd class="spec passed"><span class="passed_spec_name">set? should return truee when 1 checkbox is checked in a group</span></dd>
|
359
|
+
</dl>
|
360
|
+
</div>
|
361
|
+
<div class="example_group">
|
362
|
+
<dl>
|
363
|
+
<dt id="example_group_12">checkbox_group set array of strings selects multiple values in a group</dt>
|
364
|
+
<script type="text/javascript">moveProgressBar('48.6');</script>
|
365
|
+
<dd class="spec passed"><span class="passed_spec_name">selected returns array of strings when multiple values are selected</span></dd>
|
366
|
+
<script type="text/javascript">moveProgressBar('49.5');</script>
|
367
|
+
<dd class="spec passed"><span class="passed_spec_name">selected_value returns the same array of strings by position in a group</span></dd>
|
368
|
+
<script type="text/javascript">moveProgressBar('50.4');</script>
|
369
|
+
<dd class="spec passed"><span class="passed_spec_name">selected_values returns the same array of strings by position in a group</span></dd>
|
370
|
+
<script type="text/javascript">moveProgressBar('51.3');</script>
|
371
|
+
<dd class="spec passed"><span class="passed_spec_name">set? should return truee when more than 1 checkbox is checked in a group</span></dd>
|
372
|
+
</dl>
|
373
|
+
</div>
|
374
|
+
<div class="example_group">
|
375
|
+
<dl>
|
376
|
+
<dt id="example_group_13">checkbox_group set by numberical position</dt>
|
377
|
+
<script type="text/javascript">moveProgressBar('52.1');</script>
|
378
|
+
<dd class="spec passed"><span class="passed_spec_name">set Fixnum checks checkbox by position in a group. Position is 1 based.</span></dd>
|
379
|
+
<script type="text/javascript">moveProgressBar('53.0');</script>
|
380
|
+
<dd class="spec passed"><span class="passed_spec_name">set array of Fixnums checks each checkbox by position</span></dd>
|
381
|
+
</dl>
|
382
|
+
</div>
|
383
|
+
<div class="example_group">
|
384
|
+
<dl>
|
385
|
+
<dt id="example_group_14">Watirloo Desktop</dt>
|
386
|
+
<script type="text/javascript">moveProgressBar('53.9');</script>
|
387
|
+
<dd class="spec passed"><span class="passed_spec_name">clear closes all browsers on the desktop and browsers should be empty</span></dd>
|
388
|
+
<script type="text/javascript">moveProgressBar('54.7');</script>
|
389
|
+
<dd class="spec passed"><span class="passed_spec_name">adding first browser should report 1 addition and no deletions</span></dd>
|
390
|
+
<script type="text/javascript">moveProgressBar('55.6');</script>
|
391
|
+
<dd class="spec passed"><span class="passed_spec_name">while one browser on the desktop the additions and deletions should be false</span></dd>
|
392
|
+
<script type="text/javascript">moveProgressBar('56.5');</script>
|
393
|
+
<dd class="spec passed"><span class="passed_spec_name">adding second browser should report one addition and no deletions</span></dd>
|
394
|
+
<script type="text/javascript">moveProgressBar('57.3');</script>
|
395
|
+
<dd class="spec passed"><span class="passed_spec_name">close one should report 1 deletion and no additions, attempt to attach to deleted cause exception</span></dd>
|
396
|
+
<script type="text/javascript">moveProgressBar('58.2');</script>
|
397
|
+
<dd class="spec passed"><span class="passed_spec_name">close one and start new one should report one addition and one deletion</span></dd>
|
398
|
+
</dl>
|
399
|
+
</div>
|
400
|
+
<div class="example_group">
|
401
|
+
<dl>
|
402
|
+
<dt id="example_group_15">Class client mixing interfaces from other modules</dt>
|
403
|
+
<script type="text/javascript">moveProgressBar('59.1');</script>
|
404
|
+
<dd class="spec passed"><span class="passed_spec_name">spray and scrape example</span></dd>
|
405
|
+
</dl>
|
406
|
+
</div>
|
407
|
+
<div class="example_group">
|
408
|
+
<dl>
|
409
|
+
<dt id="example_group_16">add faces text fields page objects</dt>
|
410
|
+
<script type="text/javascript">moveProgressBar('60.0');</script>
|
411
|
+
<dd class="spec passed"><span class="passed_spec_name">face returns a watir element text_field</span></dd>
|
412
|
+
<script type="text/javascript">moveProgressBar('60.8');</script>
|
413
|
+
<dd class="spec passed"><span class="passed_spec_name">face name method and value returns current text</span></dd>
|
414
|
+
<script type="text/javascript">moveProgressBar('61.7');</script>
|
415
|
+
<dd class="spec passed"><span class="passed_spec_name">face name method and set enters value into field</span></dd>
|
416
|
+
<script type="text/javascript">moveProgressBar('62.6');</script>
|
417
|
+
<dd class="spec passed"><span class="passed_spec_name">spray method matches keys as facenames and sets values to fields</span></dd>
|
418
|
+
<script type="text/javascript">moveProgressBar('63.4');</script>
|
419
|
+
<dd class="spec passed"><span class="passed_spec_name">scrape keys updates keys with values and returns datamap</span></dd>
|
420
|
+
</dl>
|
421
|
+
</div>
|
422
|
+
<div class="example_group">
|
423
|
+
<dl>
|
424
|
+
<dt id="example_group_17">checkbox_groups access for browser</dt>
|
425
|
+
<script type="text/javascript">moveProgressBar('64.3');</script>
|
426
|
+
<dd class="spec passed"><span class="passed_spec_name">browser responds to checkbox_group</span></dd>
|
427
|
+
<script type="text/javascript">moveProgressBar('65.2');</script>
|
428
|
+
<dd class="spec passed"><span class="passed_spec_name">returns group object and its values from the page</span></dd>
|
429
|
+
<script type="text/javascript">moveProgressBar('66.0');</script>
|
430
|
+
<dd class="spec passed"><span class="passed_spec_name">lenght returns integer count of groups</span></dd>
|
431
|
+
<script type="text/javascript">moveProgressBar('66.9');</script>
|
432
|
+
<dd class="spec passed"><span class="passed_spec_name">each iterator returns CheckboxGroup</span></dd>
|
433
|
+
<script type="text/javascript">moveProgressBar('67.8');</script>
|
434
|
+
<dd class="spec passed"><span class="passed_spec_name">each accesses the group and returns name</span></dd>
|
435
|
+
<script type="text/javascript">moveProgressBar('68.6');</script>
|
436
|
+
<dd class="spec passed"><span class="passed_spec_name">bracket access[] returns 1-based indexed group</span></dd>
|
437
|
+
<script type="text/javascript">moveProgressBar('69.5');</script>
|
438
|
+
<dd class="spec passed"><span class="passed_spec_name">if checkbox group does not exists it returns size 0 or name nil (or should it blow up? or respond to exists? method</span></dd>
|
439
|
+
<script type="text/javascript">moveProgressBar('70.4');</script>
|
440
|
+
<dd class="spec passed"><span class="passed_spec_name">return checkbox groups contained by the form element</span></dd>
|
441
|
+
</dl>
|
442
|
+
</div>
|
443
|
+
<div class="example_group">
|
444
|
+
<dl>
|
445
|
+
<dt id="example_group_18">Person Page interfaces defined by def wrappers and class definitions</dt>
|
446
|
+
<script type="text/javascript">moveProgressBar('71.3');</script>
|
447
|
+
<dd class="spec passed"><span class="passed_spec_name">calling face when there is wrapper method</span></dd>
|
448
|
+
<script type="text/javascript">moveProgressBar('72.1');</script>
|
449
|
+
<dd class="spec passed"><span class="passed_spec_name">calling interface when there is definition and no method</span></dd>
|
450
|
+
<script type="text/javascript">moveProgressBar('73.0');</script>
|
451
|
+
<dd class="spec passed"><span class="passed_spec_name">spray method by convetion has keys correspondig to interface names for watir elements</span></dd>
|
452
|
+
</dl>
|
453
|
+
</div>
|
454
|
+
<div class="example_group">
|
455
|
+
<dl>
|
456
|
+
<dt id="example_group_19">Mystery input element</dt>
|
457
|
+
<script type="text/javascript">moveProgressBar('73.9');</script>
|
458
|
+
<dd class="spec passed"><span class="passed_spec_name">the id is text_field</span></dd>
|
459
|
+
<script type="text/javascript">moveProgressBar('74.7');</script>
|
460
|
+
<dd class="spec passed"><span class="passed_spec_name">the label points to text_field</span></dd>
|
461
|
+
<script type="text/javascript">moveProgressBar('75.6');</script>
|
462
|
+
<dd class="spec passed"><span class="passed_spec_name">the id should return select_list</span></dd>
|
463
|
+
</dl>
|
464
|
+
</div>
|
465
|
+
<div class="example_group">
|
466
|
+
<dl>
|
467
|
+
<dt id="example_group_20">RadioGroup class access in watir browser</dt>
|
468
|
+
<script type="text/javascript">moveProgressBar('76.5');</script>
|
469
|
+
<dd class="spec passed"><span class="passed_spec_name">browser responds to radio_group</span></dd>
|
470
|
+
<script type="text/javascript">moveProgressBar('77.3');</script>
|
471
|
+
<dd class="spec passed"><span class="passed_spec_name">radio group needs :what value with implicit :how=name</span></dd>
|
472
|
+
</dl>
|
473
|
+
</div>
|
474
|
+
<div class="example_group">
|
475
|
+
<dl>
|
476
|
+
<dt id="example_group_21">RadioGroup class interface in watirloo</dt>
|
477
|
+
<script type="text/javascript">moveProgressBar('78.2');</script>
|
478
|
+
<dd class="spec passed"><span class="passed_spec_name">container radio_group method returns RadioGroup class</span></dd>
|
479
|
+
<script type="text/javascript">moveProgressBar('79.1');</script>
|
480
|
+
<dd class="spec passed"><span class="passed_spec_name">size or count returns how many radios in a group</span></dd>
|
481
|
+
<script type="text/javascript">moveProgressBar('80.0');</script>
|
482
|
+
<dd class="spec passed"><span class="passed_spec_name">values returns value attributes text items as an array</span></dd>
|
483
|
+
<script type="text/javascript">moveProgressBar('80.8');</script>
|
484
|
+
<dd class="spec passed"><span class="passed_spec_name">selected_value returns internal option value for selected radio item in a group</span></dd>
|
485
|
+
<script type="text/javascript">moveProgressBar('81.7');</script>
|
486
|
+
<dd class="spec passed"><span class="passed_spec_name">set selects radio by position in a group</span></dd>
|
487
|
+
<script type="text/javascript">moveProgressBar('82.6');</script>
|
488
|
+
<dd class="spec passed"><span class="passed_spec_name">set selects radio by value in a group. selected returns value</span></dd>
|
489
|
+
<script type="text/javascript">moveProgressBar('83.4');</script>
|
490
|
+
<dd class="spec passed"><span class="passed_spec_name">set position throws exception if number not within the range of group size</span></dd>
|
491
|
+
<script type="text/javascript">moveProgressBar('84.3');</script>
|
492
|
+
<dd class="spec passed"><span class="passed_spec_name">set value throws exception if value not found in options</span></dd>
|
493
|
+
<script type="text/javascript">moveProgressBar('85.2');</script>
|
494
|
+
<dd class="spec passed"><span class="passed_spec_name">set throws exception if sybmol is used. it should accept Fixnum or String element only</span></dd>
|
495
|
+
</dl>
|
496
|
+
</div>
|
497
|
+
<div class="example_group">
|
498
|
+
<dl>
|
499
|
+
<dt id="example_group_22">reflext :text_fields</dt>
|
500
|
+
<script type="text/javascript">moveProgressBar('86.0');</script>
|
501
|
+
<dd class="spec passed"><span class="passed_spec_name">text_fields.reflect each :text_field</span></dd>
|
502
|
+
</dl>
|
503
|
+
</div>
|
504
|
+
<div class="example_group">
|
505
|
+
<dl>
|
506
|
+
<dt id="example_group_23">reflect :radio_groups</dt>
|
507
|
+
<script type="text/javascript">moveProgressBar('86.9');</script>
|
508
|
+
<dd class="spec passed"><span class="passed_spec_name">reflects each radio group</span></dd>
|
509
|
+
</dl>
|
510
|
+
</div>
|
511
|
+
<div class="example_group">
|
512
|
+
<dl>
|
513
|
+
<dt id="example_group_24">reflect :checkbox_groups</dt>
|
514
|
+
<script type="text/javascript">moveProgressBar('87.8');</script>
|
515
|
+
<dd class="spec passed"><span class="passed_spec_name">reflects each checkbox_group</span></dd>
|
516
|
+
</dl>
|
517
|
+
</div>
|
518
|
+
<div class="example_group">
|
519
|
+
<dl>
|
520
|
+
<dt id="example_group_25">setting and getting values for individual checkboxes with value attributes in face definitions</dt>
|
521
|
+
<script type="text/javascript">moveProgressBar('88.6');</script>
|
522
|
+
<dd class="spec passed"><span class="passed_spec_name">semantic name accesses individual CheckBox</span></dd>
|
523
|
+
<script type="text/javascript">moveProgressBar('89.5');</script>
|
524
|
+
<dd class="spec passed"><span class="passed_spec_name">set individual checkbox does not set other checkboxes sharing the same name</span></dd>
|
525
|
+
</dl>
|
526
|
+
</div>
|
527
|
+
<div class="example_group">
|
528
|
+
<dl>
|
529
|
+
<dt id="example_group_26">SelectList options as visible items and values as hidden to the user attributes</dt>
|
530
|
+
<script type="text/javascript">moveProgressBar('90.4');</script>
|
531
|
+
<dd class="spec passed"><span class="passed_spec_name">values of options by facename method</span></dd>
|
532
|
+
<script type="text/javascript">moveProgressBar('91.3');</script>
|
533
|
+
<dd class="spec passed"><span class="passed_spec_name">options with no value attribute</span></dd>
|
534
|
+
<script type="text/javascript">moveProgressBar('92.1');</script>
|
535
|
+
<dd class="spec passed"><span class="passed_spec_name">items method returns visible contents as array of text items</span></dd>
|
536
|
+
<script type="text/javascript">moveProgressBar('93.0');</script>
|
537
|
+
<dd class="spec passed"><span class="passed_spec_name">items returns visible text items as array</span></dd>
|
538
|
+
</dl>
|
539
|
+
</div>
|
540
|
+
<div class="example_group">
|
541
|
+
<dl>
|
542
|
+
<dt id="example_group_27">RadioGroup class access in watir browser</dt>
|
543
|
+
<script type="text/javascript">moveProgressBar('93.9');</script>
|
544
|
+
<dd class="spec passed"><span class="passed_spec_name">browser responds to radio_group</span></dd>
|
545
|
+
<script type="text/javascript">moveProgressBar('94.7');</script>
|
546
|
+
<dd class="spec passed"><span class="passed_spec_name">returns RadioGroups class</span></dd>
|
547
|
+
<script type="text/javascript">moveProgressBar('95.6');</script>
|
548
|
+
<dd class="spec passed"><span class="passed_spec_name">lenght returns integer count of groups</span></dd>
|
549
|
+
<script type="text/javascript">moveProgressBar('96.5');</script>
|
550
|
+
<dd class="spec passed"><span class="passed_spec_name">each iterator returns RadioGroup</span></dd>
|
551
|
+
<script type="text/javascript">moveProgressBar('97.3');</script>
|
552
|
+
<dd class="spec passed"><span class="passed_spec_name">each accesses the group and returns name</span></dd>
|
553
|
+
<script type="text/javascript">moveProgressBar('98.2');</script>
|
554
|
+
<dd class="spec passed"><span class="passed_spec_name">bracket access[] returns 1-based indexed group</span></dd>
|
555
|
+
<script type="text/javascript">moveProgressBar('99.1');</script>
|
556
|
+
<dd class="spec passed"><span class="passed_spec_name">if radio group does not exists it returns size 0 or name nil (or should it blow up? or respond to exists? method</span></dd>
|
557
|
+
<script type="text/javascript">moveProgressBar('100.0');</script>
|
558
|
+
<dd class="spec passed"><span class="passed_spec_name">groups contained by a form element</span></dd>
|
559
|
+
</dl>
|
560
|
+
</div>
|
561
|
+
<script type="text/javascript">document.getElementById('duration').innerHTML = "Finished in <strong>198.922 seconds</strong>";</script>
|
562
|
+
<script type="text/javascript">document.getElementById('totals').innerHTML = "115 examples, 1 failure";</script>
|
563
|
+
</div>
|
564
|
+
</div>
|
565
|
+
</body>
|
566
|
+
</html>
|