operawatir 0.3-jruby → 0.3.2-jruby

Sign up to get free protection for your applications and to get access to all the features.
Files changed (55) hide show
  1. data/Gemfile +6 -2
  2. data/LICENSE +1 -1
  3. data/Rakefile +7 -8
  4. data/VERSION +1 -1
  5. data/bin/desktopwatir +3 -0
  6. data/bin/operawatir +2 -2
  7. data/lib/operadriver/webdriver-opera.jar +0 -0
  8. data/lib/operawatir.rb +14 -8
  9. data/lib/operawatir/browser.rb +49 -38
  10. data/lib/operawatir/compat/collection.rb +6 -0
  11. data/lib/operawatir/compat/element.rb +5 -2
  12. data/lib/operawatir/compat/element_finders.rb +19 -0
  13. data/lib/operawatir/desktop-waiter.rb +144 -0
  14. data/lib/operawatir/desktop_browser.rb +506 -0
  15. data/lib/operawatir/desktop_common.rb +111 -0
  16. data/lib/operawatir/desktop_container.rb +252 -0
  17. data/lib/operawatir/desktop_enums.rb +42 -0
  18. data/lib/operawatir/desktop_exceptions.rb +16 -0
  19. data/lib/operawatir/element.rb +6 -6
  20. data/lib/operawatir/exceptions.rb +3 -0
  21. data/lib/operawatir/keys.rb +116 -0
  22. data/lib/operawatir/platform.rb +59 -0
  23. data/lib/operawatir/quickwidgets.rb +3 -0
  24. data/lib/operawatir/quickwidgets/quick_addressfield.rb +23 -0
  25. data/lib/operawatir/quickwidgets/quick_button.rb +151 -0
  26. data/lib/operawatir/quickwidgets/quick_checkbox.rb +58 -0
  27. data/lib/operawatir/quickwidgets/quick_dialogtab.rb +23 -0
  28. data/lib/operawatir/quickwidgets/quick_dropdown.rb +27 -0
  29. data/lib/operawatir/quickwidgets/quick_editfield.rb +115 -0
  30. data/lib/operawatir/quickwidgets/quick_label.rb +12 -0
  31. data/lib/operawatir/quickwidgets/quick_radiobutton.rb +11 -0
  32. data/lib/operawatir/quickwidgets/quick_searchfield.rb +25 -0
  33. data/lib/operawatir/quickwidgets/quick_tab.rb +66 -0
  34. data/lib/operawatir/quickwidgets/quick_thumbnail.rb +26 -0
  35. data/lib/operawatir/quickwidgets/quick_toolbar.rb +11 -0
  36. data/lib/operawatir/quickwidgets/quick_treeitem.rb +157 -0
  37. data/lib/operawatir/quickwidgets/quick_treeview.rb +27 -0
  38. data/lib/operawatir/quickwidgets/quick_widget.rb +369 -0
  39. data/lib/operawatir/quickwidgets/quick_window.rb +150 -0
  40. data/lib/operawatir/selector.rb +1 -1
  41. data/lib/operawatir/version.rb +0 -1
  42. data/lib/operawatir/window.rb +9 -0
  43. data/operawatir.gemspec +382 -0
  44. data/spec/new_watirspec/browser_spec.rb +279 -0
  45. data/spec/new_watirspec/clipboard_spec.rb +79 -0
  46. data/spec/new_watirspec/collection_spec.rb +387 -0
  47. data/spec/new_watirspec/element_spec.rb +456 -0
  48. data/spec/new_watirspec/guards.rb +39 -0
  49. data/spec/new_watirspec/keys_spec.rb +206 -0
  50. data/spec/new_watirspec/server.rb +91 -0
  51. data/spec/new_watirspec/watirspec_helper.rb +62 -0
  52. data/spec/new_watirspec/window_spec.rb +370 -0
  53. data/utils/launchers/launcher-mac +0 -0
  54. metadata +191 -28
  55. data/.gitmodules +0 -3
@@ -1,5 +1,5 @@
1
1
  class OperaWatir::Selector
2
- BASE_TYPES = [:id, :class_name, :tag_name, :css, :xpath]
2
+ BASE_TYPES = [:id, :class_name, :tag_name, :css, :xpath, :name]
3
3
  COLLECTION_TYPES = [:index, :attribute]
4
4
  META_TYPES = [:join, :antijoin]
5
5
 
@@ -12,4 +12,3 @@ module OperaWatir
12
12
  end
13
13
 
14
14
  end
15
-
@@ -166,6 +166,15 @@ private
166
166
  end
167
167
  end
168
168
 
169
+ # Locate elements by attribute @name.
170
+ #
171
+ # @return [Array] an array of found elements
172
+ def find_elements_by_name(value)
173
+ driver.findElementsByName(value).to_a.map do |node|
174
+ OperaWatir::Element.new(node)
175
+ end
176
+ end
177
+
169
178
  # @private
