selenium-rspec-dsl 1.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (236) hide show
  1. data/common/shared/common.rb +167 -0
  2. data/config/aggregate_reports.rb +124 -0
  3. data/config/array_extension.rb +13 -0
  4. data/config/multi_process_behaviour_runner.rb +50 -0
  5. data/config/selenium-setup.rb +32 -0
  6. data/config/site_config.rb +8 -0
  7. data/sites/button.rb +31 -0
  8. data/sites/buttonAjax.rb +14 -0
  9. data/sites/buttonJQuery.rb +26 -0
  10. data/sites/buttonMultiWindow.rb +99 -0
  11. data/sites/buttonNonLoad.rb +11 -0
  12. data/sites/checkbox.rb +22 -0
  13. data/sites/checkboxExtjs.rb +10 -0
  14. data/sites/checkboxGwt.rb +24 -0
  15. data/sites/dropdown.rb +28 -0
  16. data/sites/dropdownAjax.rb +40 -0
  17. data/sites/dropdownExtjs.rb +32 -0
  18. data/sites/dropdownJQuery.rb +40 -0
  19. data/sites/dropdownLoad.rb +25 -0
  20. data/sites/element.rb +172 -0
  21. data/sites/form.rb +7 -0
  22. data/sites/image.rb +7 -0
  23. data/sites/label.rb +32 -0
  24. data/sites/link.rb +32 -0
  25. data/sites/linkMultiWindow.rb +160 -0
  26. data/sites/linkNonLoad.rb +11 -0
  27. data/sites/listbox.rb +16 -0
  28. data/sites/page.rb +16 -0
  29. data/sites/panel.rb +7 -0
  30. data/sites/radiobutton.rb +10 -0
  31. data/sites/tabPanel.rb +7 -0
  32. data/sites/table.rb +48 -0
  33. data/sites/tableExtjs.rb +42 -0
  34. data/sites/test/googleResults_screen.rb +15 -0
  35. data/sites/test/googleSearch_screen.rb +27 -0
  36. data/sites/textbox.rb +16 -0
  37. data/sites/tree.rb +7 -0
  38. data/sites/treeGwt.rb +32 -0
  39. data/spec/spec.opts +6 -0
  40. data/spec/spec_helper.rb +40 -0
  41. data/spec/test/testPass_spec.rb +36 -0
  42. data/spec/test/testPending_spec.rb +13 -0
  43. data/vendor/selenium-client-1.2.17/README.markdown +328 -0
  44. data/vendor/selenium-client-1.2.17/examples/rspec/google_spec.rb +41 -0
  45. data/vendor/selenium-client-1.2.17/examples/script/google.rb +25 -0
  46. data/vendor/selenium-client-1.2.17/examples/testunit/google_test.rb +39 -0
  47. data/vendor/selenium-client-1.2.17/lib/nautilus/shell.rb +32 -0
  48. data/vendor/selenium-client-1.2.17/lib/selenium.rb +14 -0
  49. data/vendor/selenium-client-1.2.17/lib/selenium/client.rb +27 -0
  50. data/vendor/selenium-client-1.2.17/lib/selenium/client/base.rb +118 -0
  51. data/vendor/selenium-client-1.2.17/lib/selenium/client/driver.rb +11 -0
  52. data/vendor/selenium-client-1.2.17/lib/selenium/client/extensions.rb +118 -0
  53. data/vendor/selenium-client-1.2.17/lib/selenium/client/generated_driver.rb +1711 -0
  54. data/vendor/selenium-client-1.2.17/lib/selenium/client/idiomatic.rb +488 -0
  55. data/vendor/selenium-client-1.2.17/lib/selenium/client/javascript_expression_builder.rb +116 -0
  56. data/vendor/selenium-client-1.2.17/lib/selenium/client/javascript_frameworks/jquery.rb +13 -0
  57. data/vendor/selenium-client-1.2.17/lib/selenium/client/javascript_frameworks/prototype.rb +13 -0
  58. data/vendor/selenium-client-1.2.17/lib/selenium/client/protocol.rb +96 -0
  59. data/vendor/selenium-client-1.2.17/lib/selenium/client/selenium_helper.rb +34 -0
  60. data/vendor/selenium-client-1.2.17/lib/selenium/command_error.rb +4 -0
  61. data/vendor/selenium-client-1.2.17/lib/selenium/protocol_error.rb +4 -0
  62. data/vendor/selenium-client-1.2.17/lib/selenium/rake/default_tasks.rb +16 -0
  63. data/vendor/selenium-client-1.2.17/lib/selenium/rake/remote_control_start_task.rb +70 -0
  64. data/vendor/selenium-client-1.2.17/lib/selenium/rake/remote_control_stop_task.rb +44 -0
  65. data/vendor/selenium-client-1.2.17/lib/selenium/rake/tasks.rb +6 -0
  66. data/vendor/selenium-client-1.2.17/lib/selenium/remote_control/remote_control.rb +33 -0
  67. data/vendor/selenium-client-1.2.17/lib/selenium/rspec/reporting/file_path_strategy.rb +78 -0
  68. data/vendor/selenium-client-1.2.17/lib/selenium/rspec/reporting/html_report.rb +123 -0
  69. data/vendor/selenium-client-1.2.17/lib/selenium/rspec/reporting/selenium_test_report_formatter.rb +87 -0
  70. data/vendor/selenium-client-1.2.17/lib/selenium/rspec/reporting/system_capture.rb +72 -0
  71. data/vendor/selenium-client-1.2.17/lib/selenium/rspec/rspec_extensions.rb +96 -0
  72. data/vendor/selenium-client-1.2.17/lib/selenium/rspec/spec_helper.rb +35 -0
  73. data/vendor/selenium-client-1.2.17/lib/tcp_socket_extension.rb +32 -0
  74. data/vendor/selenium-client-1.2.17/test/all_unit_tests.rb +3 -0
  75. data/vendor/selenium-grid-1.0.4/Capfile +107 -0
  76. data/vendor/selenium-grid-1.0.4/README +10 -0
  77. data/vendor/selenium-grid-1.0.4/Rakefile +190 -0
  78. data/vendor/selenium-grid-1.0.4/build.xml +182 -0
  79. data/vendor/selenium-grid-1.0.4/doc/resources/Multiple Environments Demo Setup.svg +518 -0
  80. data/vendor/selenium-grid-1.0.4/doc/resources/Multiple Machine Demo Setup.svg +371 -0
  81. data/vendor/selenium-grid-1.0.4/doc/resources/Rakefile +18 -0
  82. data/vendor/selenium-grid-1.0.4/doc/resources/Requesting a Specific Environment.svg +576 -0
  83. data/vendor/selenium-grid-1.0.4/doc/resources/Selenium Grid Setup.svg +539 -0
  84. data/vendor/selenium-grid-1.0.4/doc/resources/Selenium Grid.css +68 -0
  85. data/vendor/selenium-grid-1.0.4/doc/resources/Traditional Selenium Setup.svg +295 -0
  86. data/vendor/selenium-grid-1.0.4/doc/website/Rakefile +37 -0
  87. data/vendor/selenium-grid-1.0.4/doc/website/diagrams/Multiple Environment Demo Setup - Small.png +0 -0
  88. data/vendor/selenium-grid-1.0.4/doc/website/diagrams/Multiple Environment Demo Setup.png +0 -0
  89. data/vendor/selenium-grid-1.0.4/doc/website/diagrams/Multiple Machine Demo Setup - Small.png +0 -0
  90. data/vendor/selenium-grid-1.0.4/doc/website/diagrams/Multiple Machine Demo Setup.png +0 -0
  91. data/vendor/selenium-grid-1.0.4/doc/website/diagrams/Requesting a Specific Environment - Small.png +0 -0
  92. data/vendor/selenium-grid-1.0.4/doc/website/diagrams/Requesting a Specific Environment.png +0 -0
  93. data/vendor/selenium-grid-1.0.4/doc/website/diagrams/Selenium Grid Logo.graffle +1015 -0
  94. data/vendor/selenium-grid-1.0.4/doc/website/diagrams/Selenium Grid Setup - Small.png +0 -0
  95. data/vendor/selenium-grid-1.0.4/doc/website/diagrams/Selenium Grid Setup.png +0 -0
  96. data/vendor/selenium-grid-1.0.4/doc/website/diagrams/Traditional Selenium Setup - Small.png +0 -0
  97. data/vendor/selenium-grid-1.0.4/doc/website/diagrams/Traditional Selenium Setup.png +0 -0
  98. data/vendor/selenium-grid-1.0.4/doc/website/faq.markdown +686 -0
  99. data/vendor/selenium-grid-1.0.4/doc/website/images/ant_version_osx_screenshot.png +0 -0
  100. data/vendor/selenium-grid-1.0.4/doc/website/images/ant_version_win_screenshot.png +0 -0
  101. data/vendor/selenium-grid-1.0.4/doc/website/images/background_better.png +0 -0
  102. data/vendor/selenium-grid-1.0.4/doc/website/images/background_feedback.png +0 -0
  103. data/vendor/selenium-grid-1.0.4/doc/website/images/background_participate.png +0 -0
  104. data/vendor/selenium-grid-1.0.4/doc/website/images/background_start_tracks.png +0 -0
  105. data/vendor/selenium-grid-1.0.4/doc/website/images/background_started.png +0 -0
  106. data/vendor/selenium-grid-1.0.4/doc/website/images/check_path_osx_screenshot.png +0 -0
  107. data/vendor/selenium-grid-1.0.4/doc/website/images/check_path_win_screenshot.png +0 -0
  108. data/vendor/selenium-grid-1.0.4/doc/website/images/dot_profile_editing_osx_screenshot.png +0 -0
  109. data/vendor/selenium-grid-1.0.4/doc/website/images/dot_profile_osx_screenshot.png +0 -0
  110. data/vendor/selenium-grid-1.0.4/doc/website/images/install/linux/linux-ant-install.png +0 -0
  111. data/vendor/selenium-grid-1.0.4/doc/website/images/install/linux/linux-ant-profile-update.png +0 -0
  112. data/vendor/selenium-grid-1.0.4/doc/website/images/install/linux/linux-ant-verify.png +0 -0
  113. data/vendor/selenium-grid-1.0.4/doc/website/images/install/linux/linux-ant-version.png +0 -0
  114. data/vendor/selenium-grid-1.0.4/doc/website/images/install/linux/linux-java-version.png +0 -0
  115. data/vendor/selenium-grid-1.0.4/doc/website/images/install/linux/linux-navigate-path.png +0 -0
  116. data/vendor/selenium-grid-1.0.4/doc/website/images/install/linux/linux-selenium-install.png +0 -0
  117. data/vendor/selenium-grid-1.0.4/doc/website/images/install/linux/linux-selenium-sanity-check.png +0 -0
  118. data/vendor/selenium-grid-1.0.4/doc/website/images/install/win/selenium-check.bmp +0 -0
  119. data/vendor/selenium-grid-1.0.4/doc/website/images/install_ant_osx_screenshot.png +0 -0
  120. data/vendor/selenium-grid-1.0.4/doc/website/images/installing_grid_osx_screenshot.png +0 -0
  121. data/vendor/selenium-grid-1.0.4/doc/website/images/java_version_osx_screenshot.png +0 -0
  122. data/vendor/selenium-grid-1.0.4/doc/website/images/java_version_win_screenshot.png +0 -0
  123. data/vendor/selenium-grid-1.0.4/doc/website/images/sanity_check_osx_screenshot.png +0 -0
  124. data/vendor/selenium-grid-1.0.4/doc/website/images/sanity_check_win_screenshot.png +0 -0
  125. data/vendor/selenium-grid-1.0.4/doc/website/images/selenium-grid-logo-huge-white.png +0 -0
  126. data/vendor/selenium-grid-1.0.4/doc/website/images/selenium-grid-logo-huge.png +0 -0
  127. data/vendor/selenium-grid-1.0.4/doc/website/images/selenium-grid-logo-large.png +0 -0
  128. data/vendor/selenium-grid-1.0.4/doc/website/images/selenium-grid-logo-small.png +0 -0
  129. data/vendor/selenium-grid-1.0.4/doc/website/images/selenium-grid-logo.png +0 -0
  130. data/vendor/selenium-grid-1.0.4/doc/website/images/selenium_grid_logo_large.png +0 -0
  131. data/vendor/selenium-grid-1.0.4/doc/website/images/update_path_win_screenshot.png +0 -0
  132. data/vendor/selenium-grid-1.0.4/doc/website/javascripts/shadedborder.js +267 -0
  133. data/vendor/selenium-grid-1.0.4/doc/website/stylesheets/document.css +82 -0
  134. data/vendor/selenium-grid-1.0.4/doc/website/stylesheets/faq.css +97 -0
  135. data/vendor/selenium-grid-1.0.4/doc/website/stylesheets/home.css +133 -0
  136. data/vendor/selenium-grid-1.0.4/doc/website/stylesheets/openqa.css +72 -0
  137. data/vendor/selenium-grid-1.0.4/doc/website/stylesheets/site.css +74 -0
  138. data/vendor/selenium-grid-1.0.4/examples/ec2/Capfile +276 -0
  139. data/vendor/selenium-grid-1.0.4/examples/ec2/etc/background.png +0 -0
  140. data/vendor/selenium-grid-1.0.4/examples/ec2/etc/background.svg +163 -0
  141. data/vendor/selenium-grid-1.0.4/examples/ec2/lib/selenium_grid/aws/cloud.rb +35 -0
  142. data/vendor/selenium-grid-1.0.4/examples/ec2/lib/selenium_grid/aws/ec2.rb +7 -0
  143. data/vendor/selenium-grid-1.0.4/examples/ec2/lib/selenium_grid/aws/ec2_client.rb +54 -0
  144. data/vendor/selenium-grid-1.0.4/examples/ec2/lib/selenium_grid/aws/hub.rb +22 -0
  145. data/vendor/selenium-grid-1.0.4/examples/ec2/lib/selenium_grid/aws/remote_command.rb +47 -0
  146. data/vendor/selenium-grid-1.0.4/examples/ec2/lib/selenium_grid/aws/server.rb +56 -0
  147. data/vendor/selenium-grid-1.0.4/examples/ec2/test/unit/all_test.rb +2 -0
  148. data/vendor/selenium-grid-1.0.4/examples/ec2/test/unit/cloud_test.rb +27 -0
  149. data/vendor/selenium-grid-1.0.4/examples/ec2/test/unit/ec2_client_test.rb +137 -0
  150. data/vendor/selenium-grid-1.0.4/examples/ec2/test/unit/hub_test.rb +24 -0
  151. data/vendor/selenium-grid-1.0.4/examples/ec2/test/unit/remote_command_test.rb +46 -0
  152. data/vendor/selenium-grid-1.0.4/examples/ec2/test/unit/server_test.rb +22 -0
  153. data/vendor/selenium-grid-1.0.4/examples/ec2/test/unit/test_helper.rb +4 -0
  154. data/vendor/selenium-grid-1.0.4/examples/ec2/vnc_password +1 -0
  155. data/vendor/selenium-grid-1.0.4/examples/java/Java Example.iml +18 -0
  156. data/vendor/selenium-grid-1.0.4/examples/java/build.xml +90 -0
  157. data/vendor/selenium-grid-1.0.4/examples/java/src/com/thoughtworks/selenium/grid/examples/java/GoogleImageTestBase.java +46 -0
  158. data/vendor/selenium-grid-1.0.4/examples/java/src/com/thoughtworks/selenium/grid/examples/java/ParisTest.java +50 -0
  159. data/vendor/selenium-grid-1.0.4/examples/java/src/com/thoughtworks/selenium/grid/examples/java/PerigordTest.java +42 -0
  160. data/vendor/selenium-grid-1.0.4/examples/java/target/classes/com/thoughtworks/selenium/grid/examples/java/GoogleImageTestBase.class +0 -0
  161. data/vendor/selenium-grid-1.0.4/examples/java/target/classes/com/thoughtworks/selenium/grid/examples/java/ParisTest.class +0 -0
  162. data/vendor/selenium-grid-1.0.4/examples/java/target/classes/com/thoughtworks/selenium/grid/examples/java/PerigordTest.class +0 -0
  163. data/vendor/selenium-grid-1.0.4/examples/java/testng-slow.xml +9 -0
  164. data/vendor/selenium-grid-1.0.4/examples/java/testng.xml +9 -0
  165. data/vendor/selenium-grid-1.0.4/examples/ruby/README +66 -0
  166. data/vendor/selenium-grid-1.0.4/examples/ruby/Rakefile +101 -0
  167. data/vendor/selenium-grid-1.0.4/examples/ruby/Ruby Example.iml +17 -0
  168. data/vendor/selenium-grid-1.0.4/examples/ruby/flickr_example.rb +16 -0
  169. data/vendor/selenium-grid-1.0.4/examples/ruby/lib/array_extension.rb +13 -0
  170. data/vendor/selenium-grid-1.0.4/examples/ruby/lib/multi_process_behaviour_runner.rb +28 -0
  171. data/vendor/selenium-grid-1.0.4/examples/ruby/paris_spec.rb +34 -0
  172. data/vendor/selenium-grid-1.0.4/examples/ruby/perigord_spec.rb +22 -0
  173. data/vendor/selenium-grid-1.0.4/examples/ruby/spec_helper.rb +59 -0
  174. data/vendor/selenium-grid-1.0.4/examples/ruby/tmp/resources/test_report/example_04b8969da99c51289f692b41abbf271b_page_screenshot.png +0 -0
  175. data/vendor/selenium-grid-1.0.4/examples/ruby/tmp/resources/test_report/example_04b8969da99c51289f692b41abbf271b_system_screenshot.png +0 -0
  176. data/vendor/selenium-grid-1.0.4/examples/ruby/tmp/resources/test_report/example_280fd974268e3aecb89fbfbee25b5322_page_screenshot.png +0 -0
  177. data/vendor/selenium-grid-1.0.4/examples/ruby/tmp/resources/test_report/example_280fd974268e3aecb89fbfbee25b5322_system_screenshot.png +0 -0
  178. data/vendor/selenium-grid-1.0.4/examples/ruby/tmp/resources/test_report/example_8808fb9026e023f809d50ddc9cf00cd3_page_screenshot.png +0 -0
  179. data/vendor/selenium-grid-1.0.4/examples/ruby/tmp/resources/test_report/example_8808fb9026e023f809d50ddc9cf00cd3_system_screenshot.png +0 -0
  180. data/vendor/selenium-grid-1.0.4/examples/ruby/tmp/resources/test_report/example_94b209474d36add5ba908f308c63aa15_page_screenshot.png +0 -0
  181. data/vendor/selenium-grid-1.0.4/examples/ruby/tmp/resources/test_report/example_94b209474d36add5ba908f308c63aa15_system_screenshot.png +0 -0
  182. data/vendor/selenium-grid-1.0.4/examples/ruby/tmp/resources/test_report/example_a18dd8ce90cb4681d55b2148326ff085_page_screenshot.png +0 -0
  183. data/vendor/selenium-grid-1.0.4/examples/ruby/tmp/resources/test_report/example_a18dd8ce90cb4681d55b2148326ff085_system_screenshot.png +0 -0
  184. data/vendor/selenium-grid-1.0.4/examples/ruby/tmp/resources/test_report/example_b877a400a718a915c95038427389e0d9_page_screenshot.png +0 -0
  185. data/vendor/selenium-grid-1.0.4/examples/ruby/tmp/resources/test_report/example_b877a400a718a915c95038427389e0d9_system_screenshot.png +0 -0
  186. data/vendor/selenium-grid-1.0.4/examples/ruby/tmp/resources/test_report/example_c1c6e8109e89867b52f6e123b8847b85_page_screenshot.png +0 -0
  187. data/vendor/selenium-grid-1.0.4/examples/ruby/tmp/resources/test_report/example_c1c6e8109e89867b52f6e123b8847b85_system_screenshot.png +0 -0
  188. data/vendor/selenium-grid-1.0.4/examples/ruby/tmp/resources/test_report/example_c9e7156818e496f6abb983a9a1725295_page_screenshot.png +0 -0
  189. data/vendor/selenium-grid-1.0.4/examples/ruby/tmp/resources/test_report/example_c9e7156818e496f6abb983a9a1725295_system_screenshot.png +0 -0
  190. data/vendor/selenium-grid-1.0.4/examples/ruby/tmp/resources/test_report/example_d6b2848186a7e4a73e19692c0fab2ae5_page_screenshot.png +0 -0
  191. data/vendor/selenium-grid-1.0.4/examples/ruby/tmp/resources/test_report/example_d6b2848186a7e4a73e19692c0fab2ae5_system_screenshot.png +0 -0
  192. data/vendor/selenium-grid-1.0.4/examples/ruby/tmp/resources/test_report/example_e30337afe445f0b6ebd29ecfaf4cd9f0_page_screenshot.png +0 -0
  193. data/vendor/selenium-grid-1.0.4/examples/ruby/tmp/resources/test_report/example_e30337afe445f0b6ebd29ecfaf4cd9f0_system_screenshot.png +0 -0
  194. data/vendor/selenium-grid-1.0.4/examples/ruby/tmp/resources/test_report/example_edc2da92cbf119e95eae988bb6f80792_page_screenshot.png +0 -0
  195. data/vendor/selenium-grid-1.0.4/examples/ruby/tmp/resources/test_report/example_edc2da92cbf119e95eae988bb6f80792_system_screenshot.png +0 -0
  196. data/vendor/selenium-grid-1.0.4/grid_configuration.yml +46 -0
  197. data/vendor/selenium-grid-1.0.4/lib/build/common-build.xml +228 -0
  198. data/vendor/selenium-grid-1.0.4/lib/ruby/file_extensions.rb +9 -0
  199. data/vendor/selenium-grid-1.0.4/lib/ruby/java/classpath.rb +28 -0
  200. data/vendor/selenium-grid-1.0.4/lib/ruby/java/vm.rb +31 -0
  201. data/vendor/selenium-grid-1.0.4/lib/ruby/s_grid/hub.rb +29 -0
  202. data/vendor/selenium-grid-1.0.4/lib/ruby/s_grid/remote_control.rb +40 -0
  203. data/vendor/selenium-grid-1.0.4/lib/ruby/tcp_socket_extensions.rb +23 -0
  204. data/vendor/selenium-grid-1.0.4/lib/selenium-grid-demo-1.0.4.jar +0 -0
  205. data/vendor/selenium-grid-1.0.4/lib/selenium-grid-demo-standalone-1.0.4.jar +0 -0
  206. data/vendor/selenium-grid-1.0.4/lib/selenium-grid-hub-1.0.4.jar +0 -0
  207. data/vendor/selenium-grid-1.0.4/lib/selenium-grid-hub-standalone-1.0.4.jar +0 -0
  208. data/vendor/selenium-grid-1.0.4/lib/selenium-grid-remote-control-1.0.4.jar +0 -0
  209. data/vendor/selenium-grid-1.0.4/lib/selenium-grid-remote-control-standalone-1.0.4.jar +0 -0
  210. data/vendor/selenium-grid-1.0.4/lib/selenium-grid-tools-1.0.4.jar +0 -0
  211. data/vendor/selenium-grid-1.0.4/lib/selenium-grid-tools-standalone-1.0.4.jar +0 -0
  212. data/vendor/selenium-grid-1.0.4/lib/testng.policy +11 -0
  213. data/vendor/selenium-grid-1.0.4/log/test.txt +1 -0
  214. data/vendor/selenium-grid-1.0.4/project.properties +4 -0
  215. data/vendor/selenium-grid-1.0.4/sample-scripts/kill-rcs.sh +3 -0
  216. data/vendor/selenium-grid-1.0.4/sample-scripts/launch-rc.sh +4 -0
  217. data/vendor/selenium-grid-1.0.4/sample-scripts/launch-rcs.sh +5 -0
  218. data/vendor/selenium-grid-1.0.4/sample-scripts/launch-remote-controls.rb +20 -0
  219. data/vendor/selenium-grid-1.0.4/target/reports/Selenium Grid Demo In Parallel/Command line test.html +218 -0
  220. data/vendor/selenium-grid-1.0.4/target/reports/Selenium Grid Demo In Parallel/classes.html +44 -0
  221. data/vendor/selenium-grid-1.0.4/target/reports/Selenium Grid Demo In Parallel/groups.html +5 -0
  222. data/vendor/selenium-grid-1.0.4/target/reports/Selenium Grid Demo In Parallel/index.html +6 -0
  223. data/vendor/selenium-grid-1.0.4/target/reports/Selenium Grid Demo In Parallel/main.html +2 -0
  224. data/vendor/selenium-grid-1.0.4/target/reports/Selenium Grid Demo In Parallel/methods-alphabetical.html +12 -0
  225. data/vendor/selenium-grid-1.0.4/target/reports/Selenium Grid Demo In Parallel/methods-not-run.html +2 -0
  226. data/vendor/selenium-grid-1.0.4/target/reports/Selenium Grid Demo In Parallel/methods.html +12 -0
  227. data/vendor/selenium-grid-1.0.4/target/reports/Selenium Grid Demo In Parallel/reporter-output.html +1 -0
  228. data/vendor/selenium-grid-1.0.4/target/reports/Selenium Grid Demo In Parallel/testng.xml.html +1 -0
  229. data/vendor/selenium-grid-1.0.4/target/reports/Selenium Grid Demo In Parallel/toc.html +30 -0
  230. data/vendor/selenium-grid-1.0.4/target/reports/emailable-report.html +117 -0
  231. data/vendor/selenium-grid-1.0.4/target/reports/index.html +9 -0
  232. data/vendor/selenium-grid-1.0.4/vendor/commons-logging-1.0.4.jar +0 -0
  233. data/vendor/selenium-grid-1.0.4/vendor/selenium-java-client-driver-1.0.1.jar +0 -0
  234. data/vendor/selenium-grid-1.0.4/vendor/selenium-server-1.0.3.jar +0 -0
  235. data/vendor/selenium-grid-1.0.4/vendor/testng-5.7-jdk15.jar +0 -0
  236. metadata +296 -0
