watirloo 0.0.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (55) hide show
  1. data/.gitignore +22 -0
  2. data/History.txt +44 -0
  3. data/Manifest.txt +59 -0
  4. data/README.rdoc +94 -0
  5. data/Rakefile +68 -0
  6. data/VERSION +1 -0
  7. data/lib/watirloo/browsers.rb +73 -0
  8. data/lib/watirloo/desktop.rb +44 -0
  9. data/lib/watirloo/extension/firewatir_ducktape.rb +194 -0
  10. data/lib/watirloo/extension/object.rb +32 -0
  11. data/lib/watirloo/extension/watir_ducktape.rb +552 -0
  12. data/lib/watirloo/extension/watir_reflector.rb +83 -0
  13. data/lib/watirloo/locker.rb +85 -0
  14. data/lib/watirloo/page.rb +140 -0
  15. data/lib/watirloo.rb +16 -0
  16. data/spec/browser_spec.rb +38 -0
  17. data/spec/browser_threads_spec.rb +45 -0
  18. data/spec/checkbox_group_spec.rb +136 -0
  19. data/spec/checkbox_groups_spec.rb +55 -0
  20. data/spec/checkboxes_value_spec.rb +35 -0
  21. data/spec/desktop_spec.rb +54 -0
  22. data/spec/extra/browser_events_spec.rb +76 -0
  23. data/spec/extra/page_objects_metrics.rb +139 -0
  24. data/spec/face_mixing_spec.rb +55 -0
  25. data/spec/firewatir/attach_instance_test.rb +38 -0
  26. data/spec/firewatir/spec_results.html +263 -0
  27. data/spec/firewatir/spec_results.txt +23 -0
  28. data/spec/firewatir/spec_results_failed.txt +3 -0
  29. data/spec/html/census.html +332 -0
  30. data/spec/html/checkbox_group1.html +33 -0
  31. data/spec/html/frameset1.html +17 -0
  32. data/spec/html/labels.html +53 -0
  33. data/spec/html/no_title.html +13 -0
  34. data/spec/html/person.html +37 -0
  35. data/spec/html/radio_group.html +35 -0
  36. data/spec/html/select_lists.html +82 -0
  37. data/spec/input_element_spec.rb +51 -0
  38. data/spec/label_spec.rb +65 -0
  39. data/spec/locker_spec.rb +49 -0
  40. data/spec/page_spec.rb +91 -0
  41. data/spec/person_def_wrappers_spec.rb +40 -0
  42. data/spec/radio_group_spec.rb +95 -0
  43. data/spec/radio_groups_spec.rb +55 -0
  44. data/spec/reflector_spec.rb +82 -0
  45. data/spec/select_list_options_spec.rb +40 -0
  46. data/spec/select_lists_spec.rb +151 -0
  47. data/spec/spec_helper.rb +20 -0
  48. data/spec/spec_helper_ff.rb +5 -0
  49. data/spec/spec_helper_runner.rb +13 -0
  50. data/spec/spec_results.html +556 -0
  51. data/spec/spec_results.txt +175 -0
  52. data/spec/spec_results_failed.txt +1 -0
  53. data/spec/text_fields_spec.rb +56 -0
  54. data/watirloo.gemspec +122 -0
  55. metadata +150 -0
