meeane-page-object 0.1.10 → 0.1.11

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 (253) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +7 -7
  3. data/.rspec +2 -2
  4. data/.ruby-gemset +1 -1
  5. data/.ruby-version +1 -1
  6. data/.travis.yml +10 -10
  7. data/ChangeLog +790 -790
  8. data/Gemfile +13 -13
  9. data/Guardfile +20 -20
  10. data/LICENSE +20 -20
  11. data/README.md +1 -1
  12. data/Rakefile +35 -35
  13. data/cucumber.yml +10 -10
  14. data/features/area.feature +35 -35
  15. data/features/async.feature +30 -30
  16. data/features/audio.feature +68 -68
  17. data/features/button.feature +88 -87
  18. data/features/canvas.feature +37 -37
  19. data/features/check_box.feature +55 -55
  20. data/features/div.feature +45 -45
  21. data/features/element.feature +322 -322
  22. data/features/file_field.feature +40 -40
  23. data/features/form.feature +43 -43
  24. data/features/frames.feature +75 -75
  25. data/features/generic_elements.feature +29 -29
  26. data/features/gxt_table_extension.feature +24 -24
  27. data/features/headings.feature +97 -97
  28. data/features/hidden_field.feature +45 -45
  29. data/features/html/async.html +36 -36
  30. data/features/html/double_click.html +12 -12
  31. data/features/html/failure.html +7 -7
  32. data/features/html/frame_1.html +17 -17
  33. data/features/html/frame_2.html +15 -15
  34. data/features/html/frame_3.html +14 -14
  35. data/features/html/frames.html +12 -12
  36. data/features/html/hover.html +11 -11
  37. data/features/html/iframes.html +12 -12
  38. data/features/html/indexed_property.html +51 -51
  39. data/features/html/modal.html +17 -17
  40. data/features/html/modal_1.html +37 -37
  41. data/features/html/modal_2.html +26 -26
  42. data/features/html/multi_elements.html +144 -144
  43. data/features/html/nested_elements.html +77 -77
  44. data/features/html/nested_frame_2.html +11 -11
  45. data/features/html/nested_frame_3.html +14 -14
  46. data/features/html/nested_frames.html +10 -10
  47. data/features/html/static_elements.html +233 -226
  48. data/features/html/success.html +7 -7
  49. data/features/html/sun.html +7 -7
  50. data/features/image.feature +50 -50
  51. data/features/indexed_property.feature +97 -97
  52. data/features/javascript.feature +27 -27
  53. data/features/label.feature +46 -46
  54. data/features/link.feature +52 -52
  55. data/features/list_item.feature +36 -36
  56. data/features/modal_dialog.feature +15 -15
  57. data/features/multi_elements.feature +486 -486
  58. data/features/nested_elements.feature +117 -117
  59. data/features/ordered_list.feature +56 -56
  60. data/features/page_level_actions.feature +90 -90
  61. data/features/paragraph.feature +35 -35
  62. data/features/radio_button.feature +58 -58
  63. data/features/radio_button_collinson.feature +12 -58
  64. data/features/radio_button_group.feature +29 -29
  65. data/features/sample-app/public/jquery-1.3.2.js +4376 -4376
  66. data/features/sample-app/public/jquery.html +30 -30
  67. data/features/sample-app/public/prototype-1.6.0.3.js +4319 -4319
  68. data/features/sample-app/public/prototype.html +35 -35
  69. data/features/sample-app/sample_app.rb +35 -35
  70. data/features/select_list.feature +86 -86
  71. data/features/span.feature +37 -37
  72. data/features/step_definitions/accessor_steps.rb +60 -60
  73. data/features/step_definitions/area_steps.rb +19 -19
  74. data/features/step_definitions/async_steps.rb +83 -83
  75. data/features/step_definitions/audio_steps.rb +27 -27
  76. data/features/step_definitions/button_steps.rb +43 -43
  77. data/features/step_definitions/canvas_steps.rb +15 -15
  78. data/features/step_definitions/check_box_steps.rb +35 -35
  79. data/features/step_definitions/div_steps.rb +19 -19
  80. data/features/step_definitions/element_steps.rb +266 -266
  81. data/features/step_definitions/file_field_steps.rb +19 -19
  82. data/features/step_definitions/form_steps.rb +18 -18
  83. data/features/step_definitions/frames_steps.rb +159 -159
  84. data/features/step_definitions/generic_element_steps.rb +31 -31
  85. data/features/step_definitions/gxt_table_steps.rb +58 -58
  86. data/features/step_definitions/headings_steps.rb +12 -12
  87. data/features/step_definitions/hidden_field_steps.rb +26 -26
  88. data/features/step_definitions/image_steps.rb +27 -27
  89. data/features/step_definitions/indexed_property_steps.rb +128 -128
  90. data/features/step_definitions/javascript_steps.rb +52 -52
  91. data/features/step_definitions/label_steps.rb +19 -19
  92. data/features/step_definitions/link_steps.rb +40 -40
  93. data/features/step_definitions/list_item_steps.rb +19 -19
  94. data/features/step_definitions/modal_dialog_steps.rb +62 -62
  95. data/features/step_definitions/multi_elements_steps.rb +528 -528
  96. data/features/step_definitions/nested_elements_steps.rb +212 -212
  97. data/features/step_definitions/ordered_list_steps.rb +23 -23
  98. data/features/step_definitions/page_level_actions_steps.rb +135 -135
  99. data/features/step_definitions/page_traversal_steps.rb +4 -4
  100. data/features/step_definitions/paragraph_steps.rb +28 -28
  101. data/features/step_definitions/radio_button_collinson_steps.rb +2 -46
  102. data/features/step_definitions/radio_button_group_steps.rb +35 -35
  103. data/features/step_definitions/radio_button_steps.rb +26 -46
  104. data/features/step_definitions/select_list_steps.rb +65 -65
  105. data/features/step_definitions/span_steps.rb +19 -19
  106. data/features/step_definitions/table_cell_steps.rb +14 -14
  107. data/features/step_definitions/table_steps.rb +66 -66
  108. data/features/step_definitions/text_area_steps.rb +34 -34
  109. data/features/step_definitions/text_field_steps.rb +35 -35
  110. data/features/step_definitions/unordered_list_steps.rb +23 -23
  111. data/features/step_definitions/video_steps.rb +45 -45
  112. data/features/support/ajax_text_environment.rb +26 -26
  113. data/features/support/env.rb +8 -8
  114. data/features/support/hooks.rb +8 -8
  115. data/features/support/page.rb +370 -364
  116. data/features/support/persistent_browser.rb +70 -70
  117. data/features/support/targets/firefox14_osx.rb +6 -6
  118. data/features/support/targets/firefox14_windows7.rb +6 -6
  119. data/features/support/url_helper.rb +57 -57
  120. data/features/table.feature +114 -114
  121. data/features/table_cell.feature +45 -45
  122. data/features/text_area.feature +51 -51
  123. data/features/text_field.feature +70 -70
  124. data/features/unordered_list.feature +56 -56
  125. data/features/video.feature +73 -73
  126. data/lib/page-object.rb +408 -408
  127. data/lib/page-object/accessors.rb +1313 -1313
  128. data/lib/page-object/core_ext/string.rb +4 -4
  129. data/lib/page-object/element_locators.rb +21 -21
  130. data/lib/page-object/elements.rb +59 -59
  131. data/lib/page-object/elements/area.rb +31 -31
  132. data/lib/page-object/elements/audio.rb +9 -9
  133. data/lib/page-object/elements/button.rb +35 -35
  134. data/lib/page-object/elements/canvas.rb +23 -23
  135. data/lib/page-object/elements/check_box.rb +37 -37
  136. data/lib/page-object/elements/div.rb +19 -19
  137. data/lib/page-object/elements/element.rb +226 -226
  138. data/lib/page-object/elements/file_field.rb +38 -38
  139. data/lib/page-object/elements/form.rb +36 -36
  140. data/lib/page-object/elements/heading.rb +15 -15
  141. data/lib/page-object/elements/hidden_field.rb +22 -22
  142. data/lib/page-object/elements/image.rb +36 -36
  143. data/lib/page-object/elements/label.rb +36 -36
  144. data/lib/page-object/elements/link.rb +46 -46
  145. data/lib/page-object/elements/list_item.rb +19 -19
  146. data/lib/page-object/elements/media.rb +45 -45
  147. data/lib/page-object/elements/option.rb +10 -10
  148. data/lib/page-object/elements/ordered_list.rb +50 -50
  149. data/lib/page-object/elements/paragraph.rb +9 -9
  150. data/lib/page-object/elements/radio_button.rb +37 -37
  151. data/lib/page-object/elements/select_list.rb +42 -42
  152. data/lib/page-object/elements/span.rb +19 -19
  153. data/lib/page-object/elements/table.rb +68 -68
  154. data/lib/page-object/elements/table_cell.rb +28 -28
  155. data/lib/page-object/elements/table_row.rb +50 -50
  156. data/lib/page-object/elements/text_area.rb +38 -38
  157. data/lib/page-object/elements/text_field.rb +42 -42
  158. data/lib/page-object/elements/unordered_list.rb +51 -51
  159. data/lib/page-object/elements/video.rb +18 -18
  160. data/lib/page-object/indexed_properties.rb +36 -36
  161. data/lib/page-object/javascript/jquery.rb +14 -14
  162. data/lib/page-object/javascript/prototype.rb +14 -14
  163. data/lib/page-object/javascript/yui.rb +18 -18
  164. data/lib/page-object/javascript_framework_facade.rb +78 -78
  165. data/lib/page-object/loads_platform.rb +26 -26
  166. data/lib/page-object/locator_generator.rb +129 -129
  167. data/lib/page-object/nested_elements.rb +17 -17
  168. data/lib/page-object/page_factory.rb +108 -108
  169. data/lib/page-object/page_populator.rb +92 -92
  170. data/lib/page-object/platforms.rb +18 -18
  171. data/lib/page-object/platforms/selenium_webdriver.rb +17 -17
  172. data/lib/page-object/platforms/selenium_webdriver/button.rb +14 -14
  173. data/lib/page-object/platforms/selenium_webdriver/check_box.rb +29 -29
  174. data/lib/page-object/platforms/selenium_webdriver/element.rb +291 -291
  175. data/lib/page-object/platforms/selenium_webdriver/file_field.rb +16 -16
  176. data/lib/page-object/platforms/selenium_webdriver/form.rb +16 -16
  177. data/lib/page-object/platforms/selenium_webdriver/image.rb +28 -28
  178. data/lib/page-object/platforms/selenium_webdriver/label.rb +17 -18
  179. data/lib/page-object/platforms/selenium_webdriver/link.rb +23 -23
  180. data/lib/page-object/platforms/selenium_webdriver/ordered_list.rb +39 -39
  181. data/lib/page-object/platforms/selenium_webdriver/page_object.rb +1136 -1136
  182. data/lib/page-object/platforms/selenium_webdriver/radio_button.rb +22 -22
  183. data/lib/page-object/platforms/selenium_webdriver/select_list.rb +93 -93
  184. data/lib/page-object/platforms/selenium_webdriver/surrogate_selenium_element.rb +42 -42
  185. data/lib/page-object/platforms/selenium_webdriver/table.rb +42 -42
  186. data/lib/page-object/platforms/selenium_webdriver/table_row.rb +43 -43
  187. data/lib/page-object/platforms/selenium_webdriver/text_area.rb +17 -17
  188. data/lib/page-object/platforms/selenium_webdriver/text_field.rb +17 -17
  189. data/lib/page-object/platforms/selenium_webdriver/unordered_list.rb +39 -39
  190. data/lib/page-object/platforms/watir_webdriver.rb +18 -18
  191. data/lib/page-object/platforms/watir_webdriver/check_box.rb +29 -29
  192. data/lib/page-object/platforms/watir_webdriver/element.rb +249 -249
  193. data/lib/page-object/platforms/watir_webdriver/file_field.rb +16 -16
  194. data/lib/page-object/platforms/watir_webdriver/form.rb +16 -16
  195. data/lib/page-object/platforms/watir_webdriver/image.rb +22 -22
  196. data/lib/page-object/platforms/watir_webdriver/label.rb +17 -18
  197. data/lib/page-object/platforms/watir_webdriver/link.rb +15 -15
  198. data/lib/page-object/platforms/watir_webdriver/ordered_list.rb +35 -35
  199. data/lib/page-object/platforms/watir_webdriver/page_object.rb +1029 -1029
  200. data/lib/page-object/platforms/watir_webdriver/radio_button.rb +22 -22
  201. data/lib/page-object/platforms/watir_webdriver/select_list.rb +74 -74
  202. data/lib/page-object/platforms/watir_webdriver/table.rb +38 -38
  203. data/lib/page-object/platforms/watir_webdriver/table_row.rb +37 -37
  204. data/lib/page-object/platforms/watir_webdriver/text_area.rb +23 -23
  205. data/lib/page-object/platforms/watir_webdriver/text_field.rb +16 -16
  206. data/lib/page-object/platforms/watir_webdriver/unordered_list.rb +36 -36
  207. data/lib/page-object/version.rb +4 -4
  208. data/lib/page-object/widgets.rb +133 -133
  209. data/meeane-page-object.gemspec +32 -32
  210. data/spec/page-object/element_locators_spec.rb +1065 -1065
  211. data/spec/page-object/elements/area_spec.rb +45 -45
  212. data/spec/page-object/elements/button_spec.rb +50 -50
  213. data/spec/page-object/elements/canvas_spec.rb +40 -40
  214. data/spec/page-object/elements/check_box_spec.rb +49 -49
  215. data/spec/page-object/elements/div_spec.rb +28 -28
  216. data/spec/page-object/elements/element_spec.rb +114 -114
  217. data/spec/page-object/elements/file_field_spec.rb +39 -39
  218. data/spec/page-object/elements/form_spec.rb +28 -28
  219. data/spec/page-object/elements/heading_spec.rb +48 -48
  220. data/spec/page-object/elements/hidden_field_spec.rb +28 -28
  221. data/spec/page-object/elements/image_spec.rb +66 -66
  222. data/spec/page-object/elements/label_spec.rb +29 -29
  223. data/spec/page-object/elements/link_spec.rb +49 -49
  224. data/spec/page-object/elements/list_item_spec.rb +28 -28
  225. data/spec/page-object/elements/nested_element_spec.rb +254 -254
  226. data/spec/page-object/elements/option_spec.rb +11 -11
  227. data/spec/page-object/elements/ordered_list_spec.rb +94 -94
  228. data/spec/page-object/elements/paragraph_spec.rb +28 -28
  229. data/spec/page-object/elements/select_list_spec.rb +142 -142
  230. data/spec/page-object/elements/selenium/radio_button_spec.rb +44 -44
  231. data/spec/page-object/elements/selenium/text_field_spec.rb +49 -49
  232. data/spec/page-object/elements/selenium_element_spec.rb +172 -172
  233. data/spec/page-object/elements/span_spec.rb +26 -26
  234. data/spec/page-object/elements/table_cell_spec.rb +21 -21
  235. data/spec/page-object/elements/table_row_spec.rb +70 -70
  236. data/spec/page-object/elements/table_spec.rb +98 -98
  237. data/spec/page-object/elements/text_area_spec.rb +39 -39
  238. data/spec/page-object/elements/unordered_list_spec.rb +95 -95
  239. data/spec/page-object/elements/watir_element_spec.rb +142 -142
  240. data/spec/page-object/javascript_framework_facade_spec.rb +61 -61
  241. data/spec/page-object/loads_platform_spec.rb +53 -53
  242. data/spec/page-object/page-object_spec.rb +405 -405
  243. data/spec/page-object/page_factory_spec.rb +256 -256
  244. data/spec/page-object/page_populator_spec.rb +122 -122
  245. data/spec/page-object/platforms/selenium_webdriver/selenium_page_object_spec.rb +68 -68
  246. data/spec/page-object/platforms/selenium_webdriver_spec.rb +28 -28
  247. data/spec/page-object/platforms/watir_webdriver/watir_page_object_spec.rb +29 -29
  248. data/spec/page-object/platforms/watir_webdriver_spec.rb +9 -9
  249. data/spec/page-object/selenium_accessors_spec.rb +589 -589
  250. data/spec/page-object/watir_accessors_spec.rb +1107 -1107
  251. data/spec/page-object/widget_spec.rb +226 -226
  252. data/spec/spec_helper.rb +44 -44
  253. metadata +193 -43
