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,78 @@
1
+ module Selenium
2
+ module RSpec
3
+ module Reporting
4
+
5
+ class FilePathStrategy
6
+ attr_reader :final_report_file_path
7
+
8
+ REPORT_DEFAULT_FILE_PATH = File.join(Dir::tmpdir, "selenium_test_report", "index.html")
9
+
10
+ def initialize(final_report_file_path)
11
+ @final_report_file_path = final_report_file_path || REPORT_DEFAULT_FILE_PATH
12
+ @relative_dir = nil
13
+ end
14
+
15
+ def base_report_dir
16
+ @base_report_dir ||= File.dirname(File.expand_path(@final_report_file_path))
17
+ end
18
+
19
+ def relative_dir
20
+ return @relative_dir if @relative_dir
21
+
22
+ file_name_without_extension = File.basename(@final_report_file_path).sub(/\.[^\.]*$/, "")
23
+ @relative_dir ||= "resources/" + file_name_without_extension
24
+ end
25
+
26
+ def relative_file_path_for_html_capture(example)
27
+ "#{relative_dir}/example_#{example.reporting_uid}.html"
28
+ end
29
+
30
+ def relative_file_path_for_system_screenshot(example)
31
+ "#{relative_dir}/example_#{example.reporting_uid}_system_screenshot.png"
32
+ end
33
+
34
+ def relative_file_path_for_page_screenshot(example)
35
+ "#{relative_dir}/example_#{example.reporting_uid}_page_screenshot.png"
36
+ end
37
+
38
+ def relative_file_path_for_remote_control_logs(example)
39
+ "#{relative_dir}/example_#{example.reporting_uid}_remote_control.log"
40
+ end
41
+
42
+ def relative_file_path_for_browser_network_traffic(example)
43
+ "#{relative_dir}/example_#{example.reporting_uid}_browser_network_traffic.log"
44
+ end
45
+
46
+ def file_path_for_html_capture(example)
47
+ file_path relative_file_path_for_html_capture(example)
48
+ end
49
+
50
+ def file_path_for_system_screenshot(example)
51
+ file_path relative_file_path_for_system_screenshot(example)
52
+ end
53
+
54
+ def file_path_for_page_screenshot(example)
55
+ file_path relative_file_path_for_page_screenshot(example)
56
+ end
57
+
58
+ def file_path_for_remote_control_logs(example)
59
+ file_path relative_file_path_for_remote_control_logs(example)
60
+ end
61
+
62
+ def file_path_for_browser_network_traffic(example)
63
+ file_path relative_file_path_for_browser_network_traffic(example)
64
+ end
65
+
66
+ def file_path(relative_file_path)
67
+ the_file_path = base_report_dir + "/" + relative_file_path
68
+ parent_dir = File.dirname(the_file_path)
69
+ FileUtils.mkdir_p(parent_dir) unless File.directory?(parent_dir)
70
+ the_file_path
71
+ end
72
+
73
+
74
+ end
75
+
76
+ end
77
+ end
78
+ end
@@ -0,0 +1,123 @@
1
+ module Selenium
2
+ module RSpec
3
+ module Reporting
4
+
5
+ class HtmlReport
6
+
7
+ PLACEHOLDER = "<<placeholder>>"
8
+
9
+ def initialize(file_path_strategy)
10
+ @file_path_strategy = file_path_strategy
11
+ end
12
+
13
+ def self.inject_placeholder(content)
14
+ content + Selenium::RSpec::Reporting::HtmlReport::PLACEHOLDER
15
+ end
16
+
17
+ def replace_placeholder_with_system_state_content(result, example)
18
+ result.gsub! PLACEHOLDER, logs_and_screenshot_sections(example)
19
+ end
20
+
21
+ def logs_and_screenshot_sections(example)
22
+ dom_id = "example_" + example.reporting_uid
23
+ system_screenshot_url = @file_path_strategy.relative_file_path_for_system_screenshot(example)
24
+ page_screenshot_url = @file_path_strategy.relative_file_path_for_page_screenshot(example)
25
+ snapshot_url = @file_path_strategy.relative_file_path_for_html_capture(example)
26
+ remote_control_logs_url = @file_path_strategy.relative_file_path_for_remote_control_logs(example)
27
+
28
+ html = ""
29
+ if File.exists? @file_path_strategy.file_path_for_html_capture(example)
30
+ html << toggable_section(dom_id, :id => "snapshot", :url=> snapshot_url, :name => "Dynamic HTML Snapshot")
31
+ end
32
+ if File.exists? @file_path_strategy.file_path_for_remote_control_logs(example)
33
+ html << toggable_section(dom_id, :id => "rc_logs", :url=> remote_control_logs_url, :name => "Remote Control Logs")
34
+ end
35
+ if File.exists? @file_path_strategy.file_path_for_page_screenshot(example)
36
+ html << toggable_image_section(dom_id, :id => "page_screenshot", :name => "Page Screenshot", :url => page_screenshot_url)
37
+ end
38
+ if File.exists? @file_path_strategy.file_path_for_system_screenshot(example)
39
+ html << toggable_image_section(dom_id, :id => "system_screenshot", :name => "System Screenshot", :url => system_screenshot_url)
40
+ end
41
+
42
+ return html
43
+ end
44
+
45
+ def self.append_javascript(global_scripts)
46
+ global_scripts + <<-EOF
47
+ function toggleVisilibility(id, description) {
48
+ var section;
49
+ var link;
50
+
51
+ section = document.getElementById(id);
52
+ link = document.getElementById(id + "_link");
53
+
54
+ if (section.style.display == "block") {
55
+ section.style.display = "none"
56
+ link.innerHTML = "Show " + description
57
+ } else {
58
+ section.style.display = "block"
59
+ link.innerHTML = "Hide " + description
60
+ }
61
+ }
62
+ EOF
63
+ end
64
+
65
+ def self.append_css(global_styles)
66
+ global_styles + <<-EOF
67
+
68
+ div.rspec-report textarea {
69
+ width: 100%;
70
+ }
71
+
72
+ div.rspec-report .dyn-source {
73
+ background: #FFFFEE none repeat scroll 0%;
74
+ border:1px dotted black;
75
+ color: #000000;
76
+ display: none;
77
+ margin: 0.5em 2em;
78
+ padding: 0.5em;
79
+ }
80
+
81
+ EOF
82
+ end
83
+
84
+ def toggable_section(dom_id, options)
85
+ <<-EOS
86
+
87
+ <div>[
88
+ <a id="#{dom_id}_#{options[:id]}_link"
89
+ href=\"javascript:toggleVisilibility('#{dom_id}_#{options[:id]}', '#{options[:name]}')\">Show #{options[:name]}</a>
90
+ ]</div>
91
+ <br/><br/>
92
+ <div id="#{dom_id}_#{options[:id]}" class="dyn-source">
93
+ <a href="#{options[:url]}">Full screen</a><br/><br/>
94
+ <iframe src="#{options[:url]}" width="100%" height="600px" ></iframe>
95
+ </div>
96
+
97
+ EOS
98
+ end
99
+
100
+ def toggable_image_section(dom_id, options)
101
+ <<-EOS
102
+
103
+ <div>[<a id="#{dom_id}_#{options[:id]}_link" href="javascript:toggleVisilibility('#{dom_id}_#{options[:id]}', '#{options[:name]}');">Show #{options[:name]}</a>]</div>
104
+ <br/>
105
+ <div id="#{dom_id}_#{options[:id]}" style="display: none">
106
+ <a href="#{options[:url]}">
107
+ <img width="80%" src="#{options[:url]}" />
108
+ </a>
109
+ </div>
110
+ <br/>
111
+
112
+ EOS
113
+ end
114
+
115
+ def report_header
116
+ super + "\n<script type=\"text/javascript\">moveProgressBar('100.0');</script>"
117
+ end
118
+
119
+ end
120
+ end
121
+
122
+ end
123
+ end
@@ -0,0 +1,87 @@
1
+ #
2
+ # Explicit requires in this file so that we can invoke RSpec runner with a
3
+ # single:
4
+ # --require 'lib/selenium/rspec/reporting/selenium_test_report_formatter'
5
+ #
6
+ require "digest/md5"
7
+ require "base64"
8
+ require 'tmpdir'
9
+ require "rubygems"
10
+ gem "rspec"
11
+ require "spec"
12
+ require 'spec/runner/formatter/html_formatter'
13
+ require File.expand_path(File.dirname(__FILE__) + "/file_path_strategy")
14
+ require File.expand_path(File.dirname(__FILE__) + "/system_capture")
15
+ require File.expand_path(File.dirname(__FILE__) + "/html_report")
16
+
17
+ module Selenium
18
+ module RSpec
19
+
20
+ class SeleniumTestReportFormatter < Spec::Runner::Formatter::HtmlFormatter
21
+
22
+ def initialize(options, output)
23
+ super
24
+ raise "Unexpected output type #{output.inspect}" unless output.kind_of?(String)
25
+ @@file_path_strategy = Selenium::RSpec::Reporting::FilePathStrategy.new(output)
26
+ end
27
+
28
+ def start(example_count)
29
+ super
30
+ # ensure there's at least 1 example group header (normally 0 with deep_test)
31
+ # prevents js and html validity errors
32
+ example_group = Object.new
33
+ def example_group.description; ""; end
34
+ example_group_started example_group
35
+ end
36
+
37
+ def move_progress
38
+ # we don't have current_example_number, and we don't really care about the progress bar
39
+ end
40
+
41
+ def extra_failure_content(failure)
42
+ Selenium::RSpec::Reporting::HtmlReport.inject_placeholder(super)
43
+ end
44
+
45
+ def example_pending(example_proxy, message, deprecated_pending_location=nil)
46
+ super
47
+ end
48
+
49
+ def example_failed(example, counter, failure)
50
+ old_output = @output
51
+ @output = StringIO.new
52
+ super
53
+
54
+ result = @output.string
55
+ report = Selenium::RSpec::Reporting::HtmlReport.new(@@file_path_strategy)
56
+ report.replace_placeholder_with_system_state_content(result, example)
57
+ old_output.puts result
58
+ old_output.flush
59
+ ensure
60
+ @output = old_output
61
+ end
62
+
63
+ # Should be called from config.after(:each) in spec helper
64
+ def self.capture_system_state(selenium_driver, example)
65
+ system_capture = Selenium::RSpec::Reporting::SystemCapture.new(selenium_driver, example, file_path_strategy)
66
+ system_capture.capture_system_state
67
+ end
68
+
69
+ def global_scripts
70
+ Selenium::RSpec::Reporting::HtmlReport.append_javascript(super)
71
+ end
72
+
73
+ def global_styles
74
+ Selenium::RSpec::Reporting::HtmlReport.append_css(super)
75
+ end
76
+
77
+ def self.file_path_strategy
78
+ ### HACK ####
79
+ # When running with DeepTest the class instance variable could not have been set
80
+ # For now you must set the env variable before launching the tests. We need to revisit the way DeepTest
81
+ # and RSpec reporting work for a proper fix.
82
+ @@file_path_strategy ||= Selenium::RSpec::Reporting::FilePathStrategy.new(ENV["SELENIUM_TEST_REPORT_FILE"])
83
+ end
84
+
85
+ end
86
+ end
87
+ end
@@ -0,0 +1,72 @@
1
+ module Selenium
2
+ module RSpec
3
+ module Reporting
4
+
5
+ class SystemCapture
6
+
7
+ def initialize(selenium_driver, example, file_path_strategy)
8
+ @selenium_driver = selenium_driver
9
+ @example = example
10
+ @file_path_strategy = file_path_strategy
11
+ end
12
+
13
+ def capture_system_state
14
+ # Selenium RC seems to 'freeze' every so often when calling
15
+ # getHTMLSource, especially when DeepTest timeout is low, I need to investigate...
16
+ # Set deeptest :timeout_in_seconds => 30 to see it happen
17
+ begin
18
+ retrieve_remote_control_logs
19
+ rescue Exception => e
20
+ #STDERR.puts "WARNING: Could not retrieve remote control logs: #{e}"
21
+ end
22
+ begin
23
+ capture_html_snapshot
24
+ rescue Exception => e
25
+ #STDERR.puts "WARNING: Could not capture HTML snapshot: #{e}"
26
+ end
27
+ begin
28
+ capture_page_screenshot
29
+ rescue Exception => e
30
+ #STDERR.puts "WARNING: Could not capture page screenshot: #{e}"
31
+ end
32
+ begin
33
+ capture_system_screenshot
34
+ rescue Exception => e
35
+ #STDERR.puts "WARNING: Could not capture system screenshot: #{e}"
36
+ end
37
+ end
38
+
39
+ def capture_html_snapshot
40
+ # Skipping HTML Snapshot retrieval, if there is no current Selenium session
41
+ return unless @selenium_driver.session_started?
42
+
43
+ html = @selenium_driver.get_html_source
44
+ File.open(@file_path_strategy.file_path_for_html_capture(@example), "w") { |f| f.write html }
45
+ end
46
+
47
+ def capture_system_screenshot
48
+ @selenium_driver.window_maximize if @selenium_driver.session_started?
49
+
50
+ encodedImage = @selenium_driver.capture_screenshot_to_string
51
+ pngImage = Base64.decode64(encodedImage)
52
+ File.open(@file_path_strategy.file_path_for_system_screenshot(@example), "wb") { |f| f.write pngImage }
53
+ end
54
+
55
+ def capture_page_screenshot
56
+ return unless @selenium_driver.chrome_backend? && @selenium_driver.session_started?
57
+
58
+ encodedImage = @selenium_driver.capture_entire_page_screenshot_to_string("")
59
+ pngImage = Base64.decode64(encodedImage)
60
+ File.open(@file_path_strategy.file_path_for_page_screenshot(@example), "wb") { |f| f.write pngImage }
61
+ end
62
+
63
+ def retrieve_remote_control_logs
64
+ logs = @selenium_driver.retrieve_last_remote_control_logs
65
+ File.open(@file_path_strategy.file_path_for_remote_control_logs(@example), "w") { |f| f.write logs }
66
+ end
67
+
68
+ end
69
+
70
+ end
71
+ end
72
+ end
@@ -0,0 +1,96 @@
1
+ require "rubygems"
2
+ gem "rspec"
3
+ require 'spec'
4
+ require 'spec/example/example_group'
5
+
6
+ #
7
+ # Monkey-patch RSpec Example Group so that we can track whether an
8
+ # example already failed or not in an after(:each) block
9
+ #
10
+ # Useful to only capture Selenium screenshots when a test fails
11
+ #
12
+ # * Changed execution_error to be an instance variable (in lieu of
13
+ # a local variable).
14
+ #
15
+ # * Introduced an unique id (example_uid) that is the same for
16
+ # a real Example (passed in after(:each) when screenshot is
17
+ # taken) as well as the corresponding ExampleProxy
18
+ # (passed to the HTML formatter). This unique id gives us
19
+ # a way to correlate file names between generation and
20
+ # reporting time.
21
+ #
22
+ module Spec
23
+ module Example
24
+ module ExampleMethods
25
+
26
+ attr_reader :execution_error
27
+
28
+ remove_method :execute
29
+ def execute(run_options, instance_variables) # :nodoc:
30
+ @_proxy.options[:actual_example] = self
31
+
32
+ run_options.reporter.example_started(@_proxy)
33
+ set_instance_variables_from_hash(instance_variables)
34
+
35
+ @execution_error = nil
36
+ Timeout.timeout(run_options.timeout) do
37
+ begin
38
+ before_each_example
39
+ instance_eval(&@_implementation)
40
+ rescue Exception => e
41
+ @execution_error ||= e
42
+ end
43
+ begin
44
+ after_each_example
45
+ rescue Exception => e
46
+ @execution_error ||= e
47
+ end
48
+ end
49
+
50
+ run_options.reporter.example_finished(@_proxy.update(description), @execution_error)
51
+ success = @execution_error.nil? || ExamplePendingError === @execution_error
52
+ end
53
+
54
+ def actual_failure?
55
+ case execution_error
56
+ when nil
57
+ false
58
+ when Spec::Example::ExamplePendingError,
59
+ Spec::Example::PendingExampleFixedError,
60
+ Spec::Example::NoDescriptionError
61
+ false
62
+ else
63
+ true
64
+ end
65
+ end
66
+
67
+ def reporting_uid
68
+ # backtrace is not reliable anymore using the implementation proc
69
+ Digest::MD5.hexdigest @_implementation.inspect
70
+ end
71
+
72
+ def pending_for_browsers(*browser_regexps, &block)
73
+ actual_browser = selenium_driver.browser_string
74
+ match_browser_regexps = browser_regexps.inject(false) do |match, regexp|
75
+ match ||= actual_browser =~ Regexp.new(regexp.source, Regexp::IGNORECASE)
76
+ end
77
+ if match_browser_regexps
78
+ pending "#{actual_browser.gsub(/\*/, '').capitalize} does not support this feature yet"
79
+ else
80
+ yield
81
+ end
82
+ end
83
+
84
+ end
85
+
86
+ class ExampleProxy
87
+
88
+ def reporting_uid
89
+ options[:actual_example].reporting_uid
90
+ end
91
+
92
+ end
93
+
94
+ end
95
+ end
96
+