170
179
  def driver
171
180
  browser.driver
@@ -0,0 +1,382 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE DIRECTLY
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
+ # -*- encoding: utf-8 -*-
5
+
6
+ Gem::Specification.new do |s|
7
+ s.name = %q{operawatir}
8
+ s.version = "0.3.2"
9
+ s.platform = %q{jruby}
10
+
11
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
12
+ s.authors = ["Deniz Turkoglu", "Andreas Tolf Tolfsen", "Chris Lloyd", "Stuart Knightley"]
13
+ s.date = %q{2011-01-31}
14
+ s.description = %q{ OperaWatir is a part of the Watir (pronounced water) family of
15
+ free software Ruby libraries for automating web
16
+ browsers. OperaWatir provides a querying engine and Ruby bindings
17
+ for a backend Java library, OperaDriver, for driving the Opera web
18
+ browser. It aims for full compliancy with the watirspec
19
+ specification.
20
+ }
21
+ s.email = ["dturkoglu@opera.com", "andreastt@opera.com", "christopherl@opera.com", "stuartk@opera.com"]
22
+ s.executables = ["desktopwatir", "operawatir"]
23
+ s.extra_rdoc_files = [
24
+ "README.md"
25
+ ]
26
+ s.files = [
27
+ ".yardopts",
28
+ "AUTHORS",
29
+ "Gemfile",
30
+ "LICENSE",
31
+ "README.md",
32
+ "Rakefile",
33
+ "VERSION",
34
+ "bin/desktopwatir",
35
+ "bin/operawatir",
36
+ "lib/operadriver/APACHE_2.0_LICENSE.txt",
37
+ "lib/operadriver/NEW_BSD_LICENSE.txt",
38
+ "lib/operadriver/commons-jxpath-1.3.jar",
39
+ "lib/operadriver/protobuf-java-2.3.0.jar",
40
+ "lib/operadriver/selenium-common.jar",
41
+ "lib/operadriver/webdriver-opera.jar",
42
+ "lib/operawatir.rb",
43
+ "lib/operawatir/browser.rb",
44
+ "lib/operawatir/collection.rb",
45
+ "lib/operawatir/compat.rb",
46
+ "lib/operawatir/compat/browser.rb",
47
+ "lib/operawatir/compat/collection.rb",
48
+ "lib/operawatir/compat/deprecation.rb",
49
+ "lib/operawatir/compat/element.rb",
50
+ "lib/operawatir/compat/element_finders.rb",
51
+ "lib/operawatir/compat/window.rb",
52
+ "lib/operawatir/desktop-waiter.rb",
53
+ "lib/operawatir/desktop_browser.rb",
54
+ "lib/operawatir/desktop_common.rb",
55
+ "lib/operawatir/desktop_container.rb",
56
+ "lib/operawatir/desktop_enums.rb",
57
+ "lib/operawatir/desktop_exceptions.rb",
58
+ "lib/operawatir/element.rb",
59
+ "lib/operawatir/exceptions.rb",
60
+ "lib/operawatir/helper.rb",
61
+ "lib/operawatir/keys.rb",
62
+ "lib/operawatir/platform.rb",
63
+ "lib/operawatir/quickwidgets.rb",
64
+ "lib/operawatir/quickwidgets/quick_addressfield.rb",
65
+ "lib/operawatir/quickwidgets/quick_button.rb",
66
+ "lib/operawatir/quickwidgets/quick_checkbox.rb",
67
+ "lib/operawatir/quickwidgets/quick_dialogtab.rb",
68
+ "lib/operawatir/quickwidgets/quick_dropdown.rb",
69
+ "lib/operawatir/quickwidgets/quick_editfield.rb",
70
+ "lib/operawatir/quickwidgets/quick_label.rb",
71
+ "lib/operawatir/quickwidgets/quick_radiobutton.rb",
72
+ "lib/operawatir/quickwidgets/quick_searchfield.rb",
73
+ "lib/operawatir/quickwidgets/quick_tab.rb",
74
+ "lib/operawatir/quickwidgets/quick_thumbnail.rb",
75
+ "lib/operawatir/quickwidgets/quick_toolbar.rb",
76
+ "lib/operawatir/quickwidgets/quick_treeitem.rb",
77
+ "lib/operawatir/quickwidgets/quick_treeview.rb",
78
+ "lib/operawatir/quickwidgets/quick_widget.rb",
79
+ "lib/operawatir/quickwidgets/quick_window.rb",
80
+ "lib/operawatir/selector.rb",
81
+ "lib/operawatir/version.rb",
82
+ "lib/operawatir/window.rb",
83
+ "operawatir.gemspec",
84
+ "spec/fire_event/fire_event.rb",
85
+ "spec/fire_event/interactive/onBlur.html",
86
+ "spec/fire_event/interactive/onChange.html",
87
+ "spec/fire_event/interactive/onClick.html",
88
+ "spec/fire_event/interactive/onDblClick.html",
89
+ "spec/fire_event/interactive/onFocus.html",
90
+ "spec/fire_event/interactive/onMouseDown.html",
91
+ "spec/fire_event/interactive/onMouseMove.html",
92
+ "spec/fire_event/interactive/onMouseOut.html",
93
+ "spec/fire_event/interactive/onMouseOver.html",
94
+ "spec/fire_event/interactive/onMouseUp.html",
95
+ "spec/fire_event/interactive/onScroll.html",
96
+ "spec/legacy_watirspec/area_spec.rb",
97
+ "spec/legacy_watirspec/areas_spec.rb",
98
+ "spec/legacy_watirspec/browser_spec.rb",
99
+ "spec/legacy_watirspec/button_spec.rb",
100
+ "spec/legacy_watirspec/buttons_spec.rb",
101
+ "spec/legacy_watirspec/checkbox_spec.rb",
102
+ "spec/legacy_watirspec/checkboxes_spec.rb",
103
+ "spec/legacy_watirspec/collections_spec.rb",
104
+ "spec/legacy_watirspec/dd_spec.rb",
105
+ "spec/legacy_watirspec/dds_spec.rb",
106
+ "spec/legacy_watirspec/del_spec.rb",
107
+ "spec/legacy_watirspec/dels_spec.rb",
108
+ "spec/legacy_watirspec/div_spec.rb",
109
+ "spec/legacy_watirspec/divs_spec.rb",
110
+ "spec/legacy_watirspec/dl_spec.rb",
111
+ "spec/legacy_watirspec/dls_spec.rb",
112
+ "spec/legacy_watirspec/dt_spec.rb",
113
+ "spec/legacy_watirspec/dts_spec.rb",
114
+ "spec/legacy_watirspec/element_spec.rb",
115
+ "spec/legacy_watirspec/em_spec.rb",
116
+ "spec/legacy_watirspec/ems_spec.rb",
117
+ "spec/legacy_watirspec/filefield_spec.rb",
118
+ "spec/legacy_watirspec/filefields_spec.rb",
119
+ "spec/legacy_watirspec/fixtures/2000_spans.html",
120
+ "spec/legacy_watirspec/fixtures/bug_duplicate_attributes.html",
121
+ "spec/legacy_watirspec/fixtures/bug_javascript_001.html",
122
+ "spec/legacy_watirspec/fixtures/buttons_with_duplicate_ids.html",
123
+ "spec/legacy_watirspec/fixtures/collections.html",
124
+ "spec/legacy_watirspec/fixtures/definition_lists.html",
125
+ "spec/legacy_watirspec/fixtures/euc-jp_text.html",
126
+ "spec/legacy_watirspec/fixtures/forms_with_input_elements.html",
127
+ "spec/legacy_watirspec/fixtures/frame_1.html",
128
+ "spec/legacy_watirspec/fixtures/frame_2.html",
129
+ "spec/legacy_watirspec/fixtures/frames.html",
130
+ "spec/legacy_watirspec/fixtures/iframes.html",
131
+ "spec/legacy_watirspec/fixtures/images.html",
132
+ "spec/legacy_watirspec/fixtures/images/1.gif",
133
+ "spec/legacy_watirspec/fixtures/images/2.gif",
134
+ "spec/legacy_watirspec/fixtures/images/3.gif",
135
+ "spec/legacy_watirspec/fixtures/images/button.jpg",
136
+ "spec/legacy_watirspec/fixtures/images/circle.jpg",
137
+ "spec/legacy_watirspec/fixtures/images/map.gif",
138
+ "spec/legacy_watirspec/fixtures/images/map2.gif",
139
+ "spec/legacy_watirspec/fixtures/images/minus.gif",
140
+ "spec/legacy_watirspec/fixtures/images/originaltriangle.jpg",
141
+ "spec/legacy_watirspec/fixtures/images/plus.gif",
142
+ "spec/legacy_watirspec/fixtures/images/square.jpg",
143
+ "spec/legacy_watirspec/fixtures/images/triangle.jpg",
144
+ "spec/legacy_watirspec/fixtures/iso-2022-jp_text.html",
145
+ "spec/legacy_watirspec/fixtures/javascript/helpers.js",
146
+ "spec/legacy_watirspec/fixtures/jquery.html",
147
+ "spec/legacy_watirspec/fixtures/latin1_text.html",
148
+ "spec/legacy_watirspec/fixtures/multiple_ids.html",
149
+ "spec/legacy_watirspec/fixtures/non_control_elements.html",
150
+ "spec/legacy_watirspec/fixtures/parser_bug_001.html",
151
+ "spec/legacy_watirspec/fixtures/prevent_form_submit.html",
152
+ "spec/legacy_watirspec/fixtures/right_click.html",
153
+ "spec/legacy_watirspec/fixtures/shift_jis_text.html",
154
+ "spec/legacy_watirspec/fixtures/tables.html",
155
+ "spec/legacy_watirspec/fixtures/timeout.html",
156
+ "spec/legacy_watirspec/fixtures/timeout_window_location.html",
157
+ "spec/legacy_watirspec/fixtures/tiny_mce.html",
158
+ "spec/legacy_watirspec/fixtures/utf8_text.html",
159
+ "spec/legacy_watirspec/fixtures/watirspec.css",
160
+ "spec/legacy_watirspec/form_spec.rb",
161
+ "spec/legacy_watirspec/forms_spec.rb",
162
+ "spec/legacy_watirspec/frame_spec.rb",
163
+ "spec/legacy_watirspec/frames_spec.rb",
164
+ "spec/legacy_watirspec/guards.rb",
165
+ "spec/legacy_watirspec/hidden_spec.rb",
166
+ "spec/legacy_watirspec/hiddens_spec.rb",
167
+ "spec/legacy_watirspec/hn_spec.rb",
168
+ "spec/legacy_watirspec/hns_spec.rb",
169
+ "spec/legacy_watirspec/image_spec.rb",
170
+ "spec/legacy_watirspec/images_spec.rb",
171
+ "spec/legacy_watirspec/ins_spec.rb",
172
+ "spec/legacy_watirspec/inses_spec.rb",
173
+ "spec/legacy_watirspec/label_spec.rb",
174
+ "spec/legacy_watirspec/labels_spec.rb",
175
+ "spec/legacy_watirspec/li_spec.rb",
176
+ "spec/legacy_watirspec/link_spec.rb",
177
+ "spec/legacy_watirspec/links_spec.rb",
178
+ "spec/legacy_watirspec/lis_spec.rb",
179
+ "spec/legacy_watirspec/map_spec.rb",
180
+ "spec/legacy_watirspec/maps_spec.rb",
181
+ "spec/legacy_watirspec/meta_spec.rb",
182
+ "spec/legacy_watirspec/metas_spec.rb",
183
+ "spec/legacy_watirspec/ol_spec.rb",
184
+ "spec/legacy_watirspec/ols_spec.rb",
185
+ "spec/legacy_watirspec/option_spec.rb",
186
+ "spec/legacy_watirspec/p_spec.rb",
187
+ "spec/legacy_watirspec/pre_spec.rb",
188
+ "spec/legacy_watirspec/pres_spec.rb",
189
+ "spec/legacy_watirspec/ps_spec.rb",
190
+ "spec/legacy_watirspec/radio_spec.rb",
191
+ "spec/legacy_watirspec/radios_spec.rb",
192
+ "spec/legacy_watirspec/select_list_spec.rb",
193
+ "spec/legacy_watirspec/select_lists_spec.rb",
194
+ "spec/legacy_watirspec/server.rb",
195
+ "spec/legacy_watirspec/span_spec.rb",
196
+ "spec/legacy_watirspec/spans_spec.rb",
197
+ "spec/legacy_watirspec/spec_helper.rb",
198
+ "spec/legacy_watirspec/strong_spec.rb",
199
+ "spec/legacy_watirspec/strongs_spec.rb",
200
+ "spec/legacy_watirspec/table_bodies_spec.rb",
201
+ "spec/legacy_watirspec/table_body_spec.rb",
202
+ "spec/legacy_watirspec/table_cell_spec.rb",
203
+ "spec/legacy_watirspec/table_cells_spec.rb",
204
+ "spec/legacy_watirspec/table_footer_spec.rb",
205
+ "spec/legacy_watirspec/table_footers_spec.rb",
206
+ "spec/legacy_watirspec/table_header_spec.rb",
207
+ "spec/legacy_watirspec/table_headers_spec.rb",
208
+ "spec/legacy_watirspec/table_row_spec.rb",
209
+ "spec/legacy_watirspec/table_rows_spec.rb",
210
+ "spec/legacy_watirspec/table_spec.rb",
211
+ "spec/legacy_watirspec/tables_spec.rb",
212
+ "spec/legacy_watirspec/text_field_spec.rb",
213
+ "spec/legacy_watirspec/text_fields_spec.rb",
214
+ "spec/legacy_watirspec/ul_spec.rb",
215
+ "spec/legacy_watirspec/uls_spec.rb",
216
+ "spec/legacy_watirspec/watir_compatibility_spec.rb",
217
+ "spec/legacy_watirspec/watirspec_helper.rb",
218
+ "utils/Rakefile",
219
+ "utils/launchers/launcher-linux-i686",
220
+ "utils/launchers/launcher-linux-x86_64",
221
+ "utils/launchers/launcher-mac",
222
+ "utils/launchers/launcher-win32-i86pc.exe"
223
+ ]
224
+ s.homepage = %q{http://operasoftware.github.com/operawatir}
225
+ s.require_paths = ["lib"]
226
+ s.required_ruby_version = Gem::Requirement.new(">= 1.8.7")
227
+ s.rubyforge_project = %q{operawatir}
228
+ s.rubygems_version = %q{1.3.6}
229
+ s.summary = %q{Toolkit for automating interactions with the Opera web browser.}
230
+ s.test_files = [
231
+ "spec/fire_event/fire_event.rb",
232
+ "spec/legacy_watirspec/area_spec.rb",
233
+ "spec/legacy_watirspec/areas_spec.rb",
234
+ "spec/legacy_watirspec/browser_spec.rb",
235
+ "spec/legacy_watirspec/button_spec.rb",
236
+ "spec/legacy_watirspec/buttons_spec.rb",
237
+ "spec/legacy_watirspec/checkbox_spec.rb",
238
+ "spec/legacy_watirspec/checkboxes_spec.rb",
239
+ "spec/legacy_watirspec/collections_spec.rb",
240
+ "spec/legacy_watirspec/dd_spec.rb",
241
+ "spec/legacy_watirspec/dds_spec.rb",
242
+ "spec/legacy_watirspec/del_spec.rb",
243
+ "spec/legacy_watirspec/dels_spec.rb",
244
+ "spec/legacy_watirspec/div_spec.rb",
245
+ "spec/legacy_watirspec/divs_spec.rb",
246
+ "spec/legacy_watirspec/dl_spec.rb",
247
+ "spec/legacy_watirspec/dls_spec.rb",
248
+ "spec/legacy_watirspec/dt_spec.rb",
249
+ "spec/legacy_watirspec/dts_spec.rb",
250
+ "spec/legacy_watirspec/element_spec.rb",
251
+ "spec/legacy_watirspec/em_spec.rb",
252
+ "spec/legacy_watirspec/ems_spec.rb",
253
+ "spec/legacy_watirspec/filefield_spec.rb",
254
+ "spec/legacy_watirspec/filefields_spec.rb",
255
+ "spec/legacy_watirspec/form_spec.rb",
256
+ "spec/legacy_watirspec/forms_spec.rb",
257
+ "spec/legacy_watirspec/frame_spec.rb",
258
+ "spec/legacy_watirspec/frames_spec.rb",
259
+ "spec/legacy_watirspec/guards.rb",
260
+ "spec/legacy_watirspec/hidden_spec.rb",
261
+ "spec/legacy_watirspec/hiddens_spec.rb",
262
+ "spec/legacy_watirspec/hn_spec.rb",
263
+ "spec/legacy_watirspec/hns_spec.rb",
264
+ "spec/legacy_watirspec/image_spec.rb",
265
+ "spec/legacy_watirspec/images_spec.rb",
266
+ "spec/legacy_watirspec/ins_spec.rb",
267
+ "spec/legacy_watirspec/inses_spec.rb",
268
+ "spec/legacy_watirspec/label_spec.rb",
269
+ "spec/legacy_watirspec/labels_spec.rb",
270
+ "spec/legacy_watirspec/li_spec.rb",
271
+ "spec/legacy_watirspec/link_spec.rb",
272
+ "spec/legacy_watirspec/links_spec.rb",
273
+ "spec/legacy_watirspec/lis_spec.rb",
274
+ "spec/legacy_watirspec/map_spec.rb",
275
+ "spec/legacy_watirspec/maps_spec.rb",
276
+ "spec/legacy_watirspec/meta_spec.rb",
277
+ "spec/legacy_watirspec/metas_spec.rb",
278
+ "spec/legacy_watirspec/ol_spec.rb",
279
+ "spec/legacy_watirspec/ols_spec.rb",
280
+ "spec/legacy_watirspec/option_spec.rb",
281
+ "spec/legacy_watirspec/p_spec.rb",
282
+ "spec/legacy_watirspec/pre_spec.rb",
283
+ "spec/legacy_watirspec/pres_spec.rb",
284
+ "spec/legacy_watirspec/ps_spec.rb",
285
+ "spec/legacy_watirspec/radio_spec.rb",
286
+ "spec/legacy_watirspec/radios_spec.rb",
287
+ "spec/legacy_watirspec/select_list_spec.rb",
288
+ "spec/legacy_watirspec/select_lists_spec.rb",
289
+ "spec/legacy_watirspec/server.rb",
290
+ "spec/legacy_watirspec/span_spec.rb",
291
+ "spec/legacy_watirspec/spans_spec.rb",
292
+ "spec/legacy_watirspec/spec_helper.rb",
293
+ "spec/legacy_watirspec/strong_spec.rb",
294
+ "spec/legacy_watirspec/strongs_spec.rb",
295
+ "spec/legacy_watirspec/table_bodies_spec.rb",
296
+ "spec/legacy_watirspec/table_body_spec.rb",
297
+ "spec/legacy_watirspec/table_cell_spec.rb",
298
+ "spec/legacy_watirspec/table_cells_spec.rb",
299
+ "spec/legacy_watirspec/table_footer_spec.rb",
300
+ "spec/legacy_watirspec/table_footers_spec.rb",
301
+ "spec/legacy_watirspec/table_header_spec.rb",
302
+ "spec/legacy_watirspec/table_headers_spec.rb",
303
+ "spec/legacy_watirspec/table_row_spec.rb",
304
+ "spec/legacy_watirspec/table_rows_spec.rb",
305
+ "spec/legacy_watirspec/table_spec.rb",
306
+ "spec/legacy_watirspec/tables_spec.rb",
307
+ "spec/legacy_watirspec/text_field_spec.rb",
308
+ "spec/legacy_watirspec/text_fields_spec.rb",
309
+ "spec/legacy_watirspec/ul_spec.rb",
310
+ "spec/legacy_watirspec/uls_spec.rb",
311
+ "spec/legacy_watirspec/watir_compatibility_spec.rb",
312
+ "spec/legacy_watirspec/watirspec_helper.rb",
313
+ "spec/new_watirspec/browser_spec.rb",
314
+ "spec/new_watirspec/clipboard_spec.rb",
315
+ "spec/new_watirspec/collection_spec.rb",
316
+ "spec/new_watirspec/element_spec.rb",
317
+ "spec/new_watirspec/guards.rb",
318
+ "spec/new_watirspec/keys_spec.rb",
319
+ "spec/new_watirspec/server.rb",
320
+ "spec/new_watirspec/watirspec_helper.rb",
321
+ "spec/new_watirspec/window_spec.rb"
322
+ ]
323
+
324
+ if s.respond_to? :specification_version then
325
+ current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
326
+ s.specification_version = 3
327
+
328
+ if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
329
+ s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
330
+ s.add_development_dependency(%q<jeweler>, ["~> 1.5.1"])
331
+ s.add_development_dependency(%q<rcov>, [">= 0"])
332
+ s.add_development_dependency(%q<yard>, [">= 0.6.3"])
333
+ s.add_development_dependency(%q<bluecloth>, ["= 1.0.1"])
334
+ s.add_development_dependency(%q<rspec>, [">= 2.4"])
335
+ s.add_development_dependency(%q<sinatra>, [">= 1.0.0"])
336
+ s.add_development_dependency(%q<mongrel>, [">= 1.1.5"])
337
+ s.add_development_dependency(%q<rr>, [">= 1.0.2"])
338
+ s.add_runtime_dependency(%q<rspec>, [">= 2.4"])
339
+ s.add_development_dependency(%q<jeweler>, [">= 0"])
340
+ s.add_development_dependency(%q<rake>, [">= 0"])
341
+ s.add_development_dependency(%q<yard>, [">= 0"])
342
+ s.add_development_dependency(%q<mongrel>, [">= 1.1.5"])
343
+ s.add_development_dependency(%q<sinatra>, [">= 1.1"])
344
+ s.add_development_dependency(%q<rr>, [">= 0"])
345
+ else
346
+ s.add_dependency(%q<bundler>, ["~> 1.0.0"])
347
+ s.add_dependency(%q<jeweler>, ["~> 1.5.1"])
348
+ s.add_dependency(%q<rcov>, [">= 0"])
349
+ s.add_dependency(%q<yard>, [">= 0.6.3"])
350
+ s.add_dependency(%q<bluecloth>, ["= 1.0.1"])
351
+ s.add_dependency(%q<rspec>, [">= 2.4"])
352
+ s.add_dependency(%q<sinatra>, [">= 1.0.0"])
353
+ s.add_dependency(%q<mongrel>, [">= 1.1.5"])
354
+ s.add_dependency(%q<rr>, [">= 1.0.2"])
355
+ s.add_dependency(%q<rspec>, [">= 2.4"])
356
+ s.add_dependency(%q<jeweler>, [">= 0"])
357
+ s.add_dependency(%q<rake>, [">= 0"])
358
+ s.add_dependency(%q<yard>, [">= 0"])
359
+ s.add_dependency(%q<mongrel>, [">= 1.1.5"])
360
+ s.add_dependency(%q<sinatra>, [">= 1.1"])
361
+ s.add_dependency(%q<rr>, [">= 0"])
362
+ end
363
+ else
364
+ s.add_dependency(%q<bundler>, ["~> 1.0.0"])
365
+ s.add_dependency(%q<jeweler>, ["~> 1.5.1"])
366
+ s.add_dependency(%q<rcov>, [">= 0"])
367
+ s.add_dependency(%q<yard>, [">= 0.6.3"])
368
+ s.add_dependency(%q<bluecloth>, ["= 1.0.1"])
369
+ s.add_dependency(%q<rspec>, [">= 2.4"])
370
+ s.add_dependency(%q<sinatra>, [">= 1.0.0"])
371
+ s.add_dependency(%q<mongrel>, [">= 1.1.5"])
372
+ s.add_dependency(%q<rr>, [">= 1.0.2"])
373
+ s.add_dependency(%q<rspec>, [">= 2.4"])
374
+ s.add_dependency(%q<jeweler>, [">= 0"])
375
+ s.add_dependency(%q<rake>, [">= 0"])
376
+ s.add_dependency(%q<yard>, [">= 0"])
377
+ s.add_dependency(%q<mongrel>, [">= 1.1.5"])
378
+ s.add_dependency(%q<sinatra>, [">= 1.1"])
379
+ s.add_dependency(%q<rr>, [">= 0"])
380
+ end
381
+ end
382
+
@@ -0,0 +1,279 @@
1
+ # encoding: utf-8
2
+ require File.expand_path('../watirspec_helper', __FILE__)
3
+
4
+ describe 'Browser' do
5
+
6
+ before :all do
7
+ browser.url = fixture('simple.html')
8
+ end
9
+
10
+ describe '#new' do
11
+ it 'constructs a new instance' do
12
+ browser.exists?.should be_true
13
+ end
14
+ end
15
+
16
+ describe '#driver' do
17
+ it 'returns driver object' do
18
+ browser.driver.instance_of?(Java::ComOperaCoreSystems::OperaDriver).should be_true
19
+ end
20
+
21
+ it 'can access native driver methods' do
22
+ browser.driver.getCurrentUrl.should_not be_empty
23
+ end
24
+ end
25
+
26
+ describe '#name' do
27
+ # FIXME
28
+ it 'is the name of a Watir implementation' do
29
+ browser.name.should_not be_empty
30
+ end
31
+ end
32
+
33
+ describe '#url=' do # goto() is an alias
34
+ it 'opens a new window' do
35
+ new_window = browser.url fixture('simple.html')
36
+ new_window.exists?.should be_true
37
+ new_window.close
38
+ end
39
+
40
+ it 'navigates to a url' do
41
+ window.url = fixture('simple.html')
42
+ window.url.should == fixture('simple.html')
43
+ end
44
+
45
+ it 'navigates to a url using goto alias' do
46
+ browser.goto fixture('simple.html')
47
+ browser.active_window.url.should == fixture('simple.html')
48
+ end
49
+ end
50
+
51
+ describe '#quit!' do
52
+ before :each do
53
+ browser.quit!
54
+ end
55
+
56
+ it 'quits the browser' do
57
+ browser.connected?.should be_false
58
+ end
59
+
60
+ it 'window is closed upon quit' do
61
+ browser.active_window.exists?.should be_false
62
+ end
63
+
64
+ it 'windows are closed upon quit' do
65
+ browser.windows.all? do |window|
66
+ window.exists? == false
67
+ end.should be_true
68
+ end
69
+
70
+ it 'is not possible to access window properties after quit' do
71
+ # FIXME
72
+ browser.active_window.url.should raise_error NativeException
73
+ browser.active_window.title.should raise_error NativeException
74
+ end
75
+
76
+ after :all do
77
+ # OperaWatir::Helper.reconnect
78
+ end
79
+ end
80
+
81
+ describe '#windows' do
82
+ before :all do
83
+ puts 'AFTER QUIT!'
84
+ # browser = OperaWatir::Browser.new
85
+ puts "URL IS NOW: #{browser.active_window.url}"
86
+ end
87
+
88
+
89
+ it 'is not empty' do
90
+ browser.windows.should_not be_empty
91
+ end
92
+
93
+ it 'is a list of open windows' do
94
+ browser.windows.all? do |window|
95
+ window.respond_to? :find_elements_by_id
96
+ end.should be_true
97
+ end
98
+
99
+ it 'will close all open windows' do
100
+ open_windows = browser.windows.length
101
+ browser.windows.close_all
102
+ browser.windows.length.should < open_windows
103
+ browser.windows.length.should_not be_zero
104
+ end
105
+
106
+ # TODO: Window selectors
107
+
108
+ end
109
+
110
+ describe '#version' do
111
+ it 'fetches the version number of the driver' do
112
+ browser.version.should match /\d{1,}\.\d{1,}\.\d{1,}/
113
+ end
114
+ end
115
+
116
+ describe '#pid' do
117
+ it 'fetches the PID from the attached browser instance' do
118
+ browser.pid.should be_integer
119
+ browser.pid.should_not be_zero
120
+ end
121
+ end
122
+
123
+ describe '#platform' do
124
+ it 'fetches the platform the browser is running on' do
125
+ # TODO: Improve regexp
126
+ browser.platform.should match /linux|windows|mac os x|bsd/i
127
+ end
128
+ end
129
+
130
+ describe '#build' do
131
+ it 'fetches the build number of the attached browser instance' do
132
+ browser.build.should be_integer
133
+ browser.build.should_not be_zero
134
+ end
135
+ end
136
+
137
+ describe '#path' do
138
+ it 'fetches the full path to the binary of the attached browser' do
139
+ # TODO: Improve regexp
140
+ browser.path.should match /(\/|\\){2,}/
141
+ end
142
+ end
143
+
144
+ describe '#ua_string' do
145
+ it 'fetches the UA string of the browser' do
146
+ browser.ua_string.should_not be_empty
147
+ end
148
+ end
149
+
150
+ describe '#connected?' do
151
+ it 'is attached to a browser instance' do
152
+ browser.connected?.should be_true
153
+ end
154
+
155
+ it 'is not attached to a browser instance' do
156
+ browser.quit!
157
+ browser.connected?.should be_false
158
+ end
159
+ end
160
+
161
+ describe '#desktop?' do
162
+ it 'responds with boolean' do
163
+ (!!browser.desktop? == browser.desktop?).should be_true
164
+ end
165
+ end
166
+
167
+ # configuration
168
+ describe '#speed' do
169
+ it 'is one of :fast, :medium or :slow' do
170
+ [:fast, :medium, :slow].any? do |speed|
171
+ browser.speed == speed
172
+ end.should be_true
173
+ end
174
+ end
175
+
176
+ describe '#speed=' do
177
+ it 'can be set to :fast' do
178
+ browser.speed = :fast
179
+ browser.speed.should == :fast
180
+ end
181
+
182
+ it 'can be set to :medium' do
183
+ browser.speed = :medium
184
+ browser.speed.should == :medium
185
+ end
186
+
187
+ it 'can be set to :slow' do
188
+ browser.speed = :slow
189
+ browser.speed.should == :slow
190
+ end
191
+
192
+ it 'cannot be set to other values' do
193
+ browser.speed = :hoobaflooba
194
+ browser.speed.should_not == :hoobaflooba
195
+ end
196
+ end
197
+
198
+ describe '#preferences' do
199
+ it 'is a list of all preferences' do
200
+ browser.preferences.length.should > 10
201
+ end
202
+
203
+ it 'contains options' do
204
+ browser.preferences('Developer Tools', 'Proxy Auto Connect').should_not be_empty
205
+ end
206
+
207
+ it 'gets a value of an option' do
208
+ browser.preferences('Cache', 'SVG Cache Size').should be_numeric
209
+ browser.preferences('Cache', 'SVG Cache Size').should_not be_zero
210
+ end
211
+
212
+ it 'returns a top block of preferences' do
213
+ browser.preferences.each do |section, option, value|
214
+ section.should_not be_empty
215
+ option.should_not be_empty
216
+ end
217
+ end
218
+
219
+ it 'returns a sub block of preferences' do
220
+ browser.preferences('Cache').each do |option, value|
221
+ option.should_not be_empty
222
+ end
223
+ end
224
+
225
+ # I'm not sure if this works, we'll have to extend all returned values
226
+ # (see 'gets a value of an option') with a .default and .reset! property
227
+ describe '#default' do
228
+ it 'fetches default value of an option' do
229
+ browser.preferences('Cache', 'SVG Cache Size').default.should > 2000
230
+ end
231
+ end
232
+
233
+ describe '#reset!' do
234
+ it 'resets an option to default' do
235
+ browser.preferences('Cache', 'SVG Cache Size').reset!
236
+ browser.preferences('Cache', 'SVG Cache Size').should == browser.preferences('Cache', 'SVG Cache Size').default
237
+ end
238
+ end
239
+
240
+ end
241
+
242
+ describe '#preferences=' do
243
+ before :all do
244
+ # Caches options that we will tamper with.
245
+ @preferences = browser.preferences
246
+ end
247
+
248
+ it 'sets an option' do
249
+ browser.preferences('Cache', 'Application Cache Quota').value = 0
250
+ browser.preferences('Cache', 'Application Cache Quota').should == 0
251
+ end
252
+
253
+ it 'sets options by a given block' do
254
+ preferences = {
255
+ 'Cache' => {
256
+ 'Always Check Never-Expiring GET queries' => false,
257
+ 'Application Cache Quota' => -5000,
258
+ 'SVG Cache Size' => 2000
259
+ }
260
+ }
261
+
262
+ browser.preferences = preferences
263
+
264
+ browser.preferences('Cache', 'Always Check Never-Expiring GET queries').should_not be_true
265
+ browser.preferences('Cache', 'Application Cache Quota').should == -5000
266
+ browser.preferences('Cache', 'SVG Cache Size').should == 2000
267
+
268
+ # Making sure setting block didn't affect any other blocks.
269
+ browser.preferences('Colors', 'Background').should == @preferences['Colors']['Background']
270
+ browser.preferences('Fonts', 'Dialog').should == @preferences['Fonts']['Dialog']
271
+ end
272
+
273
+ after :all do
274
+ # Resets options that we've tampered with.
275
+ browser.preferences = @preferences
276
+ end
277
+ end
278
+
279
+ end