data/Gemfile CHANGED
@@ -1,13 +1,13 @@
1
- source "http://rubygems.org"
2
-
3
- # adding rake so travis-ci will build properly
4
- gem 'rake'
5
- gem 'fuubar'
6
- gem 'fuubar-cucumber'
7
- gem 'rb-fsevent', :require => false if RUBY_PLATFORM =~ /darwin/i
8
- gem 'growl'
9
- gem 'guard-rspec'
10
- gem 'guard-cucumber'
11
- gem 'net-http-persistent'
12
-
13
- gemspec
1
+ source "http://rubygems.org"
2
+
3
+ # adding rake so travis-ci will build properly
4
+ gem 'rake'
5
+ gem 'fuubar'
6
+ gem 'fuubar-cucumber'
7
+ gem 'rb-fsevent', :require => false if RUBY_PLATFORM =~ /darwin/i
8
+ gem 'growl'
9
+ gem 'guard-rspec'
10
+ gem 'guard-cucumber'
11
+ gem 'net-http-persistent'
12
+
13
+ gemspec
data/Guardfile CHANGED
@@ -1,20 +1,20 @@
1
- # A sample Guardfile
2
- # More info at https://github.com/guard/guard#readme
3
-
4
-
5
- guard :rspec, cmd: 'rspec --color --format Fuubar' do
6
- watch(%r{^spec/.+_spec\.rb$})
7
- watch(%r{^lib/(.+)\.rb$}) { |m| "spec/#{m[1]}_spec.rb" }
8
- watch(%r{^lib/page-object/platforms/(.+)/.+\.rb$}) do |m|
9
- ["spec/page-object/platforms/#{m[1]}/", "spec/page-object/page-object_spec.rb"]
10
- end
11
- watch('spec/spec_helper.rb') { "spec" }
12
- end
13
-
14
- guard 'cucumber', notification: true, all_after_pass: false, cli: '--profile focus' do
15
- watch(%r{^features/.+\.feature$})
16
- watch(%r{^features/support/.+$}) { "features" }
17
- watch(%r{^features/step_definitions/(.+)_steps\.rb$}) { |m| Dir[File.join("**/#{m[1]}.feature")][0] || 'features' }
18
- watch(%r{^lib/.+\.rb$}) { "features" }
19
- watch(%r{^cucumber.yml$}) { "features" }
20
- end
1
+ # A sample Guardfile
2
+ # More info at https://github.com/guard/guard#readme
3
+
4
+
5
+ guard :rspec, cmd: 'rspec --color --format Fuubar' do
6
+ watch(%r{^spec/.+_spec\.rb$})
7
+ watch(%r{^lib/(.+)\.rb$}) { |m| "spec/#{m[1]}_spec.rb" }
8
+ watch(%r{^lib/page-object/platforms/(.+)/.+\.rb$}) do |m|
9
+ ["spec/page-object/platforms/#{m[1]}/", "spec/page-object/page-object_spec.rb"]
10
+ end
11
+ watch('spec/spec_helper.rb') { "spec" }
12
+ end
13
+
14
+ guard 'cucumber', notification: true, all_after_pass: false, cli: '--profile focus' do
15
+ watch(%r{^features/.+\.feature$})
16
+ watch(%r{^features/support/.+$}) { "features" }
17
+ watch(%r{^features/step_definitions/(.+)_steps\.rb$}) { |m| Dir[File.join("**/#{m[1]}.feature")][0] || 'features' }
18
+ watch(%r{^lib/.+\.rb$}) { "features" }
19
+ watch(%r{^cucumber.yml$}) { "features" }
20
+ end
data/LICENSE CHANGED
@@ -1,20 +1,20 @@
1
- Copyright (c) 2011-2012 Jeff Morgan
2
-
3
- Permission is hereby granted, free of charge, to any person obtaining
4
- a copy of this software and associated documentation files (the
5
- "Software"), to deal in the Software without restriction, including
6
- without limitation the rights to use, copy, modify, merge, publish,
7
- distribute, sublicense, and/or sell copies of the Software, and to
8
- permit persons to whom the Software is furnished to do so, subject to
9
- the following conditions:
10
-
11
- The above copyright notice and this permission notice shall be
12
- included in all copies or substantial portions of the Software.
13
-
14
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
- LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
- OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
- WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
1
+ Copyright (c) 2011-2012 Jeff Morgan
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md CHANGED
@@ -69,7 +69,7 @@ When you include this module numerous methods are added to your class that allow
69
69
  class LoginPage
