operawatir 0.4-jruby → 0.4.1-jruby

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (222) hide show
  1. data/.gitmodules +3 -3
  2. data/AUTHORS +1 -0
  3. data/CHANGES +454 -0
  4. data/README.md +67 -50
  5. data/Rakefile +6 -10
  6. data/VERSION +1 -1
  7. data/bin/desktopwatir +52 -29
  8. data/bin/operawatir +50 -18
  9. data/lib/operadriver/client-combined-nodeps.jar +0 -0
  10. data/lib/operadriver/webdriver-opera.jar +0 -0
  11. data/lib/operawatir.rb +8 -1
  12. data/lib/operawatir/browser.rb +35 -15
  13. data/lib/operawatir/collection.rb +2 -2
  14. data/lib/operawatir/compat.rb +3 -2
  15. data/lib/operawatir/compat/browser.rb +0 -5
  16. data/lib/operawatir/compat/collection.rb +15 -0
  17. data/lib/operawatir/compat/element.rb +72 -21
  18. data/lib/operawatir/compat/element_finders.rb +6 -0
  19. data/lib/operawatir/compat/selector.rb +7 -0
  20. data/lib/operawatir/compat/window.rb +49 -0
  21. data/lib/operawatir/desktop_browser.rb +88 -14
  22. data/lib/operawatir/desktop_common.rb +0 -2
  23. data/lib/operawatir/desktop_container.rb +82 -29
  24. data/lib/operawatir/desktop_helper.rb +2 -0
  25. data/lib/operawatir/element.rb +49 -25
  26. data/lib/operawatir/helper.rb +5 -3
  27. data/lib/operawatir/keys.rb +19 -6
  28. data/lib/operawatir/preferences.rb +315 -78
  29. data/lib/operawatir/quickwidgets.rb +2 -1
  30. data/lib/operawatir/quickwidgets/quick_addressfield.rb +12 -0
  31. data/lib/operawatir/quickwidgets/quick_button.rb +8 -2
  32. data/lib/operawatir/quickwidgets/quick_checkbox.rb +5 -5
  33. data/lib/operawatir/quickwidgets/quick_editfield.rb +8 -5
  34. data/lib/operawatir/quickwidgets/quick_find.rb +11 -0
  35. data/lib/operawatir/quickwidgets/quick_griditem.rb +11 -0
  36. data/lib/operawatir/quickwidgets/quick_gridlayout.rb +11 -0
  37. data/lib/operawatir/quickwidgets/quick_searchfield.rb +7 -1
  38. data/lib/operawatir/quickwidgets/quick_tab.rb +0 -1
  39. data/lib/operawatir/quickwidgets/quick_treeitem.rb +22 -1
  40. data/lib/operawatir/quickwidgets/quick_widget.rb +62 -23
  41. data/lib/operawatir/quickwidgets/quick_window.rb +32 -2
  42. data/lib/operawatir/screenshot.rb +46 -0
  43. data/lib/operawatir/version.rb +6 -4
  44. data/lib/operawatir/window.rb +53 -67
  45. data/operawatir.gemspec +310 -245
  46. data/spec/operawatir/README.md +4 -0
  47. data/spec/operawatir/core/browser_spec.rb +82 -0
  48. data/spec/operawatir/core/element_spec.rb +88 -0
  49. data/spec/operawatir/core/preferences_spec.rb +438 -0
  50. data/spec/operawatir/core/screenshot_spec.rb +76 -0
  51. data/spec/{new_watirspec → operawatir/core}/spatnav_spec.rb +3 -3
  52. data/spec/operawatir/core/window_spec.rb +76 -0
  53. data/spec/operawatir/desktop/desktopbrowser_spec.rb +316 -0
  54. data/spec/operawatir/desktop/quickaddressfield_spec.rb +59 -0
  55. data/spec/operawatir/desktop/quickbutton_spec.rb +248 -0
  56. data/spec/operawatir/desktop/quickcheckbox_spec.rb +36 -0
  57. data/spec/operawatir/desktop/quickdialogtab_spec.rb +30 -0
  58. data/spec/operawatir/desktop/quickdropdown_spec.rb +39 -0
  59. data/spec/operawatir/desktop/quickeditfield_spec.rb +51 -0
  60. data/spec/operawatir/desktop/quickfind_spec.rb +30 -0
  61. data/spec/operawatir/desktop/quickgriditem_spec.rb +16 -0
  62. data/spec/operawatir/desktop/quickgridlayout_spec.rb +15 -0
  63. data/spec/operawatir/desktop/quicklabel_spec.rb +28 -0
  64. data/spec/operawatir/desktop/quickradiobutton_spec.rb +24 -0
  65. data/spec/operawatir/desktop/quicksearchfield_spec.rb +26 -0
  66. data/spec/operawatir/desktop/quicktab_spec.rb +86 -0
  67. data/spec/operawatir/desktop/quickthumbnail_spec.rb +37 -0
  68. data/spec/operawatir/desktop/quicktreeitem_spec.rb +135 -0
  69. data/spec/operawatir/desktop/quicktreeview_spec.rb +30 -0
  70. data/spec/operawatir/desktop/quickwidget_spec.rb +101 -0
  71. data/spec/operawatir/desktop/quickwindow_spec.rb +108 -0
  72. data/spec/operawatir/desktop/shared/shared.rb +138 -0
  73. data/spec/operawatir/fixtures/boxes.html +22 -0
  74. data/spec/operawatir/fixtures/browsers.svg +367 -0
  75. data/spec/operawatir/fixtures/frames.html +13 -0
  76. data/spec/operawatir/fixtures/grid.html +29 -0
  77. data/spec/operawatir/fixtures/input_fields_value.html +6 -0
  78. data/spec/operawatir/fixtures/onclick.html +20 -0
  79. data/spec/operawatir/fixtures/paragraphs.html +15 -0
  80. data/spec/operawatir/fixtures/two_input_fields.html +6 -0
  81. data/spec/{new_watirspec → operawatir}/guards.rb +0 -0
  82. data/spec/operawatir/matchers.rb +68 -0
  83. data/spec/{legacy_watirspec → operawatir}/server.rb +0 -0
  84. data/spec/operawatir/watirspec.rake +43 -0
  85. data/spec/operawatir/watirspec_desktophelper.rb +14 -0
  86. data/spec/operawatir/watirspec_helper.rb +62 -0
  87. data/spec/{legacy_watirspec → watir2}/area_spec.rb +0 -0
  88. data/spec/{legacy_watirspec → watir2}/areas_spec.rb +0 -0
  89. data/spec/{legacy_watirspec → watir2}/browser_spec.rb +2 -0
  90. data/spec/{legacy_watirspec → watir2}/button_spec.rb +0 -0
  91. data/spec/{legacy_watirspec → watir2}/buttons_spec.rb +0 -0
  92. data/spec/{legacy_watirspec → watir2}/checkbox_spec.rb +0 -0
  93. data/spec/{legacy_watirspec → watir2}/checkboxes_spec.rb +0 -0
  94. data/spec/{legacy_watirspec → watir2}/collections_spec.rb +0 -0
  95. data/spec/{legacy_watirspec → watir2}/dd_spec.rb +0 -0
  96. data/spec/{legacy_watirspec → watir2}/dds_spec.rb +0 -0
  97. data/spec/{legacy_watirspec → watir2}/del_spec.rb +0 -0
  98. data/spec/{legacy_watirspec → watir2}/dels_spec.rb +0 -0
  99. data/spec/{legacy_watirspec → watir2}/div_spec.rb +0 -0
  100. data/spec/{legacy_watirspec → watir2}/divs_spec.rb +0 -0
  101. data/spec/{legacy_watirspec → watir2}/dl_spec.rb +0 -0
  102. data/spec/{legacy_watirspec → watir2}/dls_spec.rb +0 -0
  103. data/spec/{legacy_watirspec → watir2}/dt_spec.rb +0 -0
  104. data/spec/{legacy_watirspec → watir2}/dts_spec.rb +0 -0
  105. data/spec/watir2/element_spec.rb +155 -0
  106. data/spec/{legacy_watirspec → watir2}/em_spec.rb +0 -0
  107. data/spec/{legacy_watirspec → watir2}/ems_spec.rb +0 -0
  108. data/spec/{legacy_watirspec → watir2}/filefield_spec.rb +0 -0
  109. data/spec/{legacy_watirspec → watir2}/filefields_spec.rb +0 -0
  110. data/spec/{legacy_watirspec → watir2}/fixtures/2000_spans.html +0 -0
  111. data/spec/{legacy_watirspec → watir2}/fixtures/bug_duplicate_attributes.html +0 -0
  112. data/spec/{legacy_watirspec → watir2}/fixtures/bug_javascript_001.html +0 -0
  113. data/spec/{legacy_watirspec → watir2}/fixtures/buttons_with_duplicate_ids.html +0 -0
  114. data/spec/{legacy_watirspec → watir2}/fixtures/collections.html +0 -0
  115. data/spec/{legacy_watirspec → watir2}/fixtures/definition_lists.html +0 -0
  116. data/spec/{legacy_watirspec → watir2}/fixtures/euc-jp_text.html +0 -0
  117. data/spec/{legacy_watirspec → watir2}/fixtures/forms_with_input_elements.html +0 -0
  118. data/spec/{legacy_watirspec → watir2}/fixtures/frame_1.html +0 -0
  119. data/spec/{legacy_watirspec → watir2}/fixtures/frame_2.html +0 -0
  120. data/spec/{legacy_watirspec → watir2}/fixtures/frames.html +0 -0
  121. data/spec/{legacy_watirspec → watir2}/fixtures/iframes.html +0 -0
  122. data/spec/{legacy_watirspec → watir2}/fixtures/images.html +0 -0
  123. data/spec/{legacy_watirspec → watir2}/fixtures/images/1.gif +0 -0
  124. data/spec/{legacy_watirspec → watir2}/fixtures/images/2.gif +0 -0
  125. data/spec/{legacy_watirspec → watir2}/fixtures/images/3.gif +0 -0
  126. data/spec/{legacy_watirspec → watir2}/fixtures/images/button.jpg +0 -0
  127. data/spec/{legacy_watirspec → watir2}/fixtures/images/circle.jpg +0 -0
  128. data/spec/{legacy_watirspec → watir2}/fixtures/images/map.gif +0 -0
  129. data/spec/{legacy_watirspec → watir2}/fixtures/images/map2.gif +0 -0
  130. data/spec/{legacy_watirspec → watir2}/fixtures/images/minus.gif +0 -0
  131. data/spec/{legacy_watirspec → watir2}/fixtures/images/originaltriangle.jpg +0 -0
  132. data/spec/{legacy_watirspec → watir2}/fixtures/images/plus.gif +0 -0
  133. data/spec/{legacy_watirspec → watir2}/fixtures/images/square.jpg +0 -0
  134. data/spec/{legacy_watirspec → watir2}/fixtures/images/triangle.jpg +0 -0
  135. data/spec/{legacy_watirspec → watir2}/fixtures/iso-2022-jp_text.html +0 -0
  136. data/spec/{legacy_watirspec → watir2}/fixtures/javascript/helpers.js +0 -0
  137. data/spec/{legacy_watirspec → watir2}/fixtures/jquery.html +0 -0
  138. data/spec/{legacy_watirspec → watir2}/fixtures/latin1_text.html +0 -0
  139. data/spec/{legacy_watirspec → watir2}/fixtures/multiple_ids.html +0 -0
  140. data/spec/{legacy_watirspec → watir2}/fixtures/non_control_elements.html +0 -0
  141. data/spec/{legacy_watirspec → watir2}/fixtures/parser_bug_001.html +0 -0
  142. data/spec/{legacy_watirspec → watir2}/fixtures/prevent_form_submit.html +0 -0
  143. data/spec/{legacy_watirspec → watir2}/fixtures/right_click.html +0 -0
  144. data/spec/{legacy_watirspec → watir2}/fixtures/shift_jis_text.html +0 -0
  145. data/spec/{legacy_watirspec → watir2}/fixtures/tables.html +0 -0
  146. data/spec/{legacy_watirspec → watir2}/fixtures/timeout.html +0 -0
  147. data/spec/{legacy_watirspec → watir2}/fixtures/timeout_window_location.html +0 -0
  148. data/spec/{legacy_watirspec → watir2}/fixtures/tiny_mce.html +0 -0
  149. data/spec/{legacy_watirspec → watir2}/fixtures/utf8_text.html +0 -0
  150. data/spec/{legacy_watirspec → watir2}/fixtures/watirspec.css +0 -0
  151. data/spec/{legacy_watirspec → watir2}/form_spec.rb +0 -0
  152. data/spec/{legacy_watirspec → watir2}/forms_spec.rb +0 -0
  153. data/spec/{legacy_watirspec → watir2}/frame_spec.rb +0 -0
  154. data/spec/{legacy_watirspec → watir2}/frames_spec.rb +0 -0
  155. data/spec/{legacy_watirspec → watir2}/guards.rb +0 -0
  156. data/spec/{legacy_watirspec → watir2}/hidden_spec.rb +0 -0
  157. data/spec/{legacy_watirspec → watir2}/hiddens_spec.rb +0 -0
  158. data/spec/{legacy_watirspec → watir2}/hn_spec.rb +0 -0
  159. data/spec/{legacy_watirspec → watir2}/hns_spec.rb +0 -0
  160. data/spec/{legacy_watirspec → watir2}/image_spec.rb +0 -0
  161. data/spec/{legacy_watirspec → watir2}/images_spec.rb +0 -0
  162. data/spec/{legacy_watirspec → watir2}/ins_spec.rb +0 -0
  163. data/spec/{legacy_watirspec → watir2}/inses_spec.rb +0 -0
  164. data/spec/{legacy_watirspec → watir2}/label_spec.rb +0 -0
  165. data/spec/{legacy_watirspec → watir2}/labels_spec.rb +0 -0
  166. data/spec/{legacy_watirspec → watir2}/li_spec.rb +0 -0
  167. data/spec/{legacy_watirspec → watir2}/link_spec.rb +0 -0
  168. data/spec/{legacy_watirspec → watir2}/links_spec.rb +0 -0
  169. data/spec/{legacy_watirspec → watir2}/lis_spec.rb +0 -0
  170. data/spec/{legacy_watirspec → watir2}/map_spec.rb +0 -0
  171. data/spec/{legacy_watirspec → watir2}/maps_spec.rb +0 -0
  172. data/spec/{legacy_watirspec → watir2}/meta_spec.rb +0 -0
  173. data/spec/{legacy_watirspec → watir2}/metas_spec.rb +0 -0
  174. data/spec/{legacy_watirspec → watir2}/ol_spec.rb +0 -0
  175. data/spec/{legacy_watirspec → watir2}/ols_spec.rb +0 -0
  176. data/spec/{legacy_watirspec → watir2}/option_spec.rb +0 -0
  177. data/spec/{legacy_watirspec → watir2}/p_spec.rb +0 -0
  178. data/spec/{legacy_watirspec → watir2}/pre_spec.rb +0 -0
  179. data/spec/{legacy_watirspec → watir2}/pres_spec.rb +0 -0
  180. data/spec/{legacy_watirspec → watir2}/ps_spec.rb +0 -0
  181. data/spec/{legacy_watirspec → watir2}/radio_spec.rb +0 -0
  182. data/spec/{legacy_watirspec → watir2}/radios_spec.rb +0 -0
  183. data/spec/{legacy_watirspec → watir2}/select_list_spec.rb +84 -71
  184. data/spec/{legacy_watirspec → watir2}/select_lists_spec.rb +0 -0
  185. data/spec/{new_watirspec → watir2}/server.rb +0 -0
  186. data/spec/{legacy_watirspec → watir2}/span_spec.rb +0 -0
  187. data/spec/{legacy_watirspec → watir2}/spans_spec.rb +0 -0
  188. data/spec/{legacy_watirspec → watir2}/spec_helper.rb +0 -0
  189. data/spec/{legacy_watirspec → watir2}/strong_spec.rb +0 -0
  190. data/spec/{legacy_watirspec → watir2}/strongs_spec.rb +0 -0
  191. data/spec/{legacy_watirspec → watir2}/table_bodies_spec.rb +0 -0
  192. data/spec/{legacy_watirspec → watir2}/table_body_spec.rb +0 -0
  193. data/spec/{legacy_watirspec → watir2}/table_cell_spec.rb +0 -0
  194. data/spec/{legacy_watirspec → watir2}/table_cells_spec.rb +0 -0
  195. data/spec/{legacy_watirspec → watir2}/table_footer_spec.rb +0 -0
  196. data/spec/{legacy_watirspec → watir2}/table_footers_spec.rb +0 -0
  197. data/spec/{legacy_watirspec → watir2}/table_header_spec.rb +0 -0
  198. data/spec/{legacy_watirspec → watir2}/table_headers_spec.rb +0 -0
  199. data/spec/{legacy_watirspec → watir2}/table_row_spec.rb +0 -0
  200. data/spec/{legacy_watirspec → watir2}/table_rows_spec.rb +0 -0
  201. data/spec/{legacy_watirspec → watir2}/table_spec.rb +0 -0
  202. data/spec/{legacy_watirspec → watir2}/tables_spec.rb +0 -0
  203. data/spec/{legacy_watirspec → watir2}/text_field_spec.rb +0 -0
  204. data/spec/{legacy_watirspec → watir2}/text_fields_spec.rb +0 -0
  205. data/spec/{legacy_watirspec → watir2}/ul_spec.rb +0 -0
  206. data/spec/{legacy_watirspec → watir2}/uls_spec.rb +0 -0
  207. data/spec/{legacy_watirspec → watir2}/watir_compatibility_spec.rb +0 -0
  208. data/spec/{legacy_watirspec → watir2}/watirspec_helper.rb +0 -0
  209. data/spec/{new_watirspec → watir3}/browser_spec.rb +11 -21
  210. data/spec/{new_watirspec → watir3}/clipboard_spec.rb +2 -2
  211. data/spec/{new_watirspec → watir3}/collection_spec.rb +0 -0
  212. data/spec/{new_watirspec → watir3}/element_spec.rb +30 -12
  213. data/spec/watir3/guards.rb +39 -0
  214. data/spec/{new_watirspec → watir3}/keys_spec.rb +0 -0
  215. data/spec/watir3/server.rb +91 -0
  216. data/spec/{new_watirspec → watir3}/watirspec_helper.rb +0 -0
  217. data/spec/{new_watirspec → watir3}/window_spec.rb +8 -83
  218. metadata +315 -280
  219. data/lib/operadriver/selenium-common.jar +0 -0
  220. data/spec/legacy_watirspec/element_spec.rb +0 -86
  221. data/spec/new_watirspec/preferences_spec.rb +0 -144
  222. data/spec/new_watirspec/screenshot_spec.rb +0 -34
