selenium-rspec-dsl 1.0.2
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.
- data/common/shared/common.rb +167 -0
- data/config/aggregate_reports.rb +124 -0
- data/config/array_extension.rb +13 -0
- data/config/multi_process_behaviour_runner.rb +50 -0
- data/config/selenium-setup.rb +32 -0
- data/config/site_config.rb +8 -0
- data/sites/button.rb +31 -0
- data/sites/buttonAjax.rb +14 -0
- data/sites/buttonJQuery.rb +26 -0
- data/sites/buttonMultiWindow.rb +99 -0
- data/sites/buttonNonLoad.rb +11 -0
- data/sites/checkbox.rb +22 -0
- data/sites/checkboxExtjs.rb +10 -0
- data/sites/checkboxGwt.rb +24 -0
- data/sites/dropdown.rb +28 -0
- data/sites/dropdownAjax.rb +40 -0
- data/sites/dropdownExtjs.rb +32 -0
- data/sites/dropdownJQuery.rb +40 -0
- data/sites/dropdownLoad.rb +25 -0
- data/sites/element.rb +172 -0
- data/sites/form.rb +7 -0
- data/sites/image.rb +7 -0
- data/sites/label.rb +32 -0
- data/sites/link.rb +32 -0
- data/sites/linkMultiWindow.rb +160 -0
- data/sites/linkNonLoad.rb +11 -0
- data/sites/listbox.rb +16 -0
- data/sites/page.rb +16 -0
- data/sites/panel.rb +7 -0
- data/sites/radiobutton.rb +10 -0
- data/sites/tabPanel.rb +7 -0
- data/sites/table.rb +48 -0
- data/sites/tableExtjs.rb +42 -0
- data/sites/test/googleResults_screen.rb +15 -0
- data/sites/test/googleSearch_screen.rb +27 -0
- data/sites/textbox.rb +16 -0
- data/sites/tree.rb +7 -0
- data/sites/treeGwt.rb +32 -0
- data/spec/spec.opts +6 -0
- data/spec/spec_helper.rb +40 -0
- data/spec/test/testPass_spec.rb +36 -0
- data/spec/test/testPending_spec.rb +13 -0
- data/vendor/selenium-client-1.2.17/README.markdown +328 -0
- data/vendor/selenium-client-1.2.17/examples/rspec/google_spec.rb +41 -0
- data/vendor/selenium-client-1.2.17/examples/script/google.rb +25 -0
- data/vendor/selenium-client-1.2.17/examples/testunit/google_test.rb +39 -0
- data/vendor/selenium-client-1.2.17/lib/nautilus/shell.rb +32 -0
- data/vendor/selenium-client-1.2.17/lib/selenium.rb +14 -0
- data/vendor/selenium-client-1.2.17/lib/selenium/client.rb +27 -0
- data/vendor/selenium-client-1.2.17/lib/selenium/client/base.rb +118 -0
- data/vendor/selenium-client-1.2.17/lib/selenium/client/driver.rb +11 -0
- data/vendor/selenium-client-1.2.17/lib/selenium/client/extensions.rb +118 -0
- data/vendor/selenium-client-1.2.17/lib/selenium/client/generated_driver.rb +1711 -0
- data/vendor/selenium-client-1.2.17/lib/selenium/client/idiomatic.rb +488 -0
- data/vendor/selenium-client-1.2.17/lib/selenium/client/javascript_expression_builder.rb +116 -0
- data/vendor/selenium-client-1.2.17/lib/selenium/client/javascript_frameworks/jquery.rb +13 -0
- data/vendor/selenium-client-1.2.17/lib/selenium/client/javascript_frameworks/prototype.rb +13 -0
- data/vendor/selenium-client-1.2.17/lib/selenium/client/protocol.rb +96 -0
- data/vendor/selenium-client-1.2.17/lib/selenium/client/selenium_helper.rb +34 -0
- data/vendor/selenium-client-1.2.17/lib/selenium/command_error.rb +4 -0
- data/vendor/selenium-client-1.2.17/lib/selenium/protocol_error.rb +4 -0
- data/vendor/selenium-client-1.2.17/lib/selenium/rake/default_tasks.rb +16 -0
- data/vendor/selenium-client-1.2.17/lib/selenium/rake/remote_control_start_task.rb +70 -0
- data/vendor/selenium-client-1.2.17/lib/selenium/rake/remote_control_stop_task.rb +44 -0
- data/vendor/selenium-client-1.2.17/lib/selenium/rake/tasks.rb +6 -0
- data/vendor/selenium-client-1.2.17/lib/selenium/remote_control/remote_control.rb +33 -0
- data/vendor/selenium-client-1.2.17/lib/selenium/rspec/reporting/file_path_strategy.rb +78 -0
- data/vendor/selenium-client-1.2.17/lib/selenium/rspec/reporting/html_report.rb +123 -0
- data/vendor/selenium-client-1.2.17/lib/selenium/rspec/reporting/selenium_test_report_formatter.rb +87 -0
- data/vendor/selenium-client-1.2.17/lib/selenium/rspec/reporting/system_capture.rb +72 -0
- data/vendor/selenium-client-1.2.17/lib/selenium/rspec/rspec_extensions.rb +96 -0
- data/vendor/selenium-client-1.2.17/lib/selenium/rspec/spec_helper.rb +35 -0
- data/vendor/selenium-client-1.2.17/lib/tcp_socket_extension.rb +32 -0
- data/vendor/selenium-client-1.2.17/test/all_unit_tests.rb +3 -0
- data/vendor/selenium-grid-1.0.4/Capfile +107 -0
- data/vendor/selenium-grid-1.0.4/README +10 -0
- data/vendor/selenium-grid-1.0.4/Rakefile +190 -0
- data/vendor/selenium-grid-1.0.4/build.xml +182 -0
- data/vendor/selenium-grid-1.0.4/doc/resources/Multiple Environments Demo Setup.svg +518 -0
- data/vendor/selenium-grid-1.0.4/doc/resources/Multiple Machine Demo Setup.svg +371 -0
- data/vendor/selenium-grid-1.0.4/doc/resources/Rakefile +18 -0
- data/vendor/selenium-grid-1.0.4/doc/resources/Requesting a Specific Environment.svg +576 -0
- data/vendor/selenium-grid-1.0.4/doc/resources/Selenium Grid Setup.svg +539 -0
- data/vendor/selenium-grid-1.0.4/doc/resources/Selenium Grid.css +68 -0
- data/vendor/selenium-grid-1.0.4/doc/resources/Traditional Selenium Setup.svg +295 -0
- data/vendor/selenium-grid-1.0.4/doc/website/Rakefile +37 -0
- data/vendor/selenium-grid-1.0.4/doc/website/diagrams/Multiple Environment Demo Setup - Small.png +0 -0
- data/vendor/selenium-grid-1.0.4/doc/website/diagrams/Multiple Environment Demo Setup.png +0 -0
- data/vendor/selenium-grid-1.0.4/doc/website/diagrams/Multiple Machine Demo Setup - Small.png +0 -0
- data/vendor/selenium-grid-1.0.4/doc/website/diagrams/Multiple Machine Demo Setup.png +0 -0
- data/vendor/selenium-grid-1.0.4/doc/website/diagrams/Requesting a Specific Environment - Small.png +0 -0
- data/vendor/selenium-grid-1.0.4/doc/website/diagrams/Requesting a Specific Environment.png +0 -0
- data/vendor/selenium-grid-1.0.4/doc/website/diagrams/Selenium Grid Logo.graffle +1015 -0
- data/vendor/selenium-grid-1.0.4/doc/website/diagrams/Selenium Grid Setup - Small.png +0 -0
- data/vendor/selenium-grid-1.0.4/doc/website/diagrams/Selenium Grid Setup.png +0 -0
- data/vendor/selenium-grid-1.0.4/doc/website/diagrams/Traditional Selenium Setup - Small.png +0 -0
- data/vendor/selenium-grid-1.0.4/doc/website/diagrams/Traditional Selenium Setup.png +0 -0
- data/vendor/selenium-grid-1.0.4/doc/website/faq.markdown +686 -0
- data/vendor/selenium-grid-1.0.4/doc/website/images/ant_version_osx_screenshot.png +0 -0
- data/vendor/selenium-grid-1.0.4/doc/website/images/ant_version_win_screenshot.png +0 -0
- data/vendor/selenium-grid-1.0.4/doc/website/images/background_better.png +0 -0
- data/vendor/selenium-grid-1.0.4/doc/website/images/background_feedback.png +0 -0
- data/vendor/selenium-grid-1.0.4/doc/website/images/background_participate.png +0 -0
- data/vendor/selenium-grid-1.0.4/doc/website/images/background_start_tracks.png +0 -0
- data/vendor/selenium-grid-1.0.4/doc/website/images/background_started.png +0 -0
- data/vendor/selenium-grid-1.0.4/doc/website/images/check_path_osx_screenshot.png +0 -0
- data/vendor/selenium-grid-1.0.4/doc/website/images/check_path_win_screenshot.png +0 -0
- data/vendor/selenium-grid-1.0.4/doc/website/images/dot_profile_editing_osx_screenshot.png +0 -0
- data/vendor/selenium-grid-1.0.4/doc/website/images/dot_profile_osx_screenshot.png +0 -0
- data/vendor/selenium-grid-1.0.4/doc/website/images/install/linux/linux-ant-install.png +0 -0
- data/vendor/selenium-grid-1.0.4/doc/website/images/install/linux/linux-ant-profile-update.png +0 -0
- data/vendor/selenium-grid-1.0.4/doc/website/images/install/linux/linux-ant-verify.png +0 -0
- data/vendor/selenium-grid-1.0.4/doc/website/images/install/linux/linux-ant-version.png +0 -0
- data/vendor/selenium-grid-1.0.4/doc/website/images/install/linux/linux-java-version.png +0 -0
- data/vendor/selenium-grid-1.0.4/doc/website/images/install/linux/linux-navigate-path.png +0 -0
- data/vendor/selenium-grid-1.0.4/doc/website/images/install/linux/linux-selenium-install.png +0 -0
- data/vendor/selenium-grid-1.0.4/doc/website/images/install/linux/linux-selenium-sanity-check.png +0 -0
- data/vendor/selenium-grid-1.0.4/doc/website/images/install/win/selenium-check.bmp +0 -0
- data/vendor/selenium-grid-1.0.4/doc/website/images/install_ant_osx_screenshot.png +0 -0
- data/vendor/selenium-grid-1.0.4/doc/website/images/installing_grid_osx_screenshot.png +0 -0
- data/vendor/selenium-grid-1.0.4/doc/website/images/java_version_osx_screenshot.png +0 -0
- data/vendor/selenium-grid-1.0.4/doc/website/images/java_version_win_screenshot.png +0 -0
- data/vendor/selenium-grid-1.0.4/doc/website/images/sanity_check_osx_screenshot.png +0 -0
- data/vendor/selenium-grid-1.0.4/doc/website/images/sanity_check_win_screenshot.png +0 -0
- data/vendor/selenium-grid-1.0.4/doc/website/images/selenium-grid-logo-huge-white.png +0 -0
- data/vendor/selenium-grid-1.0.4/doc/website/images/selenium-grid-logo-huge.png +0 -0
- data/vendor/selenium-grid-1.0.4/doc/website/images/selenium-grid-logo-large.png +0 -0
- data/vendor/selenium-grid-1.0.4/doc/website/images/selenium-grid-logo-small.png +0 -0
- data/vendor/selenium-grid-1.0.4/doc/website/images/selenium-grid-logo.png +0 -0
- data/vendor/selenium-grid-1.0.4/doc/website/images/selenium_grid_logo_large.png +0 -0
- data/vendor/selenium-grid-1.0.4/doc/website/images/update_path_win_screenshot.png +0 -0
- data/vendor/selenium-grid-1.0.4/doc/website/javascripts/shadedborder.js +267 -0
- data/vendor/selenium-grid-1.0.4/doc/website/stylesheets/document.css +82 -0
- data/vendor/selenium-grid-1.0.4/doc/website/stylesheets/faq.css +97 -0
- data/vendor/selenium-grid-1.0.4/doc/website/stylesheets/home.css +133 -0
- data/vendor/selenium-grid-1.0.4/doc/website/stylesheets/openqa.css +72 -0
- data/vendor/selenium-grid-1.0.4/doc/website/stylesheets/site.css +74 -0
- data/vendor/selenium-grid-1.0.4/examples/ec2/Capfile +276 -0
- data/vendor/selenium-grid-1.0.4/examples/ec2/etc/background.png +0 -0
- data/vendor/selenium-grid-1.0.4/examples/ec2/etc/background.svg +163 -0
- data/vendor/selenium-grid-1.0.4/examples/ec2/lib/selenium_grid/aws/cloud.rb +35 -0
- data/vendor/selenium-grid-1.0.4/examples/ec2/lib/selenium_grid/aws/ec2.rb +7 -0
- data/vendor/selenium-grid-1.0.4/examples/ec2/lib/selenium_grid/aws/ec2_client.rb +54 -0
- data/vendor/selenium-grid-1.0.4/examples/ec2/lib/selenium_grid/aws/hub.rb +22 -0
- data/vendor/selenium-grid-1.0.4/examples/ec2/lib/selenium_grid/aws/remote_command.rb +47 -0
- data/vendor/selenium-grid-1.0.4/examples/ec2/lib/selenium_grid/aws/server.rb +56 -0
- data/vendor/selenium-grid-1.0.4/examples/ec2/test/unit/all_test.rb +2 -0
- data/vendor/selenium-grid-1.0.4/examples/ec2/test/unit/cloud_test.rb +27 -0
- data/vendor/selenium-grid-1.0.4/examples/ec2/test/unit/ec2_client_test.rb +137 -0
- data/vendor/selenium-grid-1.0.4/examples/ec2/test/unit/hub_test.rb +24 -0
- data/vendor/selenium-grid-1.0.4/examples/ec2/test/unit/remote_command_test.rb +46 -0
- data/vendor/selenium-grid-1.0.4/examples/ec2/test/unit/server_test.rb +22 -0
- data/vendor/selenium-grid-1.0.4/examples/ec2/test/unit/test_helper.rb +4 -0
- data/vendor/selenium-grid-1.0.4/examples/ec2/vnc_password +1 -0
- data/vendor/selenium-grid-1.0.4/examples/java/Java Example.iml +18 -0
- data/vendor/selenium-grid-1.0.4/examples/java/build.xml +90 -0
- data/vendor/selenium-grid-1.0.4/examples/java/src/com/thoughtworks/selenium/grid/examples/java/GoogleImageTestBase.java +46 -0
- data/vendor/selenium-grid-1.0.4/examples/java/src/com/thoughtworks/selenium/grid/examples/java/ParisTest.java +50 -0
- data/vendor/selenium-grid-1.0.4/examples/java/src/com/thoughtworks/selenium/grid/examples/java/PerigordTest.java +42 -0
- data/vendor/selenium-grid-1.0.4/examples/java/target/classes/com/thoughtworks/selenium/grid/examples/java/GoogleImageTestBase.class +0 -0
- data/vendor/selenium-grid-1.0.4/examples/java/target/classes/com/thoughtworks/selenium/grid/examples/java/ParisTest.class +0 -0
- data/vendor/selenium-grid-1.0.4/examples/java/target/classes/com/thoughtworks/selenium/grid/examples/java/PerigordTest.class +0 -0
- data/vendor/selenium-grid-1.0.4/examples/java/testng-slow.xml +9 -0
- data/vendor/selenium-grid-1.0.4/examples/java/testng.xml +9 -0
- data/vendor/selenium-grid-1.0.4/examples/ruby/README +66 -0
- data/vendor/selenium-grid-1.0.4/examples/ruby/Rakefile +101 -0
- data/vendor/selenium-grid-1.0.4/examples/ruby/Ruby Example.iml +17 -0
- data/vendor/selenium-grid-1.0.4/examples/ruby/flickr_example.rb +16 -0
- data/vendor/selenium-grid-1.0.4/examples/ruby/lib/array_extension.rb +13 -0
- data/vendor/selenium-grid-1.0.4/examples/ruby/lib/multi_process_behaviour_runner.rb +28 -0
- data/vendor/selenium-grid-1.0.4/examples/ruby/paris_spec.rb +34 -0
- data/vendor/selenium-grid-1.0.4/examples/ruby/perigord_spec.rb +22 -0
- data/vendor/selenium-grid-1.0.4/examples/ruby/spec_helper.rb +59 -0
- data/vendor/selenium-grid-1.0.4/examples/ruby/tmp/resources/test_report/example_04b8969da99c51289f692b41abbf271b_page_screenshot.png +0 -0
- data/vendor/selenium-grid-1.0.4/examples/ruby/tmp/resources/test_report/example_04b8969da99c51289f692b41abbf271b_system_screenshot.png +0 -0
- data/vendor/selenium-grid-1.0.4/examples/ruby/tmp/resources/test_report/example_280fd974268e3aecb89fbfbee25b5322_page_screenshot.png +0 -0
- data/vendor/selenium-grid-1.0.4/examples/ruby/tmp/resources/test_report/example_280fd974268e3aecb89fbfbee25b5322_system_screenshot.png +0 -0
- data/vendor/selenium-grid-1.0.4/examples/ruby/tmp/resources/test_report/example_8808fb9026e023f809d50ddc9cf00cd3_page_screenshot.png +0 -0
- data/vendor/selenium-grid-1.0.4/examples/ruby/tmp/resources/test_report/example_8808fb9026e023f809d50ddc9cf00cd3_system_screenshot.png +0 -0
- data/vendor/selenium-grid-1.0.4/examples/ruby/tmp/resources/test_report/example_94b209474d36add5ba908f308c63aa15_page_screenshot.png +0 -0
- data/vendor/selenium-grid-1.0.4/examples/ruby/tmp/resources/test_report/example_94b209474d36add5ba908f308c63aa15_system_screenshot.png +0 -0
- data/vendor/selenium-grid-1.0.4/examples/ruby/tmp/resources/test_report/example_a18dd8ce90cb4681d55b2148326ff085_page_screenshot.png +0 -0
- data/vendor/selenium-grid-1.0.4/examples/ruby/tmp/resources/test_report/example_a18dd8ce90cb4681d55b2148326ff085_system_screenshot.png +0 -0
- data/vendor/selenium-grid-1.0.4/examples/ruby/tmp/resources/test_report/example_b877a400a718a915c95038427389e0d9_page_screenshot.png +0 -0
- data/vendor/selenium-grid-1.0.4/examples/ruby/tmp/resources/test_report/example_b877a400a718a915c95038427389e0d9_system_screenshot.png +0 -0
- data/vendor/selenium-grid-1.0.4/examples/ruby/tmp/resources/test_report/example_c1c6e8109e89867b52f6e123b8847b85_page_screenshot.png +0 -0
- data/vendor/selenium-grid-1.0.4/examples/ruby/tmp/resources/test_report/example_c1c6e8109e89867b52f6e123b8847b85_system_screenshot.png +0 -0
- data/vendor/selenium-grid-1.0.4/examples/ruby/tmp/resources/test_report/example_c9e7156818e496f6abb983a9a1725295_page_screenshot.png +0 -0
- data/vendor/selenium-grid-1.0.4/examples/ruby/tmp/resources/test_report/example_c9e7156818e496f6abb983a9a1725295_system_screenshot.png +0 -0
- data/vendor/selenium-grid-1.0.4/examples/ruby/tmp/resources/test_report/example_d6b2848186a7e4a73e19692c0fab2ae5_page_screenshot.png +0 -0
- data/vendor/selenium-grid-1.0.4/examples/ruby/tmp/resources/test_report/example_d6b2848186a7e4a73e19692c0fab2ae5_system_screenshot.png +0 -0
- data/vendor/selenium-grid-1.0.4/examples/ruby/tmp/resources/test_report/example_e30337afe445f0b6ebd29ecfaf4cd9f0_page_screenshot.png +0 -0
- data/vendor/selenium-grid-1.0.4/examples/ruby/tmp/resources/test_report/example_e30337afe445f0b6ebd29ecfaf4cd9f0_system_screenshot.png +0 -0
- data/vendor/selenium-grid-1.0.4/examples/ruby/tmp/resources/test_report/example_edc2da92cbf119e95eae988bb6f80792_page_screenshot.png +0 -0
- data/vendor/selenium-grid-1.0.4/examples/ruby/tmp/resources/test_report/example_edc2da92cbf119e95eae988bb6f80792_system_screenshot.png +0 -0
- data/vendor/selenium-grid-1.0.4/grid_configuration.yml +46 -0
- data/vendor/selenium-grid-1.0.4/lib/build/common-build.xml +228 -0
- data/vendor/selenium-grid-1.0.4/lib/ruby/file_extensions.rb +9 -0
- data/vendor/selenium-grid-1.0.4/lib/ruby/java/classpath.rb +28 -0
- data/vendor/selenium-grid-1.0.4/lib/ruby/java/vm.rb +31 -0
- data/vendor/selenium-grid-1.0.4/lib/ruby/s_grid/hub.rb +29 -0
- data/vendor/selenium-grid-1.0.4/lib/ruby/s_grid/remote_control.rb +40 -0
- data/vendor/selenium-grid-1.0.4/lib/ruby/tcp_socket_extensions.rb +23 -0
- data/vendor/selenium-grid-1.0.4/lib/selenium-grid-demo-1.0.4.jar +0 -0
- data/vendor/selenium-grid-1.0.4/lib/selenium-grid-demo-standalone-1.0.4.jar +0 -0
- data/vendor/selenium-grid-1.0.4/lib/selenium-grid-hub-1.0.4.jar +0 -0
- data/vendor/selenium-grid-1.0.4/lib/selenium-grid-hub-standalone-1.0.4.jar +0 -0
- data/vendor/selenium-grid-1.0.4/lib/selenium-grid-remote-control-1.0.4.jar +0 -0
- data/vendor/selenium-grid-1.0.4/lib/selenium-grid-remote-control-standalone-1.0.4.jar +0 -0
- data/vendor/selenium-grid-1.0.4/lib/selenium-grid-tools-1.0.4.jar +0 -0
- data/vendor/selenium-grid-1.0.4/lib/selenium-grid-tools-standalone-1.0.4.jar +0 -0
- data/vendor/selenium-grid-1.0.4/lib/testng.policy +11 -0
- data/vendor/selenium-grid-1.0.4/log/test.txt +1 -0
- data/vendor/selenium-grid-1.0.4/project.properties +4 -0
- data/vendor/selenium-grid-1.0.4/sample-scripts/kill-rcs.sh +3 -0
- data/vendor/selenium-grid-1.0.4/sample-scripts/launch-rc.sh +4 -0
- data/vendor/selenium-grid-1.0.4/sample-scripts/launch-rcs.sh +5 -0
- data/vendor/selenium-grid-1.0.4/sample-scripts/launch-remote-controls.rb +20 -0
- data/vendor/selenium-grid-1.0.4/target/reports/Selenium Grid Demo In Parallel/Command line test.html +218 -0
- data/vendor/selenium-grid-1.0.4/target/reports/Selenium Grid Demo In Parallel/classes.html +44 -0
- data/vendor/selenium-grid-1.0.4/target/reports/Selenium Grid Demo In Parallel/groups.html +5 -0
- data/vendor/selenium-grid-1.0.4/target/reports/Selenium Grid Demo In Parallel/index.html +6 -0
- data/vendor/selenium-grid-1.0.4/target/reports/Selenium Grid Demo In Parallel/main.html +2 -0
- data/vendor/selenium-grid-1.0.4/target/reports/Selenium Grid Demo In Parallel/methods-alphabetical.html +12 -0
- data/vendor/selenium-grid-1.0.4/target/reports/Selenium Grid Demo In Parallel/methods-not-run.html +2 -0
- data/vendor/selenium-grid-1.0.4/target/reports/Selenium Grid Demo In Parallel/methods.html +12 -0
- data/vendor/selenium-grid-1.0.4/target/reports/Selenium Grid Demo In Parallel/reporter-output.html +1 -0
- data/vendor/selenium-grid-1.0.4/target/reports/Selenium Grid Demo In Parallel/testng.xml.html +1 -0
- data/vendor/selenium-grid-1.0.4/target/reports/Selenium Grid Demo In Parallel/toc.html +30 -0
- data/vendor/selenium-grid-1.0.4/target/reports/emailable-report.html +117 -0
- data/vendor/selenium-grid-1.0.4/target/reports/index.html +9 -0
- data/vendor/selenium-grid-1.0.4/vendor/commons-logging-1.0.4.jar +0 -0
- data/vendor/selenium-grid-1.0.4/vendor/selenium-java-client-driver-1.0.1.jar +0 -0
- data/vendor/selenium-grid-1.0.4/vendor/selenium-server-1.0.3.jar +0 -0
- data/vendor/selenium-grid-1.0.4/vendor/testng-5.7-jdk15.jar +0 -0
- 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
|
data/vendor/selenium-client-1.2.17/lib/selenium/rspec/reporting/selenium_test_report_formatter.rb
ADDED
|
@@ -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
|
+
|