selenium-rspec-dsl 1.0.2
Sign up to get free protection for your applications and to get access to all the features.
- 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,133 @@
|
|
1
|
+
/*
|
2
|
+
* Stylesheet for Selenium Grid website home page.
|
3
|
+
*/
|
4
|
+
|
5
|
+
div.marketing-banner {
|
6
|
+
margin: 1.5em 2em 0 3em;
|
7
|
+
text-align: center
|
8
|
+
}
|
9
|
+
|
10
|
+
div.marketing-banner img {
|
11
|
+
float: left;
|
12
|
+
margin: -0.2em 2em 1.5em 0;
|
13
|
+
padding: 0;
|
14
|
+
}
|
15
|
+
|
16
|
+
div.marketing-banner p {
|
17
|
+
font: 1.25em "Optima", Verdana, sans-serif;
|
18
|
+
padding: 0 3em 0 3em;
|
19
|
+
text-align: left;
|
20
|
+
margin: 0 0 0 10em;
|
21
|
+
}
|
22
|
+
|
23
|
+
div.marketing-banner p.tagline {
|
24
|
+
color: black;
|
25
|
+
font: bold 2.2em "Chalkboard", "Georgia", serif;
|
26
|
+
padding: 0;
|
27
|
+
margin: 0 0 .3em 0;
|
28
|
+
}
|
29
|
+
|
30
|
+
div#news {
|
31
|
+
text-align: center;
|
32
|
+
margin: 1em auto 1em auto;
|
33
|
+
width: 20em;
|
34
|
+
}
|
35
|
+
|
36
|
+
div#news,
|
37
|
+
div#news a {
|
38
|
+
color: #740F31;
|
39
|
+
font-style: bold;
|
40
|
+
}
|
41
|
+
|
42
|
+
table#start-tracks {
|
43
|
+
margin: 0;
|
44
|
+
padding: 2em 2em;
|
45
|
+
border-spacing: 2em 0;
|
46
|
+
clear: both;
|
47
|
+
width: 100%;
|
48
|
+
background: white url("../images/background_start_tracks.png") bottom repeat-x;
|
49
|
+
}
|
50
|
+
|
51
|
+
table#start-tracks tr td {
|
52
|
+
padding: .8em 1.2em 2em 1.2em;
|
53
|
+
width: 14em;
|
54
|
+
|
55
|
+
-moz-border-radius: .6em;
|
56
|
+
-webkit-border-radius: .8em;
|
57
|
+
border-radius: .8em;
|
58
|
+
-webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.5)
|
59
|
+
}
|
60
|
+
|
61
|
+
/* Color Scheme from http://www.colourlovers.com/palette/270694/The_Rainbow_Song_I */
|
62
|
+
|
63
|
+
table#start-tracks tr td#get-started {
|
64
|
+
background: white url("../images/background_started.png") repeat-x;
|
65
|
+
}
|
66
|
+
|
67
|
+
table#start-tracks tr td#get-better {
|
68
|
+
background: white url("../images/background_better.png") repeat-x;
|
69
|
+
}
|
70
|
+
|
71
|
+
table#start-tracks tr td#give-feedback {
|
72
|
+
background: white url("../images/background_feedback.png") repeat-x;
|
73
|
+
}
|
74
|
+
|
75
|
+
table#start-tracks tr td#participate {
|
76
|
+
background: white url("../images/background_participate.png") repeat-x;
|
77
|
+
}
|
78
|
+
|
79
|
+
table#start-tracks ul {
|
80
|
+
list-style: none inside;
|
81
|
+
margin: 0;
|
82
|
+
padding: 0;
|
83
|
+
text-align: center;
|
84
|
+
}
|
85
|
+
|
86
|
+
table#start-tracks tr td ul li {
|
87
|
+
margin: .9em 0 0 0;
|
88
|
+
}
|
89
|
+
|
90
|
+
table#start-tracks tr td ul li a {
|
91
|
+
color: #0E3062;
|
92
|
+
font-size: 1em;
|
93
|
+
}
|
94
|
+
|
95
|
+
table#start-tracks tr td h2 {
|
96
|
+
font: bold 2em "Optima", Verdana, sans-serif;
|
97
|
+
text-align: center;
|
98
|
+
color: #740F31;
|
99
|
+
font-size: 1.3em;
|
100
|
+
margin: 0 0 1em 0;
|
101
|
+
padding: 0;
|
102
|
+
}
|
103
|
+
|
104
|
+
div.section {
|
105
|
+
clear: both;
|
106
|
+
margin: 0;
|
107
|
+
}
|
108
|
+
|
109
|
+
div.section h2 {
|
110
|
+
float: left;
|
111
|
+
width: 15%;
|
112
|
+
border: 0;
|
113
|
+
padding: 0;
|
114
|
+
margin: 0 0 2.5em 1em;
|
115
|
+
color: black;
|
116
|
+
font: bold 2em "Optima", Verdana, sans-serif;
|
117
|
+
background: none;
|
118
|
+
text-shadow: .1em .1em .2em #222;
|
119
|
+
}
|
120
|
+
|
121
|
+
div.section div.content {
|
122
|
+
float: left;
|
123
|
+
width: 70%;
|
124
|
+
border: 0;
|
125
|
+
padding: 0;
|
126
|
+
margin: 0 0 2em 0;
|
127
|
+
font-size: 1em;
|
128
|
+
}
|
129
|
+
|
130
|
+
div.section div.content p {
|
131
|
+
margin-top: .3em;
|
132
|
+
max-width: 40em;
|
133
|
+
}
|
@@ -0,0 +1,72 @@
|
|
1
|
+
/*
|
2
|
+
* Stylesheet dedicated to integration with layout on seleniumhq.org
|
3
|
+
*/
|
4
|
+
|
5
|
+
body {
|
6
|
+
text-align: center;
|
7
|
+
}
|
8
|
+
|
9
|
+
#ads {
|
10
|
+
background-color: rgb(153, 204, 255);
|
11
|
+
text-align: center;
|
12
|
+
padding:5px;
|
13
|
+
}
|
14
|
+
|
15
|
+
#top-menu {
|
16
|
+
color: #999;
|
17
|
+
text-align: center;
|
18
|
+
font-size: .8em;
|
19
|
+
padding-top: 0;
|
20
|
+
padding-bottom: 1.5em;
|
21
|
+
}
|
22
|
+
|
23
|
+
#top-menu ul li {
|
24
|
+
display: inline;
|
25
|
+
border-left: 1px solid #000000;
|
26
|
+
padding-left: 3px;
|
27
|
+
}
|
28
|
+
|
29
|
+
#top-menu ul li.last {
|
30
|
+
padding-right: 3px;
|
31
|
+
border-right: 1px solid #000000;
|
32
|
+
}
|
33
|
+
|
34
|
+
#top-menu ul li a {
|
35
|
+
color: black;
|
36
|
+
}
|
37
|
+
|
38
|
+
div#content {
|
39
|
+
margin: 0 0 0 0;
|
40
|
+
padding: 0;
|
41
|
+
text-align: left;
|
42
|
+
}
|
43
|
+
|
44
|
+
div#content * {
|
45
|
+
text-align: left;
|
46
|
+
}
|
47
|
+
|
48
|
+
table#start-tracks ul, table#start-tracks ul li, table#start-tracks ul li a {
|
49
|
+
text-align: center;
|
50
|
+
}
|
51
|
+
|
52
|
+
div#seleniumhq-project-list {
|
53
|
+
text-align: left;
|
54
|
+
}
|
55
|
+
|
56
|
+
div#seleniumhq-project-list ul {
|
57
|
+
list-style-type: none;
|
58
|
+
}
|
59
|
+
|
60
|
+
div#seleniumhq-project-list ul li a {
|
61
|
+
color: #222;
|
62
|
+
}
|
63
|
+
|
64
|
+
div#footer {
|
65
|
+
clear: both;
|
66
|
+
color: #666;
|
67
|
+
padding: 1em 0;
|
68
|
+
}
|
69
|
+
|
70
|
+
div#actual-content div.section {
|
71
|
+
clear: none;
|
72
|
+
}
|
@@ -0,0 +1,74 @@
|
|
1
|
+
/*
|
2
|
+
* Global stylesheet for Selenium Grid website.
|
3
|
+
*/
|
4
|
+
|
5
|
+
body {
|
6
|
+
font: 12pt "Lucida Grande", "Verdana", sans-serif;
|
7
|
+
margin: 0;
|
8
|
+
padding: 0;
|
9
|
+
}
|
10
|
+
|
11
|
+
div.header {
|
12
|
+
text-align: center;
|
13
|
+
font: bold 3em "Didot", "Georgia", serif;
|
14
|
+
padding: 0;
|
15
|
+
margin: 1em 1em 2.4em 0;
|
16
|
+
}
|
17
|
+
|
18
|
+
div.header img {
|
19
|
+
padding: 0;
|
20
|
+
margin: -.8em 1em 0 .4em;
|
21
|
+
vertical-align: top;
|
22
|
+
float: left;
|
23
|
+
}
|
24
|
+
|
25
|
+
div.header a, div.header a img {
|
26
|
+
border: 0;
|
27
|
+
}
|
28
|
+
|
29
|
+
div.section {
|
30
|
+
clear: both;
|
31
|
+
margin: -3em 1em;
|
32
|
+
}
|
33
|
+
|
34
|
+
div.section h2 {
|
35
|
+
float: left;
|
36
|
+
width: 15%;
|
37
|
+
border: 0;
|
38
|
+
padding: 0;
|
39
|
+
margin: -0.3em 2em 2.5em 0;
|
40
|
+
color: black;
|
41
|
+
font: bold 2em "Optima", Verdana, sans-serif;
|
42
|
+
background: none;
|
43
|
+
}
|
44
|
+
|
45
|
+
div.section div.content h3 {
|
46
|
+
margin: 0em 1em .5em 0em;
|
47
|
+
color: #740F31;
|
48
|
+
font: bold 1.2em "Lucida Grande", Verdana, sans-serif;
|
49
|
+
}
|
50
|
+
|
51
|
+
div.section div.content {
|
52
|
+
float: left;
|
53
|
+
width: 70%;
|
54
|
+
border: 0;
|
55
|
+
padding: 0;
|
56
|
+
margin: 0 0 2em 0;
|
57
|
+
}
|
58
|
+
|
59
|
+
div.section div.content p {
|
60
|
+
margin-top: .3em;
|
61
|
+
}
|
62
|
+
|
63
|
+
p.note {
|
64
|
+
background: #ffffa6;
|
65
|
+
padding: .6em .8em;
|
66
|
+
border: thin solid #9c9c4e;
|
67
|
+
}
|
68
|
+
|
69
|
+
.todo {
|
70
|
+
color: red;
|
71
|
+
background: yellow;
|
72
|
+
padding: .5em;
|
73
|
+
}
|
74
|
+
|
@@ -0,0 +1,276 @@
|
|
1
|
+
#
|
2
|
+
# Capistrano Recipes to manage EC2 Selenium Grid Clusters
|
3
|
+
#
|
4
|
+
|
5
|
+
require File.dirname(__FILE__) + '/../../lib/ruby/tcp_socket_extensions'
|
6
|
+
|
7
|
+
###### User Level Configuration ######
|
8
|
+
|
9
|
+
set :keypair, ENV["EC2_KEYPAIR"]
|
10
|
+
set :keypair_name, ENV["EC2_KEYPAIR_NAME"] || "grid-keypair"
|
11
|
+
set :remote_control_port_range, "5555-5560"
|
12
|
+
set :remote_control_farms_count, 5
|
13
|
+
set :launch_timeout, 240
|
14
|
+
|
15
|
+
##### Internal Configuration ######
|
16
|
+
|
17
|
+
require File.dirname(__FILE__) + '/lib/selenium_grid/aws/ec2'
|
18
|
+
require 'erb'
|
19
|
+
|
20
|
+
set :selenium_grid_path, "/usr/local/lib/selenium-grid"
|
21
|
+
set :ami, ENV["AMI"] || "ami-780fea11"
|
22
|
+
set :cloud, SeleniumGrid::AWS::Cloud.load
|
23
|
+
set :ec2_client, Class.new.extend(::SeleniumGrid::AWS::Ec2Client)
|
24
|
+
|
25
|
+
###### Global Recipes targeting the Entire Grid ######
|
26
|
+
|
27
|
+
namespace :grid do
|
28
|
+
|
29
|
+
desc "Boot EC2 Instances for a Selenium Grid of 1 Hub and #{remote_control_farms_count} Remote Control Farms."
|
30
|
+
task :boot do
|
31
|
+
hub.boot
|
32
|
+
remote_control_farms_count.times do
|
33
|
+
rc.boot
|
34
|
+
end
|
35
|
+
ec2_client.authorize_port 22
|
36
|
+
ec2_client.authorize_port 4444
|
37
|
+
ec2_client.authorize_port 5900
|
38
|
+
ec2_client.authorize_port 6000
|
39
|
+
boundaries = remote_control_port_range.split(/\s*-\s*/)
|
40
|
+
Range.new(boundaries.first, boundaries.last).each do |port|
|
41
|
+
ec2_client.authorize_port port
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
desc "Shutdown EC2 Instance used to run Selenium Hub."
|
46
|
+
task :shutdown do
|
47
|
+
rc.shutdown
|
48
|
+
hub.shutdown
|
49
|
+
end
|
50
|
+
|
51
|
+
desc "Start Selenium Grid Hub."
|
52
|
+
task :start do
|
53
|
+
hub.start
|
54
|
+
rc.vnc.start
|
55
|
+
TCPSocket.wait_for_service :host => cloud.hub.public_dns, :port => 4444, :timeout => launch_timeout
|
56
|
+
rc.start
|
57
|
+
end
|
58
|
+
|
59
|
+
desc "Stop Selenium Grid Hub."
|
60
|
+
task :stop do
|
61
|
+
rc.stop
|
62
|
+
hub.stop
|
63
|
+
end
|
64
|
+
|
65
|
+
desc "Display infoemation about current Selenium Grid"
|
66
|
+
task :info do
|
67
|
+
template = ERB.new <<-EOS
|
68
|
+
|
69
|
+
EC2 Selenium Grid:
|
70
|
+
==================
|
71
|
+
|
72
|
+
Hub:
|
73
|
+
----
|
74
|
+
<% if cloud.hub %>
|
75
|
+
- Public DNS: <%= cloud.hub.public_dns %>
|
76
|
+
- Private DNS: <%= cloud.hub.private_dns %>
|
77
|
+
- Console: <%= cloud.hub.console_url %>
|
78
|
+
<% end %>
|
79
|
+
Remote Control Farms:
|
80
|
+
---------------------
|
81
|
+
<% cloud.farms.each_with_index do |farm, index| %>
|
82
|
+
* Farm #<%= index %>
|
83
|
+
- Public DNS: <%= farm.public_dns %>
|
84
|
+
- Private DNS: <%= farm.private_dns %>
|
85
|
+
- Port Range: <%= remote_control_port_range %>
|
86
|
+
<% end %>
|
87
|
+
EOS
|
88
|
+
|
89
|
+
puts template.result(binding)
|
90
|
+
end
|
91
|
+
|
92
|
+
task :refresh_status do
|
93
|
+
SeleniumGrid::AWS::Cloud.update do |cloud|
|
94
|
+
cloud.hub.refresh_status
|
95
|
+
end
|
96
|
+
end
|
97
|
+
|
98
|
+
end
|
99
|
+
|
100
|
+
###### Hub Recipes ######
|
101
|
+
|
102
|
+
namespace :hub do
|
103
|
+
|
104
|
+
desc "Boot a new EC2 Instance to Run Selenium Grid Hub."
|
105
|
+
task :boot do
|
106
|
+
SeleniumGrid::AWS::Cloud.update do |cloud|
|
107
|
+
puts "Starting a new EC2 Instance..."
|
108
|
+
cloud.hub = SeleniumGrid::AWS::Hub.boot_and_acquire_dns ami, :keypair => keypair_name
|
109
|
+
puts "Started new Hub at #{cloud.hub.public_dns}"
|
110
|
+
end
|
111
|
+
set :cloud, SeleniumGrid::AWS::Cloud.load
|
112
|
+
end
|
113
|
+
|
114
|
+
desc "Shutdown EC2 Instance used to run Selenium Hub."
|
115
|
+
task :shutdown do
|
116
|
+
SeleniumGrid::AWS::Cloud.update do |cloud|
|
117
|
+
puts "Shutting down EC2 Instance #{cloud.hub.public_dns}..."
|
118
|
+
cloud.hub.shutdown
|
119
|
+
cloud.hub = nil
|
120
|
+
end
|
121
|
+
set :cloud, SeleniumGrid::AWS::Cloud.load
|
122
|
+
end
|
123
|
+
|
124
|
+
desc "(Re)start Selenium Grid Hub."
|
125
|
+
task :restart do
|
126
|
+
stop rescue nil
|
127
|
+
start
|
128
|
+
end
|
129
|
+
|
130
|
+
desc "Start Selenium Grid Hub."
|
131
|
+
task :start do
|
132
|
+
cloud.hub.run "nohup rake hub:start BACKGROUND=true",
|
133
|
+
:pwd => selenium_grid_path,
|
134
|
+
:su => "grid",
|
135
|
+
:keypair => keypair
|
136
|
+
end
|
137
|
+
|
138
|
+
desc("Stop Selenium Grid Hub.")
|
139
|
+
task :stop do
|
140
|
+
cloud.hub.run 'rake hub:stop',
|
141
|
+
:pwd => selenium_grid_path,
|
142
|
+
:su => "grid",
|
143
|
+
:keypair => keypair
|
144
|
+
end
|
145
|
+
|
146
|
+
desc "Open Selenium Grid Hub Console in a browser."
|
147
|
+
task :console do
|
148
|
+
launcher = PLATFORM["darwin"] ? "open" : "firefox "
|
149
|
+
system "open #{cloud.hub.console_url}"
|
150
|
+
end
|
151
|
+
|
152
|
+
desc "View Selenium Grid Hub logs."
|
153
|
+
task :logs do
|
154
|
+
cloud.hub.run 'tail -200f #{selenium_grid_path}/log/hub.log', :keypair => keypair
|
155
|
+
end
|
156
|
+
|
157
|
+
end
|
158
|
+
|
159
|
+
###### Remote Control Recipes ######
|
160
|
+
|
161
|
+
namespace :rc do
|
162
|
+
|
163
|
+
desc "Boot a new EC2 Instance to run a collection of Selenium Grid Remote Controls."
|
164
|
+
task :boot do
|
165
|
+
SeleniumGrid::AWS::Cloud.update do |cloud|
|
166
|
+
puts "Starting a new EC2 Instance..."
|
167
|
+
new_farm = SeleniumGrid::AWS::Server.boot_and_acquire_dns ami, :keypair => keypair_name
|
168
|
+
cloud.farms << new_farm
|
169
|
+
puts "Started new Remote Control farm at #{new_farm.public_dns}"
|
170
|
+
end
|
171
|
+
set :cloud, SeleniumGrid::AWS::Cloud.load
|
172
|
+
end
|
173
|
+
|
174
|
+
desc "Shutdown all EC2 Instances used to run Selenium Grid Remote Controls."
|
175
|
+
task :shutdown do
|
176
|
+
SeleniumGrid::AWS::Cloud.update do |cloud|
|
177
|
+
cloud.farms.each do |farm|
|
178
|
+
puts "Shutting down EC2 Instance #{farm.public_dns}..."
|
179
|
+
farm.shutdown
|
180
|
+
end
|
181
|
+
cloud.farms = []
|
182
|
+
end
|
183
|
+
set :cloud, SeleniumGrid::AWS::Cloud.load
|
184
|
+
end
|
185
|
+
|
186
|
+
namespace :vnc do
|
187
|
+
|
188
|
+
desc "Start VNC server on all Remote Control Farms"
|
189
|
+
task :start do
|
190
|
+
cloud.farms.each do |farm|
|
191
|
+
farm.run "nohup vncserver :0", :keypair => keypair, :su => "grid"
|
192
|
+
end
|
193
|
+
ec2_client.authorize_port 5900
|
194
|
+
ec2_client.authorize_port 6000
|
195
|
+
end
|
196
|
+
|
197
|
+
end
|
198
|
+
|
199
|
+
desc "(Re)start Remote Controls for all farms."
|
200
|
+
task :restart do
|
201
|
+
stop
|
202
|
+
start
|
203
|
+
end
|
204
|
+
|
205
|
+
desc "(Re)start Remote Controls for all farms."
|
206
|
+
task :restart do
|
207
|
+
stop rescue nil
|
208
|
+
start
|
209
|
+
end
|
210
|
+
|
211
|
+
desc "Start Remote Controls for all farms."
|
212
|
+
task :start do
|
213
|
+
cloud.farms.each do |farm|
|
214
|
+
farm.run "nohup rake rc:start_all HUB_URL=#{cloud.hub.private_url} HOST=#{farm.private_dns} PORTS=#{remote_control_port_range} BACKGROUND=true",
|
215
|
+
:display => ":0",
|
216
|
+
:path => "/usr/lib/firefox",
|
217
|
+
:pwd => selenium_grid_path,
|
218
|
+
:su => "grid",
|
219
|
+
:keypair => keypair
|
220
|
+
end
|
221
|
+
end
|
222
|
+
|
223
|
+
desc "Stop Remote Controls for all farms."
|
224
|
+
task :stop do
|
225
|
+
cloud.farms.each do |farm|
|
226
|
+
farm.run "rake rc:stop_all PORTS=#{remote_control_port_range}",
|
227
|
+
:pwd => selenium_grid_path,
|
228
|
+
:su => "grid",
|
229
|
+
:keypair => keypair
|
230
|
+
end
|
231
|
+
end
|
232
|
+
|
233
|
+
desc "Visualize what is happening in Remote Control Farms with VNC"
|
234
|
+
task :view, :roles => :rc do
|
235
|
+
cloud.farms.each do |farm|
|
236
|
+
if File.exists?('/Applications/Chicken of the VNC.app/Contents/MacOS/Chicken of the VNC')
|
237
|
+
system "'/Applications/Chicken of the VNC.app/Contents/MacOS/Chicken of the VNC' --Display 0 --PasswordFile vnc_password #{farm.public_dns} &"
|
238
|
+
else
|
239
|
+
system "vncviewer -passwd vnc_password #{farm.public_dns}:0 &"
|
240
|
+
end
|
241
|
+
end
|
242
|
+
end
|
243
|
+
end
|
244
|
+
|
245
|
+
###### Settings Recipes ######
|
246
|
+
|
247
|
+
namespace :ec2 do
|
248
|
+
|
249
|
+
desc "Check EC2 related configuration."
|
250
|
+
task :check_settings do
|
251
|
+
puts "Validating environment variables..."
|
252
|
+
%w(EC2_HOME EC2_PRIVATE_KEY EC2_CERT EC2_KEYPAIR).each do |variable|
|
253
|
+
raise <<-EOS unless ENV[variable]
|
254
|
+
|
255
|
+
+++++++++++++++++++++++++++++++++++++++++++++++
|
256
|
+
You must set #{variable}.
|
257
|
+
|
258
|
+
Read http://docs.amazonwebservices.com/AWSEC2/2007-08-29/GettingStartedGuide/?ref=get-started
|
259
|
+
for more details.
|
260
|
+
|
261
|
+
++++++++++++++++++++++++++++++++++++++++++++++++
|
262
|
+
EOS
|
263
|
+
end
|
264
|
+
%w(EC2_PRIVATE_KEY EC2_CERT EC2_KEYPAIR).each do |variable|
|
265
|
+
unless File.exists?(ENV[variable])
|
266
|
+
raise "#{variable} environment variable does not point to a valid path: '#{ENV[variable]}'"
|
267
|
+
end
|
268
|
+
unless File.file?(ENV[variable])
|
269
|
+
raise "#{variable} environment variable does not point to a valid file: '#{ENV[variable]}'"
|
270
|
+
end
|
271
|
+
end
|
272
|
+
puts "EC2 Version: #{ec2_client.version}"
|
273
|
+
puts "Validated EC2 settings."
|
274
|
+
end
|
275
|
+
|
276
|
+
end
|