70
70
  include PageObject
71
71
 
72
- _(:username, :id => 'username')
72
+ text_field(:username, :id => 'username')
73
73
  text_field(:password, :id => 'password')
74
74
  button(:login, :id => 'login')
75
75
  end
data/Rakefile CHANGED
@@ -1,35 +1,35 @@
1
- require 'rubygems'
2
- require 'bundler'
3
- require 'rspec/core/rake_task'
4
- require 'cucumber'
5
- require 'cucumber/rake/task'
6
-
7
- Bundler::GemHelper.install_tasks
8
-
9
- RSpec::Core::RakeTask.new(:spec) do |spec|
10
- spec.ruby_opts = "-I lib:spec"
11
- spec.pattern = 'spec/**/*_spec.rb'
12
- end
13
- task :spec
14
-
15
- namespace :features do
16
- Cucumber::Rake::Task.new(:watir_webdriver, "Run features with Watir") do |t|
17
- t.profile = "watir_webdriver"
18
- end
19
-
20
- Cucumber::Rake::Task.new(:selenium_webdriver, "Run features with Selenium") do |t|
21
- t.profile = "selenium_webdriver"
22
- end
23
-
24
- desc 'Run all features'
25
- task :all => [:watir_webdriver, :selenium_webdriver]
26
- end
27
-
28
- desc 'Run all specs and cukes'
29
- task :test => ['spec', 'features:all']
30
-
31
- task :lib do
32
- $LOAD_PATH.unshift(File.expand_path("lib", File.dirname(__FILE__)))
33
- end
34
-
35
- task :default => :test
1
+ require 'rubygems'
2
+ require 'bundler'
3
+ require 'rspec/core/rake_task'
4
+ require 'cucumber'
5
+ require 'cucumber/rake/task'
6
+
7
+ Bundler::GemHelper.install_tasks
8
+
9
+ RSpec::Core::RakeTask.new(:spec) do |spec|
10
+ spec.ruby_opts = "-I lib:spec"
11
+ spec.pattern = 'spec/**/*_spec.rb'
12
+ end
13
+ task :spec
14
+
15
+ namespace :features do
16
+ Cucumber::Rake::Task.new(:watir_webdriver, "Run features with Watir") do |t|
17
+ t.profile = "watir_webdriver"
18
+ end
19
+
20
+ Cucumber::Rake::Task.new(:selenium_webdriver, "Run features with Selenium") do |t|
21
+ t.profile = "selenium_webdriver"
22
+ end
23
+
24
+ desc 'Run all features'
25
+ task :all => [:watir_webdriver, :selenium_webdriver]
26
+ end
27
+
28
+ desc 'Run all specs and cukes'
29
+ task :test => ['spec', 'features:all']
30
+
31
+ task :lib do
32
+ $LOAD_PATH.unshift(File.expand_path("lib", File.dirname(__FILE__)))
33
+ end
34
+
35
+ task :default => :test
data/cucumber.yml CHANGED
@@ -1,10 +1,10 @@
1
- <%
2
- std_opts = "--no-source --color --format pretty" # Cucumber::Formatter::Fuubar"
3
- %>
4
-
5
- default: DRIVER=WATIR <%= std_opts %> --tags ~@selenium_only
6
- watir_webdriver: DRIVER=WATIR <%= std_opts %> --tags ~@selenium_only
7
- selenium_webdriver: DRIVER=SELENIUM <%= std_opts %> --tags ~@watir_only
8
- focus: DRIVER=WATIR <%= std_opts %> --tags ~@selenium_only --tags @focus
9
- #focus: DRIVER=SELENIUM <%= std_opts %> --tags ~@watir_only --tags @focus
10
-
1
+ <%
2
+ std_opts = "--no-source --color --format pretty" # Cucumber::Formatter::Fuubar"
3
+ %>
4
+
5
+ default: DRIVER=WATIR <%= std_opts %> --tags ~@selenium_only
6
+ watir_webdriver: DRIVER=WATIR <%= std_opts %> --tags ~@selenium_only
7
+ selenium_webdriver: DRIVER=SELENIUM <%= std_opts %> --tags ~@watir_only
8
+ focus: DRIVER=WATIR <%= std_opts %> --tags ~@selenium_only --tags @focus
9
+ #focus: DRIVER=SELENIUM <%= std_opts %> --tags ~@watir_only --tags @focus
10
+
@@ -1,35 +1,35 @@
1
- Feature: Area
2
-
3
- Background:
4
- Given I am on the static elements page
5
-
6
- Scenario: Retrieve an area element
7
- When I retrieve the area element
8
- Then I should know it exists
9
- And I should know it is visible
10
-
11
- Scenario Outline: Locating areas on the page
12
- When I search for the area by "<search_by>"
13
- Then I should be able to click the area
14
-
15
- Examples:
16
- | search_by |
17
- | id |
18
- | class |
19
- | name |
20
- | xpath |
21
- | index |
22
- | css |
23
-
24
- Scenario: Getting the coordinates for the area
25
- When I retrieve the area element
26
- Then I should see the coordinates are "0,0,82,126"
27
-
28
- Scenario: Getting the shape for the area
29
- When I retrieve the area element
30
- Then I should see the shape is "rect"
31
-
32
- Scenario: Getting the href from the area
33
- When I retrieve the area element
34
- Then I should see the href is "sun.html"
35
-
1
+ Feature: Area
2
+
3
+ Background:
4
+ Given I am on the static elements page
5
+
6
+ Scenario: Retrieve an area element
7
+ When I retrieve the area element
8
+ Then I should know it exists
9
+ And I should know it is visible
10
+
11
+ Scenario Outline: Locating areas on the page
12
+ When I search for the area by "<search_by>"
13
+ Then I should be able to click the area
14
+
15
+ Examples:
16
+ | search_by |
17
+ | id |
18
+ | class |
19
+ | name |
20
+ | xpath |
21
+ | index |
22
+ | css |
23
+
24
+ Scenario: Getting the coordinates for the area
25
+ When I retrieve the area element
26
+ Then I should see the coordinates are "0,0,82,126"
27
+
28
+ Scenario: Getting the shape for the area
29
+ When I retrieve the area element
30
+ Then I should see the shape is "rect"
31
+
32
+ Scenario: Getting the href from the area
33
+ When I retrieve the area element
34
+ Then I should see the href is "sun.html"
35
+
@@ -1,30 +1,30 @@
1
- Feature: Handling Asynch calls
2
-
3
- Scenario: Link element methods
4
- Given I am on the static elements page
5
- When I retrieve a link element
6
- Then I should be able to wait until it is present
7
- And I should be able to wait until it is visible
8
- And I should be able to wait until it is not visible
9
- And I should be able to wait until a block returns true
10
-
11
- Scenario: Click a button when it is visible
12
- Given I am on the async elements page
13
- When I make the button invisible
14
- Then I should be able to click it when it becomses visible
15
-
16
- Scenario: Wait until something is not visible
17
- Given I am on the async elements page
18
- Then I should be able to wait until the button becomes invisible
19
-
20
- Scenario: Wait for an element to appear on the page
21
- Given I am on the async elements page
22
- When I add a button a few seconds from now
23
- Then I should be able to click it when it gets added
24
-
25
- Scenario: Wait for an element to disappear from the page
26
- Given I am on the async elements page
27
- When I add a button a few seconds from now
28
- And I remove a button a few seconds from now
29
- Then I should not be able to find the button
30
-
1
+ Feature: Handling Asynch calls
2
+
3
+ Scenario: Link element methods
4
+ Given I am on the static elements page
5
+ When I retrieve a link element
6
+ Then I should be able to wait until it is present
7
+ And I should be able to wait until it is visible
8
+ And I should be able to wait until it is not visible
9
+ And I should be able to wait until a block returns true
10
+
11
+ Scenario: Click a button when it is visible
12
+ Given I am on the async elements page
13
+ When I make the button invisible
14
+ Then I should be able to click it when it becomses visible
15
+
16
+ Scenario: Wait until something is not visible
17
+ Given I am on the async elements page
18
+ Then I should be able to wait until the button becomes invisible
19
+
20
+ Scenario: Wait for an element to appear on the page
21
+ Given I am on the async elements page
22
+ When I add a button a few seconds from now
23
+ Then I should be able to click it when it gets added
24
+
25
+ Scenario: Wait for an element to disappear from the page
26
+ Given I am on the async elements page
27
+ When I add a button a few seconds from now
28
+ And I remove a button a few seconds from now
29
+ Then I should not be able to find the button
30
+
@@ -1,68 +1,68 @@
1
- Feature: Support for the audio element
2
-
3
- Background:
4
- Given I am on the static elements page
5
-
6
- Scenario: finding an audio element
7
- When I retrieve the audio element
8
- Then I should know it exists
9
- And I should know it is visible
10
-
11
- Scenario Outline: Locating an audio element on the page
12
- When I search for the audio element by "<search_by>"
13
- Then I should know it is visible
14
-
15
- Examples:
16
- | search_by |
17
- | id |
18
- | class |
19
- | name |
20
- | xpath |
21
- | index |
22
- | css |
23
-
24
- Scenario Outline: Locating audios using multiple parameters
25
- When I search for the audio element by "<param1>" and "<param2>"
26
- Then I should know it is visible
27
-
28
- Examples:
29
- | param1 | param2 |
30
- | class | index |
31
- | name | index |
32
-
33
- Scenario: Should know if it is autoplay
34
- When I retrieve the audio element
35
- Then I should know the audio is not autoplay
36
-
37
- Scenario: Should know if the controls are displayed
38
- When I retrieve the audio element
39
- Then I should know that the controls are displayed
40
-
41
- Scenario: Should know if it is paused
42
- When I retrieve the audio element
43
- Then I should know that the audio is paused
44
-
45
- Scenario: Should know its duration
46
- When I retrieve the audio element
47
- Then I should know that the duration is greater than 74 seconds
48
-
49
- Scenario: Should know its volume
50
- When I retrieve the audio element
51
- Then I should know that its volume is 1
52
-
53
- Scenario: Should know if it has ended
54
- When I retrieve the audio element
55
- Then I should know that it has not ended
56
-
57
- Scenario: Should know if it is seeking
58
- When I retrieve the audio element
59
- Then I should know that it is not seeking
60
-
61
- Scenario: Should know if it is in a loop
62
- When I retrieve the audio element
63
- Then I should know that it is not in a loop
64
-
65
- Scenario: Should know if it is muted
66
- When I retrieve the audio element
67
- Then I should know that it is muted
68
-
1
+ Feature: Support for the audio element
2
+
3
+ Background:
4
+ Given I am on the static elements page
5
+
6
+ Scenario: finding an audio element
7
+ When I retrieve the audio element
8
+ Then I should know it exists
9
+ And I should know it is visible
10
+
11
+ Scenario Outline: Locating an audio element on the page
12
+ When I search for the audio element by "<search_by>"
13
+ Then I should know it is visible
14
+
15
+ Examples:
16
+ | search_by |
17
+ | id |
18
+ | class |
19
+ | name |
20
+ | xpath |
21
+ | index |
22
+ | css |
23
+
24
+ Scenario Outline: Locating audios using multiple parameters
25
+ When I search for the audio element by "<param1>" and "<param2>"
26
+ Then I should know it is visible
27
+
28
+ Examples:
29
+ | param1 | param2 |
30
+ | class | index |
31
+ | name | index |
32
+
33
+ Scenario: Should know if it is autoplay
34
+ When I retrieve the audio element
35
+ Then I should know the audio is not autoplay
36
+
37
+ Scenario: Should know if the controls are displayed
38
+ When I retrieve the audio element
39
+ Then I should know that the controls are displayed
40
+
41
+ Scenario: Should know if it is paused
42
+ When I retrieve the audio element
43
+ Then I should know that the audio is paused
44
+
45
+ Scenario: Should know its duration
46
+ When I retrieve the audio element
47
+ Then I should know that the duration is greater than 74 seconds
48
+
49
+ Scenario: Should know its volume
50
+ When I retrieve the audio element
51
+ Then I should know that its volume is 1
52
+
53
+ Scenario: Should know if it has ended
54
+ When I retrieve the audio element
55
+ Then I should know that it has not ended
56
+
57
+ Scenario: Should know if it is seeking
58
+ When I retrieve the audio element
59
+ Then I should know that it is not seeking
60
+
61
+ Scenario: Should know if it is in a loop
62
+ When I retrieve the audio element
63
+ Then I should know that it is not in a loop
64
+
65
+ Scenario: Should know if it is muted
66
+ When I retrieve the audio element
67
+ Then I should know that it is muted
68
+