@@ -0,0 +1,5 @@
1
+ require File.dirname(__FILE__) + '/../lib/watirloo'
2
+
3
+ Watir::Browser.default='firefox'
4
+ Watir::Browser.new
5
+ Watirloo::Browsers.target = :firefox
@@ -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,556 @@
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">&nbsp;</p>
177
+ <p id="duration">&nbsp;</p>
178
+ </div>
179
+ </div>
180
+
181
+ <div class="results">
182
+ <div class="example_group">
183
+ <dl>
184
+ <dt id="example_group_1">Watirloo browser when no browsers on desktop nor in locker</dt>
185
+ <script type="text/javascript">moveProgressBar('0.8');</script>
186
+ <dd class="spec passed"><span class="passed_spec_name">should start a default new browser and load a testfile</span></dd>
187
+ <script type="text/javascript">moveProgressBar('1.7');</script>
188
+ <dd class="spec passed"><span class="passed_spec_name">should attach to a default browser with loaded testfile and return its title</span></dd>
189
+ <script type="text/javascript">moveProgressBar('2.6');</script>
190
+ <dd class="spec passed"><span class="passed_spec_name">should start second browser with a named keyword</span></dd>
191
+ <script type="text/javascript">moveProgressBar('3.4');</script>
192
+ <dd class="spec passed"><span class="passed_spec_name">should attach to second browser with keyword and navigate to a testfile</span></dd>
193
+ <script type="text/javascript">moveProgressBar('4.3');</script>
194
+ <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>
195
+ </dl>
196
+ </div>
197
+ <div class="example_group">
198
+ <dl>
199
+ <dt id="example_group_2">Watirloo multiple browsers and threads</dt>
200
+ <script type="text/javascript">moveProgressBar('5.2');</script>
201
+ <dd class="spec passed"><span class="passed_spec_name">open 5 new browsers in threads and add them to locker</span></dd>
202
+ <script type="text/javascript">moveProgressBar('6.0');</script>
203
+ <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>
204
+ <script type="text/javascript">moveProgressBar('6.9');</script>
205
+ <dd class="spec passed"><span class="passed_spec_name">reattach and close all 5 browsers</span></dd>
206
+ </dl>
207
+ </div>
208
+ <div class="example_group">
209
+ <dl>
210
+ <dt id="example_group_3">setting and getting values for individual checkboxes with value attributes in face definitions</dt>
211
+ <script type="text/javascript">moveProgressBar('7.8');</script>
212
+ <dd class="spec passed"><span class="passed_spec_name">semantic name accesses individual CheckBox</span></dd>
213
+ <script type="text/javascript">moveProgressBar('8.6');</script>
214
+ <dd class="spec passed"><span class="passed_spec_name">set individual checkbox does not set other checkboxes sharing the same name</span></dd>
215
+ </dl>
216
+ </div>
217
+ <div class="example_group">
218
+ <dl>
219
+ <dt id="example_group_4">checkbox_groups access for browser</dt>
220
+ <script type="text/javascript">moveProgressBar('9.5');</script>
221
+ <dd class="spec passed"><span class="passed_spec_name">browser responds to checkbox_group</span></dd>
222
+ <script type="text/javascript">moveProgressBar('10.4');</script>
223
+ <dd class="spec passed"><span class="passed_spec_name">returns group object and its values from the page</span></dd>
224
+ <script type="text/javascript">moveProgressBar('11.3');</script>
225
+ <dd class="spec passed"><span class="passed_spec_name">lenght returns integer count of groups</span></dd>
226
+ <script type="text/javascript">moveProgressBar('12.1');</script>
227
+ <dd class="spec passed"><span class="passed_spec_name">each iterator returns CheckboxGroup</span></dd>
228
+ <script type="text/javascript">moveProgressBar('13.0');</script>
229
+ <dd class="spec passed"><span class="passed_spec_name">each accesses the group and returns name</span></dd>
230
+ <script type="text/javascript">moveProgressBar('13.9');</script>
231
+ <dd class="spec passed"><span class="passed_spec_name">bracket access[] returns 1-based indexed group</span></dd>
232
+ <script type="text/javascript">moveProgressBar('14.7');</script>
233
+ <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>
234
+ <script type="text/javascript">moveProgressBar('15.6');</script>
235
+ <dd class="spec passed"><span class="passed_spec_name">return checkbox groups contained by the form element</span></dd>
236
+ </dl>
237
+ </div>
238
+ <div class="example_group">
239
+ <dl>
240
+ <dt id="example_group_5">browser checkbox_group accesses a group of checkboxes sharing the same name on a page</dt>
241
+ <script type="text/javascript">moveProgressBar('16.5');</script>
242
+ <dd class="spec passed"><span class="passed_spec_name">browser responds to checkbox_group</span></dd>
243
+ <script type="text/javascript">moveProgressBar('17.3');</script>
244
+ <dd class="spec passed"><span class="passed_spec_name">access by name as default returns CheckboxGroup</span></dd>
245
+ <script type="text/javascript">moveProgressBar('18.2');</script>
246
+ <dd class="spec passed"><span class="passed_spec_name">size retuns checkboxes as items count in a group</span></dd>
247
+ <script type="text/javascript">moveProgressBar('19.1');</script>
248
+ <dd class="spec passed"><span class="passed_spec_name">values returns array of value attributes for each checkbox in a group</span></dd>
249
+ </dl>
250
+ </div>
251
+ <div class="example_group">
252
+ <dl>
253
+ <dt id="example_group_6">checkbox_group values when no checkbox is checked in a group</dt>
254
+ <script type="text/javascript">moveProgressBar('20.0');</script>
255
+ <dd class="spec passed"><span class="passed_spec_name">selected should return nil</span></dd>
256
+ <script type="text/javascript">moveProgressBar('20.8');</script>
257
+ <dd class="spec passed"><span class="passed_spec_name">selected_value should return nil</span></dd>
258
+ <script type="text/javascript">moveProgressBar('21.7');</script>
259
+ <dd class="spec passed"><span class="passed_spec_name">selected_values should return empty array</span></dd>
260
+ <script type="text/javascript">moveProgressBar('22.6');</script>
261
+ <dd class="spec passed"><span class="passed_spec_name">set? should return false when no checkbox is checked in a group</span></dd>
262
+ </dl>
263
+ </div>
264
+ <div class="example_group">
265
+ <dl>
266
+ <dt id="example_group_7">checkbox_group values when set string selecs one item only</dt>
267
+ <script type="text/javascript">moveProgressBar('23.4');</script>
268
+ <dd class="spec passed"><span class="passed_spec_name">selected should return the string used to select it</span></dd>
269
+ <script type="text/javascript">moveProgressBar('24.3');</script>
270
+ <dd class="spec passed"><span class="passed_spec_name">selected_value should return the string when one item is selected</span></dd>
271
+ <script type="text/javascript">moveProgressBar('25.2');</script>
272
+ <dd class="spec passed"><span class="passed_spec_name">selected values returns array with one element</span></dd>
273
+ <script type="text/javascript">moveProgressBar('26.0');</script>
274
+ <dd class="spec passed"><span class="passed_spec_name">set? should return truee when 1 checkbox is checked in a group</span></dd>
275
+ </dl>
276
+ </div>
277
+ <div class="example_group">
278
+ <dl>
279
+ <dt id="example_group_8">checkbox_group set array of strings selects multiple values in a group</dt>
280
+ <script type="text/javascript">moveProgressBar('26.9');</script>
281
+ <dd class="spec passed"><span class="passed_spec_name">selected returns array of strings when multiple values are selected</span></dd>
282
+ <script type="text/javascript">moveProgressBar('27.8');</script>
283
+ <dd class="spec passed"><span class="passed_spec_name">selected_value returns the same array of strings by position in a group</span></dd>
284
+ <script type="text/javascript">moveProgressBar('28.6');</script>
285
+ <dd class="spec passed"><span class="passed_spec_name">selected_values returns the same array of strings by position in a group</span></dd>
286
+ <script type="text/javascript">moveProgressBar('29.5');</script>
287
+ <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>
288
+ </dl>
289
+ </div>
290
+ <div class="example_group">
291
+ <dl>
292
+ <dt id="example_group_9">checkbox_group set by numberical position</dt>
293
+ <script type="text/javascript">moveProgressBar('30.4');</script>
294
+ <dd class="spec passed"><span class="passed_spec_name">set Fixnum checks checkbox by position in a group. Position is 1 based.</span></dd>
295
+ <script type="text/javascript">moveProgressBar('31.3');</script>
296
+ <dd class="spec passed"><span class="passed_spec_name">set array of Fixnums checks each checkbox by position</span></dd>
297
+ </dl>
298
+ </div>
299
+ <div class="example_group">
300
+ <dl>
301
+ <dt id="example_group_10">Watirloo Desktop</dt>
302
+ <script type="text/javascript">moveProgressBar('32.1');</script>
303
+ <dd class="spec passed"><span class="passed_spec_name">clear closes all browsers on the desktop and browsers should be empty</span></dd>
304
+ <script type="text/javascript">moveProgressBar('33.0');</script>
305
+ <dd class="spec passed"><span class="passed_spec_name">adding first browser should report 1 addition and no deletions</span></dd>
306
+ <script type="text/javascript">moveProgressBar('33.9');</script>
307
+ <dd class="spec passed"><span class="passed_spec_name">while one browser on the desktop the additions and deletions should be false</span></dd>
308
+ <script type="text/javascript">moveProgressBar('34.7');</script>
309
+ <dd class="spec passed"><span class="passed_spec_name">adding second browser should report one addition and no deletions</span></dd>
310
+ <script type="text/javascript">moveProgressBar('35.6');</script>
311
+ <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>
312
+ <script type="text/javascript">moveProgressBar('36.5');</script>
313
+ <dd class="spec passed"><span class="passed_spec_name">close one and start new one should report one addition and one deletion</span></dd>
314
+ </dl>
315
+ </div>
316
+ <div class="example_group">
317
+ <dl>
318
+ <dt id="example_group_11">Class client mixing interfaces from other modules</dt>
319
+ <script type="text/javascript">moveProgressBar('37.3');</script>
320
+ <dd class="spec passed"><span class="passed_spec_name">spray and scrape example</span></dd>
321
+ </dl>
322
+ </div>
323
+ <div class="example_group">
324
+ <dl>
325
+ <dt id="example_group_12">Mystery input element</dt>
326
+ <script type="text/javascript">moveProgressBar('38.2');</script>
327
+ <dd class="spec passed"><span class="passed_spec_name">the id is text_field</span></dd>
328
+ <script type="text/javascript">moveProgressBar('39.1');</script>
329
+ <dd class="spec passed"><span class="passed_spec_name">the label points to text_field</span></dd>
330
+ <script type="text/javascript">moveProgressBar('40.0');</script>
331
+ <dd class="spec passed"><span class="passed_spec_name">the id should return select_list</span></dd>
332
+ </dl>
333
+ </div>
334
+ <div class="example_group">
335
+ <dl>
336
+ <dt id="example_group_13">text field wrapped in label tag without for attribute defined</dt>
337
+ <script type="text/javascript">moveProgressBar('40.8');</script>
338
+ <dd class="spec passed"><span class="passed_spec_name">parent of text_field should be Watir Element</span></dd>
339
+ <script type="text/javascript">moveProgressBar('41.7');</script>
340
+ <dd class="spec passed"><span class="passed_spec_name">parent tagName should be a LABEL</span></dd>
341
+ <script type="text/javascript">moveProgressBar('42.6');</script>
342
+ <dd class="spec passed"><span class="passed_spec_name">parent text returns text of label</span></dd>
343
+ </dl>
344
+ </div>
345
+ <div class="example_group">
346
+ <dl>
347
+ <dt id="example_group_14">label for text field not wrapped</dt>
348
+ <script type="text/javascript">moveProgressBar('43.4');</script>
349
+ <dd class="spec passed"><span class="passed_spec_name">text value of label</span></dd>
350
+ </dl>
351
+ </div>
352
+ <div class="example_group">
353
+ <dl>
354
+ <dt id="example_group_15">Locker</dt>
355
+ <script type="text/javascript">moveProgressBar('44.3');</script>
356
+ <dd class="spec passed"><span class="passed_spec_name">locker file does not exist. create it. mapping should return empty hash</span></dd>
357
+ <script type="text/javascript">moveProgressBar('45.2');</script>
358
+ <dd class="spec passed"><span class="passed_spec_name">clear should create locker file and save empty mapping</span></dd>
359
+ <script type="text/javascript">moveProgressBar('46.0');</script>
360
+ <dd class="spec passed"><span class="passed_spec_name">add stores ie.hwnd with friendly name and adds it to mapping</span></dd>
361
+ <script type="text/javascript">moveProgressBar('46.9');</script>
362
+ <dd class="spec passed"><span class="passed_spec_name">mapping holds what was added</span></dd>
363
+ <script type="text/javascript">moveProgressBar('47.8');</script>
364
+ <dd class="spec passed"><span class="passed_spec_name">remove deletes a key value record </span></dd>
365
+ <script type="text/javascript">moveProgressBar('48.6');</script>
366
+ <dd class="spec passed"><span class="passed_spec_name">browser reattaches to named browser based on windows handle</span></dd>
367
+ <script type="text/javascript">moveProgressBar('49.5');</script>
368
+ <dd class="spec passed"><span class="passed_spec_name">browser attach to nonexisting windows behaves like IE.attach, it raises error</span></dd>
369
+ </dl>
370
+ </div>
371
+ <div class="example_group">
372
+ <dl>
373
+ <dt id="example_group_16">Page class with face definitions</dt>
374
+ <script type="text/javascript">moveProgressBar('50.4');</script>
375
+ <dd class="spec passed"><span class="passed_spec_name">has face method as singleton</span></dd>
376
+ <script type="text/javascript">moveProgressBar('51.3');</script>
377
+ <dd class="spec passed"><span class="passed_spec_name">face class method defines method</span></dd>
378
+ <script type="text/javascript">moveProgressBar('52.1');</script>
379
+ <dd class="spec passed"><span class="passed_spec_name">face accepts args used by method body</span></dd>
380
+ <script type="text/javascript">moveProgressBar('53.0');</script>
381
+ <dd class="spec passed"><span class="passed_spec_name">when optional args not supplied provide default arg in method</span></dd>
382
+ </dl>
383
+ </div>
384
+ <div class="example_group">
385
+ <dl>
386
+ <dt id="example_group_17">Page faces included in rspec</dt>
387
+ <script type="text/javascript">moveProgressBar('53.9');</script>
388
+ <dd class="spec passed"><span class="passed_spec_name">face defines a watir element access</span></dd>
389
+ <script type="text/javascript">moveProgressBar('54.7');</script>
390
+ <dd class="spec passed"><span class="passed_spec_name">faces with arguments</span></dd>
391
+ </dl>
392
+ </div>
393
+ <div class="example_group">
394
+ <dl>
395
+ <dt id="example_group_18">Page doc provides access to frame in frameset browser</dt>
396
+ <script type="text/javascript">moveProgressBar('55.6');</script>
397
+ <dd class="spec passed"><span class="passed_spec_name">face defines a watir element access</span></dd>
398
+ <script type="text/javascript">moveProgressBar('56.5');</script>
399
+ <dd class="spec passed"><span class="passed_spec_name">faces with arguments</span></dd>
400
+ </dl>
401
+ </div>
402
+ <div class="example_group">
403
+ <dl>
404
+ <dt id="example_group_19">Person Page interfaces defined by def wrappers and class definitions</dt>
405
+ <script type="text/javascript">moveProgressBar('57.3');</script>
406
+ <dd class="spec passed"><span class="passed_spec_name">calling face when there is wrapper method</span></dd>
407
+ <script type="text/javascript">moveProgressBar('58.2');</script>
408
+ <dd class="spec passed"><span class="passed_spec_name">calling interface when there is definition and no method</span></dd>
409
+ <script type="text/javascript">moveProgressBar('59.1');</script>
410
+ <dd class="spec passed"><span class="passed_spec_name">spray method by convetion has keys correspondig to interface names for watir elements</span></dd>
411
+ </dl>
412
+ </div>
413
+ <div class="example_group">
414
+ <dl>
415
+ <dt id="example_group_20">RadioGroup class access in watir browser</dt>
416
+ <script type="text/javascript">moveProgressBar('60.0');</script>
417
+ <dd class="spec passed"><span class="passed_spec_name">browser responds to radio_group</span></dd>
418
+ <script type="text/javascript">moveProgressBar('60.8');</script>
419
+ <dd class="spec passed"><span class="passed_spec_name">returns RadioGroups class</span></dd>
420
+ <script type="text/javascript">moveProgressBar('61.7');</script>
421
+ <dd class="spec passed"><span class="passed_spec_name">lenght returns integer count of groups</span></dd>
422
+ <script type="text/javascript">moveProgressBar('62.6');</script>
423
+ <dd class="spec passed"><span class="passed_spec_name">each iterator returns RadioGroup</span></dd>
424
+ <script type="text/javascript">moveProgressBar('63.4');</script>
425
+ <dd class="spec passed"><span class="passed_spec_name">each accesses the group and returns name</span></dd>
426
+ <script type="text/javascript">moveProgressBar('64.3');</script>
427
+ <dd class="spec passed"><span class="passed_spec_name">bracket access[] returns 1-based indexed group</span></dd>
428
+ <script type="text/javascript">moveProgressBar('65.2');</script>
429
+ <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>
430
+ <script type="text/javascript">moveProgressBar('66.0');</script>
431
+ <dd class="spec passed"><span class="passed_spec_name">groups contained by a form element</span></dd>
432
+ </dl>
433
+ </div>
434
+ <div class="example_group">
435
+ <dl>
436
+ <dt id="example_group_21">RadioGroup class access in watir browser</dt>
437
+ <script type="text/javascript">moveProgressBar('66.9');</script>
438
+ <dd class="spec passed"><span class="passed_spec_name">browser responds to radio_group</span></dd>
439
+ <script type="text/javascript">moveProgressBar('67.8');</script>
440
+ <dd class="spec passed"><span class="passed_spec_name">radio group needs :what value with implicit :how=name</span></dd>
441
+ </dl>
442
+ </div>
443
+ <div class="example_group">
444
+ <dl>
445
+ <dt id="example_group_22">RadioGroup class interface in watirloo</dt>
446
+ <script type="text/javascript">moveProgressBar('68.6');</script>
447
+ <dd class="spec passed"><span class="passed_spec_name">container radio_group method returns RadioGroup class</span></dd>
448
+ <script type="text/javascript">moveProgressBar('69.5');</script>
449
+ <dd class="spec passed"><span class="passed_spec_name">size or count returns how many radios in a group</span></dd>
450
+ <script type="text/javascript">moveProgressBar('70.4');</script>
451
+ <dd class="spec passed"><span class="passed_spec_name">values returns value attributes text items as an array</span></dd>
452
+ <script type="text/javascript">moveProgressBar('71.3');</script>
453
+ <dd class="spec passed"><span class="passed_spec_name">selected_value returns internal option value for selected radio item in a group</span></dd>
454
+ <script type="text/javascript">moveProgressBar('72.1');</script>
455
+ <dd class="spec passed"><span class="passed_spec_name">set selects radio by position in a group</span></dd>
456
+ <script type="text/javascript">moveProgressBar('73.0');</script>
457
+ <dd class="spec passed"><span class="passed_spec_name">set selects radio by value in a group. selected returns value</span></dd>
458
+ <script type="text/javascript">moveProgressBar('73.9');</script>
459
+ <dd class="spec passed"><span class="passed_spec_name">set position throws exception if number not within the range of group size</span></dd>
460
+ <script type="text/javascript">moveProgressBar('74.7');</script>
461
+ <dd class="spec passed"><span class="passed_spec_name">set value throws exception if value not found in options</span></dd>
462
+ <script type="text/javascript">moveProgressBar('75.6');</script>
463
+ <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>
464
+ </dl>
465
+ </div>
466
+ <div class="example_group">
467
+ <dl>
468
+ <dt id="example_group_23">SelectList selections</dt>
469
+ <script type="text/javascript">moveProgressBar('76.5');</script>
470
+ <dd class="spec passed"><span class="passed_spec_name">selected returns preselected item in single select</span></dd>
471
+ <script type="text/javascript">moveProgressBar('77.3');</script>
472
+ <dd class="spec passed"><span class="passed_spec_name">selected returns preselected value in single select</span></dd>
473
+ <script type="text/javascript">moveProgressBar('78.2');</script>
474
+ <dd class="spec passed"><span class="passed_spec_name">selected returns nil for none selected items in multi select</span></dd>
475
+ <script type="text/javascript">moveProgressBar('79.1');</script>
476
+ <dd class="spec passed"><span class="passed_spec_name">selected returns nil for none selected values in multi select</span></dd>
477
+ <script type="text/javascript">moveProgressBar('80.0');</script>
478
+ <dd class="spec passed"><span class="passed_spec_name">set item text and find selected item and text for multiselect</span></dd>
479
+ <script type="text/javascript">moveProgressBar('80.8');</script>
480
+ <dd class="spec passed"><span class="passed_spec_name">set value and find selected item and value for multiselect</span></dd>
481
+ <script type="text/javascript">moveProgressBar('81.7');</script>
482
+ <dd class="spec passed"><span class="passed_spec_name">set and query option by text for single select</span></dd>
483
+ <script type="text/javascript">moveProgressBar('82.6');</script>
484
+ <dd class="spec passed"><span class="passed_spec_name">set and query option by value for single select</span></dd>
485
+ <script type="text/javascript">moveProgressBar('83.4');</script>
486
+ <dd class="spec passed"><span class="passed_spec_name">set by text multple items for multiselect selects each item</span></dd>
487
+ <script type="text/javascript">moveProgressBar('84.3');</script>
488
+ <dd class="spec passed"><span class="passed_spec_name">set by value multple items for multiselect selects each item</span></dd>
489
+ <script type="text/javascript">moveProgressBar('85.2');</script>
490
+ <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>
491
+ <script type="text/javascript">moveProgressBar('86.0');</script>
492
+ <dd class="spec passed"><span class="passed_spec_name">set item after multiple items were set returns all values selected for multiselect</span></dd>
493
+ <script type="text/javascript">moveProgressBar('86.9');</script>
494
+ <dd class="spec passed"><span class="passed_spec_name">set using position for multiselect</span></dd>
495
+ <script type="text/javascript">moveProgressBar('87.8');</script>
496
+ <dd class="spec passed"><span class="passed_spec_name">set using position and item for multiselect</span></dd>
497
+ <script type="text/javascript">moveProgressBar('88.6');</script>
498
+ <dd class="spec passed"><span class="passed_spec_name">set using position for single select</span></dd>
499
+ <script type="text/javascript">moveProgressBar('89.5');</script>
500
+ <dd class="spec passed"><span class="passed_spec_name">clear removes selected attribute for all selected items in multiselect</span></dd>
501
+ <script type="text/javascript">makeRed('rspec-header');</script>
502
+ <script type="text/javascript">makeRed('example_group_23');</script>
503
+ <script type="text/javascript">moveProgressBar('90.4');</script>
504
+ <dd class="spec failed">
505
+ <span class="failed_spec_name">clear removes selected attribute for item in single select list</span>
506
+ <div class="failure" id="failure_1">
507
+ <div class="message"><pre>expected not: == &quot;F&quot;,
508
+ got: &quot;F&quot;</pre></div>
509
+ <div class="backtrace"><pre>./spec/select_lists_spec.rb:134:</pre></div>
510
+ <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>
511
+ <span class="linenum">133</span> <span class="ident">gender</span><span class="punct">.</span><span class="ident">clear</span>
512
+ <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>
513
+ <span class="linenum">135</span> <span class="keyword">end</span>
514
+ <span class="linenum">136</span> </code></pre>
515
+ </div>
516
+ </dd>
517
+ <script type="text/javascript">moveProgressBar('91.3');</script>
518
+ <dd class="spec passed"><span class="passed_spec_name">set_value selects value atribute text</span></dd>
519
+ <script type="text/javascript">moveProgressBar('92.1');</script>
520
+ <dd class="spec passed"><span class="passed_spec_name">set_value for multiselect returns selected and selected_values</span></dd>
521
+ </dl>
522
+ </div>
523
+ <div class="example_group">
524
+ <dl>
525
+ <dt id="example_group_24">SelectList options as visible items and values as hidden to the user attributes</dt>
526
+ <script type="text/javascript">moveProgressBar('93.0');</script>
527
+ <dd class="spec passed"><span class="passed_spec_name">values of options by facename method</span></dd>
528
+ <script type="text/javascript">moveProgressBar('93.9');</script>
529
+ <dd class="spec passed"><span class="passed_spec_name">options with no value attribute</span></dd>
530
+ <script type="text/javascript">moveProgressBar('94.7');</script>
531
+ <dd class="spec passed"><span class="passed_spec_name">items method returns visible contents as array of text items</span></dd>
532
+ <script type="text/javascript">moveProgressBar('95.6');</script>
533
+ <dd class="spec passed"><span class="passed_spec_name">items returns visible text items as array</span></dd>
534
+ </dl>
535
+ </div>
536
+ <div class="example_group">
537
+ <dl>
538
+ <dt id="example_group_25">add faces text fields page objects</dt>
539
+ <script type="text/javascript">moveProgressBar('96.5');</script>
540
+ <dd class="spec passed"><span class="passed_spec_name">face returns a watir element text_field</span></dd>
541
+ <script type="text/javascript">moveProgressBar('97.3');</script>
542
+ <dd class="spec passed"><span class="passed_spec_name">face name method and value returns current text</span></dd>
543
+ <script type="text/javascript">moveProgressBar('98.2');</script>
544
+ <dd class="spec passed"><span class="passed_spec_name">face name method and set enters value into field</span></dd>
545
+ <script type="text/javascript">moveProgressBar('99.1');</script>
546
+ <dd class="spec passed"><span class="passed_spec_name">spray method matches keys as facenames and sets values to fields</span></dd>
547
+ <script type="text/javascript">moveProgressBar('100.0');</script>
548
+ <dd class="spec passed"><span class="passed_spec_name">scrape keys updates keys with values and returns datamap</span></dd>
549
+ </dl>
550
+ </div>
551
+ <script type="text/javascript">document.getElementById('duration').innerHTML = "Finished in <strong>480.021 seconds</strong>";</script>
552
+ <script type="text/javascript">document.getElementById('totals').innerHTML = "115 examples, 1 failure";</script>
553
+ </div>
554
+ </div>
555
+ </body>
556
+ </html>