@@ -0,0 +1,76 @@
1
+ require File.expand_path('../../watirspec_helper', __FILE__)
2
+ require 'tmpdir'
3
+
4
+ RSpec::Matchers.define :save_file do
5
+ match { |filename| File.exists? filename }
6
+ end
7
+
8
+ RSpec::Matchers.define :be_boolean do
9
+ match { |variable| !!variable == variable }
10
+ end
11
+
12
+ describe 'Screenshot' do
13
+
14
+ before :all do
15
+ browser.url = fixture('boxes.html')
16
+ @screenshot = window.screenshot
17
+ @filename = "#{Dir.tmpdir}/screenshot.png"
18
+ end
19
+
20
+ describe '#new' do
21
+ context 'given no argument' do
22
+ it 'creates a new Screenshot object' do
23
+ @screenshot.should be_kind_of OperaWatir::Screenshot
24
+ end
25
+ end
26
+
27
+ context 'given an argument' do
28
+ it 'saves a screenshot' do
29
+ window.screenshot(@filename).should save_file
30
+ end
31
+ end
32
+ end
33
+
34
+ describe '#save' do
35
+ it 'saves screenshot to disk' do
36
+ @screenshot.save(@filename).should save_file
37
+ end
38
+ end
39
+
40
+ describe '#blank?' do
41
+ it 'returns a valid type' do
42
+ @screenshot.blank?.should be_boolean
43
+ end
44
+
45
+ it 'is not blank' do
46
+ @screenshot.blank?.should be_false
47
+ end
48
+ end
49
+
50
+ describe '#png' do
51
+ before(:all) { @png = @screenshot.png }
52
+
53
+ it 'returns a valid type' do
54
+ @png.should be_kind_of String
55
+ end
56
+
57
+ it 'is a real type PNG image' do
58
+ @png.should match /PNG/
59
+ end
60
+ end
61
+
62
+ describe '#md5' do
63
+ before(:all) { @md5 = @screenshot.md5 }
64
+
65
+ it 'returns a valid type' do
66
+ @md5.should be_kind_of String
67
+ end
68
+
69
+ it 'returns a hash' do
70
+ @md5.should match /^(0x)[a-f0-9]{32}$/
71
+ end
72
+ end
73
+
74
+ after(:all) { File.delete @filename if File.exists? @filename }
75
+
76
+ end
@@ -1,4 +1,4 @@
1
- require File.expand_path('../watirspec_helper', __FILE__)
1
+ require File.expand_path('../../watirspec_helper', __FILE__)
2
2
 