@@ -0,0 +1,167 @@
1
+ module Common
2
+
3
+ def pageUrl
4
+ self.waitForPage
5
+ for wait in 1..40 do
6
+ begin
7
+ url = @selenium_driver.get_location
8
+ if url == nil
9
+ sleep(0.5)
10
+ else
11
+ break
12
+ end
13
+ rescue => e
14
+ #continue
15
+ end
16
+ end
17
+ return url
18
+ end
19
+
20
+ def goToURL(url)
21
+ @selenium_driver.open(url)
22
+ @selenium_driver.wait_for_page_to_load
23
+ end
24
+
25
+ def waitForPage
26
+ @selenium_driver.wait_for_page_to_load
27
+ end
28
+
29
+ def waitForText(text, attempts=40)
30
+ for wait in 1..attempts do
31
+ begin
32
+ if not @selenium_driver.is_text_present(text)
33
+ sleep(0.5)
34
+ else
35
+ break
36
+ end
37
+ rescue => e
38
+ # if exception continue
39
+ end
40
+ end
41
+ end
42
+
43
+ def wait_for_multi_windows(numOfExpectedWindows)
44
+ #sleep(2)
45
+ for wait in 1..40 do
46
+ windows = @selenium_driver.get_all_window_ids()
47
+ if numOfExpectedWindows != windows.length
48
+ sleep(0.5)
49
+ else
50
+ break
51
+ end
52
+ end
53
+
54
+ for wait in 1..10 do
55
+ begin
56
+ window_names = @selenium_driver.get_all_window_names()
57
+ @selenium_driver.select_window("name=#{window_names[numOfExpectedWindows-1]}")
58
+ break
59
+ rescue => e
60
+ sleep(0.5)
61
+ # if exception continue
62
+ end
63
+ end
64
+ end
65
+
66
+ def wait_for_multi_windows_titles(numOfExpectedWindows)
67
+ #sleep(2)
68
+ for wait in 1..40 do
69
+ windows = @selenium_driver.get_all_window_titles()
70
+ if numOfExpectedWindows != windows.length
71
+ sleep(0.5)
72
+ else
73
+ break
74
+ end
75
+ end
76
+
77
+ #windows1 = @selenium_driver.get_all_window_ids()
78
+ #n = 0
79
+ #while n < windows1.length
80
+ # puts "id: " + windows1[n]
81
+ # n += 1
82
+ #end
83
+ #
84
+ #windows2 = @selenium_driver.get_all_window_names()
85
+ #n = 0
86
+ #while n < windows2.length
87
+ # puts "name: " + windows2[n]
88
+ # n += 1
89
+ #end
90
+ #
91
+ #windows3 = @selenium_driver.get_all_window_titles()
92
+ #n = 0
93
+ #while n < windows3.length
94
+ # puts "title: " + windows3[n]
95
+ # n += 1
96
+ #end
97
+
98
+ for wait in 1..10 do
99
+ begin
100
+ window_titles = @selenium_driver.get_all_window_titles()
101
+ @selenium_driver.select_window("title=#{window_titles[numOfExpectedWindows-1]}")
102
+ break
103
+ rescue => e
104
+ sleep(0.5)
105
+ # if exception continue
106
+ end
107
+ end
108
+ end
109
+
110
+ def put_focus_on_parent_window
111
+ @selenium_driver.select_window "null"
112
+ end
113
+
114
+ def close_window
115
+ @selenium_driver.close
116
+ end
117
+
118
+ def remove_all_browser_cookies
119
+ @selenium_driver.delete_all_visible_cookies
120
+ end
121
+
122
+ def refresh_browser
123
+ @selenium_driver.window_focus
124
+ @selenium_driver.refresh
125
+ self.waitForPage
126
+ #sleep(4)
127
+ #@selenium_driver.wait_for_condition("selenium.browserbot.getCurrentWindow()", TIMEOUT)
128
+ end
129
+
130
+ def dragDrop(object_to_be_dragged, object_dragged_to)
131
+ #@selenium_driver.drag_and_drop_to_object(object_to_be_dragged, object_dragged_to)
132
+ @selenium_driver.mouse_down(object_to_be_dragged)
133
+ @selenium_driver.mouse_move(object_dragged_to)
134
+ @selenium_driver.mouse_up(object_to_be_dragged)
135
+ end
136
+
137
+ def isTextPresent(text)
138
+ return @selenium_driver.is_text_present(text)
139
+ end
140
+
141
+ def maximize_browser
142
+ @selenium_driver.window_maximize
143
+ end
144
+
145
+ def clickFirefoxResendButton
146
+ sleep(3)
147
+ @selenium_driver.key_press_native(10)
148
+ @selenium_driver.window_focus
149
+ end
150
+
151
+ def answerFirefoxConfirmation
152
+ sleep(2)
153
+ @selenium_driver.get_confirmation
154
+ end
155
+
156
+ def pageTitle
157
+ return @selenium_driver.get_title
158
+ end
159
+
160
+ def controlKeyDown
161
+ @selenium_driver.control_key_down
162
+ end
163
+
164
+ def controlKeyUp
165
+ @selenium_driver.control_key_up
166
+ end
167
+ end
@@ -0,0 +1,124 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ def parse_header(html)
4
+ html =~ /(.*<div class="results">)/mi
5
+ $1
6
+ end
7
+
8
+ def parse_footer(html)
9
+ html[/<\/div>\s*<\/body>.*/mi]
10
+ end
11
+
12
+ def parse_body(html)
13
+ html =~ /<div class="results">(.*)<\/div>\s*<\/body>/mi
14
+ content = $1
15
+ end
16
+
17
+ body = ""
18
+ header = nil
19
+ footer = nil
20
+ count = 1
21
+ duration = 0
22
+ totalExamples = 0
23
+ totalFailures = 0
24
+ totalPending = 0
25
+ longestDuration = 0
26
+ totalSpecs = 0
27
+ numberOfSpecsFailures = 0
28
+
29
+ ARGV.each do |file|
30
+ lines = IO.readlines(file)
31
+ html = lines.join(' ')
32
+
33
+ # loop corrects color coding in report
34
+ numberOfSpecs = html.scan("class=\"example_group\"").size
35
+ numberOfSpecsFailures += html.scan("Show Dynamic HTML Snapshot").size
36
+ totalSpecs += (numberOfSpecs - 1)
37
+ spec = 1
38
+ while spec <= numberOfSpecs do
39
+ numberOfGroups = html.scan("example_group_#{spec.to_s}").size
40
+ group = 1
41
+ while group <= numberOfGroups
42
+ html = html.gsub("\"example_group_#{spec.to_s}\"", "\"example_group#{spec.to_s}#{group.to_s}#{count.to_s}\"")
43
+ html = html.gsub("('example_group_#{spec.to_s}')", "('example_group#{spec.to_s}#{group.to_s}#{count.to_s}')")
44
+ group += 1
45
+ end
46
+ spec += 1
47
+ end
48
+
49
+
50
+ # updates report with correct duration in header
51
+ startSub = html.rindex("<strong>")
52
+ endSub = html.rindex(" seconds</strong>")
53
+ durationString = html[startSub+8, endSub]
54
+
55
+ if durationString.to_f > longestDuration
56
+ longestDuration = durationString.to_f
57
+ end
58
+
59
+ duration += durationString.to_f
60
+ html = html.gsub(/Finished in <strong>.* seconds<\/strong>/, "Finished in <strong>#{longestDuration.to_s} seconds;</strong> Total Time in <strong>#{duration.to_s} seconds</strong>")
61
+
62
+ # updates report with correct example count in header
63
+ startSub = html.rindex(/innerHTML = ".* examples?/)
64
+ if startSub == nil
65
+ startSub = 0
66
+ end
67
+ endSub = html.rindex(/ examples?, .* failures?/)
68
+ if endSub == nil
69
+ endSub = 0
70
+ end
71
+ examplesString = html[startSub+13, endSub]
72
+ totalExamples += examplesString.to_i
73
+ html = html.gsub(/innerHTML = ".* examples?/, "innerHTML = \"#{totalSpecs.to_s} specs, #{numberOfSpecsFailures.to_s} specs failed, #{totalExamples.to_s} examples")
74
+
75
+ ## updates report with correct failure count in header
76
+ startSub = html.rindex(/ examples, .* failures?/)
77
+ if startSub == nil
78
+ startSub = 0
79
+ end
80
+ endSub = html.rindex(/ failures?/)
81
+ if endSub == nil
82
+ endSub = 0
83
+ end
84
+ failuresString = html[startSub+11, endSub]
85
+ totalFailures += failuresString.to_i
86
+ html = html.gsub(/ examples, .* failures?/, " examples, #{totalFailures.to_s} example failures")
87
+
88
+ if /failures?, .* pending"/.match(html)
89
+ startSub = html.rindex(/failures?, .* pending"/)
90
+ if startSub == nil
91
+ startSub = 0
92
+ end
93
+ endSub = html.rindex(/ pending"/)
94
+ if endSub == nil
95
+ endSub = 0
96
+ end
97
+ pendingString = html[startSub+10, endSub]
98
+ totalPending += pendingString.to_i
99
+ html = html.gsub(/failures?, .* pending/, "failures, #{totalPending.to_s} examples pending")
100
+ else
101
+ html = html.gsub(/failures?/, "failures, #{totalPending.to_s} examples pending")
102
+ end
103
+
104
+ if totalFailures > 0
105
+ #red
106
+ startSub = html.rindex(/pending\";<\/script>/)
107
+ html.insert(startSub+18, "<script type=\"text/javascript\">makeRed('rspec-header');</script>")
108
+ elsif totalPending > 0
109
+ #yellow
110
+ startSub = html.rindex(/pending\";<\/script>/)
111
+ html.insert(startSub+18, "<script type=\"text/javascript\">makeYellow('rspec-header');</script>")
112
+ else
113
+ #green; do nothing
114
+ end
115
+
116
+ header ||= parse_header(html)
117
+ footer ||= parse_footer(html)
118
+ body << parse_body(html).to_s
119
+ count += 1
120
+ end
121
+
122
+ STDOUT.puts header
123
+ STDOUT.puts body
124
+ STDOUT.puts footer
@@ -0,0 +1,13 @@
1
+ module ArrayExtension
2
+
3
+ def /(number_of_buckets)
4
+ buckets = (1..number_of_buckets).collect { [] }
5
+ while self.any? do
6
+ buckets.each do |bucket|
7
+ bucket << self.shift if self.any?
8
+ end
9
+ end
10
+ buckets
11
+ end
12
+
13
+ end
@@ -0,0 +1,50 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/array_extension')
2
+ Array.send :include, ArrayExtension
3
+
4
+ class MultiProcessSpecRunner
5
+
6
+ def initialize(max_concurrent_processes = 10)
7
+ @max_concurrent_processes = max_concurrent_processes
8
+ end
9
+
10
+ def run(spec_files, section='')
11
+ time = Time.new.strftime('%m%d%Y_%H%M')
12
+ concurrent_processes = [ @max_concurrent_processes, spec_files.size ].min
13
+ spec_files_by_process = spec_files / concurrent_processes
14
+ concurrent_processes.times do |i|
15
+ cmd = "spec #{options(i,section)} #{spec_files_by_process[i].join(' ')}"
16
+ puts "Launching #{cmd}"
17
+ exec(cmd) if fork == nil
18
+ end
19
+ success = true
20
+ concurrent_processes.times do |i|
21
+ pid, status = Process.wait2
22
+ success &&= status.exitstatus.zero?
23
+ end
24
+
25
+ script = File.expand_path(File.dirname(__FILE__) + "/aggregate_reports.rb")
26
+ reports = Dir[screenshot_dir + "/*_Test_Report-*.html"].collect {|report| %{"#{report}"} }.join(' ')
27
+ puts "reports: #{reports}"
28
+ command = %{ruby "#{script}" #{reports} > "#{screenshot_dir}/Aggregated-Selenium-Report.html"}
29
+ sh command
30
+
31
+ #raise "Build failed" unless success
32
+ end
33
+
34
+ protected
35
+
36
+ def options(process_number, section='')
37
+ dir = File.dirname(__FILE__)
38
+
39
+ [ "--require '#{dir}/../vendor/selenium-client-1.2.17/lib/selenium/rspec/reporting/selenium_test_report_formatter'",
40
+ "--format='Selenium::RSpec::SeleniumTestReportFormatter:#{dir}/../doc/#{section}_Test_Report-#{process_number}.html'",
41
+ "--color",
42
+ "--format=progress"
43
+ ].join(" ")
44
+ end
45
+
46
+ def screenshot_dir
47
+ ENV['CC_BUILD_ARTIFACTS'] || File.expand_path(File.dirname(__FILE__) + "/../doc")
48
+ end
49
+
50
+ end
@@ -0,0 +1,32 @@
1
+ require "rubygems"
2
+ require File.dirname(__FILE__) + '/../vendor/selenium-client-1.2.17/lib/selenium'
3
+ gem "rspec"
4
+ require File.dirname(__FILE__) + '/../vendor/selenium-client-1.2.17/lib/selenium/rspec/spec_helper'
5
+ require 'find'
6
+ require 'fileutils'
7
+ require File.dirname(__FILE__) + '/../config/site_config'
8
+
9
+ Dir.glob(File.join(File.dirname(__FILE__), '/../common/**/*.rb')).each {|f| require f }
10
+ Dir.glob(File.join(File.dirname(__FILE__), '/../scripts/**/*.rb')).each {|f| require f }
11
+ Dir.glob(File.join(File.dirname(__FILE__), '/../sites/**/**/*.rb')).each {|f| require f }
12
+ Dir.glob(File.join(File.dirname(__FILE__), '/../sites/**/*.rb')).each {|f| require f }
13
+
14
+ include Common
15
+ include FileUtils
16
+
17
+ def start_selenium_session(site)
18
+ @selenium_driver = Selenium::Client::Driver.new \
19
+ :host => SELENIUM_HOST,
20
+ :port => SELENIUM_PORT,
21
+ :browser => BROWSER,
22
+ :timeout_in_seconds => TIMEOUT_SEC,
23
+ :url => site,
24
+ :highlight_located_element => true
25
+ @selenium_driver.start_new_browser_session
26
+ @selenium_driver.set_speed BROWSER_DELAY
27
+ @@TEST_FAILURE = false
28
+ end
29
+
30
+ def stop_selenium_session
31
+ @selenium_driver.close_current_browser_session
32
+ end
@@ -0,0 +1,8 @@
1
+ ## Test Configuration ###
2
+ SELENIUM_HOST = "localhost"
3
+ SELENIUM_PORT = 4444
4
+ BROWSER = ["*firefox"]
5
+ BROWSER_DELAY = 0 #value is in milliseconds
6
+ TIMEOUT = 180000 #value is in milliseconds
7
+ TIMEOUT_SEC = 180
8
+ LOG_LEVEL = "DEBUG"
@@ -0,0 +1,31 @@
1
+ require File.dirname(__FILE__) + '/element'
2
+
3
+ # Basic Button object.
4
+ # Subclass of Element.
5
+ class Button < Element
6
+ # Type text into object if applicable
7
+ def type(text)
8
+ @selenium.type(@locator,text)
9
+ end
10
+
11
+ # Clicks on object and waits for page to load or refresh
12
+ def click
13
+ begin
14
+ @selenium.click(@locator)
15
+ rescue => e
16
+ sleep(3)
17
+ @selenium.click(@locator)
18
+ end
19
+
20
+ begin
21
+ @selenium.wait_for_page_to_load
22
+ rescue => e
23
+ sleep(2)
24
+ @selenium.wait_for_condition("selenium.browserbot.getCurrentWindow()", TIMEOUT)
25
+ end
26
+
27
+ end
28
+ end
29
+
30
+
31
+
@@ -0,0 +1,14 @@
1
+ require File.dirname(__FILE__) + '/element'
2
+
3
+ class Button_Ajax < Element
4
+ # Clicks on object
5
+ def click
6
+ @selenium.click(@locator)
7
+ begin
8
+ @selenium.wait_for_ajax
9
+ rescue => e
10
+ #continue
11
+ end
12
+ sleep(4)
13
+ end
14
+ end