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,116 @@
|
|
|
1
|
+
module Selenium
|
|
2
|
+
module Client
|
|
3
|
+
|
|
4
|
+
class JavascriptExpressionBuilder
|
|
5
|
+
attr_reader :script
|
|
6
|
+
|
|
7
|
+
def initialize(javascript_framework_name=nil)
|
|
8
|
+
@framework = javascript_framework_for(javascript_framework_name) if javascript_framework_name
|
|
9
|
+
@script = ""
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def append(text)
|
|
13
|
+
@script << text
|
|
14
|
+
self
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def no_pending_ajax_requests
|
|
18
|
+
append window_script("#{@framework.ajax_request_tracker} == 0")
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def no_pending_effects
|
|
22
|
+
append window_script("Effect.Queue.size() == 0")
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
def visible(locator)
|
|
26
|
+
append "selenium.isVisible('#{quote_escaped(locator)}')"
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def not_visible(locator)
|
|
30
|
+
append "!selenium.isVisible('#{quote_escaped(locator)}')"
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def find_element(locator)
|
|
34
|
+
append <<-EOS
|
|
35
|
+
var element;
|
|
36
|
+
|
|
37
|
+
try {
|
|
38
|
+
element = selenium.browserbot.findElement('#{quote_escaped(locator)}');
|
|
39
|
+
} catch(e) {
|
|
40
|
+
element = null;
|
|
41
|
+
}
|
|
42
|
+
EOS
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
def element_value_is(expected_value)
|
|
46
|
+
append "(element != null && element.value == '#{quote_escaped(expected_value)}')"
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
def element_value_is_not(expected_value)
|
|
50
|
+
append "(element == null || element.value != '#{quote_escaped(expected_value)}')"
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
def find_text(pattern, options)
|
|
54
|
+
if options[:element].nil?
|
|
55
|
+
find_text_in_document pattern, options
|
|
56
|
+
else
|
|
57
|
+
find_text_in_element pattern, options
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
self
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
def find_text_in_document(pattern, options)
|
|
64
|
+
js_regexp = case pattern
|
|
65
|
+
when Regexp
|
|
66
|
+
pattern.inspect
|
|
67
|
+
else
|
|
68
|
+
/#{pattern}/.inspect
|
|
69
|
+
end
|
|
70
|
+
append <<-EOS
|
|
71
|
+
var text_match;
|
|
72
|
+
text_match = (null != selenium.browserbot.getCurrentWindow().document.body.innerHTML.match(#{js_regexp}));
|
|
73
|
+
EOS
|
|
74
|
+
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
def find_text_in_element(pattern, options)
|
|
78
|
+
find_element(options[:element])
|
|
79
|
+
append <<-EOS
|
|
80
|
+
var text_match;
|
|
81
|
+
text_match = (element != null && #{text_match(pattern)});
|
|
82
|
+
EOS
|
|
83
|
+
|
|
84
|
+
self
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
def text_match(pattern)
|
|
88
|
+
case pattern
|
|
89
|
+
when Regexp
|
|
90
|
+
"null != element.innerHTML.match(#{pattern.inspect})"
|
|
91
|
+
else
|
|
92
|
+
"element.innerHTML == '#{quote_escaped(pattern)}'"
|
|
93
|
+
end
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
def javascript_framework_for(framework_name)
|
|
97
|
+
case framework_name.to_sym
|
|
98
|
+
when :prototype
|
|
99
|
+
JavascriptFrameworks::Prototype
|
|
100
|
+
when :jquery
|
|
101
|
+
JavascriptFrameworks::JQuery
|
|
102
|
+
else
|
|
103
|
+
raise "Unsupported Javascript Framework: #{framework_name}"
|
|
104
|
+
end
|
|
105
|
+
end
|
|
106
|
+
|
|
107
|
+
def window_script(expression)
|
|
108
|
+
"selenium.browserbot.getCurrentWindow().#{expression};"
|
|
109
|
+
end
|
|
110
|
+
|
|
111
|
+
def quote_escaped(a_string)
|
|
112
|
+
a_string.gsub(/\\/, "\\\\\\").gsub(/'/, %q<\\\'>)
|
|
113
|
+
end
|
|
114
|
+
end
|
|
115
|
+
end
|
|
116
|
+
end
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
module Selenium
|
|
2
|
+
module Client
|
|
3
|
+
|
|
4
|
+
HTTP_HEADERS = { 'Content-Type' => 'application/x-www-form-urlencoded; charset=utf-8' }
|
|
5
|
+
|
|
6
|
+
# Module in charge of handling Selenium over-the-wire HTTP protocol
|
|
7
|
+
module Protocol
|
|
8
|
+
attr_reader :session_id
|
|
9
|
+
|
|
10
|
+
def remote_control_command(verb, args=[])
|
|
11
|
+
timeout(@default_timeout_in_seconds) do
|
|
12
|
+
status, response = http_post(http_request_for(verb, args))
|
|
13
|
+
raise Selenium::CommandError, response unless status == "OK"
|
|
14
|
+
response
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def string_command(verb, args=[])
|
|
19
|
+
remote_control_command(verb, args)
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def string_array_command(verb, args=[])
|
|
23
|
+
csv = string_command(verb, args)
|
|
24
|
+
token = ""
|
|
25
|
+
tokens = []
|
|
26
|
+
escape = false
|
|
27
|
+
csv.split(//).each do |letter|
|
|
28
|
+
if escape
|
|
29
|
+
token += letter
|
|
30
|
+
escape = false
|
|
31
|
+
next
|
|
32
|
+
end
|
|
33
|
+
case letter
|
|
34
|
+
when '\\'
|
|
35
|
+
escape = true
|
|
36
|
+
when ','
|
|
37
|
+
tokens << token
|
|
38
|
+
token = ""
|
|
39
|
+
else
|
|
40
|
+
token += letter
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
tokens << token
|
|
44
|
+
return tokens
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
def number_command(verb, args)
|
|
48
|
+
string_command verb, args
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
def number_array_command(verb, args)
|
|
52
|
+
string_array_command verb, args
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
def boolean_command(verb, args=[])
|
|
56
|
+
parse_boolean_value string_command(verb, args)
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
def boolean_array_command(verb, args)
|
|
60
|
+
string_array_command(verb, args).collect {|value| parse_boolean_value(value)}
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
protected
|
|
64
|
+
|
|
65
|
+
def parse_boolean_value(value)
|
|
66
|
+
if ("true" == value)
|
|
67
|
+
return true
|
|
68
|
+
elsif ("false" == value)
|
|
69
|
+
return false
|
|
70
|
+
end
|
|
71
|
+
raise ProtocolError, "Invalid Selenese boolean value that is neither 'true' nor 'false': got '#{value}'"
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
def http_request_for(verb, args)
|
|
75
|
+
data = "cmd=#{CGI::escape(verb)}"
|
|
76
|
+
args.each_with_index do |arg, index|
|
|
77
|
+
data << "&#{index.succ}=#{CGI::escape(arg.to_s)}"
|
|
78
|
+
end
|
|
79
|
+
data << "&sessionId=#{session_id}" unless session_id.nil?
|
|
80
|
+
data
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
def http_post(data)
|
|
84
|
+
# puts "Requesting ---> #{data.inspect}"
|
|
85
|
+
http = Net::HTTP.new(@host, @port)
|
|
86
|
+
http.open_timeout = default_timeout_in_seconds
|
|
87
|
+
http.read_timeout = default_timeout_in_seconds
|
|
88
|
+
response = http.post('/selenium-server/driver/', data, HTTP_HEADERS)
|
|
89
|
+
# puts "RESULT: #{response.body.inspect}\n"
|
|
90
|
+
[ response.body[0..1], response.body[3..-1] ]
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
end
|
|
96
|
+
end
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# Defines a mixin module that you can use to write Selenium tests
|
|
2
|
+
# without typing "@selenium." in front of every command. Every
|
|
3
|
+
# call to a missing method will be automatically sent to the @selenium
|
|
4
|
+
# object.
|
|
5
|
+
module Selenium
|
|
6
|
+
module Client
|
|
7
|
+
|
|
8
|
+
module SeleniumHelper
|
|
9
|
+
|
|
10
|
+
# Overrides default open method to actually delegates to @selenium
|
|
11
|
+
def open(url)
|
|
12
|
+
@selenium.open url
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
# Overrides default type method to actually delegates to @selenium
|
|
16
|
+
def type(locator, value)
|
|
17
|
+
@selenium.type locator, value
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
# Overrides default select method to actually delegates to @selenium
|
|
21
|
+
def select(input_locator, option_locator)
|
|
22
|
+
@selenium.select input_locator, option_locator
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
# Delegates to @selenium on method missing
|
|
26
|
+
def method_missing(method_name, *args)
|
|
27
|
+
return super unless @selenium.respond_to?(method_name)
|
|
28
|
+
|
|
29
|
+
@selenium.send(method_name, *args)
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
end
|
|
34
|
+
end
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
require 'selenium/rake/tasks'
|
|
2
|
+
|
|
3
|
+
Selenium::Rake::RemoteControlStartTask.new do |rc|
|
|
4
|
+
rc.timeout_in_seconds = 3 * 60
|
|
5
|
+
rc.background = true
|
|
6
|
+
rc.wait_until_up_and_running = true
|
|
7
|
+
rc.additional_args << "-singleWindow"
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
Selenium::Rake::RemoteControlStopTask.new
|
|
11
|
+
|
|
12
|
+
desc "Restart Selenium Remote Control"
|
|
13
|
+
task :'selenium:rc:restart' do
|
|
14
|
+
Rake::Task[:'selenium:rc:stop'].execute [] rescue nil
|
|
15
|
+
Rake::Task[:'selenium:rc:start'].execute []
|
|
16
|
+
end
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
module Selenium
|
|
2
|
+
module Rake
|
|
3
|
+
|
|
4
|
+
# Rake tasks to start a Remote Control server.
|
|
5
|
+
#
|
|
6
|
+
# require 'selenium/rake/tasks'
|
|
7
|
+
#
|
|
8
|
+
# Selenium::Rake::RemoteControlStartTask.new do |rc|
|
|
9
|
+
# rc.port = 4444
|
|
10
|
+
# rc.timeout_in_seconds = 3 * 60
|
|
11
|
+
# rc.background = true
|
|
12
|
+
# rc.wait_until_up_and_running = true
|
|
13
|
+
# rc.jar_file = "/path/to/where/selenium-rc-standalone-jar-is-installed"
|
|
14
|
+
# rc.additional_args << "-singleWindow"
|
|
15
|
+
# end
|
|
16
|
+
#
|
|
17
|
+
# If you do not explicitly specify the path to selenium remote control jar
|
|
18
|
+
# it will be "auto-discovered" in `vendor` directory using the following
|
|
19
|
+
# path : `vendor/selenium-remote-control/selenium-server*-standalone.jar`
|
|
20
|
+
#
|
|
21
|
+
# To leverage the latest selenium-client capabilities, you may need to download
|
|
22
|
+
# a recent nightly build of a standalone packaging of Selenium Remote
|
|
23
|
+
# Control. You will find the nightly build at
|
|
24
|
+
# http://nexus.openqa.org/content/repositories/snapshots/org/seleniumhq/selenium/server/selenium-server/
|
|
25
|
+
class RemoteControlStartTask
|
|
26
|
+
attr_accessor :port, :timeout_in_seconds, :background,
|
|
27
|
+
:wait_until_up_and_running, :additional_args,
|
|
28
|
+
:log_to
|
|
29
|
+
attr_reader :jar_file
|
|
30
|
+
|
|
31
|
+
JAR_FILE_PATTERN = "vendor/selenium-remote-control/selenium-server-*.jar"
|
|
32
|
+
|
|
33
|
+
def initialize(name = :'selenium:rc:start')
|
|
34
|
+
@name = name
|
|
35
|
+
@port = 4444
|
|
36
|
+
@timeout_in_seconds = 5
|
|
37
|
+
project_specific_jar = Dir[JAR_FILE_PATTERN].first
|
|
38
|
+
@jar_file = project_specific_jar
|
|
39
|
+
@additional_args = []
|
|
40
|
+
@background = false
|
|
41
|
+
@wait_until_up_and_running = false
|
|
42
|
+
yield self if block_given?
|
|
43
|
+
define
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
def jar_file=(new_jar_file)
|
|
47
|
+
@jar_file = File.expand_path(new_jar_file)
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
def define
|
|
51
|
+
desc "Launch Selenium Remote Control"
|
|
52
|
+
task @name do
|
|
53
|
+
puts "Starting Selenium Remote Control at 0.0.0.0:#{@port}..."
|
|
54
|
+
raise "Could not find jar file '#{@jar_file}'. Expected it under #{JAR_FILE_PATTERN}" unless @jar_file && File.exists?(@jar_file)
|
|
55
|
+
remote_control = Selenium::RemoteControl::RemoteControl.new("0.0.0.0", @port, :timeout => @timeout_in_seconds)
|
|
56
|
+
remote_control.jar_file = @jar_file
|
|
57
|
+
remote_control.additional_args = @additional_args
|
|
58
|
+
remote_control.log_to = @log_to
|
|
59
|
+
remote_control.start :background => @background
|
|
60
|
+
if @background && @wait_until_up_and_running
|
|
61
|
+
puts "Waiting for Remote Control to be up and running..."
|
|
62
|
+
TCPSocket.wait_for_service :host => @host, :port => @port
|
|
63
|
+
end
|
|
64
|
+
puts "Selenium Remote Control at 0.0.0.0:#{@port} ready"
|
|
65
|
+
end
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
end
|
|
69
|
+
end
|
|
70
|
+
end
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
module Selenium
|
|
2
|
+
module Rake
|
|
3
|
+
|
|
4
|
+
# Rake task to stop a Selenium Remote Control Server
|
|
5
|
+
#
|
|
6
|
+
# Selenium::Rake::RemoteControlStopTask.new do |rc|
|
|
7
|
+
# rc.host = "localhost"
|
|
8
|
+
# rc.port = 4444
|
|
9
|
+
# rc.timeout_in_seconds = 3 * 60
|
|
10
|
+
# end
|
|
11
|
+
#
|
|
12
|
+
class RemoteControlStopTask
|
|
13
|
+
attr_accessor :host, :port, :timeout_in_seconds, :wait_until_stopped,
|
|
14
|
+
:shutdown_command
|
|
15
|
+
|
|
16
|
+
def initialize(name = :'selenium:rc:stop')
|
|
17
|
+
@host = "localhost"
|
|
18
|
+
@name = name
|
|
19
|
+
@port = 4444
|
|
20
|
+
@timeout_in_seconds = nil
|
|
21
|
+
@shutdown_command = nil
|
|
22
|
+
@wait_until_stopped = true
|
|
23
|
+
yield self if block_given?
|
|
24
|
+
define
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def define
|
|
28
|
+
desc "Stop Selenium Remote Control running"
|
|
29
|
+
task @name do
|
|
30
|
+
puts "Stopping Selenium Remote Control running at #{host}:#{port}..."
|
|
31
|
+
remote_control = Selenium::RemoteControl::RemoteControl.new(
|
|
32
|
+
host, port, :timeout => timeout_in_seconds,
|
|
33
|
+
:shutdown_command => shutdown_command)
|
|
34
|
+
remote_control.stop
|
|
35
|
+
if @wait_until_stopped
|
|
36
|
+
TCPSocket.wait_for_service_termination :host => host, :port => port
|
|
37
|
+
end
|
|
38
|
+
puts "Stopped Selenium Remote Control running at #{host}:#{port}"
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
end
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
require "net/http"
|
|
2
|
+
require File.expand_path(File.dirname(__FILE__) + '/../../nautilus/shell')
|
|
3
|
+
require File.expand_path(File.dirname(__FILE__) + '/../../tcp_socket_extension')
|
|
4
|
+
require File.expand_path(File.dirname(__FILE__) + '/../remote_control/remote_control')
|
|
5
|
+
require File.expand_path(File.dirname(__FILE__) + '/remote_control_start_task')
|
|
6
|
+
require File.expand_path(File.dirname(__FILE__) + '/remote_control_stop_task')
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
module Selenium
|
|
2
|
+
module RemoteControl
|
|
3
|
+
|
|
4
|
+
class RemoteControl
|
|
5
|
+
attr_reader :host, :port, :timeout_in_seconds, :shutdown_command
|
|
6
|
+
attr_accessor :additional_args, :jar_file, :log_to
|
|
7
|
+
|
|
8
|
+
def initialize(host, port, options={})
|
|
9
|
+
@host, @port = host, port
|
|
10
|
+
@timeout_in_seconds = options[:timeout] || (2 * 60)
|
|
11
|
+
@shutdown_command = options[:shutdown_command] || "shutDownSeleniumServer"
|
|
12
|
+
@additional_args = []
|
|
13
|
+
@shell = Nautilus::Shell.new
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def start(options = {})
|
|
17
|
+
command = "java -jar \"#{jar_file}\""
|
|
18
|
+
command << " -port #{@port}"
|
|
19
|
+
command << " -timeout #{@timeout_in_seconds}"
|
|
20
|
+
command << " #{additional_args.join(' ')}" unless additional_args.empty?
|
|
21
|
+
command << " > #{log_to}" if log_to
|
|
22
|
+
|
|
23
|
+
@shell.run command, {:background => options[:background]}
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def stop
|
|
27
|
+
Net::HTTP.get(@host, "/selenium-server/driver/?cmd=#{shutdown_command}", @port)
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
end
|
|
33
|
+
end
|