3
3
  describe 'Spatnav' do
4
4
 
@@ -53,8 +53,8 @@ describe 'Spatnav' do
53
53
  describe '#activate!' do
54
54
  it 'activates the focused link' do
55
55
  browser.spatnav.down
56
- browser.spatnav.activate
57
- window.url.should include 'C3'
56
+ browser.spatnav.activate
57
+ window.url.should include 'C3'
58
58
  end
59
59
  end
60
60
 
@@ -0,0 +1,76 @@
1
+ require File.expand_path('../../watirspec_helper', __FILE__)
2
+ require 'tmpdir'
3
+
4
+ describe 'Window' do
5
+
6
+ describe '#visual_hash' do
7
+ before :each do
8
+ browser.url = fixture('boxes.html')
9
+ @reference = window.visual_hash
10
+ end
11
+
12
+ it 'returns a hash' do
13
+ @reference.should match /^(0x)[a-f0-9]{32}$/
14
+ end
15
+
16
+ it 'returns identical hashes for visually identical pages' do
17
+ browser.url = fixture('boxes.html')
18
+ window.visual_hash.should == @reference
19
+ end
20
+
21
+ it 'returns different hashes for visually different pages' do
22
+ browser.url = fixture('grid.html')
23
+ window.visual_hash.should_not == @reference
24
+ end
25
+
26
+ it 'returns a hash of an SVG document' do
27
+ browser.url = fixture('browsers.svg')
28
+ browser.visual_hash.should match /^(0x)[a-f0-9]{32}$/
29
+ end
30
+ end
31
+
32
+
33
+ #
34
+ # This method is deprecated, but must be tested anyway.
35
+ #
36
+
37
+ describe '#eval_js' do
38
+ it 'works the same way as execute_script' do
39
+ window.eval_js('1+1').should == window.execute_script('1+1');
40
+ end
41
+ end
42
+
43
+ #
44
+ # The frames implementation is a relic from the old OperaWatir. We
45
+ # need to replace this with a better frames implementation in the
46
+ # future.
47
+ #
48
+
49
+ describe '#frame' do
50
+ before :all do
51
+ require 'operawatir/compat/window'
52
+ OperaWatir::Window.send :include, OperaWatir::Compat::Window
53
+ browser.url = fixture('frames.html')
54
+ end
55
+
56
+ it 'will switch to the specified frame' do
57
+ window.frame(:name, 'test')
58
+ window.text.should include 'Lorem ipsum'
59
+ window.text.should_not include 'foobar'
60
+ end
61
+ end
62
+
63
+ describe '#switch_to_default' do
64
+ before :all do
65
+ browser.url = fixture('frames.html')
66
+ window.frame(:name, 'test')
67
+ end
68
+
69
+ it 'will switch back to the default top frame' do
70
+ window.switch_to_default
71
+ window.text.should include 'foobar'
72
+ window.text.should_not include 'Lorem ipsum'
73
+ end
74
+ end
75
+
76
+ end
@@ -0,0 +1,316 @@
1
+ # encoding: utf-8
2
+ require File.expand_path('../../watirspec_desktophelper', __FILE__)
3
+
4
+ describe 'DesktopBrowser' do
5
+ before :all do
6
+ browser.url = fixture('simple.html')
7
+ #@window = browser.quick_window(:name, "Tab 0")
8
+ end
9
+
10
+ describe '#goto' do
11
+ it 'loads page'
12
+ end
13
+
14
+
15
+ describe '#quit_opera' do
16
+ it 'quits opera without quitting driver'
17
+ end
18
+
19
+ describe '#start_opera' do
20
+ before(:each) do
21
+ browser.quit_opera
22
+ end
23
+
24
+ it 'starts opera' do
25
+ browser.start_opera
26
+ browser.quick_windows.should_not be_empty
27
+ end
28
+ end
29
+
30
+ describe '#quit_driver' do
31
+ it 'quits driver'
32
+ end
33
+
34
+ describe '#restart' do
35
+ it 'starts opera' do
36
+ browser.restart
37
+ browser.quick_windows.should_not be_empty
38
+ end
39
+ end
40
+
41
+ describe 'open and load window' do
42
+ after(:each) do
43
+ browser.close_all_tabs
44
+ end
45
+
46
+ describe '#open_window_with_action' do
47
+ it 'opens new window' do
48
+ browser.open_window_with_action("Document Window", "New page", "1").should open_window
49
+ end
50
+
51
+ it 'fails for actions not opening a new window'
52
+ end
53
+
54
+ describe '#load_window_with_action' do
55
+ it 'loads window' do
56
+ browser.load_window_with_action("Document Window", "Open url in new page", WatirSpec.files + "/boxes.html").should > 0
57
+ end
58
+ it 'fails for actions not loading'
59
+ end
60
+
61
+ describe '#open_window_with_key_press' do
62
+ it 'opens window' do
63
+ browser.open_window_with_key_press("Document Window", "t", :ctrl).should > 0
64
+ end
65
+ end
66
+ end
67
+
68
+ describe 'close window' do
69
+ before(:each) do
70
+ browser.open_window_with_key_press("Document Window", "t", :ctrl).should > 0
71
+ end
72
+
73
+ describe '#close_window_with_action' do
74
+ it 'closes window' do
75
+ browser.close_window_with_action("Document Window", "Close page").should > 0
76
+ end
77
+ end
78
+
79
+ describe '#close_window_with_key_press' do
80
+ it 'closes window' do
81
+ browser.close_window_with_key_press("Document Window", "w", :ctrl).should > 0
82
+ end
83
+ end
84
+ end
85
+
86
+ describe 'open dialogs' do
87
+ after(:each) do
88
+ browser.close_all_dialogs
89
+ end
90
+ describe '#open_dialog_with_url' do
91
+ it 'opens dialog'
92
+ end
93
+
94
+ describe '#open_dialog_with_click' do
95
+ it 'opens dialog'
96
+ end
97
+
98
+ end
99
+
100
+ describe 'close dialogs' do
101
+ before(:each) do
102
+ browser.open_dialog_with_key_press("New Preferences Dialog", "F12", :ctrl)
103
+ end
104
+
105
+ describe '#close_dialog' do
106
+ it 'closes dialog' do
107
+ browser.close_dialog("New Preferences Dialog").should > 0
108
+ end
109
+ end
110
+
111
+
112
+ describe '#close_all_dialogs' do
113
+ it 'closes all dialogs' do
114
+ browser.close_all_dialogs
115
+ browser.quick_windows.select { |win| win.type == "Dialog" }.should be_empty
116
+ end
117
+ end
118
+ end
119
+
120
+ describe '#activate_tab_with_key_press' do
121
+ it 'activates tab'
122
+ end
123
+
124
+ describe '#set_alignment_with_action' do
125
+ it 'sets alignment'
126
+ end
127
+
128
+ describe '#widgets' do
129
+ it 'retrieves all widgets' do
130
+ browser.widgets("Browser Window").should_not be_empty
131
+ end
132
+ it 'retrieves only windows'
133
+ end
134
+
135
+ describe '#quick_windows' do
136
+ it 'retrieves all windows' do
137
+ browser.quick_windows.should_not be_empty
138
+ end
139
+ it 'retrieves only windows'
140
+ end
141
+
142
+ describe '#open_pages' do
143
+ it 'holds open tabs' do
144
+ browser.open_pages.should_not be_empty
145
+ end
146
+ end
147
+
148
+ describe '#quick_buttons' do
149
+ it 'retrieves buttons' do
150
+ browser.quick_buttons("Document Window").should_not be_empty
151
+ end
152
+ end
153
+
154
+ describe '#quick_tabbuttons' do
155
+ it 'retrieves tabbuttons' do
156
+ browser.quick_tabbuttons("Browser Window").should_not be_empty
157
+ end
158
+ end
159
+
160
+ describe '#quick_thumbnails' do
161
+ before do
162
+ browser.open_window_with_key_press("Document Window", "t", :ctrl).should > 0
163
+ end
164
+ after do
165
+ browser.quick_window(:name, "Browser Window").quick_toolbar(:name, "Pagebar").quick_tab(:text, "Speed Dial").quick_button(:name, "pb_CloseButton").close_window_with_click("Document Window")
166
+ end
167
+ it 'retrieves thumbnails from the active window' do
168
+ browser.quick_thumbnails("Document Window").length.should be > 0
169
+ end
170
+ end
171
+
172
+ describe '#quick_checkboxes' do
173
+ before(:each) do
174
+ browser.open_dialog_with_action("New Preferences Dialog", "Show preferences", 4).should > 0
175
+ end
176
+ it 'retrieves checkboxes' do
177
+ browser.quick_checkboxes("New Preferences Dialog").should_not be_empty
178
+ end
179
+ it 'retrieves only checkboxes' do
180
+ browser.quick_checkboxes("New Preferences Dialog").select { |c| c.type != :checkbox }.should be_empty
181
+ end
182
+ after(:each) do
183
+ browser.close_dialog("New Preferences Dialog")
184
+ end
185
+ end
186
+
187
+ #TODO: Add all other collection types
188
+
189
+ describe '#window_name' do
190
+ it 'returns empty string for invalid id' do
191
+ browser.window_name(-1).should be_empty
192
+ end
193
+
194
+ it 'returns window name for valid id' do
195
+ valid_id = browser.open_window_with_key_press("Document Window", "t", :ctrl)
196
+ browser.window_name(valid_id).should == "Document Window"
197
+ end
198
+ end
199
+
200
+ describe '#load_page_with_key_press' do
201
+ it 'load page'
202
+ end
203
+
204
+ describe '#path' do
205
+ it 'is not be empty' do
206
+ browser.path.should_not be_empty
207
+ end
208
+ end
209
+
210
+ describe '#large_preferences_path' do
211
+ it 'is not be empty' do
212
+ browser.large_preferences_path.should_not be_empty
213
+ end
214
+ end
215
+
216
+ describe '#small_preferences_path' do
217
+ it 'returns path' do
218
+ browser.small_preferences_path.should_not be_empty
219
+ end
220
+ end
221
+
222
+ describe '#cache_preferences_path' do
223
+ it 'returns path' do
224
+ browser.cache_preferences_path.should_not be_empty
225
+ end
226
+ end
227
+
228
+ describe '#string' do
229
+ it 'returns string corresponding to string_id' do
230
+ browser.string("D_NEW_PREFERENCES_GENERAL").should == "General"
231
+ end
232
+ it 'removes ampersands in string with ampersand' do
233
+ browser.string("S_FIND_IN_PAGE").should == "Find in page"
234
+ end
235
+ it 'leaves ampersand in string when skip_ampersand is true' do
236
+ browser.string("S_FIND_IN_PAGE", false).should == "&Find in page"
237
+ end
238
+ #it 'fails in some reasonable way if string_id doesn\'t exist' do
239
+ # browser.string("SOME_STRING")
240
+ #end
241
+
242
+ end
243
+
244
+ describe '#mac?' do
245
+ end
246
+
247
+ describe '#linux?' do
248
+ end
249
+
250
+ describe '#driver' do
251
+ end
252
+
253
+ # @private
254
+ # Special method to access the driver
255
+ #attr_reader :driver
256
+
257
+ describe '#clear_all_private_data' do
258
+ it 'clears private data'
259
+ end
260
+
261
+ describe '#clear_history' do
262
+ it 'clears history'
263
+ end
264
+
265
+ describe '#clear_cache' do
266
+ it 'clears cache'
267
+ end
268
+
269
+ describe '#close_all_tabs' do
270
+ it 'closes all tabs except last' do
271
+ browser.close_all_tabs
272
+ browser.open_pages.should have(1).item
273
+ end
274
+ end
275
+
276
+ describe '#reset_prefs' do
277
+ it 'resets prefs'
278
+ end
279
+
280
+ describe '#delete_profile' do
281
+ it 'deletes profile' do
282
+
283
+ end
284
+ it 'doesn\'t delete main profile'
285
+ end
286
+
287
+ describe '#set_preference' do
288
+ it 'sets preference' do
289
+ browser.set_preference("User Prefs", "Speed Dial State", 0)
290
+ end
291
+ end
292
+
293
+ describe '#get_preference' do
294
+ it 'returns string' do
295
+ browser.get_preference("User Prefs", "Speed Dial State").should be_kind_of String
296
+ end
297
+ end
298
+
299
+ describe '#get_default_preference' do
300
+ it 'gets default value of preference'
301
+ end
302
+
303
+ # Gets the parent widget name of which there is none here
304
+ #describe "#parent_widget" do
305
+ # it "is nil" do
306
+ # browser.parent_widget.should be_nil
307
+ # end
308
+ #end
309
+
310
+ #describe "#window_id" do
311
+ # it "is nil" do
312
+ # browser.window_id.should be_nil
313
+ # end
314
+ #end
315
+ end
316
+