Update selenium on rails using 'official' git repo
git://github.com/paytonrules/selenium-on-rails.git
125
vendor/plugins/selenium-on-rails/CHANGELOG
vendored
Normal file
|
|
@ -0,0 +1,125 @@
|
|||
== REVISION 38[http://svn.openqa.org/fisheye/changelog/selenium-on-rails/?cs=38]
|
||||
|
||||
=== change made by Flanagan
|
||||
|
||||
* SOR-13[http://jira.openqa.org/browse/SOR-13] Corrected an omission of require statements.
|
||||
|
||||
== REVISION 37
|
||||
|
||||
=== change made by Flanagan
|
||||
|
||||
* Undone an unwanted commit of modified Rakefile.
|
||||
|
||||
== REVISION 36[http://svn.openqa.org/fisheye/changelog/selenium-on-rails/?cs=36]
|
||||
|
||||
=== change made by Flanagan
|
||||
|
||||
* SOR-13[http://jira.openqa.org/browse/SOR-13] Added (experimental) support for user-extensions.js.
|
||||
|
||||
== REVISION 35[http://svn.openqa.org/fisheye/changelog/selenium-on-rails/?cs=35]
|
||||
|
||||
=== all changes made by Jonas
|
||||
|
||||
* SOR-12[http://jira.openqa.org/browse/SOR-12] removed all support for selenium gem
|
||||
* Selenium Core 0.8.2 is now bundled with Selenium on Rails. If you want to use other version set the 'selenium_path' in config.yml
|
||||
* Updated installation instructions for Windows
|
||||
|
||||
== REVISION 34[http://svn.openqa.org/fisheye/changelog/selenium-on-rails/?cs=34]
|
||||
|
||||
=== all changes made by Flanagan
|
||||
|
||||
* SOR-11[http://jira.openqa.org/browse/SOR-11] Fixed related assertions for store_checked to use only locator parameter
|
||||
|
||||
Warning: Users must change tests that pass two parameters (locator, pattern) to +verify_checked+, +verify_not_checked+, +assert_checked+, +assert_not_checked+, +wait_for_checked+, or +wait_for_not_checked+.
|
||||
|
||||
Test scripts that continue to use two parameters will be broken, only one parameter, the locator, should be passed.
|
||||
|
||||
For example, <tt>|verify_checked|my_checkbox|true|</tt> will be interpreted as <tt>|verify_checked|my_checkboxtrue||</tt> so change the test to <tt>|verify_checked|my_checkbox||</tt>
|
||||
|
||||
* SOR-9[http://jira.openqa.org/browse/SOR-9] Added Mac OS X browsers to config.yml.example
|
||||
* SOR-10[http://jira.openqa.org/browse/SOR-10] Added support for baseUrl to acceptance_test_runner.rb as added to selenium-core 0.8.2
|
||||
* Added 'webrick' to SERVER_COMMAND in acceptance_test_runner.rb as parameters do not work with lighttpd
|
||||
* Reversed expected query string in test/renderer_testrb to make tests pass
|
||||
|
||||
Note: On Mac OS X, at least, clear_tables comes before fixtures in the query string; this may be an environment-specific issue if the test now fails on other OSes.
|
||||
|
||||
* Added this CHANGELOG file and amended the rake rdoc task to include it
|
||||
|
||||
* Added support in rselenese for a long list of actions and accessors that are included in selenium-core (0.8.2 and possibly earlier) but were previously missing in selenium-on-rails.
|
||||
|
||||
Here are the newly supported actions:
|
||||
|
||||
Useful for debugging:
|
||||
* <tt>brake</tt> (alias for selenium-core's break, a reserved word in Ruby)
|
||||
* <tt>echo, :string</tt>
|
||||
* <tt>highlight, :locator</tt>
|
||||
|
||||
Keyboard events:
|
||||
* <tt>alt_key_down</tt>
|
||||
* <tt>alt_key_up</tt>
|
||||
* <tt>control_key_down</tt>
|
||||
* <tt>control_key_up</tt>
|
||||
* <tt>meta_key_down</tt>
|
||||
* <tt>meta_key_up</tt>
|
||||
* <tt>shift_key_down</tt>
|
||||
* <tt>shift_key_up</tt>
|
||||
* <tt>type_keys, :locator, :string</tt>
|
||||
|
||||
Mouse events:
|
||||
* <tt>click_at, :locator, :coord_string</tt>
|
||||
* <tt>double_click, :locator</tt>
|
||||
* <tt>double_click_at, :locator, :coord_string</tt>
|
||||
* <tt>drag_and_drop, :locator, :movements_string</tt>
|
||||
* <tt>drag_and_drop_to_object, :locator, :locator</tt>
|
||||
* <tt>mouse_down_at, :locator, :coord_string</tt>
|
||||
* <tt>mouse_move, :locator</tt>
|
||||
* <tt>mouse_move_at, :locator, :coord_string</tt>
|
||||
* <tt>mouse_out, :locator</tt>
|
||||
* <tt>mouse_up, :locator</tt>
|
||||
* <tt>mouse_up_at, :locator, :coord_string</tt>
|
||||
* <tt>set_mouse_speed, :integer</tt>
|
||||
|
||||
Other actions:
|
||||
* <tt>create_cookie, :name_value_pair, :options_string</tt>
|
||||
* <tt>delete_cookie, :string, :string</tt>
|
||||
* <tt>open_window, :url, :integer</tt>
|
||||
* <tt>pause, :timeout</tt>
|
||||
* <tt>remove_all_selections, :locator</tt>
|
||||
* <tt>select_frame, :locator</tt>
|
||||
* <tt>set_cursor_position, :locator, :integer</tt>
|
||||
* <tt>store, :script, :variable</tt>
|
||||
* <tt>window_focus, :window_name</tt>
|
||||
* <tt>window_maximize, :window_name</tt>
|
||||
|
||||
Here are the newly supported accessors:
|
||||
|
||||
The following store_* accessors and their associated assert, verify and wait_for brethren are fully supported:
|
||||
* <tt>store_selected_id, :locator, :variable</tt>
|
||||
* <tt>store_selected_ids, :locator, :variable</tt>
|
||||
* <tt>store_selected_index, :locator, :variable</tt>
|
||||
* <tt>store_selected_indexes, :locator, :variable</tt>
|
||||
* <tt>store_selected_label, :locator, :variable</tt>
|
||||
* <tt>store_selected_labels, :locator, :variable</tt>
|
||||
* <tt>store_selected_value, :locator, :variable</tt>
|
||||
* <tt>store_selected_values, :locator, :variable</tt>
|
||||
* <tt>store_something_selected, :locator, :variable</tt>
|
||||
* <tt>store_all_window_ids, :variable</tt>
|
||||
* <tt>store_all_window_names, :variable</tt>
|
||||
* <tt>store_all_window_titles, :variable</tt>
|
||||
* <tt>store_cookie, :variable</tt>
|
||||
* <tt>store_log_messages, :variable</tt>
|
||||
* <tt>store_mouse_speed, :variable</tt>
|
||||
* <tt>store_cursor_position, :locator, :variable</tt>
|
||||
* <tt>store_attribute_from_all_windows, :attribute_name, :variable</tt>
|
||||
* <tt>store_element_height, :locator, :variable</tt>
|
||||
* <tt>store_element_index, :locator, :variable</tt>
|
||||
* <tt>store_element_width, :locator, :variable</tt>
|
||||
* <tt>store_element_position_left, :locator, :variable</tt>
|
||||
* <tt>store_element_position_top, :locator, :variable</tt>
|
||||
|
||||
Only the associated assert, verify and wait_for brethren of the following store_* accessors are supported by the selenium-core, so these store_* accessors create exceptions in SOR:
|
||||
* <tt>store_ordered, :locator, :locator, :variable</tt>
|
||||
* <tt>store_error_on_next, :string</tt>
|
||||
* <tt>store_failure_on_next, :string</tt>
|
||||
* <tt>store_whether_this_frame_match_frame_expression, :string, :string, :variable</tt>
|
||||
* <tt>store_whether_this_window_match_window_expression, :string, :string, :variable</tt>
|
||||
196
vendor/plugins/selenium-on-rails/README
vendored
|
|
@ -1,3 +1,125 @@
|
|||
|
||||
Installation for rails versions before Rails 2.1
|
||||
|
||||
Rails has been changed in ways that break the original versions of Selenium on Rails. If you're using versions before Rails 2.1 you need to use this release. There are no plans to update this release with new changes or bug fixes unless there is sufficient demand, so if you can update then do so.
|
||||
|
||||
1. Install Selenium on Rails: script/plugin install http://svn.openqa.org/svn/selenium-on-rails/tags/pre-rails-2-1/selenium-on-rails
|
||||
2. If you‘re on Windows, gem install win32-open3
|
||||
3. If the RedCloth gem is available the Selenese test cases can use it for better markup.
|
||||
4. Run the Rakefile in the plugin‘s directory to run the tests in order to see that everything works. (If RedCloth isn‘t installed a few tests will fail since they assume RedCloth is installed.)
|
||||
5. Create a test case: script/generate selenium login
|
||||
6. Start the server: script/server -e test
|
||||
7. Point your browser to localhost:3000/selenium
|
||||
8. If everything works as expected you should see the Selenium test runner. The north east frame contains all your test cases (just one for now), and the north frame contains your test case.
|
||||
|
||||
Formats
|
||||
|
||||
The test cases can be written in a number of formats. Which one you choose is a matter of taste. You can generate your test files by running script/generate selenium or by creating them manually in your /test/selenium directory.
|
||||
RSelenese, .rsel
|
||||
|
||||
RSelenese enable you to write your tests in Ruby. This is my favorite format.
|
||||
|
||||
setup :fixtures => :all
|
||||
open '/'
|
||||
assert_title 'Home'
|
||||
('a'..'z').each {|c| open :controller => 'user', :action => 'create', :name => c }
|
||||
|
||||
See SeleniumOnRails::TestBuilder for available commands. This is also available in the SeleniumIDE, using the format here. IMPORTANT NOTE: RSelenese generates the HTML tables for Selenium behind the scenes when the page is loaded - ONCE. That means code like this:
|
||||
|
||||
(1..10).each do |index|
|
||||
do something
|
||||
end
|
||||
|
||||
Will only be executed when the test is loaded, not when the test is run. This is a common error and leads to tests that work the first time and fail the second time.
|
||||
Selenese, .sel
|
||||
|
||||
Selenese is the dumbest format (in a good way). You just write your commands delimited by | characters.
|
||||
|
||||
|open|/selenium/setup|
|
||||
|open|/|
|
||||
|goBack|
|
||||
|
||||
If you don‘t want to write Selenese tests by hand you can use SeleniumIDE which has support for Selenese.
|
||||
|
||||
SeleniumIDE makes it super easy to record test and edit them.
|
||||
HTML/RHTML
|
||||
|
||||
You can write your tests in HTML/RHTML but that‘s mostly useful if you have existing tests you want to reuse.
|
||||
Partial test cases
|
||||
|
||||
If you have some common actions you want to do in several test cases you can put them in a separate partial test case and include them in your other test cases. This is highly recommended, just as small functions would be recommended in structured programming.
|
||||
|
||||
A partial test case is just like a normal test case besides that its filename has to start with _:
|
||||
|
||||
#_login.rsel
|
||||
open '/login'
|
||||
type 'name', name
|
||||
type 'password', password
|
||||
click 'submit', :wait=>true
|
||||
|
||||
To include a partial test case in a RSelenese test case:
|
||||
|
||||
include_partial 'login', :name => 'Jane Doe', :password => 'Jane Doe'.reverse
|
||||
|
||||
in a Selenese test case:
|
||||
|
||||
|includePartial|login|name=John Doe|password=eoD nhoJ|
|
||||
|
||||
and in a RHTML test case:
|
||||
|
||||
<%= render :partial => 'login', :locals => {:name = 'Joe Schmo', :password => 'Joe Schmo'.reverse} %>
|
||||
|
||||
Configuration
|
||||
|
||||
There are a number of settings available. You make them by renaming config.yml.example to config.yml and make your changes in that file.
|
||||
Environments
|
||||
|
||||
Per default this plugin is only available in test environment. You can change this by setting environments, such as:
|
||||
|
||||
#config.yml
|
||||
environments:
|
||||
- test
|
||||
- development
|
||||
|
||||
Selenium Core path
|
||||
|
||||
If you don‘t want to use the bundled Selenium Core version you can set selenium_path to the directory where Selenium Core is stored.
|
||||
|
||||
#config.yml
|
||||
selenium_path: 'c:\selenium'
|
||||
|
||||
test:acceptance
|
||||
|
||||
You can run all your Selenium tests as a Rake task. If you're using a continuous builder this is a great way to integrate selenium into your build process.
|
||||
|
||||
First, if you‘re on Windows, you have to make sure win32-open3 is installed. Then you have to configure which browsers you want to run, like this:
|
||||
|
||||
#config.yml
|
||||
browsers:
|
||||
firefox: 'c:\Program Files\Mozilla Firefox\firefox.exe'
|
||||
ie: 'c:\Program Files\Internet Explorer\iexplore.exe'
|
||||
|
||||
Now you‘re all set. First start a server:
|
||||
|
||||
script/server -e test
|
||||
|
||||
Then run the tests:
|
||||
|
||||
rake test:acceptance
|
||||
|
||||
Now it should work, otherwise let me know!
|
||||
Store results
|
||||
|
||||
If you want to store the results from a test:acceptance you just need to set in which directory they should be stored:
|
||||
|
||||
#config.yml
|
||||
result_dir: 'c:\result'
|
||||
|
||||
So when you run rake test:acceptance the tables with the results will be stored as .html files in that directory.
|
||||
|
||||
This can be useful especially for continous integration.
|
||||
|
||||
|
||||
= Selenium on Rails
|
||||
|
||||
== Overview
|
||||
|
|
@ -6,36 +128,37 @@ Selenium on Rails provides an easy way to test Rails application with
|
|||
SeleniumCore[http://www.openqa.org/selenium-core/].
|
||||
|
||||
This plugin does four things:
|
||||
1. The Selenium Core files don't have to pollute <tt>/public</tt>, they can stay in the Selenium gem or in <tt>/vendor/selenium</tt>.
|
||||
1. The Selenium Core files don't have to pollute <tt>/public</tt>.
|
||||
2. No need to create suite files, they are generated on the fly -- one suite per directory in <tt>/test/selenium</tt> (suites can be nested).
|
||||
3. Instead of writing the test cases in HTML you can use a number of better formats (see <tt>Formats</tt>).
|
||||
4. Loading of fixtures and wiping of session (<tt>/selenium/setup</tt>).
|
||||
|
||||
== Installation
|
||||
|
||||
1. Selenium Core needs to be available. It could either be installed as a gem (<tt>gem install selenium</tt>) or in <tt>/vendor/selenium/</tt>.
|
||||
2. Install Selenium on Rails: <tt>script/plugin install http://svn.openqa.org/svn/selenium-on-rails/selenium-on-rails</tt>
|
||||
3. <i>If RedCloth is available the Selenese test cases can use it for better markup.</i>
|
||||
4. Run the Rakefile in the plugin's directory to run the tests in order to see that everything works. (If RedCloth isn't installed a few tests will fail since they assume RedCloth is installed.)
|
||||
5. Create a test case: <tt>script/generate selenium login</tt>
|
||||
6. Start the server: <tt>script/server -e test</tt>
|
||||
7. Point your browser to <tt>http://localhost:3000/selenium</tt>
|
||||
== Installation for Rails 2.1
|
||||
|
||||
1. Install Selenium on Rails: script/plugin install http://svn.openqa.org/svn/selenium-on-rails/current/selenium-on-rails
|
||||
2. If you‘re on Windows, gem install win32-open3
|
||||
3. If the RedCloth gem is available the Selenese test cases can use it for better markup.
|
||||
4. Run the Rakefile in the plugin‘s directory to run the tests in order to see that everything works. (If RedCloth isn‘t installed a few tests will fail since they assume RedCloth is installed.)
|
||||
5. Create a test case: script/generate selenium login
|
||||
6. Start the server: script/server -e test
|
||||
7. Point your browser to localhost:3000/selenium
|
||||
8. If everything works as expected you should see the Selenium test runner. The north east frame contains all your test cases (just one for now), and the north frame contains your test case.
|
||||
|
||||
=== win32-open3
|
||||
== Installation for rails versions before Rails 2.1
|
||||
|
||||
win32-open3[http://raa.ruby-lang.org/project/win32-open3/] is needed if you're
|
||||
on Windows and want to run your tests as a Rake task
|
||||
(see <tt>test:acceptance</tt>), i.e. you don't have to install it but it's
|
||||
recommended.
|
||||
Rails has been changed in ways that break the original versions of Selenium on Rails. If you're using versions before Rails 2.1 you need to use this release. There are no plans to update this release with new changes or bug fixes unless there is sufficient demand, so if you can update then do so.
|
||||
|
||||
You can build it from source or install the binary:
|
||||
1. Install Selenium on Rails: script/plugin install http://svn.openqa.org/svn/selenium-on-rails/tags/pre-rails-2-1/selenium-on-rails
|
||||
2. If you‘re on Windows, gem install win32-open3
|
||||
3. If the RedCloth gem is available the Selenese test cases can use it for better markup.
|
||||
4. Run the Rakefile in the plugin‘s directory to run the tests in order to see that everything works. (If RedCloth isn‘t installed a few tests will fail since they assume RedCloth is installed.)
|
||||
5. Create a test case: script/generate selenium login
|
||||
6. Start the server: script/server -e test
|
||||
7. Point your browser to localhost:3000/selenium
|
||||
8. If everything works as expected you should see the Selenium test runner. The north east frame contains all your test cases (just one for now), and the north frame contains your test case.
|
||||
|
||||
1. Download the latest version of win32-open3, open3-0.2.2.so[http://rubyforge.org/frs/download.php/8515/open3-0.2.2.so] at the time of this writing.
|
||||
2. Open up irb and run this snippet: <tt>require 'rbconfig'; include Config; puts CONFIG['sitearchdir']</tt>
|
||||
3. Create a <tt>win32</tt> directory under the directory you got, e.g. <tt>c:\ruby\lib\ruby\site_ruby\1.8\i386-msvcrt</tt>
|
||||
4. Rename the .so file to <tt>open3.so</tt> and put it in the <tt>win32</tt> directory.
|
||||
5. Profit! (unless you get an error when doing <tt>require 'win32/open3'</tt>)
|
||||
|
||||
== Formats
|
||||
|
||||
|
|
@ -103,9 +226,7 @@ and in a RHTML test case:
|
|||
|
||||
== Configuration
|
||||
|
||||
There are a number of settings available. You make them by renaming
|
||||
<tt>config.yml.example</tt> to <tt>config.yml</tt> and make your changes in that
|
||||
file.
|
||||
There are a number of settings available. You make them by copying <tt>config.yml.example</tt> to <tt>config/selenium.yml</tt> in your application and make your changes in that file.
|
||||
|
||||
=== Environments
|
||||
|
||||
|
|
@ -117,6 +238,14 @@ this by setting <tt>environments</tt>, such as:
|
|||
- test
|
||||
- development
|
||||
|
||||
=== Selenium Core path
|
||||
|
||||
If you don't want to use the bundled Selenium Core version you can set
|
||||
<tt>selenium_path</tt> to the directory where Selenium Core is stored.
|
||||
|
||||
#config.yml
|
||||
selenium_path: 'c:\selenium'
|
||||
|
||||
== <tt>test:acceptance</tt>
|
||||
|
||||
You can run all your Selenium tests as a Rake task.
|
||||
|
|
@ -152,6 +281,20 @@ be stored as <tt>.html</tt> files in that directory.
|
|||
|
||||
This can be useful especially for continous integration.
|
||||
|
||||
=== user_extension.js
|
||||
|
||||
Selenium has support for <tt>user_extension.js</tt> which is a way to extend the
|
||||
functionality of Selenium Core. Selenium on Rails now provides the means for you
|
||||
to extend it's functionality to match.
|
||||
|
||||
To get you started, we've included the example files
|
||||
<tt>lib/test_builder_user_accessors.rb.example</tt> and
|
||||
<tt>lib/test_builder_user_actions.rb.example</tt> that replicate the sample
|
||||
extensions in Selenium Core's <tt>user-extensions.js.sample</tt>
|
||||
|
||||
To get these examples running, simply remove the .example and .sample extensions
|
||||
from the files and restart your server.
|
||||
|
||||
== Todo
|
||||
|
||||
=== Standalone mode
|
||||
|
|
@ -159,12 +302,6 @@ This can be useful especially for continous integration.
|
|||
More work is needed on <tt>test:acceptance</tt> on Windows to be able to start
|
||||
the server when needed.
|
||||
|
||||
=== user_extension.js
|
||||
|
||||
Selenium has support for <tt>user_extension.js</tt> which is a way to extend the
|
||||
functionality of Selenium Core. However there is currently no easy way to add
|
||||
such a file in Selenium on Rails.
|
||||
|
||||
=== More setup/teardown support?
|
||||
|
||||
Currently there is only support to load fixtures and to wipe the session in
|
||||
|
|
@ -186,6 +323,9 @@ the Selenese format.
|
|||
|
||||
* Jon Tirsen, http://jutopia.tirsen.com -- initial inspiration[http://wiki.rubyonrails.com/rails/pages/SeleniumIntegration]
|
||||
* Eric Kidd, http://www.randomhacks.net -- contribution of RSelenese
|
||||
* Jonas Bengston -- original creator
|
||||
* Marcos Tapajos -- Several useful features
|
||||
* Ryan Bates, http://railscasts.com -- Fixes for Rails 2.1
|
||||
|
||||
== Information
|
||||
|
||||
|
|
|
|||
2
vendor/plugins/selenium-on-rails/Rakefile
vendored
|
|
@ -15,7 +15,7 @@ end
|
|||
desc 'Generate documentation for the Selenium on Rails plugin.'
|
||||
task :rdoc do
|
||||
rm_rf 'doc'
|
||||
RDoc::RDoc.new.document(%w(--line-numbers --inline-source --title SeleniumOnRails README lib))
|
||||
RDoc::RDoc.new.document(%w(--line-numbers --inline-source --title SeleniumOnRails README CHANGELOG lib))
|
||||
end
|
||||
|
||||
begin
|
||||
|
|
|
|||
27
vendor/plugins/selenium-on-rails/config.yml
vendored
|
|
@ -1,27 +0,0 @@
|
|||
# Rename this file to config.yml in order to configure the plugin
|
||||
|
||||
#
|
||||
# General settings
|
||||
#
|
||||
|
||||
environments:
|
||||
- test
|
||||
# - development # Uncomment this line to enable in development environment. N.B. your development database will likely be altered/destroyed/abducted
|
||||
|
||||
#selenium_path: 'c:\selenium' #path to selenium installation. only needed when selenium isn't installed in /vendor/selenium or as a gem
|
||||
|
||||
#
|
||||
# rake test:acceptance settings
|
||||
#
|
||||
|
||||
browsers:
|
||||
firefox: 'c:\Program Files\Mozilla Firefox\firefox.exe'
|
||||
ie: 'c:\Program Files\Internet Explorer\iexplore.exe'
|
||||
|
||||
#host: 'localhost'
|
||||
#port_start: 3000
|
||||
#port_end: 3005
|
||||
#max_browser_duration: 120
|
||||
#multi_window: false
|
||||
|
||||
#result_dir: 'c:\result' # the directory where the results will be stored after a test:acceptance run
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
# Rename this file to config.yml in order to configure the plugin
|
||||
# Move this file to your rails apps config directory and rename it to selenium.yml in order to configure the plugin
|
||||
|
||||
#
|
||||
# General settings
|
||||
|
|
@ -8,19 +8,25 @@ environments:
|
|||
- test
|
||||
# - development # Uncomment this line to enable in development environment. N.B. your development database will likely be altered/destroyed/abducted
|
||||
|
||||
#selenium_path: 'c:\selenium' #path to selenium installation. only needed when selenium isn't installed in /vendor/selenium or as a gem
|
||||
#selenium_path: 'c:\selenium' #path to selenium installation. only needed if you for some reason don't want to use the bundled version of selenium core
|
||||
|
||||
#
|
||||
# rake test:acceptance settings
|
||||
#
|
||||
|
||||
browsers:
|
||||
# Windows
|
||||
firefox: 'c:\Program Files\Mozilla Firefox\firefox.exe'
|
||||
ie: 'c:\Program Files\Internet Explorer\iexplore.exe'
|
||||
|
||||
# Mac OS X
|
||||
#firefox: '/Applications/Firefox.app/Contents/MacOS/firefox-bin'
|
||||
#safari: '/Applications/Safari.app/Contents/MacOS/Safari'
|
||||
|
||||
#host: 'localhost'
|
||||
#port_start: 3000
|
||||
#port_end: 3005
|
||||
#base_url_path: '/'
|
||||
#max_browser_duration: 120
|
||||
#multi_window: false
|
||||
|
||||
|
|
|
|||
|
|
@ -98,6 +98,8 @@ Module <a href="SeleniumOnRails/Renderer.html" class="link">SeleniumOnRails::Ren
|
|||
Module <a href="SeleniumOnRails/SuiteRenderer.html" class="link">SeleniumOnRails::SuiteRenderer</a><br />
|
||||
Module <a href="SeleniumOnRails/TestBuilderAccessors.html" class="link">SeleniumOnRails::TestBuilderAccessors</a><br />
|
||||
Module <a href="SeleniumOnRails/TestBuilderActions.html" class="link">SeleniumOnRails::TestBuilderActions</a><br />
|
||||
Module <a href="SeleniumOnRails/TestBuilderUserAccessors.html" class="link">SeleniumOnRails::TestBuilderUserAccessors</a><br />
|
||||
Module <a href="SeleniumOnRails/TestBuilderUserActions.html" class="link">SeleniumOnRails::TestBuilderUserActions</a><br />
|
||||
Class <a href="SeleniumOnRails/RSelenese.html" class="link">SeleniumOnRails::RSelenese</a><br />
|
||||
Class <a href="SeleniumOnRails/Selenese.html" class="link">SeleniumOnRails::Selenese</a><br />
|
||||
Class <a href="SeleniumOnRails/TestBuilder.html" class="link">SeleniumOnRails::TestBuilder</a><br />
|
||||
|
|
|
|||
|
|
@ -80,9 +80,9 @@
|
|||
<h3 class="section-bar">Methods</h3>
|
||||
|
||||
<div class="name-list">
|
||||
<a href="#M000049">available_fixtures</a>
|
||||
<a href="#M000051">clear_tables</a>
|
||||
<a href="#M000050">load_fixtures</a>
|
||||
<a href="#M000083">available_fixtures</a>
|
||||
<a href="#M000085">clear_tables</a>
|
||||
<a href="#M000084">load_fixtures</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
@ -111,106 +111,106 @@
|
|||
<div id="methods">
|
||||
<h3 class="section-bar">Public Instance methods</h3>
|
||||
|
||||
<div id="method-M000049" class="method-detail">
|
||||
<a name="M000049"></a>
|
||||
<div id="method-M000083" class="method-detail">
|
||||
<a name="M000083"></a>
|
||||
|
||||
<div class="method-heading">
|
||||
<a href="#M000049" class="method-signature">
|
||||
<a href="#M000083" class="method-signature">
|
||||
<span class="method-name">available_fixtures</span><span class="method-args">()</span>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="method-description">
|
||||
<p><a class="source-toggle" href="#"
|
||||
onclick="toggleCode('M000049-source');return false;">[Source]</a></p>
|
||||
<div class="method-source-code" id="M000049-source">
|
||||
onclick="toggleCode('M000083-source');return false;">[Source]</a></p>
|
||||
<div class="method-source-code" id="M000083-source">
|
||||
<pre>
|
||||
<span class="ruby-comment cmt"># File lib/selenium_on_rails/fixture_loader.rb, line 6</span>
|
||||
6: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">available_fixtures</span>
|
||||
7: <span class="ruby-identifier">fixtures</span> = {}
|
||||
8: <span class="ruby-identifier">path</span> = <span class="ruby-identifier">fixtures_path</span> <span class="ruby-operator">+</span> <span class="ruby-value str">'/'</span>
|
||||
9: <span class="ruby-identifier">files</span> = <span class="ruby-constant">Dir</span>[<span class="ruby-node">"#{path}**/*.{yml,csv}"</span>]
|
||||
10: <span class="ruby-identifier">files</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">file</span><span class="ruby-operator">|</span>
|
||||
11: <span class="ruby-identifier">rel_path</span> = <span class="ruby-identifier">file</span>.<span class="ruby-identifier">sub</span>(<span class="ruby-identifier">path</span>, <span class="ruby-value str">''</span>)
|
||||
12: <span class="ruby-keyword kw">next</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">skip_file?</span> <span class="ruby-identifier">rel_path</span>
|
||||
13: <span class="ruby-identifier">fixture_set</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">dirname</span>(<span class="ruby-identifier">rel_path</span>)
|
||||
14: <span class="ruby-identifier">fixture_set</span> = <span class="ruby-value str">''</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">fixture_set</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'.'</span>
|
||||
15: <span class="ruby-identifier">fixture</span> = <span class="ruby-identifier">rel_path</span>.<span class="ruby-identifier">sub</span> <span class="ruby-regexp re">/\.[^.]*$/</span>, <span class="ruby-value str">''</span>
|
||||
16: <span class="ruby-identifier">fixtures</span>[<span class="ruby-identifier">fixture_set</span>] <span class="ruby-operator">||=</span> []
|
||||
17: <span class="ruby-identifier">fixtures</span>[<span class="ruby-identifier">fixture_set</span>] <span class="ruby-operator"><<</span> <span class="ruby-identifier">fixture</span>
|
||||
18: <span class="ruby-keyword kw">end</span>
|
||||
19:
|
||||
20: <span class="ruby-identifier">fixtures</span>
|
||||
21: <span class="ruby-keyword kw">end</span>
|
||||
<span class="ruby-comment cmt"># File lib/selenium_on_rails/fixture_loader.rb, line 7</span>
|
||||
7: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">available_fixtures</span>
|
||||
8: <span class="ruby-identifier">fixtures</span> = {}
|
||||
9: <span class="ruby-identifier">path</span> = <span class="ruby-identifier">fixtures_path</span> <span class="ruby-operator">+</span> <span class="ruby-value str">'/'</span>
|
||||
10: <span class="ruby-identifier">files</span> = <span class="ruby-constant">Dir</span>[<span class="ruby-node">"#{path}**/*.{yml,csv}"</span>]
|
||||
11: <span class="ruby-identifier">files</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">file</span><span class="ruby-operator">|</span>
|
||||
12: <span class="ruby-identifier">rel_path</span> = <span class="ruby-identifier">file</span>.<span class="ruby-identifier">sub</span>(<span class="ruby-identifier">path</span>, <span class="ruby-value str">''</span>)
|
||||
13: <span class="ruby-keyword kw">next</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">skip_file?</span> <span class="ruby-identifier">rel_path</span>
|
||||
14: <span class="ruby-identifier">fixture_set</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">dirname</span>(<span class="ruby-identifier">rel_path</span>)
|
||||
15: <span class="ruby-identifier">fixture_set</span> = <span class="ruby-value str">''</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">fixture_set</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'.'</span>
|
||||
16: <span class="ruby-identifier">fixture</span> = <span class="ruby-identifier">rel_path</span>.<span class="ruby-identifier">sub</span> <span class="ruby-regexp re">/\.[^.]*$/</span>, <span class="ruby-value str">''</span>
|
||||
17: <span class="ruby-identifier">fixtures</span>[<span class="ruby-identifier">fixture_set</span>] <span class="ruby-operator">||=</span> []
|
||||
18: <span class="ruby-identifier">fixtures</span>[<span class="ruby-identifier">fixture_set</span>] <span class="ruby-operator"><<</span> <span class="ruby-identifier">fixture</span>
|
||||
19: <span class="ruby-keyword kw">end</span>
|
||||
20:
|
||||
21: <span class="ruby-identifier">fixtures</span>
|
||||
22: <span class="ruby-keyword kw">end</span>
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="method-M000051" class="method-detail">
|
||||
<a name="M000051"></a>
|
||||
<div id="method-M000085" class="method-detail">
|
||||
<a name="M000085"></a>
|
||||
|
||||
<div class="method-heading">
|
||||
<a href="#M000051" class="method-signature">
|
||||
<a href="#M000085" class="method-signature">
|
||||
<span class="method-name">clear_tables</span><span class="method-args">(tables)</span>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="method-description">
|
||||
<p><a class="source-toggle" href="#"
|
||||
onclick="toggleCode('M000051-source');return false;">[Source]</a></p>
|
||||
<div class="method-source-code" id="M000051-source">
|
||||
onclick="toggleCode('M000085-source');return false;">[Source]</a></p>
|
||||
<div class="method-source-code" id="M000085-source">
|
||||
<pre>
|
||||
<span class="ruby-comment cmt"># File lib/selenium_on_rails/fixture_loader.rb, line 45</span>
|
||||
45: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">clear_tables</span> <span class="ruby-identifier">tables</span>
|
||||
46: <span class="ruby-identifier">table_names</span> = <span class="ruby-identifier">tables</span>.<span class="ruby-identifier">split</span> <span class="ruby-regexp re">/\s*,\s*/</span>
|
||||
47: <span class="ruby-identifier">connection</span> = <span class="ruby-constant">ActiveRecord</span><span class="ruby-operator">::</span><span class="ruby-constant">Base</span>.<span class="ruby-identifier">connection</span>
|
||||
48: <span class="ruby-identifier">table_names</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">table</span><span class="ruby-operator">|</span>
|
||||
49: <span class="ruby-identifier">connection</span>.<span class="ruby-identifier">execute</span> <span class="ruby-node">"DELETE FROM #{table}"</span>
|
||||
50: <span class="ruby-keyword kw">end</span>
|
||||
51: <span class="ruby-identifier">table_names</span>
|
||||
52: <span class="ruby-keyword kw">end</span>
|
||||
<span class="ruby-comment cmt"># File lib/selenium_on_rails/fixture_loader.rb, line 46</span>
|
||||
46: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">clear_tables</span> <span class="ruby-identifier">tables</span>
|
||||
47: <span class="ruby-identifier">table_names</span> = <span class="ruby-identifier">tables</span>.<span class="ruby-identifier">split</span> <span class="ruby-regexp re">/\s*,\s*/</span>
|
||||
48: <span class="ruby-identifier">connection</span> = <span class="ruby-constant">ActiveRecord</span><span class="ruby-operator">::</span><span class="ruby-constant">Base</span>.<span class="ruby-identifier">connection</span>
|
||||
49: <span class="ruby-identifier">table_names</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">table</span><span class="ruby-operator">|</span>
|
||||
50: <span class="ruby-identifier">connection</span>.<span class="ruby-identifier">execute</span> <span class="ruby-node">"DELETE FROM #{table}"</span>
|
||||
51: <span class="ruby-keyword kw">end</span>
|
||||
52: <span class="ruby-identifier">table_names</span>
|
||||
53: <span class="ruby-keyword kw">end</span>
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="method-M000050" class="method-detail">
|
||||
<a name="M000050"></a>
|
||||
<div id="method-M000084" class="method-detail">
|
||||
<a name="M000084"></a>
|
||||
|
||||
<div class="method-heading">
|
||||
<a href="#M000050" class="method-signature">
|
||||
<a href="#M000084" class="method-signature">
|
||||
<span class="method-name">load_fixtures</span><span class="method-args">(fixtures_param)</span>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="method-description">
|
||||
<p><a class="source-toggle" href="#"
|
||||
onclick="toggleCode('M000050-source');return false;">[Source]</a></p>
|
||||
<div class="method-source-code" id="M000050-source">
|
||||
onclick="toggleCode('M000084-source');return false;">[Source]</a></p>
|
||||
<div class="method-source-code" id="M000084-source">
|
||||
<pre>
|
||||
<span class="ruby-comment cmt"># File lib/selenium_on_rails/fixture_loader.rb, line 23</span>
|
||||
23: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">load_fixtures</span> <span class="ruby-identifier">fixtures_param</span>
|
||||
24: <span class="ruby-identifier">available</span> = <span class="ruby-keyword kw">nil</span>
|
||||
25: <span class="ruby-identifier">fixtures</span> = <span class="ruby-identifier">fixtures_param</span>.<span class="ruby-identifier">split</span>(<span class="ruby-regexp re">/\s*,\s*/</span>).<span class="ruby-identifier">collect</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">f</span><span class="ruby-operator">|</span>
|
||||
26: <span class="ruby-identifier">fixture_set</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">dirname</span> <span class="ruby-identifier">f</span>
|
||||
27: <span class="ruby-identifier">fixture_set</span> = <span class="ruby-value str">''</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">fixture_set</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'.'</span>
|
||||
28: <span class="ruby-identifier">fixture</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">basename</span> <span class="ruby-identifier">f</span>
|
||||
29: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">fixture</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'all'</span>
|
||||
30: <span class="ruby-identifier">available</span> <span class="ruby-operator">||=</span> <span class="ruby-identifier">available_fixtures</span>
|
||||
31: <span class="ruby-identifier">available</span>[<span class="ruby-identifier">fixture_set</span>]
|
||||
32: <span class="ruby-keyword kw">else</span>
|
||||
33: <span class="ruby-identifier">f</span>
|
||||
34: <span class="ruby-keyword kw">end</span>
|
||||
<span class="ruby-comment cmt"># File lib/selenium_on_rails/fixture_loader.rb, line 24</span>
|
||||
24: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">load_fixtures</span> <span class="ruby-identifier">fixtures_param</span>
|
||||
25: <span class="ruby-identifier">available</span> = <span class="ruby-keyword kw">nil</span>
|
||||
26: <span class="ruby-identifier">fixtures</span> = <span class="ruby-identifier">fixtures_param</span>.<span class="ruby-identifier">split</span>(<span class="ruby-regexp re">/\s*,\s*/</span>).<span class="ruby-identifier">collect</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">f</span><span class="ruby-operator">|</span>
|
||||
27: <span class="ruby-identifier">fixture_set</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">dirname</span> <span class="ruby-identifier">f</span>
|
||||
28: <span class="ruby-identifier">fixture_set</span> = <span class="ruby-value str">''</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">fixture_set</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'.'</span>
|
||||
29: <span class="ruby-identifier">fixture</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">basename</span> <span class="ruby-identifier">f</span>
|
||||
30: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">fixture</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'all'</span>
|
||||
31: <span class="ruby-identifier">available</span> <span class="ruby-operator">||=</span> <span class="ruby-identifier">available_fixtures</span>
|
||||
32: <span class="ruby-identifier">available</span>[<span class="ruby-identifier">fixture_set</span>]
|
||||
33: <span class="ruby-keyword kw">else</span>
|
||||
34: <span class="ruby-identifier">f</span>
|
||||
35: <span class="ruby-keyword kw">end</span>
|
||||
36: <span class="ruby-identifier">fixtures</span>.<span class="ruby-identifier">flatten!</span>
|
||||
37: <span class="ruby-identifier">fixtures</span>.<span class="ruby-identifier">reject!</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">f</span><span class="ruby-operator">|</span> <span class="ruby-identifier">f</span>.<span class="ruby-identifier">blank?</span> }
|
||||
38:
|
||||
39: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">fixtures</span>.<span class="ruby-identifier">any?</span>
|
||||
40: <span class="ruby-constant">Fixtures</span>.<span class="ruby-identifier">create_fixtures</span> <span class="ruby-identifier">fixtures_path</span>, <span class="ruby-identifier">fixtures</span>
|
||||
41: <span class="ruby-keyword kw">end</span>
|
||||
42: <span class="ruby-identifier">fixtures</span>
|
||||
43: <span class="ruby-keyword kw">end</span>
|
||||
36: <span class="ruby-keyword kw">end</span>
|
||||
37: <span class="ruby-identifier">fixtures</span>.<span class="ruby-identifier">flatten!</span>
|
||||
38: <span class="ruby-identifier">fixtures</span>.<span class="ruby-identifier">reject!</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">f</span><span class="ruby-operator">|</span> <span class="ruby-identifier">f</span>.<span class="ruby-identifier">blank?</span> }
|
||||
39:
|
||||
40: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">fixtures</span>.<span class="ruby-identifier">any?</span>
|
||||
41: <span class="ruby-constant">Fixtures</span>.<span class="ruby-identifier">create_fixtures</span> <span class="ruby-identifier">fixtures_path</span>, <span class="ruby-identifier">fixtures</span>
|
||||
42: <span class="ruby-keyword kw">end</span>
|
||||
43: <span class="ruby-identifier">fixtures</span>
|
||||
44: <span class="ruby-keyword kw">end</span>
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -78,7 +78,7 @@ Provides partials support to test cases so they can include other partial
|
|||
test cases.
|
||||
</p>
|
||||
<p>
|
||||
The partial’s commands are returned as html table rows.
|
||||
The partial‘s commands are returned as html table rows.
|
||||
</p>
|
||||
|
||||
</div>
|
||||
|
|
@ -90,8 +90,8 @@ The partial’s commands are returned as html table rows.
|
|||
<h3 class="section-bar">Methods</h3>
|
||||
|
||||
<div class="name-list">
|
||||
<a href="#M000081">extract_commands_from_partial</a>
|
||||
<a href="#M000080">render_partial</a>
|
||||
<a href="#M000142">extract_commands_from_partial</a>
|
||||
<a href="#M000141">render_partial</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
@ -120,11 +120,11 @@ The partial’s commands are returned as html table rows.
|
|||
<div id="methods">
|
||||
<h3 class="section-bar">Public Instance methods</h3>
|
||||
|
||||
<div id="method-M000081" class="method-detail">
|
||||
<a name="M000081"></a>
|
||||
<div id="method-M000142" class="method-detail">
|
||||
<a name="M000142"></a>
|
||||
|
||||
<div class="method-heading">
|
||||
<a href="#M000081" class="method-signature">
|
||||
<a href="#M000142" class="method-signature">
|
||||
<span class="method-name">extract_commands_from_partial</span><span class="method-args">(partial)</span>
|
||||
</a>
|
||||
</div>
|
||||
|
|
@ -135,8 +135,8 @@ Extracts the commands from a partial. The partial must contain a html table
|
|||
and the first row is ignored since it cannot contain a command.
|
||||
</p>
|
||||
<p><a class="source-toggle" href="#"
|
||||
onclick="toggleCode('M000081-source');return false;">[Source]</a></p>
|
||||
<div class="method-source-code" id="M000081-source">
|
||||
onclick="toggleCode('M000142-source');return false;">[Source]</a></p>
|
||||
<div class="method-source-code" id="M000142-source">
|
||||
<pre>
|
||||
<span class="ruby-comment cmt"># File lib/selenium_on_rails/partials_support.rb, line 19</span>
|
||||
19: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">extract_commands_from_partial</span> <span class="ruby-identifier">partial</span>
|
||||
|
|
@ -149,11 +149,11 @@ and the first row is ignored since it cannot contain a command.
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<div id="method-M000080" class="method-detail">
|
||||
<a name="M000080"></a>
|
||||
<div id="method-M000141" class="method-detail">
|
||||
<a name="M000141"></a>
|
||||
|
||||
<div class="method-heading">
|
||||
<a href="#M000080" class="method-signature">
|
||||
<a href="#M000141" class="method-signature">
|
||||
<span class="method-name">render_partial</span><span class="method-args">(partial_path = default_template_name, object = nil, local_assigns = nil, status = nil)</span>
|
||||
</a>
|
||||
</div>
|
||||
|
|
@ -164,8 +164,8 @@ Overrides where the partial is searched for, and returns only the command
|
|||
table rows.
|
||||
</p>
|
||||
<p><a class="source-toggle" href="#"
|
||||
onclick="toggleCode('M000080-source');return false;">[Source]</a></p>
|
||||
<div class="method-source-code" id="M000080-source">
|
||||
onclick="toggleCode('M000141-source');return false;">[Source]</a></p>
|
||||
<div class="method-source-code" id="M000141-source">
|
||||
<pre>
|
||||
<span class="ruby-comment cmt"># File lib/selenium_on_rails/partials_support.rb, line 9</span>
|
||||
9: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">render_partial</span> <span class="ruby-identifier">partial_path</span> = <span class="ruby-identifier">default_template_name</span>, <span class="ruby-identifier">object</span> = <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">local_assigns</span> = <span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">status</span> = <span class="ruby-keyword kw">nil</span>
|
||||
|
|
|
|||
|
|
@ -80,13 +80,13 @@
|
|||
<h3 class="section-bar">Methods</h3>
|
||||
|
||||
<div class="name-list">
|
||||
<a href="#M000042">fixtures_path</a>
|
||||
<a href="#M000041">layout_path</a>
|
||||
<a href="#M000043">log_path</a>
|
||||
<a href="#M000038">selenium_path</a>
|
||||
<a href="#M000039">selenium_tests_path</a>
|
||||
<a href="#M000044">skip_file?</a>
|
||||
<a href="#M000040">view_path</a>
|
||||
<a href="#M000076">fixtures_path</a>
|
||||
<a href="#M000075">layout_path</a>
|
||||
<a href="#M000077">log_path</a>
|
||||
<a href="#M000072">selenium_path</a>
|
||||
<a href="#M000073">selenium_tests_path</a>
|
||||
<a href="#M000078">skip_file?</a>
|
||||
<a href="#M000074">view_path</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
@ -108,19 +108,19 @@
|
|||
<div id="methods">
|
||||
<h3 class="section-bar">Public Instance methods</h3>
|
||||
|
||||
<div id="method-M000042" class="method-detail">
|
||||
<a name="M000042"></a>
|
||||
<div id="method-M000076" class="method-detail">
|
||||
<a name="M000076"></a>
|
||||
|
||||
<div class="method-heading">
|
||||
<a href="#M000042" class="method-signature">
|
||||
<a href="#M000076" class="method-signature">
|
||||
<span class="method-name">fixtures_path</span><span class="method-args">()</span>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="method-description">
|
||||
<p><a class="source-toggle" href="#"
|
||||
onclick="toggleCode('M000042-source');return false;">[Source]</a></p>
|
||||
<div class="method-source-code" id="M000042-source">
|
||||
onclick="toggleCode('M000076-source');return false;">[Source]</a></p>
|
||||
<div class="method-source-code" id="M000076-source">
|
||||
<pre>
|
||||
<span class="ruby-comment cmt"># File lib/selenium_on_rails/paths.rb, line 25</span>
|
||||
25: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">fixtures_path</span>
|
||||
|
|
@ -131,11 +131,11 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<div id="method-M000041" class="method-detail">
|
||||
<a name="M000041"></a>
|
||||
<div id="method-M000075" class="method-detail">
|
||||
<a name="M000075"></a>
|
||||
|
||||
<div class="method-heading">
|
||||
<a href="#M000041" class="method-signature">
|
||||
<a href="#M000075" class="method-signature">
|
||||
<span class="method-name">layout_path</span><span class="method-args">()</span>
|
||||
</a>
|
||||
</div>
|
||||
|
|
@ -143,12 +143,12 @@
|
|||
<div class="method-description">
|
||||
<p>
|
||||
Returns the path to the layout template. The path is relative in relation
|
||||
to the app/views/ directory since Rails doesn’t support absolute
|
||||
to the app/views/ directory since Rails doesn‘t support absolute
|
||||
paths to layout templates.
|
||||
</p>
|
||||
<p><a class="source-toggle" href="#"
|
||||
onclick="toggleCode('M000041-source');return false;">[Source]</a></p>
|
||||
<div class="method-source-code" id="M000041-source">
|
||||
onclick="toggleCode('M000075-source');return false;">[Source]</a></p>
|
||||
<div class="method-source-code" id="M000075-source">
|
||||
<pre>
|
||||
<span class="ruby-comment cmt"># File lib/selenium_on_rails/paths.rb, line 19</span>
|
||||
19: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">layout_path</span>
|
||||
|
|
@ -161,42 +161,42 @@ paths to layout templates.
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<div id="method-M000043" class="method-detail">
|
||||
<a name="M000043"></a>
|
||||
<div id="method-M000077" class="method-detail">
|
||||
<a name="M000077"></a>
|
||||
|
||||
<div class="method-heading">
|
||||
<a href="#M000043" class="method-signature">
|
||||
<a href="#M000077" class="method-signature">
|
||||
<span class="method-name">log_path</span><span class="method-args">(log_file)</span>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="method-description">
|
||||
<p><a class="source-toggle" href="#"
|
||||
onclick="toggleCode('M000043-source');return false;">[Source]</a></p>
|
||||
<div class="method-source-code" id="M000043-source">
|
||||
onclick="toggleCode('M000077-source');return false;">[Source]</a></p>
|
||||
<div class="method-source-code" id="M000077-source">
|
||||
<pre>
|
||||
<span class="ruby-comment cmt"># File lib/selenium_on_rails/paths.rb, line 29</span>
|
||||
29: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">log_path</span> <span class="ruby-identifier">log_file</span>
|
||||
30: <span class="ruby-constant">File</span>.<span class="ruby-identifier">expand_path</span>(<span class="ruby-constant">File</span>.<span class="ruby-identifier">dirname</span>(<span class="ruby-keyword kw">__FILE__</span>) <span class="ruby-operator">+</span> <span class="ruby-value str">'/../../log/'</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">log_file</span>)
|
||||
30: <span class="ruby-constant">File</span>.<span class="ruby-identifier">expand_path</span>(<span class="ruby-constant">File</span>.<span class="ruby-identifier">dirname</span>(<span class="ruby-keyword kw">__FILE__</span>) <span class="ruby-operator">+</span> <span class="ruby-value str">'/../../log/'</span> <span class="ruby-operator">+</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">basename</span>(<span class="ruby-identifier">log_file</span>))
|
||||
31: <span class="ruby-keyword kw">end</span>
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="method-M000038" class="method-detail">
|
||||
<a name="M000038"></a>
|
||||
<div id="method-M000072" class="method-detail">
|
||||
<a name="M000072"></a>
|
||||
|
||||
<div class="method-heading">
|
||||
<a href="#M000038" class="method-signature">
|
||||
<a href="#M000072" class="method-signature">
|
||||
<span class="method-name">selenium_path</span><span class="method-args">()</span>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="method-description">
|
||||
<p><a class="source-toggle" href="#"
|
||||
onclick="toggleCode('M000038-source');return false;">[Source]</a></p>
|
||||
<div class="method-source-code" id="M000038-source">
|
||||
onclick="toggleCode('M000072-source');return false;">[Source]</a></p>
|
||||
<div class="method-source-code" id="M000072-source">
|
||||
<pre>
|
||||
<span class="ruby-comment cmt"># File lib/selenium_on_rails/paths.rb, line 3</span>
|
||||
3: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">selenium_path</span>
|
||||
|
|
@ -208,19 +208,19 @@ paths to layout templates.
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<div id="method-M000039" class="method-detail">
|
||||
<a name="M000039"></a>
|
||||
<div id="method-M000073" class="method-detail">
|
||||
<a name="M000073"></a>
|
||||
|
||||
<div class="method-heading">
|
||||
<a href="#M000039" class="method-signature">
|
||||
<a href="#M000073" class="method-signature">
|
||||
<span class="method-name">selenium_tests_path</span><span class="method-args">()</span>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="method-description">
|
||||
<p><a class="source-toggle" href="#"
|
||||
onclick="toggleCode('M000039-source');return false;">[Source]</a></p>
|
||||
<div class="method-source-code" id="M000039-source">
|
||||
onclick="toggleCode('M000073-source');return false;">[Source]</a></p>
|
||||
<div class="method-source-code" id="M000073-source">
|
||||
<pre>
|
||||
<span class="ruby-comment cmt"># File lib/selenium_on_rails/paths.rb, line 8</span>
|
||||
8: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">selenium_tests_path</span>
|
||||
|
|
@ -231,19 +231,19 @@ paths to layout templates.
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<div id="method-M000044" class="method-detail">
|
||||
<a name="M000044"></a>
|
||||
<div id="method-M000078" class="method-detail">
|
||||
<a name="M000078"></a>
|
||||
|
||||
<div class="method-heading">
|
||||
<a href="#M000044" class="method-signature">
|
||||
<a href="#M000078" class="method-signature">
|
||||
<span class="method-name">skip_file?</span><span class="method-args">(file)</span>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="method-description">
|
||||
<p><a class="source-toggle" href="#"
|
||||
onclick="toggleCode('M000044-source');return false;">[Source]</a></p>
|
||||
<div class="method-source-code" id="M000044-source">
|
||||
onclick="toggleCode('M000078-source');return false;">[Source]</a></p>
|
||||
<div class="method-source-code" id="M000078-source">
|
||||
<pre>
|
||||
<span class="ruby-comment cmt"># File lib/selenium_on_rails/paths.rb, line 33</span>
|
||||
33: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">skip_file?</span> <span class="ruby-identifier">file</span>
|
||||
|
|
@ -257,19 +257,19 @@ paths to layout templates.
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<div id="method-M000040" class="method-detail">
|
||||
<a name="M000040"></a>
|
||||
<div id="method-M000074" class="method-detail">
|
||||
<a name="M000074"></a>
|
||||
|
||||
<div class="method-heading">
|
||||
<a href="#M000040" class="method-signature">
|
||||
<a href="#M000074" class="method-signature">
|
||||
<span class="method-name">view_path</span><span class="method-args">(view)</span>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="method-description">
|
||||
<p><a class="source-toggle" href="#"
|
||||
onclick="toggleCode('M000040-source');return false;">[Source]</a></p>
|
||||
<div class="method-source-code" id="M000040-source">
|
||||
onclick="toggleCode('M000074-source');return false;">[Source]</a></p>
|
||||
<div class="method-source-code" id="M000074-source">
|
||||
<pre>
|
||||
<span class="ruby-comment cmt"># File lib/selenium_on_rails/paths.rb, line 12</span>
|
||||
12: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">view_path</span> <span class="ruby-identifier">view</span>
|
||||
|
|
|
|||
|
|
@ -104,8 +104,8 @@ of available commands.
|
|||
<h3 class="section-bar">Methods</h3>
|
||||
|
||||
<div class="name-list">
|
||||
<a href="#M000084">new</a>
|
||||
<a href="#M000085">render</a>
|
||||
<a href="#M000145">new</a>
|
||||
<a href="#M000146">render</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
@ -140,23 +140,23 @@ of available commands.
|
|||
<div id="methods">
|
||||
<h3 class="section-bar">Public Class methods</h3>
|
||||
|
||||
<div id="method-M000084" class="method-detail">
|
||||
<a name="M000084"></a>
|
||||
<div id="method-M000145" class="method-detail">
|
||||
<a name="M000145"></a>
|
||||
|
||||
<div class="method-heading">
|
||||
<a href="#M000084" class="method-signature">
|
||||
<a href="#M000145" class="method-signature">
|
||||
<span class="method-name">new</span><span class="method-args">(view)</span>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="method-description">
|
||||
<p>
|
||||
Create a new <a href="RSelenese.html">RSelenese</a> renderer bound to
|
||||
<em>view</em>.
|
||||
Create a <a href="RSelenese.html#M000145">new</a> <a
|
||||
href="RSelenese.html">RSelenese</a> renderer bound to <em>view</em>.
|
||||
</p>
|
||||
<p><a class="source-toggle" href="#"
|
||||
onclick="toggleCode('M000084-source');return false;">[Source]</a></p>
|
||||
<div class="method-source-code" id="M000084-source">
|
||||
onclick="toggleCode('M000145-source');return false;">[Source]</a></p>
|
||||
<div class="method-source-code" id="M000145-source">
|
||||
<pre>
|
||||
<span class="ruby-comment cmt"># File lib/selenium_on_rails/rselenese.rb, line 17</span>
|
||||
17: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span> <span class="ruby-identifier">view</span>
|
||||
|
|
@ -170,11 +170,11 @@ Create a new <a href="RSelenese.html">RSelenese</a> renderer bound to
|
|||
|
||||
<h3 class="section-bar">Public Instance methods</h3>
|
||||
|
||||
<div id="method-M000085" class="method-detail">
|
||||
<a name="M000085"></a>
|
||||
<div id="method-M000146" class="method-detail">
|
||||
<a name="M000146"></a>
|
||||
|
||||
<div class="method-heading">
|
||||
<a href="#M000085" class="method-signature">
|
||||
<a href="#M000146" class="method-signature">
|
||||
<span class="method-name">render</span><span class="method-args">(template, local_assigns)</span>
|
||||
</a>
|
||||
</div>
|
||||
|
|
@ -184,14 +184,14 @@ Create a new <a href="RSelenese.html">RSelenese</a> renderer bound to
|
|||
Render <em>template</em> using <em>local_assigns</em>.
|
||||
</p>
|
||||
<p><a class="source-toggle" href="#"
|
||||
onclick="toggleCode('M000085-source');return false;">[Source]</a></p>
|
||||
<div class="method-source-code" id="M000085-source">
|
||||
onclick="toggleCode('M000146-source');return false;">[Source]</a></p>
|
||||
<div class="method-source-code" id="M000146-source">
|
||||
<pre>
|
||||
<span class="ruby-comment cmt"># File lib/selenium_on_rails/rselenese.rb, line 23</span>
|
||||
23: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">render</span> <span class="ruby-identifier">template</span>, <span class="ruby-identifier">local_assigns</span>
|
||||
24: <span class="ruby-identifier">title</span> = (<span class="ruby-ivar">@view</span>.<span class="ruby-identifier">assigns</span>[<span class="ruby-value str">'page_title'</span>] <span class="ruby-keyword kw">or</span> <span class="ruby-identifier">local_assigns</span>[<span class="ruby-value str">'page_title'</span>])
|
||||
25: <span class="ruby-identifier">table</span>(<span class="ruby-identifier">title</span>) <span class="ruby-keyword kw">do</span>
|
||||
26: <span class="ruby-identifier">test</span> = <span class="ruby-keyword kw">self</span> <span class="ruby-comment cmt">#to enable test.command</span>
|
||||
26: <span class="ruby-identifier">test</span> = <span class="ruby-keyword kw">self</span> <span class="ruby-comment cmt">#to enable test.command
</span>
|
||||
27:
|
||||
28: <span class="ruby-identifier">assign_locals_code</span> = <span class="ruby-value str">''</span>
|
||||
29: <span class="ruby-identifier">local_assigns</span>.<span class="ruby-identifier">each_key</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">key</span><span class="ruby-operator">|</span> <span class="ruby-identifier">assign_locals_code</span> <span class="ruby-operator"><<</span> <span class="ruby-node">"#{key} = local_assigns[#{key.inspect}];"</span>}
|
||||
|
|
|
|||
|
|
@ -80,7 +80,7 @@
|
|||
<h3 class="section-bar">Methods</h3>
|
||||
|
||||
<div class="name-list">
|
||||
<a href="#M000037">render_test_case</a>
|
||||
<a href="#M000071">render_test_case</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
@ -110,19 +110,19 @@
|
|||
<div id="methods">
|
||||
<h3 class="section-bar">Public Instance methods</h3>
|
||||
|
||||
<div id="method-M000037" class="method-detail">
|
||||
<a name="M000037"></a>
|
||||
<div id="method-M000071" class="method-detail">
|
||||
<a name="M000071"></a>
|
||||
|
||||
<div class="method-heading">
|
||||
<a href="#M000037" class="method-signature">
|
||||
<a href="#M000071" class="method-signature">
|
||||
<span class="method-name">render_test_case</span><span class="method-args">(filename)</span>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="method-description">
|
||||
<p><a class="source-toggle" href="#"
|
||||
onclick="toggleCode('M000037-source');return false;">[Source]</a></p>
|
||||
<div class="method-source-code" id="M000037-source">
|
||||
onclick="toggleCode('M000071-source');return false;">[Source]</a></p>
|
||||
<div class="method-source-code" id="M000071-source">
|
||||
<pre>
|
||||
<span class="ruby-comment cmt"># File lib/selenium_on_rails/renderer.rb, line 5</span>
|
||||
5: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">render_test_case</span> <span class="ruby-identifier">filename</span>
|
||||
|
|
|
|||
|
|
@ -86,8 +86,8 @@
|
|||
<h3 class="section-bar">Methods</h3>
|
||||
|
||||
<div class="name-list">
|
||||
<a href="#M000082">new</a>
|
||||
<a href="#M000083">render</a>
|
||||
<a href="#M000143">new</a>
|
||||
<a href="#M000144">render</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
@ -109,19 +109,19 @@
|
|||
<div id="methods">
|
||||
<h3 class="section-bar">Public Class methods</h3>
|
||||
|
||||
<div id="method-M000082" class="method-detail">
|
||||
<a name="M000082"></a>
|
||||
<div id="method-M000143" class="method-detail">
|
||||
<a name="M000143"></a>
|
||||
|
||||
<div class="method-heading">
|
||||
<a href="#M000082" class="method-signature">
|
||||
<a href="#M000143" class="method-signature">
|
||||
<span class="method-name">new</span><span class="method-args">(view)</span>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="method-description">
|
||||
<p><a class="source-toggle" href="#"
|
||||
onclick="toggleCode('M000082-source');return false;">[Source]</a></p>
|
||||
<div class="method-source-code" id="M000082-source">
|
||||
onclick="toggleCode('M000143-source');return false;">[Source]</a></p>
|
||||
<div class="method-source-code" id="M000143-source">
|
||||
<pre>
|
||||
<span class="ruby-comment cmt"># File lib/selenium_on_rails/selenese.rb, line 7</span>
|
||||
7: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span> <span class="ruby-identifier">view</span>
|
||||
|
|
@ -134,19 +134,19 @@
|
|||
|
||||
<h3 class="section-bar">Public Instance methods</h3>
|
||||
|
||||
<div id="method-M000083" class="method-detail">
|
||||
<a name="M000083"></a>
|
||||
<div id="method-M000144" class="method-detail">
|
||||
<a name="M000144"></a>
|
||||
|
||||
<div class="method-heading">
|
||||
<a href="#M000083" class="method-signature">
|
||||
<a href="#M000144" class="method-signature">
|
||||
<span class="method-name">render</span><span class="method-args">(template, local_assigns)</span>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="method-description">
|
||||
<p><a class="source-toggle" href="#"
|
||||
onclick="toggleCode('M000083-source');return false;">[Source]</a></p>
|
||||
<div class="method-source-code" id="M000083-source">
|
||||
onclick="toggleCode('M000144-source');return false;">[Source]</a></p>
|
||||
<div class="method-source-code" id="M000144-source">
|
||||
<pre>
|
||||
<span class="ruby-comment cmt"># File lib/selenium_on_rails/selenese.rb, line 11</span>
|
||||
11: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">render</span> <span class="ruby-identifier">template</span>, <span class="ruby-identifier">local_assigns</span>
|
||||
|
|
|
|||
|
|
@ -80,10 +80,10 @@
|
|||
<h3 class="section-bar">Methods</h3>
|
||||
|
||||
<div class="name-list">
|
||||
<a href="#M000048">link_to_test_case</a>
|
||||
<a href="#M000047">test_cases</a>
|
||||
<a href="#M000045">test_suite_name</a>
|
||||
<a href="#M000046">test_suites</a>
|
||||
<a href="#M000082">link_to_test_case</a>
|
||||
<a href="#M000081">test_cases</a>
|
||||
<a href="#M000079">test_suite_name</a>
|
||||
<a href="#M000080">test_suites</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
@ -105,19 +105,19 @@
|
|||
<div id="methods">
|
||||
<h3 class="section-bar">Public Instance methods</h3>
|
||||
|
||||
<div id="method-M000048" class="method-detail">
|
||||
<a name="M000048"></a>
|
||||
<div id="method-M000082" class="method-detail">
|
||||
<a name="M000082"></a>
|
||||
|
||||
<div class="method-heading">
|
||||
<a href="#M000048" class="method-signature">
|
||||
<a href="#M000082" class="method-signature">
|
||||
<span class="method-name">link_to_test_case</span><span class="method-args">(suite_name, filename)</span>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="method-description">
|
||||
<p><a class="source-toggle" href="#"
|
||||
onclick="toggleCode('M000048-source');return false;">[Source]</a></p>
|
||||
<div class="method-source-code" id="M000048-source">
|
||||
onclick="toggleCode('M000082-source');return false;">[Source]</a></p>
|
||||
<div class="method-source-code" id="M000082-source">
|
||||
<pre>
|
||||
<span class="ruby-comment cmt"># File lib/selenium_on_rails/suite_renderer.rb, line 24</span>
|
||||
24: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">link_to_test_case</span> <span class="ruby-identifier">suite_name</span>, <span class="ruby-identifier">filename</span>
|
||||
|
|
@ -129,19 +129,19 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<div id="method-M000047" class="method-detail">
|
||||
<a name="M000047"></a>
|
||||
<div id="method-M000081" class="method-detail">
|
||||
<a name="M000081"></a>
|
||||
|
||||
<div class="method-heading">
|
||||
<a href="#M000047" class="method-signature">
|
||||
<a href="#M000081" class="method-signature">
|
||||
<span class="method-name">test_cases</span><span class="method-args">(path)</span>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="method-description">
|
||||
<p><a class="source-toggle" href="#"
|
||||
onclick="toggleCode('M000047-source');return false;">[Source]</a></p>
|
||||
<div class="method-source-code" id="M000047-source">
|
||||
onclick="toggleCode('M000081-source');return false;">[Source]</a></p>
|
||||
<div class="method-source-code" id="M000081-source">
|
||||
<pre>
|
||||
<span class="ruby-comment cmt"># File lib/selenium_on_rails/suite_renderer.rb, line 18</span>
|
||||
18: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">test_cases</span> <span class="ruby-identifier">path</span>
|
||||
|
|
@ -154,19 +154,19 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<div id="method-M000045" class="method-detail">
|
||||
<a name="M000045"></a>
|
||||
<div id="method-M000079" class="method-detail">
|
||||
<a name="M000079"></a>
|
||||
|
||||
<div class="method-heading">
|
||||
<a href="#M000045" class="method-signature">
|
||||
<a href="#M000079" class="method-signature">
|
||||
<span class="method-name">test_suite_name</span><span class="method-args">(path)</span>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="method-description">
|
||||
<p><a class="source-toggle" href="#"
|
||||
onclick="toggleCode('M000045-source');return false;">[Source]</a></p>
|
||||
<div class="method-source-code" id="M000045-source">
|
||||
onclick="toggleCode('M000079-source');return false;">[Source]</a></p>
|
||||
<div class="method-source-code" id="M000079-source">
|
||||
<pre>
|
||||
<span class="ruby-comment cmt"># File lib/selenium_on_rails/suite_renderer.rb, line 2</span>
|
||||
2: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">test_suite_name</span> <span class="ruby-identifier">path</span>
|
||||
|
|
@ -178,25 +178,25 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<div id="method-M000046" class="method-detail">
|
||||
<a name="M000046"></a>
|
||||
<div id="method-M000080" class="method-detail">
|
||||
<a name="M000080"></a>
|
||||
|
||||
<div class="method-heading">
|
||||
<a href="#M000046" class="method-signature">
|
||||
<a href="#M000080" class="method-signature">
|
||||
<span class="method-name">test_suites</span><span class="method-args">(path)</span>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="method-description">
|
||||
<p><a class="source-toggle" href="#"
|
||||
onclick="toggleCode('M000046-source');return false;">[Source]</a></p>
|
||||
<div class="method-source-code" id="M000046-source">
|
||||
onclick="toggleCode('M000080-source');return false;">[Source]</a></p>
|
||||
<div class="method-source-code" id="M000080-source">
|
||||
<pre>
|
||||
<span class="ruby-comment cmt"># File lib/selenium_on_rails/suite_renderer.rb, line 7</span>
|
||||
7: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">test_suites</span> <span class="ruby-identifier">path</span>
|
||||
8: <span class="ruby-identifier">suites</span> = []
|
||||
9:
|
||||
10: <span class="ruby-identifier">parent_path</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-constant">File</span>.<span class="ruby-identifier">split</span>(<span class="ruby-identifier">path</span>).<span class="ruby-identifier">slice</span>(<span class="ruby-value">0</span><span class="ruby-operator">..</span><span class="ruby-value">-2</span>)) <span class="ruby-comment cmt">#all but last</span>
|
||||
10: <span class="ruby-identifier">parent_path</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-constant">File</span>.<span class="ruby-identifier">split</span>(<span class="ruby-identifier">path</span>).<span class="ruby-identifier">slice</span>(<span class="ruby-value">0</span><span class="ruby-operator">..</span><span class="ruby-value">-2</span>)) <span class="ruby-comment cmt">#all but last
</span>
|
||||
11: <span class="ruby-identifier">parent_path</span> = <span class="ruby-identifier">path_to_relative_url</span> <span class="ruby-identifier">parent_path</span>
|
||||
12: <span class="ruby-identifier">suites</span> <span class="ruby-operator"><<</span> [<span class="ruby-value str">'..'</span>, <span class="ruby-identifier">parent_path</span>] <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">parent_path</span>.<span class="ruby-identifier">nil?</span>
|
||||
13:
|
||||
|
|
|
|||
|
|
@ -80,8 +80,9 @@
|
|||
|
||||
<div id="description">
|
||||
<p>
|
||||
Builds Selenium test table using a high-level Ruby interface. Normally
|
||||
invoked through <a href="RSelenese.html">SeleniumOnRails::RSelenese</a>.
|
||||
Builds Selenium test <a href="TestBuilder.html#M000150">table</a> using a
|
||||
high-level Ruby interface. Normally invoked through <a
|
||||
href="RSelenese.html">SeleniumOnRails::RSelenese</a>.
|
||||
</p>
|
||||
<p>
|
||||
See <a
|
||||
|
|
@ -106,14 +107,16 @@ href="http://release.openqa.org/selenium-core/nightly/reference.html">release.op
|
|||
<h3 class="section-bar">Methods</h3>
|
||||
|
||||
<div class="name-list">
|
||||
<a href="#M000090">command</a>
|
||||
<a href="#M000092">command_and_wait</a>
|
||||
<a href="#M000091">command_verbatim</a>
|
||||
<a href="#M000087">exactize</a>
|
||||
<a href="#M000093">make_command_waiting</a>
|
||||
<a href="#M000088">new</a>
|
||||
<a href="#M000086">selenize</a>
|
||||
<a href="#M000089">table</a>
|
||||
<a href="#M000156">collection_arg</a>
|
||||
<a href="#M000151">command</a>
|
||||
<a href="#M000153">command_and_wait</a>
|
||||
<a href="#M000152">command_verbatim</a>
|
||||
<a href="#M000148">exactize</a>
|
||||
<a href="#M000154">make_command_waiting</a>
|
||||
<a href="#M000149">new</a>
|
||||
<a href="#M000147">selenize</a>
|
||||
<a href="#M000150">table</a>
|
||||
<a href="#M000155">url_arg</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
@ -127,6 +130,8 @@ href="http://release.openqa.org/selenium-core/nightly/reference.html">release.op
|
|||
<div id="includes-list">
|
||||
<span class="include-name"><a href="TestBuilderActions.html">SeleniumOnRails::TestBuilderActions</a></span>
|
||||
<span class="include-name"><a href="TestBuilderAccessors.html">SeleniumOnRails::TestBuilderAccessors</a></span>
|
||||
<span class="include-name"><a href="TestBuilderUserActions.html">SeleniumOnRails::TestBuilderUserActions</a></span>
|
||||
<span class="include-name"><a href="TestBuilderUserAccessors.html">SeleniumOnRails::TestBuilderUserAccessors</a></span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
@ -143,55 +148,57 @@ href="http://release.openqa.org/selenium-core/nightly/reference.html">release.op
|
|||
<div id="methods">
|
||||
<h3 class="section-bar">Public Class methods</h3>
|
||||
|
||||
<div id="method-M000088" class="method-detail">
|
||||
<a name="M000088"></a>
|
||||
<div id="method-M000149" class="method-detail">
|
||||
<a name="M000149"></a>
|
||||
|
||||
<div class="method-heading">
|
||||
<a href="#M000088" class="method-signature">
|
||||
<a href="#M000149" class="method-signature">
|
||||
<span class="method-name">new</span><span class="method-args">(view)</span>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="method-description">
|
||||
<p>
|
||||
Create a new <a href="TestBuilder.html">TestBuilder</a> for <em>view</em>.
|
||||
Create a <a href="TestBuilder.html#M000149">new</a> <a
|
||||
href="TestBuilder.html">TestBuilder</a> for <em>view</em>.
|
||||
</p>
|
||||
<p><a class="source-toggle" href="#"
|
||||
onclick="toggleCode('M000088-source');return false;">[Source]</a></p>
|
||||
<div class="method-source-code" id="M000088-source">
|
||||
onclick="toggleCode('M000149-source');return false;">[Source]</a></p>
|
||||
<div class="method-source-code" id="M000149-source">
|
||||
<pre>
|
||||
<span class="ruby-comment cmt"># File lib/selenium_on_rails/test_builder.rb, line 26</span>
|
||||
26: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span> <span class="ruby-identifier">view</span>
|
||||
27: <span class="ruby-ivar">@view</span> = <span class="ruby-identifier">view</span>
|
||||
28: <span class="ruby-ivar">@output</span> = <span class="ruby-value str">''</span>
|
||||
29: <span class="ruby-ivar">@xml</span> = <span class="ruby-constant">Builder</span><span class="ruby-operator">::</span><span class="ruby-constant">XmlMarkup</span>.<span class="ruby-identifier">new</span> <span class="ruby-identifier">:indent</span> =<span class="ruby-operator">></span> <span class="ruby-value">2</span>, <span class="ruby-identifier">:target</span> =<span class="ruby-operator">></span> <span class="ruby-ivar">@output</span>
|
||||
30: <span class="ruby-keyword kw">end</span>
|
||||
<span class="ruby-comment cmt"># File lib/selenium_on_rails/test_builder.rb, line 47</span>
|
||||
47: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span> <span class="ruby-identifier">view</span>
|
||||
48: <span class="ruby-ivar">@view</span> = <span class="ruby-identifier">view</span>
|
||||
49: <span class="ruby-ivar">@output</span> = <span class="ruby-value str">''</span>
|
||||
50: <span class="ruby-ivar">@xml</span> = <span class="ruby-constant">Builder</span><span class="ruby-operator">::</span><span class="ruby-constant">XmlMarkup</span>.<span class="ruby-identifier">new</span> <span class="ruby-identifier">:indent</span> =<span class="ruby-operator">></span> <span class="ruby-value">2</span>, <span class="ruby-identifier">:target</span> =<span class="ruby-operator">></span> <span class="ruby-ivar">@output</span>
|
||||
51: <span class="ruby-keyword kw">end</span>
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="method-M000086" class="method-detail">
|
||||
<a name="M000086"></a>
|
||||
<div id="method-M000147" class="method-detail">
|
||||
<a name="M000147"></a>
|
||||
|
||||
<div class="method-heading">
|
||||
<a href="#M000086" class="method-signature">
|
||||
<a href="#M000147" class="method-signature">
|
||||
<span class="method-name">selenize</span><span class="method-args">(str)</span>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="method-description">
|
||||
<p>
|
||||
Convert <em>str</em> to a Selenium command name.
|
||||
Convert <em>str</em> to a Selenium <a
|
||||
href="TestBuilder.html#M000151">command</a> name.
|
||||
</p>
|
||||
<p><a class="source-toggle" href="#"
|
||||
onclick="toggleCode('M000086-source');return false;">[Source]</a></p>
|
||||
<div class="method-source-code" id="M000086-source">
|
||||
onclick="toggleCode('M000147-source');return false;">[Source]</a></p>
|
||||
<div class="method-source-code" id="M000147-source">
|
||||
<pre>
|
||||
<span class="ruby-comment cmt"># File lib/selenium_on_rails/test_builder.rb, line 15</span>
|
||||
15: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">selenize</span> <span class="ruby-identifier">str</span>
|
||||
16: <span class="ruby-identifier">str</span>.<span class="ruby-identifier">camelize</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/^[A-Z]/</span>) {<span class="ruby-operator">|</span><span class="ruby-identifier">s</span><span class="ruby-operator">|</span> <span class="ruby-identifier">s</span>.<span class="ruby-identifier">downcase</span> }
|
||||
17: <span class="ruby-keyword kw">end</span>
|
||||
<span class="ruby-comment cmt"># File lib/selenium_on_rails/test_builder.rb, line 36</span>
|
||||
36: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">selenize</span> <span class="ruby-identifier">str</span>
|
||||
37: <span class="ruby-identifier">str</span>.<span class="ruby-identifier">camelize</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/^[A-Z]/</span>) {<span class="ruby-operator">|</span><span class="ruby-identifier">s</span><span class="ruby-operator">|</span> <span class="ruby-identifier">s</span>.<span class="ruby-identifier">downcase</span> }
|
||||
38: <span class="ruby-keyword kw">end</span>
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -199,66 +206,67 @@ Convert <em>str</em> to a Selenium command name.
|
|||
|
||||
<h3 class="section-bar">Public Instance methods</h3>
|
||||
|
||||
<div id="method-M000090" class="method-detail">
|
||||
<a name="M000090"></a>
|
||||
<div id="method-M000151" class="method-detail">
|
||||
<a name="M000151"></a>
|
||||
|
||||
<div class="method-heading">
|
||||
<a href="#M000090" class="method-signature">
|
||||
<a href="#M000151" class="method-signature">
|
||||
<span class="method-name">command</span><span class="method-args">(cmd, target=nil, value=nil)</span>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="method-description">
|
||||
<p>
|
||||
Add a new test command using <em>cmd</em>, <em>target</em> and
|
||||
<em>value</em>.
|
||||
Add a <a href="TestBuilder.html#M000149">new</a> test <a
|
||||
href="TestBuilder.html#M000151">command</a> using <em>cmd</em>,
|
||||
<em>target</em> and <em>value</em>.
|
||||
</p>
|
||||
<p><a class="source-toggle" href="#"
|
||||
onclick="toggleCode('M000090-source');return false;">[Source]</a></p>
|
||||
<div class="method-source-code" id="M000090-source">
|
||||
onclick="toggleCode('M000151-source');return false;">[Source]</a></p>
|
||||
<div class="method-source-code" id="M000151-source">
|
||||
<pre>
|
||||
<span class="ruby-comment cmt"># File lib/selenium_on_rails/test_builder.rb, line 41</span>
|
||||
41: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">command</span> <span class="ruby-identifier">cmd</span>, <span class="ruby-identifier">target</span>=<span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">value</span>=<span class="ruby-keyword kw">nil</span>
|
||||
42: <span class="ruby-ivar">@xml</span>.<span class="ruby-identifier">tr</span> <span class="ruby-keyword kw">do</span>
|
||||
43: <span class="ruby-identifier">_tdata</span> <span class="ruby-identifier">cmd</span>
|
||||
44: <span class="ruby-identifier">_tdata</span> <span class="ruby-identifier">target</span>
|
||||
45: <span class="ruby-identifier">_tdata</span> <span class="ruby-identifier">value</span>
|
||||
46: <span class="ruby-keyword kw">end</span>
|
||||
47: <span class="ruby-keyword kw">end</span>
|
||||
<span class="ruby-comment cmt"># File lib/selenium_on_rails/test_builder.rb, line 62</span>
|
||||
62: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">command</span> <span class="ruby-identifier">cmd</span>, <span class="ruby-identifier">target</span>=<span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">value</span>=<span class="ruby-keyword kw">nil</span>
|
||||
63: <span class="ruby-ivar">@xml</span>.<span class="ruby-identifier">tr</span> <span class="ruby-keyword kw">do</span>
|
||||
64: <span class="ruby-identifier">_tdata</span> <span class="ruby-identifier">cmd</span>
|
||||
65: <span class="ruby-identifier">_tdata</span> <span class="ruby-identifier">target</span>
|
||||
66: <span class="ruby-identifier">_tdata</span> <span class="ruby-identifier">value</span>
|
||||
67: <span class="ruby-keyword kw">end</span>
|
||||
68: <span class="ruby-keyword kw">end</span>
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="method-M000092" class="method-detail">
|
||||
<a name="M000092"></a>
|
||||
<div id="method-M000153" class="method-detail">
|
||||
<a name="M000153"></a>
|
||||
|
||||
<div class="method-heading">
|
||||
<a href="#M000092" class="method-signature">
|
||||
<a href="#M000153" class="method-signature">
|
||||
<span class="method-name">command_and_wait</span><span class="method-args">(cmd, target=nil, value=nil)</span>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="method-description">
|
||||
<p>
|
||||
Same as <em>command</em> but add <em>AndWait</em> to the name of
|
||||
<em>cmd</em>.
|
||||
Same as <em><a href="TestBuilder.html#M000151">command</a></em> but add
|
||||
<em>AndWait</em> to the name of <em>cmd</em>.
|
||||
</p>
|
||||
<p><a class="source-toggle" href="#"
|
||||
onclick="toggleCode('M000092-source');return false;">[Source]</a></p>
|
||||
<div class="method-source-code" id="M000092-source">
|
||||
onclick="toggleCode('M000153-source');return false;">[Source]</a></p>
|
||||
<div class="method-source-code" id="M000153-source">
|
||||
<pre>
|
||||
<span class="ruby-comment cmt"># File lib/selenium_on_rails/test_builder.rb, line 52</span>
|
||||
52: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">command_and_wait</span> <span class="ruby-identifier">cmd</span>, <span class="ruby-identifier">target</span>=<span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">value</span>=<span class="ruby-keyword kw">nil</span>
|
||||
53: <span class="ruby-identifier">command_verbatim</span> <span class="ruby-identifier">cmd</span>.<span class="ruby-identifier">to_s</span> <span class="ruby-operator">+</span> <span class="ruby-value str">'AndWait'</span>, <span class="ruby-identifier">target</span>, <span class="ruby-identifier">value</span>
|
||||
54: <span class="ruby-keyword kw">end</span>
|
||||
<span class="ruby-comment cmt"># File lib/selenium_on_rails/test_builder.rb, line 73</span>
|
||||
73: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">command_and_wait</span> <span class="ruby-identifier">cmd</span>, <span class="ruby-identifier">target</span>=<span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">value</span>=<span class="ruby-keyword kw">nil</span>
|
||||
74: <span class="ruby-identifier">command_verbatim</span> <span class="ruby-identifier">cmd</span>.<span class="ruby-identifier">to_s</span> <span class="ruby-operator">+</span> <span class="ruby-value str">'AndWait'</span>, <span class="ruby-identifier">target</span>, <span class="ruby-identifier">value</span>
|
||||
75: <span class="ruby-keyword kw">end</span>
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="method-M000091" class="method-detail">
|
||||
<a name="M000091"></a>
|
||||
<div id="method-M000152" class="method-detail">
|
||||
<a name="M000152"></a>
|
||||
|
||||
<div class="method-heading">
|
||||
<span class="method-name">command_verbatim</span><span class="method-args">(cmd, target=nil, value=nil)</span>
|
||||
|
|
@ -266,16 +274,16 @@ Same as <em>command</em> but add <em>AndWait</em> to the name of
|
|||
|
||||
<div class="method-description">
|
||||
<p>
|
||||
Alias for <a href="TestBuilder.html#M000090">command</a>
|
||||
Alias for <a href="TestBuilder.html#M000151">command</a>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="method-M000087" class="method-detail">
|
||||
<a name="M000087"></a>
|
||||
<div id="method-M000148" class="method-detail">
|
||||
<a name="M000148"></a>
|
||||
|
||||
<div class="method-heading">
|
||||
<a href="#M000087" class="method-signature">
|
||||
<a href="#M000148" class="method-signature">
|
||||
<span class="method-name">exactize</span><span class="method-args">(pattern)</span>
|
||||
</a>
|
||||
</div>
|
||||
|
|
@ -286,23 +294,23 @@ Prepends <em>pattern</em> with ‘exact:’ if it would be
|
|||
considered containing string-match pattern otherwise.
|
||||
</p>
|
||||
<p><a class="source-toggle" href="#"
|
||||
onclick="toggleCode('M000087-source');return false;">[Source]</a></p>
|
||||
<div class="method-source-code" id="M000087-source">
|
||||
onclick="toggleCode('M000148-source');return false;">[Source]</a></p>
|
||||
<div class="method-source-code" id="M000148-source">
|
||||
<pre>
|
||||
<span class="ruby-comment cmt"># File lib/selenium_on_rails/test_builder.rb, line 21</span>
|
||||
21: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">exactize</span> <span class="ruby-identifier">pattern</span>
|
||||
22: <span class="ruby-identifier">pattern</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-value str">':'</span>) <span class="ruby-operator">?</span> <span class="ruby-node">"exact:#{pattern}"</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">pattern</span>
|
||||
23: <span class="ruby-keyword kw">end</span>
|
||||
<span class="ruby-comment cmt"># File lib/selenium_on_rails/test_builder.rb, line 42</span>
|
||||
42: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">exactize</span> <span class="ruby-identifier">pattern</span>
|
||||
43: <span class="ruby-identifier">pattern</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-value str">':'</span>) <span class="ruby-operator">?</span> <span class="ruby-node">"exact:#{pattern}"</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">pattern</span>
|
||||
44: <span class="ruby-keyword kw">end</span>
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="method-M000093" class="method-detail">
|
||||
<a name="M000093"></a>
|
||||
<div id="method-M000154" class="method-detail">
|
||||
<a name="M000154"></a>
|
||||
|
||||
<div class="method-heading">
|
||||
<a href="#M000093" class="method-signature">
|
||||
<a href="#M000154" class="method-signature">
|
||||
<span class="method-name">make_command_waiting</span><span class="method-args">() {|| ...}</span>
|
||||
</a>
|
||||
</div>
|
||||
|
|
@ -310,48 +318,109 @@ considered containing string-match pattern otherwise.
|
|||
<div class="method-description">
|
||||
<p>
|
||||
Re routes commands in the provided block to <a
|
||||
href="TestBuilder.html#M000092">command_and_wait</a> instead of <a
|
||||
href="TestBuilder.html#M000090">command</a>.
|
||||
href="TestBuilder.html#M000153">command_and_wait</a> instead of <a
|
||||
href="TestBuilder.html#M000151">command</a>.
|
||||
</p>
|
||||
<p><a class="source-toggle" href="#"
|
||||
onclick="toggleCode('M000093-source');return false;">[Source]</a></p>
|
||||
<div class="method-source-code" id="M000093-source">
|
||||
onclick="toggleCode('M000154-source');return false;">[Source]</a></p>
|
||||
<div class="method-source-code" id="M000154-source">
|
||||
<pre>
|
||||
<span class="ruby-comment cmt"># File lib/selenium_on_rails/test_builder.rb, line 58</span>
|
||||
58: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">make_command_waiting</span>
|
||||
59: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">send</span> <span class="ruby-identifier">:alias_method</span>, <span class="ruby-identifier">:command</span>, <span class="ruby-identifier">:command_and_wait</span>
|
||||
60: <span class="ruby-keyword kw">yield</span>
|
||||
61: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">send</span> <span class="ruby-identifier">:alias_method</span>, <span class="ruby-identifier">:command</span>, <span class="ruby-identifier">:command_verbatim</span>
|
||||
62: <span class="ruby-keyword kw">end</span>
|
||||
<span class="ruby-comment cmt"># File lib/selenium_on_rails/test_builder.rb, line 79</span>
|
||||
79: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">make_command_waiting</span>
|
||||
80: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">send</span> <span class="ruby-identifier">:alias_method</span>, <span class="ruby-identifier">:command</span>, <span class="ruby-identifier">:command_and_wait</span>
|
||||
81: <span class="ruby-keyword kw">yield</span>
|
||||
82: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">send</span> <span class="ruby-identifier">:alias_method</span>, <span class="ruby-identifier">:command</span>, <span class="ruby-identifier">:command_verbatim</span>
|
||||
83: <span class="ruby-keyword kw">end</span>
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="method-M000089" class="method-detail">
|
||||
<a name="M000089"></a>
|
||||
<div id="method-M000150" class="method-detail">
|
||||
<a name="M000150"></a>
|
||||
|
||||
<div class="method-heading">
|
||||
<a href="#M000089" class="method-signature">
|
||||
<a href="#M000150" class="method-signature">
|
||||
<span class="method-name">table</span><span class="method-args">(title) {|self| ...}</span>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="method-description">
|
||||
<p>
|
||||
Add a new table of tests, and return the HTML.
|
||||
Add a <a href="TestBuilder.html#M000149">new</a> <a
|
||||
href="TestBuilder.html#M000150">table</a> of tests, and return the HTML.
|
||||
</p>
|
||||
<p><a class="source-toggle" href="#"
|
||||
onclick="toggleCode('M000089-source');return false;">[Source]</a></p>
|
||||
<div class="method-source-code" id="M000089-source">
|
||||
onclick="toggleCode('M000150-source');return false;">[Source]</a></p>
|
||||
<div class="method-source-code" id="M000150-source">
|
||||
<pre>
|
||||
<span class="ruby-comment cmt"># File lib/selenium_on_rails/test_builder.rb, line 33</span>
|
||||
33: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">table</span> <span class="ruby-identifier">title</span>
|
||||
34: <span class="ruby-ivar">@xml</span>.<span class="ruby-identifier">table</span> <span class="ruby-keyword kw">do</span>
|
||||
35: <span class="ruby-ivar">@xml</span>.<span class="ruby-identifier">tr</span> <span class="ruby-keyword kw">do</span> <span class="ruby-ivar">@xml</span>.<span class="ruby-identifier">th</span>(<span class="ruby-identifier">title</span>, <span class="ruby-identifier">:colspan</span> =<span class="ruby-operator">></span> <span class="ruby-value">3</span>) <span class="ruby-keyword kw">end</span>
|
||||
36: <span class="ruby-keyword kw">yield</span> <span class="ruby-keyword kw">self</span>
|
||||
37: <span class="ruby-keyword kw">end</span>
|
||||
38: <span class="ruby-keyword kw">end</span>
|
||||
<span class="ruby-comment cmt"># File lib/selenium_on_rails/test_builder.rb, line 54</span>
|
||||
54: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">table</span> <span class="ruby-identifier">title</span>
|
||||
55: <span class="ruby-ivar">@xml</span>.<span class="ruby-identifier">table</span> <span class="ruby-keyword kw">do</span>
|
||||
56: <span class="ruby-ivar">@xml</span>.<span class="ruby-identifier">tr</span> <span class="ruby-keyword kw">do</span> <span class="ruby-ivar">@xml</span>.<span class="ruby-identifier">th</span>(<span class="ruby-identifier">title</span>, <span class="ruby-identifier">:colspan</span> =<span class="ruby-operator">></span> <span class="ruby-value">3</span>) <span class="ruby-keyword kw">end</span>
|
||||
57: <span class="ruby-keyword kw">yield</span> <span class="ruby-keyword kw">self</span>
|
||||
58: <span class="ruby-keyword kw">end</span>
|
||||
59: <span class="ruby-keyword kw">end</span>
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h3 class="section-bar">Protected Instance methods</h3>
|
||||
|
||||
<div id="method-M000156" class="method-detail">
|
||||
<a name="M000156"></a>
|
||||
|
||||
<div class="method-heading">
|
||||
<a href="#M000156" class="method-signature">
|
||||
<span class="method-name">collection_arg</span><span class="method-args">(arg)</span>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="method-description">
|
||||
<p>
|
||||
If <em>arg</em> is an array formats <em>arg</em> to a textual
|
||||
representation. Otherwise return unchanged.
|
||||
</p>
|
||||
<p><a class="source-toggle" href="#"
|
||||
onclick="toggleCode('M000156-source');return false;">[Source]</a></p>
|
||||
<div class="method-source-code" id="M000156-source">
|
||||
<pre>
|
||||
<span class="ruby-comment cmt"># File lib/selenium_on_rails/test_builder.rb, line 95</span>
|
||||
95: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">collection_arg</span> <span class="ruby-identifier">arg</span>
|
||||
96: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">arg</span>.<span class="ruby-identifier">is_a?</span> <span class="ruby-constant">Array</span>
|
||||
97: <span class="ruby-identifier">arg</span>.<span class="ruby-identifier">collect</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">e</span><span class="ruby-operator">|</span> <span class="ruby-identifier">e</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/[\\,]/</span>) {<span class="ruby-operator">|</span><span class="ruby-identifier">s</span><span class="ruby-operator">|</span> <span class="ruby-node">"\\#{s}"</span> } }.<span class="ruby-identifier">join</span>(<span class="ruby-value str">','</span>)
|
||||
98: <span class="ruby-keyword kw">else</span>
|
||||
99: <span class="ruby-identifier">arg</span>
|
||||
100: <span class="ruby-keyword kw">end</span>
|
||||
101: <span class="ruby-keyword kw">end</span>
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="method-M000155" class="method-detail">
|
||||
<a name="M000155"></a>
|
||||
|
||||
<div class="method-heading">
|
||||
<a href="#M000155" class="method-signature">
|
||||
<span class="method-name">url_arg</span><span class="method-args">(url)</span>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="method-description">
|
||||
<p>
|
||||
If <em>url</em> is a string, return unchanged. Otherwise, pass it to
|
||||
ActionView#UrlHelper#url_for.
|
||||
</p>
|
||||
<p><a class="source-toggle" href="#"
|
||||
onclick="toggleCode('M000155-source');return false;">[Source]</a></p>
|
||||
<div class="method-source-code" id="M000155-source">
|
||||
<pre>
|
||||
<span class="ruby-comment cmt"># File lib/selenium_on_rails/test_builder.rb, line 89</span>
|
||||
89: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">url_arg</span> <span class="ruby-identifier">url</span>
|
||||
90: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">url</span>.<span class="ruby-identifier">instance_of?</span>(<span class="ruby-constant">String</span>) <span class="ruby-keyword kw">then</span> <span class="ruby-identifier">url</span> <span class="ruby-keyword kw">else</span> <span class="ruby-identifier">exactize</span>(<span class="ruby-ivar">@view</span>.<span class="ruby-identifier">url_for</span>(<span class="ruby-identifier">url</span>)) <span class="ruby-keyword kw">end</span>
|
||||
91: <span class="ruby-keyword kw">end</span>
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
116
vendor/plugins/selenium-on-rails/doc/classes/SeleniumOnRails/TestBuilderUserAccessors.html
vendored
Normal file
|
|
@ -0,0 +1,116 @@
|
|||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!DOCTYPE html
|
||||
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
||||
<head>
|
||||
<title>Module: SeleniumOnRails::TestBuilderUserAccessors</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
||||
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
||||
<link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
|
||||
<script type="text/javascript">
|
||||
// <![CDATA[
|
||||
|
||||
function popupCode( url ) {
|
||||
window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
|
||||
}
|
||||
|
||||
function toggleCode( id ) {
|
||||
if ( document.getElementById )
|
||||
elem = document.getElementById( id );
|
||||
else if ( document.all )
|
||||
elem = eval( "document.all." + id );
|
||||
else
|
||||
return false;
|
||||
|
||||
elemStyle = elem.style;
|
||||
|
||||
if ( elemStyle.display != "block" ) {
|
||||
elemStyle.display = "block"
|
||||
} else {
|
||||
elemStyle.display = "none"
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
// Make codeblocks hidden by default
|
||||
document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
|
||||
|
||||
// ]]>
|
||||
</script>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
||||
|
||||
|
||||
<div id="classHeader">
|
||||
<table class="header-table">
|
||||
<tr class="top-aligned-row">
|
||||
<td><strong>Module</strong></td>
|
||||
<td class="class-name-in-header">SeleniumOnRails::TestBuilderUserAccessors</td>
|
||||
</tr>
|
||||
<tr class="top-aligned-row">
|
||||
<td><strong>In:</strong></td>
|
||||
<td>
|
||||
<a href="../../files/lib/selenium_on_rails/test_builder_rb.html">
|
||||
lib/selenium_on_rails/test_builder.rb
|
||||
</a>
|
||||
<br />
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
</table>
|
||||
</div>
|
||||
<!-- banner header -->
|
||||
|
||||
<div id="bodyContent">
|
||||
|
||||
|
||||
|
||||
<div id="contextContent">
|
||||
|
||||
<div id="description">
|
||||
<p>
|
||||
Create test_builder_user_accessors.rb to support accessors included in
|
||||
selenium-core‘s user-extensions.js
|
||||
</p>
|
||||
<p>
|
||||
See test_builder_user_accessors.rb.example for examples matching
|
||||
selenium-core‘s user-extensions.js.sample
|
||||
</p>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<!-- if includes -->
|
||||
|
||||
<div id="section">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!-- if method_list -->
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div id="validator-badges">
|
||||
<p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
116
vendor/plugins/selenium-on-rails/doc/classes/SeleniumOnRails/TestBuilderUserActions.html
vendored
Normal file
|
|
@ -0,0 +1,116 @@
|
|||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!DOCTYPE html
|
||||
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
||||
<head>
|
||||
<title>Module: SeleniumOnRails::TestBuilderUserActions</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
||||
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
||||
<link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
|
||||
<script type="text/javascript">
|
||||
// <![CDATA[
|
||||
|
||||
function popupCode( url ) {
|
||||
window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
|
||||
}
|
||||
|
||||
function toggleCode( id ) {
|
||||
if ( document.getElementById )
|
||||
elem = document.getElementById( id );
|
||||
else if ( document.all )
|
||||
elem = eval( "document.all." + id );
|
||||
else
|
||||
return false;
|
||||
|
||||
elemStyle = elem.style;
|
||||
|
||||
if ( elemStyle.display != "block" ) {
|
||||
elemStyle.display = "block"
|
||||
} else {
|
||||
elemStyle.display = "none"
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
// Make codeblocks hidden by default
|
||||
document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
|
||||
|
||||
// ]]>
|
||||
</script>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
||||
|
||||
|
||||
<div id="classHeader">
|
||||
<table class="header-table">
|
||||
<tr class="top-aligned-row">
|
||||
<td><strong>Module</strong></td>
|
||||
<td class="class-name-in-header">SeleniumOnRails::TestBuilderUserActions</td>
|
||||
</tr>
|
||||
<tr class="top-aligned-row">
|
||||
<td><strong>In:</strong></td>
|
||||
<td>
|
||||
<a href="../../files/lib/selenium_on_rails/test_builder_rb.html">
|
||||
lib/selenium_on_rails/test_builder.rb
|
||||
</a>
|
||||
<br />
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
</table>
|
||||
</div>
|
||||
<!-- banner header -->
|
||||
|
||||
<div id="bodyContent">
|
||||
|
||||
|
||||
|
||||
<div id="contextContent">
|
||||
|
||||
<div id="description">
|
||||
<p>
|
||||
Create test_builder_user_actions.rb to support actions included in
|
||||
selenium-core‘s user-extensions.js
|
||||
</p>
|
||||
<p>
|
||||
See test_builder_user_actions.rb.example for examples matching
|
||||
selenium-core‘s user-extensions.js.sample
|
||||
</p>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<!-- if includes -->
|
||||
|
||||
<div id="section">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!-- if method_list -->
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div id="validator-badges">
|
||||
<p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
422
vendor/plugins/selenium-on-rails/doc/files/CHANGELOG.html
vendored
Normal file
|
|
@ -0,0 +1,422 @@
|
|||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!DOCTYPE html
|
||||
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
||||
<head>
|
||||
<title>File: CHANGELOG</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
||||
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
||||
<link rel="stylesheet" href=".././rdoc-style.css" type="text/css" media="screen" />
|
||||
<script type="text/javascript">
|
||||
// <![CDATA[
|
||||
|
||||
function popupCode( url ) {
|
||||
window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
|
||||
}
|
||||
|
||||
function toggleCode( id ) {
|
||||
if ( document.getElementById )
|
||||
elem = document.getElementById( id );
|
||||
else if ( document.all )
|
||||
elem = eval( "document.all." + id );
|
||||
else
|
||||
return false;
|
||||
|
||||
elemStyle = elem.style;
|
||||
|
||||
if ( elemStyle.display != "block" ) {
|
||||
elemStyle.display = "block"
|
||||
} else {
|
||||
elemStyle.display = "none"
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
// Make codeblocks hidden by default
|
||||
document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
|
||||
|
||||
// ]]>
|
||||
</script>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
||||
|
||||
|
||||
<div id="fileHeader">
|
||||
<h1>CHANGELOG</h1>
|
||||
<table class="header-table">
|
||||
<tr class="top-aligned-row">
|
||||
<td><strong>Path:</strong></td>
|
||||
<td>CHANGELOG
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="top-aligned-row">
|
||||
<td><strong>Last Update:</strong></td>
|
||||
<td>Sat Feb 03 23:49:15 +0100 2007</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<!-- banner header -->
|
||||
|
||||
<div id="bodyContent">
|
||||
|
||||
|
||||
|
||||
<div id="contextContent">
|
||||
|
||||
<div id="description">
|
||||
<h2>REVISION <a href="http://svn.openqa.org/fisheye/changelog/selenium-on-rails/?cs=38">38</a></h2>
|
||||
<h3>change made by Flanagan</h3>
|
||||
<ul>
|
||||
<li><a href="http://jira.openqa.org/browse/SOR-13">SOR-13</a> Corrected an
|
||||
omission of require statements.
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
<h2>REVISION 37</h2>
|
||||
<h3>change made by Flanagan</h3>
|
||||
<ul>
|
||||
<li>Undone an unwanted commit of modified Rakefile.
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
<h2>REVISION <a href="http://svn.openqa.org/fisheye/changelog/selenium-on-rails/?cs=36">36</a></h2>
|
||||
<h3>change made by Flanagan</h3>
|
||||
<ul>
|
||||
<li><a href="http://jira.openqa.org/browse/SOR-13">SOR-13</a> Added
|
||||
(experimental) support for user-extensions.js.
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
<h2>REVISION <a href="http://svn.openqa.org/fisheye/changelog/selenium-on-rails/?cs=35">35</a></h2>
|
||||
<h3>all changes made by Jonas</h3>
|
||||
<ul>
|
||||
<li><a href="http://jira.openqa.org/browse/SOR-12">SOR-12</a> removed all
|
||||
support for selenium gem
|
||||
|
||||
</li>
|
||||
<li>Selenium Core 0.8.2 is now bundled with Selenium on Rails. If you want to
|
||||
use other version set the ‘selenium_path’ in config.yml
|
||||
|
||||
</li>
|
||||
<li>Updated installation instructions for Windows
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
<h2>REVISION <a href="http://svn.openqa.org/fisheye/changelog/selenium-on-rails/?cs=34">34</a></h2>
|
||||
<h3>all changes made by Flanagan</h3>
|
||||
<ul>
|
||||
<li><a href="http://jira.openqa.org/browse/SOR-11">SOR-11</a> Fixed related
|
||||
assertions for store_checked to use only locator parameter
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
Warning: Users must change tests that pass two parameters (locator,
|
||||
pattern) to <tt>verify_checked</tt>, <tt>verify_not_checked</tt>,
|
||||
<tt>assert_checked</tt>, <tt>assert_not_checked</tt>,
|
||||
<tt>wait_for_checked</tt>, or <tt>wait_for_not_checked</tt>.
|
||||
</p>
|
||||
<p>
|
||||
Test scripts that continue to use two parameters will be broken, only one
|
||||
parameter, the locator, should be passed.
|
||||
</p>
|
||||
<p>
|
||||
For example, <tt>|verify_checked|my_checkbox|true|</tt> will be interpreted
|
||||
as <tt>|verify_checked|my_checkboxtrue||</tt> so change the test to
|
||||
<tt>|verify_checked|my_checkbox||</tt>
|
||||
</p>
|
||||
<ul>
|
||||
<li><a href="http://jira.openqa.org/browse/SOR-9">SOR-9</a> Added Mac OS X
|
||||
browsers to config.yml.example
|
||||
|
||||
</li>
|
||||
<li><a href="http://jira.openqa.org/browse/SOR-10">SOR-10</a> Added support for
|
||||
baseUrl to acceptance_test_runner.rb as added to selenium-core 0.8.2
|
||||
|
||||
</li>
|
||||
<li>Added ‘webrick’ to SERVER_COMMAND in acceptance_test_runner.rb
|
||||
as parameters do not work with lighttpd
|
||||
|
||||
</li>
|
||||
<li>Reversed expected query string in test/renderer_testrb to make tests pass
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
Note: On Mac OS X, at least, clear_tables comes before fixtures in the
|
||||
query string; this may be an environment-specific issue if the test now
|
||||
fails on other OSes.
|
||||
</p>
|
||||
<ul>
|
||||
<li>Added this CHANGELOG file and amended the rake rdoc task to include it
|
||||
|
||||
</li>
|
||||
<li>Added support in rselenese for a long list of actions and accessors that
|
||||
are included in selenium-core (0.8.2 and possibly earlier) but were
|
||||
previously missing in selenium-on-rails.
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
Here are the newly supported actions:
|
||||
</p>
|
||||
<p>
|
||||
Useful for debugging:
|
||||
</p>
|
||||
<ul>
|
||||
<li><tt>brake</tt> (alias for selenium-core‘s break, a reserved word in
|
||||
Ruby)
|
||||
|
||||
</li>
|
||||
<li><tt>echo, :string</tt>
|
||||
|
||||
</li>
|
||||
<li><tt>highlight, :locator</tt>
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
Keyboard events:
|
||||
</p>
|
||||
<ul>
|
||||
<li><tt>alt_key_down</tt>
|
||||
|
||||
</li>
|
||||
<li><tt>alt_key_up</tt>
|
||||
|
||||
</li>
|
||||
<li><tt>control_key_down</tt>
|
||||
|
||||
</li>
|
||||
<li><tt>control_key_up</tt>
|
||||
|
||||
</li>
|
||||
<li><tt>meta_key_down</tt>
|
||||
|
||||
</li>
|
||||
<li><tt>meta_key_up</tt>
|
||||
|
||||
</li>
|
||||
<li><tt>shift_key_down</tt>
|
||||
|
||||
</li>
|
||||
<li><tt>shift_key_up</tt>
|
||||
|
||||
</li>
|
||||
<li><tt>type_keys, :locator, :string</tt>
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
Mouse events:
|
||||
</p>
|
||||
<ul>
|
||||
<li><tt>click_at, :locator, :coord_string</tt>
|
||||
|
||||
</li>
|
||||
<li><tt>double_click, :locator</tt>
|
||||
|
||||
</li>
|
||||
<li><tt>double_click_at, :locator, :coord_string</tt>
|
||||
|
||||
</li>
|
||||
<li><tt>drag_and_drop, :locator, :movements_string</tt>
|
||||
|
||||
</li>
|
||||
<li><tt>drag_and_drop_to_object, :locator, :locator</tt>
|
||||
|
||||
</li>
|
||||
<li><tt>mouse_down_at, :locator, :coord_string</tt>
|
||||
|
||||
</li>
|
||||
<li><tt>mouse_move, :locator</tt>
|
||||
|
||||
</li>
|
||||
<li><tt>mouse_move_at, :locator, :coord_string</tt>
|
||||
|
||||
</li>
|
||||
<li><tt>mouse_out, :locator</tt>
|
||||
|
||||
</li>
|
||||
<li><tt>mouse_up, :locator</tt>
|
||||
|
||||
</li>
|
||||
<li><tt>mouse_up_at, :locator, :coord_string</tt>
|
||||
|
||||
</li>
|
||||
<li><tt>set_mouse_speed, :integer</tt>
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
Other actions:
|
||||
</p>
|
||||
<ul>
|
||||
<li><tt>create_cookie, :name_value_pair, :options_string</tt>
|
||||
|
||||
</li>
|
||||
<li><tt>delete_cookie, :string, :string</tt>
|
||||
|
||||
</li>
|
||||
<li><tt>open_window, :url, :integer</tt>
|
||||
|
||||
</li>
|
||||
<li><tt>pause, :timeout</tt>
|
||||
|
||||
</li>
|
||||
<li><tt>remove_all_selections, :locator</tt>
|
||||
|
||||
</li>
|
||||
<li><tt>select_frame, :locator</tt>
|
||||
|
||||
</li>
|
||||
<li><tt>set_cursor_position, :locator, :integer</tt>
|
||||
|
||||
</li>
|
||||
<li><tt>store, :script, :variable</tt>
|
||||
|
||||
</li>
|
||||
<li><tt>window_focus, :window_name</tt>
|
||||
|
||||
</li>
|
||||
<li><tt>window_maximize, :window_name</tt>
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
Here are the newly supported accessors:
|
||||
</p>
|
||||
<p>
|
||||
The following store_* accessors and their associated assert, verify and
|
||||
wait_for brethren are fully supported:
|
||||
</p>
|
||||
<ul>
|
||||
<li><tt>store_selected_id, :locator, :variable</tt>
|
||||
|
||||
</li>
|
||||
<li><tt>store_selected_ids, :locator, :variable</tt>
|
||||
|
||||
</li>
|
||||
<li><tt>store_selected_index, :locator, :variable</tt>
|
||||
|
||||
</li>
|
||||
<li><tt>store_selected_indexes, :locator, :variable</tt>
|
||||
|
||||
</li>
|
||||
<li><tt>store_selected_label, :locator, :variable</tt>
|
||||
|
||||
</li>
|
||||
<li><tt>store_selected_labels, :locator, :variable</tt>
|
||||
|
||||
</li>
|
||||
<li><tt>store_selected_value, :locator, :variable</tt>
|
||||
|
||||
</li>
|
||||
<li><tt>store_selected_values, :locator, :variable</tt>
|
||||
|
||||
</li>
|
||||
<li><tt>store_something_selected, :locator, :variable</tt>
|
||||
|
||||
</li>
|
||||
<li><tt>store_all_window_ids, :variable</tt>
|
||||
|
||||
</li>
|
||||
<li><tt>store_all_window_names, :variable</tt>
|
||||
|
||||
</li>
|
||||
<li><tt>store_all_window_titles, :variable</tt>
|
||||
|
||||
</li>
|
||||
<li><tt>store_cookie, :variable</tt>
|
||||
|
||||
</li>
|
||||
<li><tt>store_log_messages, :variable</tt>
|
||||
|
||||
</li>
|
||||
<li><tt>store_mouse_speed, :variable</tt>
|
||||
|
||||
</li>
|
||||
<li><tt>store_cursor_position, :locator, :variable</tt>
|
||||
|
||||
</li>
|
||||
<li><tt>store_attribute_from_all_windows, :attribute_name, :variable</tt>
|
||||
|
||||
</li>
|
||||
<li><tt>store_element_height, :locator, :variable</tt>
|
||||
|
||||
</li>
|
||||
<li><tt>store_element_index, :locator, :variable</tt>
|
||||
|
||||
</li>
|
||||
<li><tt>store_element_width, :locator, :variable</tt>
|
||||
|
||||
</li>
|
||||
<li><tt>store_element_position_left, :locator, :variable</tt>
|
||||
|
||||
</li>
|
||||
<li><tt>store_element_position_top, :locator, :variable</tt>
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
Only the associated assert, verify and wait_for brethren of the following
|
||||
store_* accessors are supported by the selenium-core, so these store_*
|
||||
accessors create exceptions in SOR:
|
||||
</p>
|
||||
<ul>
|
||||
<li><tt>store_ordered, :locator, :locator, :variable</tt>
|
||||
|
||||
</li>
|
||||
<li><tt>store_error_on_next, :string</tt>
|
||||
|
||||
</li>
|
||||
<li><tt>store_failure_on_next, :string</tt>
|
||||
|
||||
</li>
|
||||
<li><tt>store_whether_this_frame_match_frame_expression, :string, :string,
|
||||
:variable</tt>
|
||||
|
||||
</li>
|
||||
<li><tt>store_whether_this_window_match_window_expression, :string, :string,
|
||||
:variable</tt>
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<!-- if includes -->
|
||||
|
||||
<div id="section">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!-- if method_list -->
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div id="validator-badges">
|
||||
<p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -56,7 +56,7 @@
|
|||
</tr>
|
||||
<tr class="top-aligned-row">
|
||||
<td><strong>Last Update:</strong></td>
|
||||
<td>Fri Dec 08 00:50:30 GMT Standard Time 2006</td>
|
||||
<td>Sat Feb 03 22:54:11 +0100 2007</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
|
@ -73,14 +73,13 @@
|
|||
<h2>Overview</h2>
|
||||
<p>
|
||||
Selenium on Rails provides an easy way to test Rails application with <a
|
||||
href="http://www.openqa.org/selenium-core/">Selenium Core</a>.
|
||||
href="http://www.openqa.org/selenium-core/">SeleniumCore</a>.
|
||||
</p>
|
||||
<p>
|
||||
This plugin does four things:
|
||||
</p>
|
||||
<ol>
|
||||
<li>The Selenium Core files don’t have to pollute <tt>/public</tt>, they
|
||||
can stay in the Selenium gem or in <tt>/vendor/selenium</tt>.
|
||||
<li>The Selenium Core files don‘t have to pollute <tt>/public</tt>.
|
||||
|
||||
</li>
|
||||
<li>No need to create suite files, they are generated on the fly — one
|
||||
|
|
@ -97,20 +96,19 @@ formats (see <tt>Formats</tt>).
|
|||
</ol>
|
||||
<h2>Installation</h2>
|
||||
<ol>
|
||||
<li>Selenium Core needs to be available. It could either be installed as a gem
|
||||
(<tt>gem install selenium</tt>) or in <tt>/vendor/selenium/</tt>.
|
||||
|
||||
</li>
|
||||
<li>Install Selenium on Rails: <tt>script/plugin install <a
|
||||
href="http://svn.openqa.org/svn/selenium-on-rails/selenium-on-rails">http://svn.openqa.org/svn/selenium-on-rails/selenium-on-rails</a>/</tt>
|
||||
href="http://svn.openqa.org/svn/selenium-on-rails/selenium-on-rails">svn.openqa.org/svn/selenium-on-rails/selenium-on-rails</a></tt>
|
||||
|
||||
</li>
|
||||
<li><em>If RedCloth is available the Selenese test cases can use it for better
|
||||
markup.</em>
|
||||
<li>If you‘re on Windows, <tt>gem install win32-open3</tt>
|
||||
|
||||
</li>
|
||||
<li>Run the Rakefile in the plugin’s directory to run the tests in order
|
||||
to see that everything works. (If RedCloth isn’t installed a few
|
||||
<li><em>If the RedCloth gem is available the Selenese test cases can use it for
|
||||
better markup.</em>
|
||||
|
||||
</li>
|
||||
<li>Run the Rakefile in the plugin‘s directory to run the tests in order
|
||||
to see that everything works. (If RedCloth isn‘t installed a few
|
||||
tests will fail since they assume RedCloth is installed.)
|
||||
|
||||
</li>
|
||||
|
|
@ -121,46 +119,13 @@ tests will fail since they assume RedCloth is installed.)
|
|||
|
||||
</li>
|
||||
<li>Point your browser to <tt><a
|
||||
href="http://localhost:3000/selenium">http://localhost:3000/selenium</a></tt>
|
||||
href="http://localhost:3000/selenium">localhost:3000/selenium</a></tt>
|
||||
|
||||
</li>
|
||||
<li>If everything works as expected you should see the Selenium test runner.
|
||||
The north east frame contains all your test cases (just one for now), and
|
||||
the north frame contains your test case.
|
||||
|
||||
</li>
|
||||
</ol>
|
||||
<h3>win32-open3</h3>
|
||||
<p>
|
||||
<a href="http://raa.ruby-lang.org/project/win32-open3/">win32-open3</a> is
|
||||
needed if you’re on Windows and want to run your tests as a Rake task
|
||||
(see <tt>test:acceptance</tt>), i.e. you don’t have to install it but
|
||||
it’s recommended.
|
||||
</p>
|
||||
<p>
|
||||
You can build it from source or install the binary:
|
||||
</p>
|
||||
<ol>
|
||||
<li>Download the latest version of win32-open3, <a
|
||||
href="http://rubyforge.org/frs/download.php/8515/open3-0.2.2.so">open3-0.2.2.so</a>
|
||||
at the time of this writing.
|
||||
|
||||
</li>
|
||||
<li>Open up irb and run this snippet: <tt>require ‘rbconfig’;
|
||||
include Config; puts CONFIG[‘sitearchdir’]</tt>
|
||||
|
||||
</li>
|
||||
<li>Create a <tt>win32</tt> directory under the directory you got, e.g.
|
||||
<tt>c:\ruby\lib\ruby\site_ruby\1.8\i386-msvcrt</tt>
|
||||
|
||||
</li>
|
||||
<li>Rename the .so file to <tt>open3.so</tt> and put it in the <tt>win32</tt>
|
||||
directory.
|
||||
|
||||
</li>
|
||||
<li>Profit! (unless you get an error when doing <tt>require
|
||||
‘win32/open3‘</tt>)
|
||||
|
||||
</li>
|
||||
</ol>
|
||||
<h2>Formats</h2>
|
||||
|
|
@ -181,7 +146,7 @@ commands delimited by | characters.
|
|||
|goBack|
|
||||
</pre>
|
||||
<p>
|
||||
If you don’t want to write Selenese tests by hand you can use <a
|
||||
If you don‘t want to write Selenese tests by hand you can use <a
|
||||
href="http://www.openqa.org/selenium-ide/">SeleniumIDE</a> which has <a
|
||||
href="http://wiki.openqa.org/display/SIDE/SeleniumOnRails">support</a> for
|
||||
Selenese.
|
||||
|
|
@ -206,7 +171,7 @@ for available commands.
|
|||
</p>
|
||||
<h3>HTML/RHTML</h3>
|
||||
<p>
|
||||
You can write your tests in HTML/RHTML but that’s mostly useful if
|
||||
You can write your tests in HTML/RHTML but that‘s mostly useful if
|
||||
you have existing tests you want to reuse.
|
||||
</p>
|
||||
<h3>Partial test cases</h3>
|
||||
|
|
@ -261,12 +226,21 @@ change this by setting <tt>environments</tt>, such as:
|
|||
- test
|
||||
- development
|
||||
</pre>
|
||||
<h3>Selenium Core path</h3>
|
||||
<p>
|
||||
If you don‘t want to use the bundled Selenium Core version you can
|
||||
set <tt>selenium_path</tt> to the directory where Selenium Core is stored.
|
||||
</p>
|
||||
<pre>
|
||||
#config.yml
|
||||
selenium_path: 'c:\selenium'
|
||||
</pre>
|
||||
<h2><tt>test:acceptance</tt></h2>
|
||||
<p>
|
||||
You can run all your Selenium tests as a Rake task.
|
||||
</p>
|
||||
<p>
|
||||
First, if you’re on Windows, you have to make sure win32-open3 is
|
||||
First, if you‘re on Windows, you have to make sure win32-open3 is
|
||||
installed. Then you have to configure which browsers you want to run, like
|
||||
this:
|
||||
</p>
|
||||
|
|
@ -277,7 +251,7 @@ this:
|
|||
ie: 'c:\Program Files\Internet Explorer\iexplore.exe'
|
||||
</pre>
|
||||
<p>
|
||||
Now you’re all set. First start a server:
|
||||
Now you‘re all set. First start a server:
|
||||
</p>
|
||||
<pre>
|
||||
script/server -e test
|
||||
|
|
@ -307,18 +281,28 @@ will be stored as <tt>.html</tt> files in that directory.
|
|||
<p>
|
||||
This can be useful especially for continous integration.
|
||||
</p>
|
||||
<h3>user_extension.js</h3>
|
||||
<p>
|
||||
Selenium has support for <tt>user_extension.js</tt> which is a way to
|
||||
extend the functionality of Selenium Core. Selenium on Rails now provides
|
||||
the means for you to extend it‘s functionality to match.
|
||||
</p>
|
||||
<p>
|
||||
To get you started, we‘ve included the example files
|
||||
<tt>lib/test_builder_user_accessors.rb.example</tt> and
|
||||
<tt>lib/test_builder_user_actions.rb.example</tt> that replicate the sample
|
||||
extensions in Selenium Core‘s <tt>user-extensions.js.sample</tt>
|
||||
</p>
|
||||
<p>
|
||||
To get these examples running, simply remove the .example and .sample
|
||||
extensions from the files and restart your server.
|
||||
</p>
|
||||
<h2>Todo</h2>
|
||||
<h3>Standalone mode</h3>
|
||||
<p>
|
||||
More work is needed on <tt>test:acceptance</tt> on Windows to be able to
|
||||
start the server when needed.
|
||||
</p>
|
||||
<h3>user_extension.js</h3>
|
||||
<p>
|
||||
Selenium has support for <tt>user_extension.js</tt> which is a way to
|
||||
extend the functionality of Selenium Core. However there is currently no
|
||||
easy way to add such a file in Selenium on Rails.
|
||||
</p>
|
||||
<h3>More setup/teardown support?</h3>
|
||||
<p>
|
||||
Currently there is only support to load fixtures and to wipe the session in
|
||||
|
|
|
|||
|
|
@ -56,7 +56,7 @@
|
|||
</tr>
|
||||
<tr class="top-aligned-row">
|
||||
<td><strong>Last Update:</strong></td>
|
||||
<td>Fri Dec 08 00:52:51 GMT Standard Time 2006</td>
|
||||
<td>Sat Feb 03 22:54:05 +0100 2007</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -56,7 +56,7 @@
|
|||
</tr>
|
||||
<tr class="top-aligned-row">
|
||||
<td><strong>Last Update:</strong></td>
|
||||
<td>Sun Feb 05 01:02:10 W. Europe Standard Time 2006</td>
|
||||
<td>Sat Feb 03 22:54:06 +0100 2007</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -56,7 +56,7 @@
|
|||
</tr>
|
||||
<tr class="top-aligned-row">
|
||||
<td><strong>Last Update:</strong></td>
|
||||
<td>Fri Dec 08 00:16:44 GMT Standard Time 2006</td>
|
||||
<td>Sat Feb 03 22:54:06 +0100 2007</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
|
@ -117,11 +117,21 @@
|
|||
<td>=</td>
|
||||
<td class="context-item-value">c :start_server, false</td>
|
||||
</tr>
|
||||
<tr class="top-aligned-row context-row">
|
||||
<td class="context-item-name">HOST</td>
|
||||
<td>=</td>
|
||||
<td class="context-item-value">c :host, 'localhost'</td>
|
||||
</tr>
|
||||
<tr class="top-aligned-row context-row">
|
||||
<td class="context-item-name">PORTS</td>
|
||||
<td>=</td>
|
||||
<td class="context-item-value">c(:port_start, 3000)..c(:port_end, 3005)</td>
|
||||
</tr>
|
||||
<tr class="top-aligned-row context-row">
|
||||
<td class="context-item-name">BASE_URL_PATH</td>
|
||||
<td>=</td>
|
||||
<td class="context-item-value">c :base_url_path, '/'</td>
|
||||
</tr>
|
||||
<tr class="top-aligned-row context-row">
|
||||
<td class="context-item-name">TEST_RUNNER_URL</td>
|
||||
<td>=</td>
|
||||
|
|
@ -132,6 +142,11 @@
|
|||
<td>=</td>
|
||||
<td class="context-item-value">c :max_browser_duration, 2*60</td>
|
||||
</tr>
|
||||
<tr class="top-aligned-row context-row">
|
||||
<td class="context-item-name">MULTI_WINDOW</td>
|
||||
<td>=</td>
|
||||
<td class="context-item-value">c :multi_window, false</td>
|
||||
</tr>
|
||||
<tr class="top-aligned-row context-row">
|
||||
<td class="context-item-name">SERVER_COMMAND</td>
|
||||
<td>=</td>
|
||||
|
|
|
|||
|
|
@ -56,7 +56,7 @@
|
|||
</tr>
|
||||
<tr class="top-aligned-row">
|
||||
<td><strong>Last Update:</strong></td>
|
||||
<td>Sun Feb 05 00:59:28 W. Europe Standard Time 2006</td>
|
||||
<td>Sat Feb 03 22:54:06 +0100 2007</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
|
@ -73,6 +73,7 @@
|
|||
<h3 class="section-bar">Required files</h3>
|
||||
|
||||
<div class="name-list">
|
||||
test/unit
|
||||
active_record/fixtures
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -56,7 +56,7 @@
|
|||
</tr>
|
||||
<tr class="top-aligned-row">
|
||||
<td><strong>Last Update:</strong></td>
|
||||
<td>Tue May 02 00:43:37 W. Europe Daylight Time 2006</td>
|
||||
<td>Sat Feb 03 22:54:06 +0100 2007</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
|
@ -74,7 +74,7 @@ Provides partials support to test cases so they can include other partial
|
|||
test cases.
|
||||
</p>
|
||||
<p>
|
||||
The partial’s commands are returned as html table rows.
|
||||
The partial‘s commands are returned as html table rows.
|
||||
</p>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -56,7 +56,7 @@
|
|||
</tr>
|
||||
<tr class="top-aligned-row">
|
||||
<td><strong>Last Update:</strong></td>
|
||||
<td>Sun Feb 05 00:59:28 W. Europe Standard Time 2006</td>
|
||||
<td>Sat Feb 03 22:54:06 +0100 2007</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -56,7 +56,7 @@
|
|||
</tr>
|
||||
<tr class="top-aligned-row">
|
||||
<td><strong>Last Update:</strong></td>
|
||||
<td>Sun Feb 05 00:59:29 W. Europe Standard Time 2006</td>
|
||||
<td>Sat Feb 03 22:54:06 +0100 2007</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -56,7 +56,7 @@
|
|||
</tr>
|
||||
<tr class="top-aligned-row">
|
||||
<td><strong>Last Update:</strong></td>
|
||||
<td>Sun Feb 19 12:59:40 W. Europe Standard Time 2006</td>
|
||||
<td>Sat Feb 03 22:54:06 +0100 2007</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -56,7 +56,7 @@
|
|||
</tr>
|
||||
<tr class="top-aligned-row">
|
||||
<td><strong>Last Update:</strong></td>
|
||||
<td>Sun Feb 05 00:56:55 W. Europe Standard Time 2006</td>
|
||||
<td>Sat Feb 03 22:54:06 +0100 2007</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -56,7 +56,7 @@
|
|||
</tr>
|
||||
<tr class="top-aligned-row">
|
||||
<td><strong>Last Update:</strong></td>
|
||||
<td>Sun Feb 05 04:12:56 W. Europe Standard Time 2006</td>
|
||||
<td>Sat Feb 03 22:54:06 +0100 2007</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -56,7 +56,7 @@
|
|||
</tr>
|
||||
<tr class="top-aligned-row">
|
||||
<td><strong>Last Update:</strong></td>
|
||||
<td>Tue Jun 06 03:01:29 W. Europe Daylight Time 2006</td>
|
||||
<td>Sat Feb 03 22:54:06 +0100 2007</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
|
@ -75,7 +75,7 @@ href="../../../classes/SeleniumOnRails/TestBuilder.html">SeleniumOnRails::TestBu
|
|||
tests.
|
||||
</p>
|
||||
<p>
|
||||
For each <tt>store_foo</tt> there’s <tt>assert_foo</tt>,
|
||||
For each <tt>store_foo</tt> there‘s <tt>assert_foo</tt>,
|
||||
<tt>assert_not_foo</tt>, <tt>verify_foo</tt>, <tt>verify_not_foo</tt>,
|
||||
<tt>wait_for_foo</tt>, <tt>wait_for_not_foo</tt>.
|
||||
</p>
|
||||
|
|
|
|||
|
|
@ -56,7 +56,7 @@
|
|||
</tr>
|
||||
<tr class="top-aligned-row">
|
||||
<td><strong>Last Update:</strong></td>
|
||||
<td>Tue Jun 06 03:12:04 W. Europe Daylight Time 2006</td>
|
||||
<td>Sat Feb 03 22:54:06 +0100 2007</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
|
@ -75,7 +75,7 @@ href="../../../classes/SeleniumOnRails/TestBuilder.html">SeleniumOnRails::TestBu
|
|||
tests.
|
||||
</p>
|
||||
<p>
|
||||
For each action <tt>foo</tt> there’s also an action
|
||||
For each action <tt>foo</tt> there‘s also an action
|
||||
<tt>foo_and_wait</tt>.
|
||||
</p>
|
||||
|
||||
|
|
|
|||
|
|
@ -56,7 +56,7 @@
|
|||
</tr>
|
||||
<tr class="top-aligned-row">
|
||||
<td><strong>Last Update:</strong></td>
|
||||
<td>Tue Jun 06 02:47:24 W. Europe Daylight Time 2006</td>
|
||||
<td>Sat Feb 03 23:42:13 +0100 2007</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
|
@ -70,25 +70,24 @@
|
|||
|
||||
<div id="description">
|
||||
<p>
|
||||
Builds Selenium test table using a high-level Ruby interface. Normally
|
||||
invoked through <a
|
||||
href="../../../classes/SeleniumOnRails/RSelenese.html">SeleniumOnRails::RSelenese</a>.
|
||||
Create test_builder_user_actions.rb to support actions included in
|
||||
selenium-core‘s user-extensions.js
|
||||
</p>
|
||||
<p>
|
||||
See <a
|
||||
href="../../../classes/SeleniumOnRails/TestBuilderActions.html">SeleniumOnRails::TestBuilderActions</a>
|
||||
for the available actions and <a
|
||||
href="../../../classes/SeleniumOnRails/TestBuilderAccessors.html">SeleniumOnRails::TestBuilderAccessors</a>
|
||||
for the available checks.
|
||||
</p>
|
||||
<p>
|
||||
For more information on the commands supported by TestBuilder, see the
|
||||
Selenium Commands Documentation at <a
|
||||
href="http://release.openqa.org/selenium-core/nightly/reference.html">release.openqa.org/selenium-core/nightly/reference.html</a>.
|
||||
See test_builder_user_actions.rb.example for examples matching
|
||||
selenium-core‘s user-extensions.js.sample
|
||||
</p>
|
||||
|
||||
</div>
|
||||
|
||||
<div id="requires-list">
|
||||
<h3 class="section-bar">Required files</h3>
|
||||
|
||||
<div class="name-list">
|
||||
selenium_on_rails/test_builder_user_actions
|
||||
selenium_on_rails/test_builder_user_accessors
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
|
|
|||
|
|
@ -56,7 +56,7 @@
|
|||
</tr>
|
||||
<tr class="top-aligned-row">
|
||||
<td><strong>Last Update:</strong></td>
|
||||
<td>Mon Feb 20 21:58:17 W. Europe Standard Time 2006</td>
|
||||
<td>Sat Feb 03 22:54:06 +0100 2007</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -56,7 +56,7 @@
|
|||
</tr>
|
||||
<tr class="top-aligned-row">
|
||||
<td><strong>Last Update:</strong></td>
|
||||
<td>Thu May 04 01:18:20 W. Europe Daylight Time 2006</td>
|
||||
<td>Sat Feb 03 23:38:50 +0100 2007</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -33,6 +33,8 @@
|
|||
<a href="classes/SeleniumOnRails/TestBuilder.html">SeleniumOnRails::TestBuilder</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html">SeleniumOnRails::TestBuilderAccessors</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderActions.html">SeleniumOnRails::TestBuilderActions</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderUserAccessors.html">SeleniumOnRails::TestBuilderUserAccessors</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderUserActions.html">SeleniumOnRails::TestBuilderUserActions</a><br />
|
||||
<a href="classes/SeleniumOnRailsConfig.html">SeleniumOnRailsConfig</a><br />
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -20,6 +20,7 @@
|
|||
<div id="index">
|
||||
<h1 class="section-bar">Files</h1>
|
||||
<div id="index-entries">
|
||||
<a href="files/CHANGELOG.html">CHANGELOG</a><br />
|
||||
<a href="files/README.html">README</a><br />
|
||||
<a href="files/lib/controllers/selenium_controller_rb.html">lib/controllers/selenium_controller.rb</a><br />
|
||||
<a href="files/lib/selenium_helper_rb.html">lib/selenium_helper.rb</a><br />
|
||||
|
|
|
|||
|
|
@ -20,99 +20,162 @@
|
|||
<div id="index">
|
||||
<h1 class="section-bar">Methods</h1>
|
||||
<div id="index-entries">
|
||||
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000022">add_selection (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000029">answer_on_next_prompt (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||
<a href="classes/SeleniumOnRails/FixtureLoader.html#M000049">available_fixtures (SeleniumOnRails::FixtureLoader)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000023">add_selection (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000034">alt_key_down (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000035">alt_key_up (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000030">answer_on_next_prompt (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||
<a href="classes/SeleniumOnRails/FixtureLoader.html#M000083">available_fixtures (SeleniumOnRails::FixtureLoader)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000036">brake (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||
<a href="files/lib/selenium_on_rails/acceptance_test_runner_rb.html#M000001">c (lib/selenium_on_rails/acceptance_test_runner.rb)</a><br />
|
||||
<a href="files/lib/selenium_on_rails/acceptance_test_runner_rb.html#M000002">c_b (lib/selenium_on_rails/acceptance_test_runner.rb)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000019">check (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000028">choose_cancel_on_next_confirmation (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||
<a href="classes/SeleniumOnRails/FixtureLoader.html#M000051">clear_tables (SeleniumOnRails::FixtureLoader)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000020">check (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000029">choose_cancel_on_next_confirmation (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||
<a href="classes/SeleniumOnRails/FixtureLoader.html#M000085">clear_tables (SeleniumOnRails::FixtureLoader)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000011">click (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000032">close (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilder.html#M000090">command (SeleniumOnRails::TestBuilder)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilder.html#M000092">command_and_wait (SeleniumOnRails::TestBuilder)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilder.html#M000091">command_verbatim (SeleniumOnRails::TestBuilder)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilder.html#M000087">exactize (SeleniumOnRails::TestBuilder)</a><br />
|
||||
<a href="classes/SeleniumOnRails/PartialsSupport.html#M000081">extract_commands_from_partial (SeleniumOnRails::PartialsSupport)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000012">fire_event (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||
<a href="classes/SeleniumOnRails/Paths.html#M000042">fixtures_path (SeleniumOnRails::Paths)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000012">click_at (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000033">close (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilder.html#M000156">collection_arg (SeleniumOnRails::TestBuilder)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilder.html#M000151">command (SeleniumOnRails::TestBuilder)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilder.html#M000153">command_and_wait (SeleniumOnRails::TestBuilder)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilder.html#M000152">command_verbatim (SeleniumOnRails::TestBuilder)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000037">control_key_down (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000038">control_key_up (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000039">create_cookie (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000040">delete_cookie (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000041">double_click (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000042">double_click_at (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000043">drag_and_drop (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000044">drag_and_drop_to_object (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000045">echo (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilder.html#M000148">exactize (SeleniumOnRails::TestBuilder)</a><br />
|
||||
<a href="classes/SeleniumOnRails/PartialsSupport.html#M000142">extract_commands_from_partial (SeleniumOnRails::PartialsSupport)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000013">fire_event (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||
<a href="classes/SeleniumOnRails/Paths.html#M000076">fixtures_path (SeleniumOnRails::Paths)</a><br />
|
||||
<a href="classes/SeleniumOnRailsConfig.html#M000007">get (SeleniumOnRailsConfig)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000030">go_back (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000031">go_back (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000046">highlight (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000010">include_partial (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000014">key_down (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000013">key_press (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000015">key_up (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||
<a href="classes/SeleniumOnRails/Paths.html#M000041">layout_path (SeleniumOnRails::Paths)</a><br />
|
||||
<a href="classes/SeleniumOnRails/SuiteRenderer.html#M000048">link_to_test_case (SeleniumOnRails::SuiteRenderer)</a><br />
|
||||
<a href="classes/SeleniumOnRails/FixtureLoader.html#M000050">load_fixtures (SeleniumOnRails::FixtureLoader)</a><br />
|
||||
<a href="classes/SeleniumOnRails/Paths.html#M000043">log_path (SeleniumOnRails::Paths)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilder.html#M000093">make_command_waiting (SeleniumOnRails::TestBuilder)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000017">mouse_down (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000016">mouse_over (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||
<a href="classes/SeleniumOnRails/Selenese.html#M000082">new (SeleniumOnRails::Selenese)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilder.html#M000088">new (SeleniumOnRails::TestBuilder)</a><br />
|
||||
<a href="classes/SeleniumOnRails/RSelenese.html#M000084">new (SeleniumOnRails::RSelenese)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000025">open (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000015">key_down (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000014">key_press (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000016">key_up (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||
<a href="classes/SeleniumOnRails/Paths.html#M000075">layout_path (SeleniumOnRails::Paths)</a><br />
|
||||
<a href="classes/SeleniumOnRails/SuiteRenderer.html#M000082">link_to_test_case (SeleniumOnRails::SuiteRenderer)</a><br />
|
||||
<a href="classes/SeleniumOnRails/FixtureLoader.html#M000084">load_fixtures (SeleniumOnRails::FixtureLoader)</a><br />
|
||||
<a href="classes/SeleniumOnRails/Paths.html#M000077">log_path (SeleniumOnRails::Paths)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilder.html#M000154">make_command_waiting (SeleniumOnRails::TestBuilder)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000047">meta_key_down (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000048">meta_key_up (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000018">mouse_down (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000049">mouse_down_at (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000050">mouse_move (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000051">mouse_move_at (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000052">mouse_out (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000017">mouse_over (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000053">mouse_up (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000054">mouse_up_at (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilder.html#M000149">new (SeleniumOnRails::TestBuilder)</a><br />
|
||||
<a href="classes/SeleniumOnRails/RSelenese.html#M000145">new (SeleniumOnRails::RSelenese)</a><br />
|
||||
<a href="classes/SeleniumOnRails/Selenese.html#M000143">new (SeleniumOnRails::Selenese)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000026">open (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000055">open_window (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000056">pause (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||
<a href="classes/SeleniumController.html#M000006">record (SeleniumController)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000031">refresh (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000023">remove_selection (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||
<a href="classes/SeleniumOnRails/Selenese.html#M000083">render (SeleniumOnRails::Selenese)</a><br />
|
||||
<a href="classes/SeleniumOnRails/RSelenese.html#M000085">render (SeleniumOnRails::RSelenese)</a><br />
|
||||
<a href="classes/SeleniumOnRails/PartialsSupport.html#M000080">render_partial (SeleniumOnRails::PartialsSupport)</a><br />
|
||||
<a href="classes/SeleniumOnRails/Renderer.html#M000037">render_test_case (SeleniumOnRails::Renderer)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000021">select (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000026">select_window (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||
<a href="classes/SeleniumOnRails/Paths.html#M000038">selenium_path (SeleniumOnRails::Paths)</a><br />
|
||||
<a href="classes/SeleniumOnRails/Paths.html#M000039">selenium_tests_path (SeleniumOnRails::Paths)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilder.html#M000086">selenize (SeleniumOnRails::TestBuilder)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000033">set_context (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000035">set_timeout (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||
<a href="classes/SeleniumController.html#M000003">setup (SeleniumController)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000032">refresh (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000057">remove_all_selections (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000024">remove_selection (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||
<a href="classes/SeleniumOnRails/RSelenese.html#M000146">render (SeleniumOnRails::RSelenese)</a><br />
|
||||
<a href="classes/SeleniumOnRails/Selenese.html#M000144">render (SeleniumOnRails::Selenese)</a><br />
|
||||
<a href="classes/SeleniumOnRails/PartialsSupport.html#M000141">render_partial (SeleniumOnRails::PartialsSupport)</a><br />
|
||||
<a href="classes/SeleniumOnRails/Renderer.html#M000071">render_test_case (SeleniumOnRails::Renderer)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000022">select (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000058">select_frame (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000027">select_window (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||
<a href="classes/SeleniumOnRails/Paths.html#M000072">selenium_path (SeleniumOnRails::Paths)</a><br />
|
||||
<a href="classes/SeleniumOnRails/Paths.html#M000073">selenium_tests_path (SeleniumOnRails::Paths)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilder.html#M000147">selenize (SeleniumOnRails::TestBuilder)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000067">set_context (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000059">set_cursor_position (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000060">set_mouse_speed (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000069">set_timeout (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000009">setup (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||
<a href="classes/SeleniumOnRails/Paths.html#M000044">skip_file? (SeleniumOnRails::Paths)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000058">store_absolute_location (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000055">store_alert (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000052">store_alert_present (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000075">store_all_buttons (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000077">store_all_fields (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000076">store_all_links (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000070">store_attribute (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000061">store_body_text (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000065">store_checked (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000056">store_confirmation (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000054">store_confirmation_present (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000074">store_editable (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000072">store_element_present (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000064">store_eval (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000079">store_expression (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000078">store_html_source (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000059">store_location (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000057">store_prompt (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000053">store_prompt_present (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000069">store_select_options (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000067">store_selected (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000068">store_selected_options (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000066">store_table (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000063">store_text (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000071">store_text_present (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000060">store_title (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000062">store_value (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000073">store_visible (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000024">submit (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||
<a href="classes/SeleniumController.html#M000003">setup (SeleniumController)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000061">shift_key_down (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000062">shift_key_up (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||
<a href="classes/SeleniumOnRails/Paths.html#M000078">skip_file? (SeleniumOnRails::Paths)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000063">store (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000100">store_absolute_location (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000097">store_alert (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000091">store_alert_present (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000134">store_all_buttons (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000136">store_all_fields (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000135">store_all_links (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000088">store_all_window_ids (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000089">store_all_window_names (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000090">store_all_window_titles (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000122">store_attribute (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000092">store_attribute_from_all_windows (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000104">store_body_text (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000108">store_checked (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000098">store_confirmation (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000094">store_confirmation_present (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000095">store_cookie (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000096">store_cursor_position (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000133">store_editable (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000127">store_element_height (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000128">store_element_index (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000130">store_element_position_left (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000131">store_element_position_top (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000125">store_element_present (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000129">store_element_width (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000086">store_error_on_next (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000107">store_eval (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000138">store_expression (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000087">store_failure_on_next (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000137">store_html_source (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000101">store_location (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000132">store_log_messages (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000102">store_mouse_speed (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000123">store_ordered (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000099">store_prompt (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000093">store_prompt_present (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000121">store_select_options (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000110">store_selected (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000111">store_selected_id (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000112">store_selected_ids (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000113">store_selected_index (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000114">store_selected_indexes (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000115">store_selected_label (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000116">store_selected_labels (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000120">store_selected_options (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000117">store_selected_value (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000118">store_selected_values (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000119">store_something_selected (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000109">store_table (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000106">store_text (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000124">store_text_present (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000103">store_title (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000105">store_value (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000126">store_visible (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000139">store_whether_this_frame_match_frame_expression (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000140">store_whether_this_window_match_window_expression (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000025">submit (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||
<a href="classes/SeleniumController.html#M000005">support_file (SeleniumController)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilder.html#M000089">table (SeleniumOnRails::TestBuilder)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilder.html#M000150">table (SeleniumOnRails::TestBuilder)</a><br />
|
||||
<a href="classes/SeleniumHelper.html#M000008">test_case_name (SeleniumHelper)</a><br />
|
||||
<a href="classes/SeleniumOnRails/SuiteRenderer.html#M000047">test_cases (SeleniumOnRails::SuiteRenderer)</a><br />
|
||||
<a href="classes/SeleniumOnRails/SuiteRenderer.html#M000081">test_cases (SeleniumOnRails::SuiteRenderer)</a><br />
|
||||
<a href="classes/SeleniumController.html#M000004">test_file (SeleniumController)</a><br />
|
||||
<a href="classes/SeleniumOnRails/SuiteRenderer.html#M000045">test_suite_name (SeleniumOnRails::SuiteRenderer)</a><br />
|
||||
<a href="classes/SeleniumOnRails/SuiteRenderer.html#M000046">test_suites (SeleniumOnRails::SuiteRenderer)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000018">type (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000020">uncheck (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||
<a href="classes/SeleniumOnRails/Paths.html#M000040">view_path (SeleniumOnRails::Paths)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000034">wait_for_condition (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000036">wait_for_page_to_load (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000027">wait_for_popup (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||
<a href="classes/SeleniumOnRails/SuiteRenderer.html#M000079">test_suite_name (SeleniumOnRails::SuiteRenderer)</a><br />
|
||||
<a href="classes/SeleniumOnRails/SuiteRenderer.html#M000080">test_suites (SeleniumOnRails::SuiteRenderer)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000019">type (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000064">type_keys (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000021">uncheck (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilder.html#M000155">url_arg (SeleniumOnRails::TestBuilder)</a><br />
|
||||
<a href="classes/SeleniumOnRails/Paths.html#M000074">view_path (SeleniumOnRails::Paths)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000068">wait_for_condition (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000070">wait_for_page_to_load (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000028">wait_for_popup (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000065">window_focus (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000066">window_maximize (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
|
|
|
|||
8
vendor/plugins/selenium-on-rails/init.rb
vendored
|
|
@ -1,5 +1,5 @@
|
|||
require 'selenium_on_rails_config'
|
||||
envs = SeleniumOnRailsConfig.get :environments
|
||||
envs = SeleniumOnRailsConfig.new.get :environments
|
||||
|
||||
if envs.include? RAILS_ENV
|
||||
#initialize the plugin
|
||||
|
|
@ -8,14 +8,8 @@ if envs.include? RAILS_ENV
|
|||
require File.dirname(__FILE__) + '/routes'
|
||||
|
||||
SeleniumController.prepend_view_path File.expand_path(File.dirname(__FILE__) + '/lib/views')
|
||||
|
||||
else
|
||||
#erase all traces
|
||||
$LOAD_PATH.delete lib_path
|
||||
|
||||
#but help user figure out what to do
|
||||
unless RAILS_ENV == 'production' # don't pollute production
|
||||
require File.dirname(__FILE__) + '/switch_environment/init'
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
|||
|
|
@ -4,15 +4,18 @@ class SeleniumController < ActionController::Base
|
|||
include SeleniumOnRails::FixtureLoader
|
||||
include SeleniumOnRails::Renderer
|
||||
|
||||
def initialize
|
||||
@config = SeleniumOnRailsConfig.new
|
||||
end
|
||||
|
||||
def setup
|
||||
unless params.has_key? :keep_session
|
||||
reset_session
|
||||
@session_wiped = true
|
||||
end
|
||||
@cleared_tables = clear_tables params[:clear_tables].to_s
|
||||
Fixtures.reset_cache # added in during Rails 2 transition to address issue with selenium tests not relaoding fixtures
|
||||
@loaded_fixtures = load_fixtures params[:fixtures].to_s
|
||||
render :file => view_path('setup.rhtml'), :layout => layout_path
|
||||
render :file => view_path('setup.rhtml'), :layout => layout_path\
|
||||
end
|
||||
|
||||
def test_file
|
||||
|
|
@ -52,16 +55,17 @@ class SeleniumController < ActionController::Base
|
|||
dir = record_table
|
||||
|
||||
@result = {'resultDir' => dir}
|
||||
for p in ['result', 'numTestFailures', 'numTestPasses', 'numCommandFailures', 'numCommandPasses', 'numCommandErrors', 'totalTime']
|
||||
@result[p] = params[p]
|
||||
['result', 'numTestFailures', 'numTestPasses', 'numCommandFailures', 'numCommandPasses', 'numCommandErrors', 'totalTime'].each do |item|
|
||||
@result[item] = params[item]
|
||||
end
|
||||
|
||||
File.open(log_path(params[:logFile] || 'default.yml'), 'w') {|f| YAML.dump(@result, f)}
|
||||
|
||||
render :file => view_path('record.rhtml'), :layout => layout_path
|
||||
end
|
||||
|
||||
def record_table
|
||||
return nil unless result_dir = SeleniumOnRailsConfig.get(:result_dir)
|
||||
return nil unless result_dir = @config.get(:result_dir)
|
||||
|
||||
cur_result_dir = File.join(result_dir, (params[:logFile] || "default").sub(/\.yml$/, ''))
|
||||
FileUtils.mkdir_p(cur_result_dir)
|
||||
|
|
@ -115,6 +119,4 @@ EOS
|
|||
end
|
||||
|
||||
private :record_table
|
||||
|
||||
|
||||
end
|
||||
|
|
@ -3,7 +3,7 @@ class SwitchEnvironmentController < ActionController::Base
|
|||
readme_path = File.expand_path File.join(File.dirname(__FILE__), '..', 'README')
|
||||
render :status => 500, :locals => {:readme_path => readme_path }, :inline => <<END
|
||||
<p>
|
||||
Selenium on Rails is only activated for <%= SeleniumOnRailsConfig.get(:environments).join ', ' %>
|
||||
Selenium on Rails is only activated for <%= SeleniumOnRailsConfig.new.get(:environments).join ', ' %>
|
||||
environment<%= SeleniumOnRailsConfig.get(:environments).size > 1 ? 's' : '' %> (you're running
|
||||
<%= RAILS_ENV %>).
|
||||
</p>
|
||||
|
|
@ -5,5 +5,4 @@ module SeleniumHelper
|
|||
def test_case_name filename
|
||||
File.basename(filename).sub(/\..*/,'').humanize
|
||||
end
|
||||
|
||||
end
|
||||
|
|
|
|||
|
|
@ -1,28 +1,30 @@
|
|||
require File.dirname(__FILE__) + '/paths'
|
||||
require File.dirname(__FILE__) + '/../selenium_on_rails_config'
|
||||
$: << File.expand_path(File.dirname(__FILE__) + "/")
|
||||
$: << File.expand_path(File.dirname(__FILE__) + "/../")
|
||||
require 'paths'
|
||||
require 'net/http'
|
||||
require 'tempfile'
|
||||
|
||||
|
||||
def c(var, default = nil) SeleniumOnRailsConfig.get var, default end
|
||||
def c_b(var, default = nil) SeleniumOnRailsConfig.get(var, default) { yield } end
|
||||
def c(var, default = nil) SeleniumOnRailsConfig.new.get var, default end
|
||||
def c_b(var, default = nil) SeleniumOnRailsConfig.new.get(var, default) { yield } end
|
||||
|
||||
BROWSERS = c :browsers, {}
|
||||
REUSE_EXISTING_SERVER = c :reuse_existing_server, true
|
||||
START_SERVER = c :start_server, false #TODO can't get it to work reliably on Windows, perhaps it's just on my computer, but I leave it off by default for now
|
||||
HOST = c :host, 'localhost'
|
||||
PORTS = c(:port_start, 3000)..c(:port_end, 3005)
|
||||
BASE_URL_PATH = c :base_url_path, '/'
|
||||
TEST_RUNNER_URL = c :test_runner_url, '/selenium/TestRunner.html'
|
||||
MAX_BROWSER_DURATION = c :max_browser_duration, 2*60
|
||||
MULTI_WINDOW = c :multi_window, false
|
||||
SERVER_COMMAND = c_b :server_command do
|
||||
server_path = File.expand_path(File.dirname(__FILE__) + '/../../../../../script/server')
|
||||
if RUBY_PLATFORM =~ /mswin/
|
||||
"ruby #{server_path} -p %d -e test > NUL 2>&1"
|
||||
"ruby #{server_path} webrick -p %d -e test > NUL 2>&1"
|
||||
else
|
||||
# don't use redirects to /dev/nul since it makes the fork return wrong pid
|
||||
# see UnixSubProcess
|
||||
"#{server_path} -p %d -e test"
|
||||
"#{server_path} webrick -p %d -e test"
|
||||
end
|
||||
end
|
||||
|
||||
|
|
@ -42,7 +44,7 @@ module SeleniumOnRails
|
|||
result = YAML::load_file log_file
|
||||
print_result result
|
||||
has_error ||= result['numTestFailures'].to_i > 0
|
||||
File.delete log_file unless has_error
|
||||
# File.delete log_file unless has_error
|
||||
end
|
||||
rescue
|
||||
stop_server
|
||||
|
|
@ -105,8 +107,9 @@ module SeleniumOnRails
|
|||
def start_browser browser, path
|
||||
puts
|
||||
puts "Starting #{browser}"
|
||||
base_url = "http://#{HOST}:#{@port}#{BASE_URL_PATH}"
|
||||
log = log_file browser
|
||||
command = "\"#{path}\" \"http://#{HOST}:#{@port}#{TEST_RUNNER_URL}?test=tests&auto=true&resultsUrl=postResults/#{log}&multiWindow=#{MULTI_WINDOW}\""
|
||||
command = "\"#{path}\" \"http://#{HOST}:#{@port}#{TEST_RUNNER_URL}?test=tests&auto=true&baseUrl=#{base_url}&resultsUrl=postResults/#{log}&multiWindow=#{MULTI_WINDOW}\""
|
||||
@browser = start_subprocess command
|
||||
log_path log
|
||||
end
|
||||
|
|
@ -126,6 +129,7 @@ module SeleniumOnRails
|
|||
end
|
||||
|
||||
def log_file browser
|
||||
FileUtils.mkdir_p(log_path(''))
|
||||
(0..100).each do |i|
|
||||
name = browser + (i==0 ? '' : "(#{i})") + '.yml'
|
||||
return name unless File.exist?(log_path(name))
|
||||
|
|
|
|||
|
|
@ -1,3 +1,5 @@
|
|||
require 'test/unit'
|
||||
require 'active_record'
|
||||
require 'active_record/fixtures'
|
||||
|
||||
module SeleniumOnRails::FixtureLoader
|
||||
|
|
@ -37,6 +39,7 @@ module SeleniumOnRails::FixtureLoader
|
|||
fixtures.reject! {|f| f.blank? }
|
||||
|
||||
if fixtures.any?
|
||||
Fixtures.reset_cache # in case they've already been loaded and things have changed
|
||||
Fixtures.create_fixtures fixtures_path, fixtures
|
||||
end
|
||||
fixtures
|
||||
|
|
|
|||
|
|
@ -1,16 +1,14 @@
|
|||
# Provides partials support to test cases so they can include other partial test
|
||||
# cases.
|
||||
#
|
||||
# The partial's commands are returned as html table rows.
|
||||
require 'selenium_on_rails/paths'
|
||||
|
||||
module SeleniumOnRails::PartialsSupport
|
||||
include SeleniumOnRails::Paths
|
||||
|
||||
# Overrides where the partial is searched for, and returns only the command table rows.
|
||||
def render_partial partial_path = default_template_name, object = nil, local_assigns = nil, status = nil
|
||||
pattern = partial_pattern partial_path
|
||||
def render_partial(options)
|
||||
pattern = partial_pattern options[:partial]
|
||||
filename = Dir[pattern].first
|
||||
raise "Partial '#{partial_path}' cannot be found! (Looking for file: '#{pattern}')" unless filename
|
||||
partial = render :file => filename, :use_full_path => false, :locals => local_assigns
|
||||
partial = render :file => filename, :use_full_path => false, :locals => options[:locals]
|
||||
extract_commands_from_partial partial
|
||||
end
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,9 @@
|
|||
require 'selenium_on_rails_config'
|
||||
|
||||
module SeleniumOnRails
|
||||
module Paths
|
||||
attr_accessor :config
|
||||
|
||||
def selenium_path
|
||||
@@selenium_path ||= find_selenium_path
|
||||
@@selenium_path
|
||||
|
|
@ -13,8 +17,11 @@ module SeleniumOnRails
|
|||
File.expand_path(File.dirname(__FILE__) + '/../views/' + view)
|
||||
end
|
||||
|
||||
# Returns the path to the layout template. The path is relative in relation
|
||||
# to the app/views/ directory since Rails doesn't support absolute paths
|
||||
# to layout templates.
|
||||
def layout_path
|
||||
'/layout.rhtml'
|
||||
'layout.rhtml'
|
||||
end
|
||||
|
||||
def fixtures_path
|
||||
|
|
@ -32,14 +39,11 @@ module SeleniumOnRails
|
|||
false
|
||||
end
|
||||
|
||||
private
|
||||
private ###############################################
|
||||
|
||||
def find_selenium_path
|
||||
sel_dirs = SeleniumOnRailsConfig.get :selenium_path do
|
||||
ds = [File.expand_path(File.join(RAILS_ROOT, 'vendor/selenium')),
|
||||
File.expand_path(File.join(RAILS_ROOT, 'vendor/selenium-core'))]
|
||||
gems = Gem.source_index.find_name 'selenium', nil
|
||||
ds << gems.last.full_gem_path unless gems.empty?
|
||||
ds
|
||||
sel_dirs = @config.get :selenium_path do
|
||||
File.expand_path(File.dirname(__FILE__) + '/../../selenium-core')
|
||||
end
|
||||
|
||||
sel_dirs.to_a.each do |seleniumdir|
|
||||
|
|
|
|||
|
|
@ -1,11 +1,10 @@
|
|||
module SeleniumOnRails::Renderer
|
||||
include SeleniumOnRails::Paths
|
||||
include SeleniumHelper
|
||||
|
||||
def render_test_case filename
|
||||
@template.extend SeleniumOnRails::PartialsSupport
|
||||
@page_title = test_case_name filename
|
||||
output = render_to_string :file => filename
|
||||
output = render_to_string :file => filename, :locals => {"page_title" => @page_title}
|
||||
layout = (output =~ /<html>/i ? false : layout_path)
|
||||
render :text => output, :layout => layout
|
||||
|
||||
|
|
@ -14,4 +13,8 @@ module SeleniumOnRails::Renderer
|
|||
headers['Expires'] = '-1'
|
||||
end
|
||||
|
||||
def test_case_name filename
|
||||
File.basename(filename).sub(/\..*/,'').humanize
|
||||
end
|
||||
|
||||
end
|
||||
|
|
@ -13,23 +13,24 @@ ActionView::Template.register_template_handler 'rsel', SeleniumOnRails::RSelenes
|
|||
class SeleniumOnRails::RSelenese < SeleniumOnRails::TestBuilder
|
||||
attr_accessor :view
|
||||
|
||||
# Create a new RSelenese renderer bound to _view_.
|
||||
def initialize view
|
||||
super view
|
||||
@view = view
|
||||
end
|
||||
|
||||
# Render _template_ using _local_assigns_.
|
||||
def render template
|
||||
title = @view.assigns['page_title']
|
||||
def render template, local_assigns
|
||||
title = (@view.assigns['page_title'] or local_assigns['page_title'])
|
||||
table(title) do
|
||||
test = self #to enable test.command
|
||||
eval template.source
|
||||
|
||||
assign_locals_code = ''
|
||||
local_assigns.each_key {|key| assign_locals_code << "#{key} = local_assigns[#{key.inspect}];"}
|
||||
|
||||
eval assign_locals_code + "\n" + template.source
|
||||
end
|
||||
end
|
||||
|
||||
def compilable?
|
||||
false
|
||||
def self.call(template)
|
||||
"#{name}.new(self).render(template, local_assigns)"
|
||||
end
|
||||
|
||||
end
|
||||
|
|
@ -1,3 +1,5 @@
|
|||
require 'selenium_on_rails/partials_support'
|
||||
|
||||
class SeleniumOnRails::Selenese
|
||||
end
|
||||
ActionView::Template.register_template_handler 'sel', SeleniumOnRails::Selenese
|
||||
|
|
@ -8,9 +10,9 @@ class SeleniumOnRails::Selenese
|
|||
@view = view
|
||||
end
|
||||
|
||||
def render template
|
||||
name = @view.assigns['page_title']
|
||||
lines = template.strip.split "\n"
|
||||
def render template, local_assigns = {}
|
||||
name = (@view.assigns['page_title'] or local_assigns['page_title'])
|
||||
lines = template.source.strip.split "\n"
|
||||
html = ''
|
||||
html << extract_comments(lines)
|
||||
html << extract_commands(lines, name)
|
||||
|
|
@ -19,10 +21,6 @@ class SeleniumOnRails::Selenese
|
|||
html
|
||||
end
|
||||
|
||||
def compilable?
|
||||
false
|
||||
end
|
||||
|
||||
private
|
||||
def next_line lines, expects
|
||||
while lines.any?
|
||||
|
|
@ -37,6 +35,10 @@ class SeleniumOnRails::Selenese
|
|||
end
|
||||
end
|
||||
|
||||
def self.call(template)
|
||||
"#{name}.new(self).render(template, local_assigns)"
|
||||
end
|
||||
|
||||
def extract_comments lines
|
||||
comments = ''
|
||||
while (line = next_line lines, :comment)
|
||||
|
|
|
|||
|
|
@ -1,4 +1,7 @@
|
|||
module SeleniumOnRails::SuiteRenderer
|
||||
require 'selenium_on_rails'
|
||||
|
||||
module SeleniumOnRails
|
||||
module SuiteRenderer
|
||||
def test_suite_name path
|
||||
return 'All test cases' if [nil, '/'].include? path_to_relative_url(path)
|
||||
File.split(path)[-1].humanize
|
||||
|
|
@ -26,7 +29,8 @@ module SeleniumOnRails::SuiteRenderer
|
|||
link_to name, :action => :test_file, :testname => path_to_relative_url(filename).sub(/^\//,'')
|
||||
end
|
||||
|
||||
private
|
||||
private ###############################################
|
||||
|
||||
def path_to_relative_url path
|
||||
slt = @controller.selenium_tests_path
|
||||
return nil unless path.index slt
|
||||
|
|
@ -48,4 +52,5 @@ module SeleniumOnRails::SuiteRenderer
|
|||
#recurse through dirs
|
||||
dirs.each {|p, n| visit_all_tests p, n, suite_consumer, test_consumer }
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -1,3 +1,25 @@
|
|||
require 'selenium_on_rails/test_builder_actions'
|
||||
require 'selenium_on_rails/test_builder_accessors'
|
||||
|
||||
# Create test_builder_user_actions.rb to support actions included
|
||||
# in selenium-core's user-extensions.js
|
||||
#
|
||||
# See test_builder_user_actions.rb.example for examples matching
|
||||
# selenium-core's user-extensions.js.sample
|
||||
module SeleniumOnRails::TestBuilderUserActions
|
||||
end
|
||||
require 'selenium_on_rails/test_builder_user_actions' if File.exist?(File.expand_path(File.join(File.dirname(__FILE__), 'test_builder_user_actions.rb')))
|
||||
|
||||
|
||||
# Create test_builder_user_accessors.rb to support accessors
|
||||
# included in selenium-core's user-extensions.js
|
||||
#
|
||||
# See test_builder_user_accessors.rb.example for examples matching
|
||||
# selenium-core's user-extensions.js.sample
|
||||
module SeleniumOnRails::TestBuilderUserAccessors
|
||||
end
|
||||
require 'selenium_on_rails/test_builder_user_accessors' if File.exist?(File.expand_path(File.join(File.dirname(__FILE__), 'test_builder_user_accessors.rb')))
|
||||
|
||||
# Builds Selenium test table using a high-level Ruby interface. Normally
|
||||
# invoked through SeleniumOnRails::RSelenese.
|
||||
#
|
||||
|
|
@ -10,6 +32,8 @@
|
|||
class SeleniumOnRails::TestBuilder
|
||||
include SeleniumOnRails::TestBuilderActions
|
||||
include SeleniumOnRails::TestBuilderAccessors
|
||||
include SeleniumOnRails::TestBuilderUserActions
|
||||
include SeleniumOnRails::TestBuilderUserAccessors
|
||||
|
||||
# Convert _str_ to a Selenium command name.
|
||||
def self.selenize str
|
||||
|
|
|
|||
|
|
@ -3,28 +3,115 @@
|
|||
# For each +store_foo+ there's +assert_foo+, +assert_not_foo+, +verify_foo+,
|
||||
# +verify_not_foo+, +wait_for_foo+, +wait_for_not_foo+.
|
||||
module SeleniumOnRails::TestBuilderAccessors
|
||||
|
||||
# Tell Selenium to expect an error on the next command execution.
|
||||
#
|
||||
# NOTE: <tt>store_error_on_next</tt> is currently not supported by
|
||||
# Selenium Core and is only added to here as a shortcut for
|
||||
# generating the related assertions.
|
||||
#
|
||||
# Related Assertions, automatically generated:
|
||||
# * <tt>assert_error_on_next(message)</tt>
|
||||
# * <tt>assert_not_error_on_next(message)</tt>
|
||||
# * <tt>verify_error_on_next(message)</tt>
|
||||
# * <tt>verify_not_error_on_next(message)</tt>
|
||||
# * <tt>wait_for_error_on_next(message)</tt>
|
||||
# * <tt>wait_for_not_error_on_next(message)</tt>
|
||||
def store_error_on_next message
|
||||
raise 'Not supported in Selenium Core at the moment'
|
||||
end
|
||||
|
||||
# Tell Selenium to expect a failure on the next command execution.
|
||||
#
|
||||
# NOTE: <tt>store_failure_on_next</tt> is currently not supported by
|
||||
# Selenium Core and is only added to here as a shortcut for
|
||||
# generating the related assertions.
|
||||
#
|
||||
# Related Assertions, automatically generated:
|
||||
# * <tt>assert_failure_on_next(message)</tt>
|
||||
# * <tt>assert_not_failure_on_next(message)</tt>
|
||||
# * <tt>verify_failure_on_next(message)</tt>
|
||||
# * <tt>verify_not_failure_on_next(message)</tt>
|
||||
# * <tt>wait_for_failure_on_next(message)</tt>
|
||||
# * <tt>wait_for_not_failure_on_next(message)</tt>
|
||||
def store_failure_on_next message
|
||||
raise 'Not supported in Selenium Core at the moment'
|
||||
end
|
||||
|
||||
# Returns the IDs of all windows that the browser knows about.
|
||||
#
|
||||
# Related Assertions, automatically generated:
|
||||
# * <tt>assertAllWindowIds(pattern)</tt>
|
||||
# * <tt>assertNotAllWindowIds(pattern)</tt>
|
||||
# * <tt>verifyAllWindowIds(pattern)</tt>
|
||||
# * <tt>verifyNotAllWindowIds(pattern)</tt>
|
||||
# * <tt>waitForAllWindowIds(pattern)</tt>
|
||||
# * <tt>waitForNotAllWindowIds(pattern)</tt>
|
||||
def store_all_window_ids variable_name
|
||||
command 'storeAllWindowIds', variable_name
|
||||
end
|
||||
|
||||
# Returns the names of all windows that the browser knows about.
|
||||
#
|
||||
# Related Assertions, automatically generated:
|
||||
# * <tt>assertAllWindowNames(pattern)</tt>
|
||||
# * <tt>assertNotAllWindowNames(pattern)</tt>
|
||||
# * <tt>verifyAllWindowNames(pattern)</tt>
|
||||
# * <tt>verifyNotAllWindowNames(pattern)</tt>
|
||||
# * <tt>waitForAllWindowNames(pattern)</tt>
|
||||
# * <tt>waitForNotAllWindowNames(pattern)</tt>
|
||||
def store_all_window_names variable_name
|
||||
command 'storeAllWindowNames', variable_name
|
||||
end
|
||||
|
||||
# Returns the titles of all windows that the browser knows about.
|
||||
#
|
||||
# Related Assertions, automatically generated:
|
||||
# * <tt>assertAllWindowTitles(pattern)</tt>
|
||||
# * <tt>assertNotAllWindowTitles(pattern)</tt>
|
||||
# * <tt>verifyAllWindowTitles(pattern)</tt>
|
||||
# * <tt>verifyNotAllWindowTitles(pattern)</tt>
|
||||
# * <tt>waitForAllWindowTitles(pattern)</tt>
|
||||
# * <tt>waitForNotAllWindowTitles(pattern)</tt>
|
||||
def store_all_window_titles variable_name
|
||||
command 'storeAllWindowTitles', variable_name
|
||||
end
|
||||
|
||||
# Has an alert occurred?
|
||||
#
|
||||
# Related Assertions, automatically generated:
|
||||
# * +assert_alert_present+
|
||||
# * +assert_alert_not_present+
|
||||
# * +verify_alert_present+
|
||||
# * +verify_alert_not_present+
|
||||
# * +wait_for_alert_present+
|
||||
# * +wait_for_alert_not_present+
|
||||
# * <tt>assert_alert_present</tt>
|
||||
# * <tt>assert_alert_not_present</tt>
|
||||
# * <tt>verify_alert_present</tt>
|
||||
# * <tt>verify_alert_not_present</tt>
|
||||
# * <tt>wait_for_alert_present</tt>
|
||||
# * <tt>wait_for_alert_not_present</tt>
|
||||
def store_alert_present variable_name
|
||||
command 'storeAlertPresent', variable_name
|
||||
end
|
||||
|
||||
# Returns every instance of some attribute from all known windows.
|
||||
#
|
||||
# Related Assertions, automatically generated:
|
||||
# * <tt>assert_attribute_from_all_windows(attribute_name, pattern)</tt>
|
||||
# * <tt>assert_not_attribute_from_all_windows(attribute_name, pattern)</tt>
|
||||
# * <tt>verify_attribute_from_all_windows(attribute_name, pattern)</tt>
|
||||
# * <tt>verify_not_attribute_from_all_windows(attribute_name, pattern)</tt>
|
||||
# * <tt>wait_for_attribute_from_all_windows(attribute_name, pattern)</tt>
|
||||
# * <tt>wait_for_not_attribute_from_all_windows(attribute_name, pattern)</tt>
|
||||
def store_attribute_from_all_windows attribute_name, variable_name
|
||||
command 'storeAttributeFromAllWindows', attribute_name, variable_name
|
||||
end
|
||||
|
||||
# Has a prompt occurred?
|
||||
#
|
||||
# Related Assertions, automatically generated:
|
||||
# * +assert_prompt_present+
|
||||
# * +assert_prompt_not_present+
|
||||
# * +verify_prompt_present+
|
||||
# * +verify_prompt_not_present+
|
||||
# * +wait_for_prompt_present+
|
||||
# * +wait_for_prompt_not_present+
|
||||
# * <tt>assert_prompt_present</tt>
|
||||
# * <tt>assert_prompt_not_present</tt>
|
||||
# * <tt>verify_prompt_present</tt>
|
||||
# * <tt>verify_prompt_not_present</tt>
|
||||
# * <tt>wait_for_prompt_present</tt>
|
||||
# * <tt>wait_for_prompt_not_present</tt>
|
||||
def store_prompt_present variable_name
|
||||
command 'storePromptPresent', variable_name
|
||||
end
|
||||
|
|
@ -32,16 +119,46 @@ module SeleniumOnRails::TestBuilderAccessors
|
|||
# Has <tt>confirm()</tt> been called?
|
||||
#
|
||||
# Related Assertions, automatically generated:
|
||||
# * +assert_confirmation_present+
|
||||
# * +assert_confirmation_not_present+
|
||||
# * +verify_confirmation_present+
|
||||
# * +verify_confirmation_not_present+
|
||||
# * +wait_for_confirmation_present+
|
||||
# * +wait_for_confirmation_not_present+
|
||||
# * <tt>assert_confirmation_present</tt>
|
||||
# * <tt>assert_confirmation_not_present</tt>
|
||||
# * <tt>verify_confirmation_present</tt>
|
||||
# * <tt>verify_confirmation_not_present</tt>
|
||||
# * <tt>wait_for_confirmation_present</tt>
|
||||
# * <tt>wait_for_confirmation_not_present</tt>
|
||||
def store_confirmation_present variable_name
|
||||
command 'storeConfirmationPresent', variable_name
|
||||
end
|
||||
|
||||
# Return all cookies of the current page under test.
|
||||
#
|
||||
# Related Assertions, automatically generated:
|
||||
# * <tt>assert_cookie(pattern)</tt>
|
||||
# * <tt>assert_not_cookie(pattern)</tt>
|
||||
# * <tt>verify_cookie(pattern)</tt>
|
||||
# * <tt>verify_not_cookie(pattern)</tt>
|
||||
# * <tt>wait_for_cookie(pattern)</tt>
|
||||
# * <tt>wait_for_not_cookie(pattern)</tt>
|
||||
def store_cookie variable_name
|
||||
command 'storeCookie', variable_name
|
||||
end
|
||||
|
||||
# Retrieves the text cursor position in the given input element or
|
||||
# textarea; beware, this may not work perfectly on all browsers.
|
||||
#
|
||||
# This method will fail if the specified element isn't an input element
|
||||
# or textarea, or there is no cursor in the element.
|
||||
#
|
||||
# Related Assertions, automatically generated:
|
||||
# * <tt>assert_cursor_position(locator, pattern)</tt>
|
||||
# * <tt>assert_not_cursor_position(locator, pattern)</tt>
|
||||
# * <tt>verify_cursor_position(locator, pattern)</tt>
|
||||
# * <tt>verify_not_cursor_position(locator, pattern)</tt>
|
||||
# * <tt>wait_for_cursor_position(locator, pattern)</tt>
|
||||
# * <tt>wait_for_not_cursor_position(locator, pattern)</tt>
|
||||
def store_cursor_position locator, variable_name
|
||||
command 'storeCursorPosition', locator, variable_name
|
||||
end
|
||||
|
||||
# Retrieves the message of a JavaScript alert generated during the previous
|
||||
# action, or fail if there were no alerts.
|
||||
#
|
||||
|
|
@ -144,6 +261,20 @@ module SeleniumOnRails::TestBuilderAccessors
|
|||
command 'storeLocation', expected_location, variable_name
|
||||
end
|
||||
|
||||
# Returns the number of pixels between "mousemove" events during
|
||||
# drag_and_drop commands (default=10).
|
||||
#
|
||||
# Related Assertions, automatically generated:
|
||||
# * <tt>assert_mouse_speed(pattern)</tt>
|
||||
# * <tt>assert_not_mouse_speed(pattern)</tt>
|
||||
# * <tt>verify_mouse_speed(pattern)</tt>
|
||||
# * <tt>verify_not_mouse_speed(pattern)</tt>
|
||||
# * <tt>wait_for_mouse_speed(pattern)</tt>
|
||||
# * <tt>wait_for_not_mouse_speed(pattern)</tt>
|
||||
def store_mouse_speed variable_name
|
||||
command 'storeMouseSpeed', variable_name
|
||||
end
|
||||
|
||||
# Gets the title of the current page.
|
||||
#
|
||||
# Related Assertions, automatically generated:
|
||||
|
|
@ -230,12 +361,12 @@ module SeleniumOnRails::TestBuilderAccessors
|
|||
# specified element doesn't exist or isn't a toggle-button.
|
||||
#
|
||||
# Related Assertions, automatically generated:
|
||||
# * <tt>assert_checked(locator, pattern)</tt>
|
||||
# * <tt>assert_not_checked(locator, pattern)</tt>
|
||||
# * <tt>verify_checked_present(locator, pattern)</tt>
|
||||
# * <tt>verify_not_checked(locator, pattern)</tt>
|
||||
# * <tt>wait_for_checked(locator, pattern)</tt>
|
||||
# * <tt>wait_for_not_checked(locator, pattern)</tt>
|
||||
# * <tt>assert_checked(locator)</tt>
|
||||
# * <tt>assert_not_checked(locator)</tt>
|
||||
# * <tt>verify_checked_present(locator)</tt>
|
||||
# * <tt>verify_not_checked(locator)</tt>
|
||||
# * <tt>wait_for_checked(locator)</tt>
|
||||
# * <tt>wait_for_not_checked(locator)</tt>
|
||||
def store_checked locator, variable_name
|
||||
command 'storeChecked', locator, variable_name
|
||||
end
|
||||
|
|
@ -254,13 +385,13 @@ module SeleniumOnRails::TestBuilderAccessors
|
|||
end
|
||||
|
||||
# Verifies that the selected option of a drop-down satisfies the
|
||||
# +option_locator+.
|
||||
# <tt>option_locator</tt>.
|
||||
#
|
||||
# +option_locator+ is typically just an option label (e.g. "John Smith").
|
||||
# <tt>option_locator</tt> is typically just an option label (e.g. "John Smith").
|
||||
#
|
||||
# See the +select+ command for more information about option locators.
|
||||
# See the <tt>select</tt> command for more information about option locators.
|
||||
#
|
||||
# NOTE: +store_selected+ is currently not supported by Selenium Core.
|
||||
# NOTE: <tt>store_selected</tt> is currently not supported by Selenium Core.
|
||||
#
|
||||
# Related Assertions, automatically generated:
|
||||
# * <tt>assert_selected(locator, option_locator)</tt>
|
||||
|
|
@ -273,6 +404,130 @@ module SeleniumOnRails::TestBuilderAccessors
|
|||
raise 'Not supported in Selenium Core at the moment'
|
||||
end
|
||||
|
||||
# Gets option element ID for selected option in the specified select element.
|
||||
#
|
||||
# Related Assertions, automatically generated:
|
||||
# * <tt>assert_selected_id(select_locator, pattern)</tt>
|
||||
# * <tt>assert_not_selected_id(select_locator, pattern)</tt>
|
||||
# * <tt>verify_selected_id(select_locator, pattern)</tt>
|
||||
# * <tt>verify_not_selected_id(select_locator, pattern)</tt>
|
||||
# * <tt>wait_for_selected_id(select_locator, pattern)</tt>
|
||||
# * <tt>wait_for_not_selected_id(select_locator, pattern)</tt>
|
||||
def store_selected_id select_locator, variable_name
|
||||
command 'storeSelectedId', select_locator, variable_name
|
||||
end
|
||||
|
||||
# Gets all option element IDs for selected options in the specified select
|
||||
# or multi-select element.
|
||||
#
|
||||
# Related Assertions, automatically generated:
|
||||
# * <tt>assert_selected_ids(select_locator, pattern)</tt>
|
||||
# * <tt>assert_not_selected_ids(select_locator, pattern)</tt>
|
||||
# * <tt>verify_selected_ids(select_locator, pattern)</tt>
|
||||
# * <tt>verify_not_selected_ids(select_locator, pattern)</tt>
|
||||
# * <tt>wait_for_selected_ids(select_locator, pattern)</tt>
|
||||
# * <tt>wait_for_not_selected_ids(select_locator, pattern)</tt>
|
||||
def store_selected_ids select_locator, variable_name
|
||||
command 'storeSelectedIds', select_locator, variable_name
|
||||
end
|
||||
|
||||
# Gets option index (option number, starting at 0) for selected option in the
|
||||
# specified select element.
|
||||
#
|
||||
# Related Assertions, automatically generated:
|
||||
# * <tt>assert_selected_index(select_locator, pattern)</tt>
|
||||
# * <tt>assert_not_selected_index(select_locator, pattern)</tt>
|
||||
# * <tt>verify_selected_index(select_locator, pattern)</tt>
|
||||
# * <tt>verify_not_selected_index(select_locator, pattern)</tt>
|
||||
# * <tt>wait_for_selected_index(select_locator, pattern)</tt>
|
||||
# * <tt>wait_for_not_selected_index(select_locator, pattern)</tt>
|
||||
def store_selected_index select_locator, variable_name
|
||||
command 'storeSelectedIndex', select_locator, variable_name
|
||||
end
|
||||
|
||||
# Gets all option indexes (option number, starting at 0) for selected options
|
||||
# in the specified select or multi-select element.
|
||||
#
|
||||
# Related Assertions, automatically generated:
|
||||
# * <tt>assert_selected_indexes(select_locator, pattern)</tt>
|
||||
# * <tt>assert_not_selected_indexes(select_locator, pattern)</tt>
|
||||
# * <tt>verify_selected_indexes(select_locator, pattern)</tt>
|
||||
# * <tt>verify_not_selected_indexes(select_locator, pattern)</tt>
|
||||
# * <tt>wait_for_selected_indexes(select_locator, pattern)</tt>
|
||||
# * <tt>wait_for_not_selected_indexes(select_locator, pattern)</tt>
|
||||
def store_selected_indexes select_locator, variable_name
|
||||
command 'storeSelectedIndexes', select_locator, variable_name
|
||||
end
|
||||
|
||||
# Gets option label (visible text) for selected option in the specified select
|
||||
# element.
|
||||
#
|
||||
# Related Assertions, automatically generated:
|
||||
# * <tt>assert_selected_label(select_locator, pattern)</tt>
|
||||
# * <tt>assert_not_selected_label(select_locator, pattern)</tt>
|
||||
# * <tt>verify_selected_label(select_locator, pattern)</tt>
|
||||
# * <tt>verify_not_selected_label(select_locator, pattern)</tt>
|
||||
# * <tt>wait_for_selected_label(select_locator, pattern)</tt>
|
||||
# * <tt>wait_for_not_selected_label(select_locator, pattern)</tt>
|
||||
def store_selected_label select_locator, variable_name
|
||||
command 'storeSelectedLabel', select_locator, variable_name
|
||||
end
|
||||
|
||||
# Gets all option labels (visible text) for selected options in the specified
|
||||
# select or multi-select element.
|
||||
#
|
||||
# Related Assertions, automatically generated:
|
||||
# * <tt>assert_selected_labels(select_locator, pattern)</tt>
|
||||
# * <tt>assert_not_selected_labels(select_locator, pattern)</tt>
|
||||
# * <tt>verify_selected_labels(select_locator, pattern)</tt>
|
||||
# * <tt>verify_not_selected_labels(select_locator, pattern)</tt>
|
||||
# * <tt>wait_for_selected_labels(select_locator, pattern)</tt>
|
||||
# * <tt>wait_for_not_selected_labels(select_locator, pattern)</tt>
|
||||
def store_selected_labels select_locator, variable_name
|
||||
command 'storeSelectedLabels', select_locator, variable_name
|
||||
end
|
||||
|
||||
# Gets option value (value attribute) for selected option in the specified
|
||||
# select element.
|
||||
#
|
||||
# Related Assertions, automatically generated:
|
||||
# * <tt>assert_selected_value(select_locator, pattern)</tt>
|
||||
# * <tt>assert_not_selected_value(select_locator, pattern)</tt>
|
||||
# * <tt>verify_selected_value(select_locator, pattern)</tt>
|
||||
# * <tt>verify_not_selected_value(select_locator, pattern)</tt>
|
||||
# * <tt>wait_for_selected_value(select_locator, pattern)</tt>
|
||||
# * <tt>wait_for_not_selected_value(select_locator, pattern)</tt>
|
||||
def store_selected_value select_locator, variable_name
|
||||
command 'storeSelectedValue', select_locator, variable_name
|
||||
end
|
||||
|
||||
# Gets all option values (value attribute) for selected options in the specified
|
||||
# select or multi-select element.
|
||||
#
|
||||
# Related Assertions, automatically generated:
|
||||
# * <tt>assert_selected_values(select_locator, pattern)</tt>
|
||||
# * <tt>assert_not_selected_values(select_locator, pattern)</tt>
|
||||
# * <tt>verify_selected_values(select_locator, pattern)</tt>
|
||||
# * <tt>verify_not_selected_values(select_locator, pattern)</tt>
|
||||
# * <tt>wait_for_selected_values(select_locator, pattern)</tt>
|
||||
# * <tt>wait_for_not_selected_values(select_locator, pattern)</tt>
|
||||
def store_selected_values select_locator, variable_name
|
||||
command 'storeSelectedValues', select_locator, variable_name
|
||||
end
|
||||
|
||||
# Determines whether some option in a drop-down menu is selected.
|
||||
#
|
||||
# Related Assertions, automatically generated:
|
||||
# * <tt>assert_something_selected(select_locator)</tt>
|
||||
# * <tt>assert_not_something_selected(select_locator)</tt>
|
||||
# * <tt>verify_something_selected(select_locator)</tt>
|
||||
# * <tt>verify_not_something_selected(select_locator)</tt>
|
||||
# * <tt>wait_for_something_selected(select_locator)</tt>
|
||||
# * <tt>wait_for_not_something_selected(select_locator)</tt>
|
||||
def store_something_selected select_locator, variable_name
|
||||
command 'storeSomethingSelected', select_locator, variable_name
|
||||
end
|
||||
|
||||
# Gets all option labels for selected options in the specified select or
|
||||
# multi-select element.
|
||||
#
|
||||
|
|
@ -323,6 +578,22 @@ module SeleniumOnRails::TestBuilderAccessors
|
|||
command 'storeAttribute', "#{locator}@#{attribute_name}", variable_name
|
||||
end
|
||||
|
||||
# Check if these two elements have same parent and are ordered. Two
|
||||
# same elements will not be considered ordered.
|
||||
#
|
||||
# NOTE: <tt>store_ordered</tt> is currently not supported by Selenium Core.
|
||||
#
|
||||
# Related Assertions, automatically generated:
|
||||
# * <tt>assert_ordered(locator_1, locator_2)</tt>
|
||||
# * <tt>assert_not_ordered(locator_1, locator_2)</tt>
|
||||
# * <tt>verify_ordered(locator_1, locator_2)</tt>
|
||||
# * <tt>verify_not_ordered(locator_1, locator_2)</tt>
|
||||
# * <tt>wait_for_ordered(locator_1, locator_2)</tt>
|
||||
# * <tt>wait_for_not_ordered(locator_1, locator_2)</tt>
|
||||
def store_ordered locator_1, locator_2, variable_name
|
||||
raise 'Not supported in Selenium Core at the moment'
|
||||
end
|
||||
|
||||
# Verifies that the specified text pattern appears somewhere on the rendered
|
||||
# page shown to the user.
|
||||
#
|
||||
|
|
@ -366,6 +637,89 @@ module SeleniumOnRails::TestBuilderAccessors
|
|||
command 'storeVisible', locator, variable_name
|
||||
end
|
||||
|
||||
# Retrieves the height of an element. This method will fail if the element
|
||||
# is not present.
|
||||
#
|
||||
# Related Assertions, automatically generated:
|
||||
# * <tt>assert_element_height(locator, pattern)</tt>
|
||||
# * <tt>assert_not_element_height(locator, pattern)</tt>
|
||||
# * <tt>verify_element_height(locator, pattern)</tt>
|
||||
# * <tt>verify_not_element_height(locator, pattern)</tt>
|
||||
# * <tt>wait_for_element_height(locator, pattern)</tt>
|
||||
# * <tt>wait_for_not_element_height(locator, pattern)</tt>
|
||||
def store_element_height locator, variable_name
|
||||
command 'storeElementHeight', locator, variable_name
|
||||
end
|
||||
|
||||
# Get the relative index of an element to its parent (starting from 0).
|
||||
# The comment node and empty text node will be ignored.
|
||||
#
|
||||
# Related Assertions, automatically generated:
|
||||
# * <tt>assert_element_index(locator, pattern)</tt>
|
||||
# * <tt>assert_not_element_index(locator, pattern)</tt>
|
||||
# * <tt>verify_element_index(locator, pattern)</tt>
|
||||
# * <tt>verify_not_element_index(locator, pattern)</tt>
|
||||
# * <tt>wait_for_element_index(locator, pattern)</tt>
|
||||
# * <tt>wait_for_not_element_index(locator, pattern)</tt>
|
||||
def store_element_index locator, variable_name
|
||||
command 'storeElementIndex', locator, variable_name
|
||||
end
|
||||
|
||||
# Retrieves the width of an element. This method will fail if the element
|
||||
# is not present.
|
||||
#
|
||||
# Related Assertions, automatically generated:
|
||||
# * <tt>assert_element_width(locator, pattern)</tt>
|
||||
# * <tt>assert_not_element_width(locator, pattern)</tt>
|
||||
# * <tt>verify_element_width(locator, pattern)</tt>
|
||||
# * <tt>verify_not_element_width(locator, pattern)</tt>
|
||||
# * <tt>wait_for_element_width(locator, pattern)</tt>
|
||||
# * <tt>wait_for_not_element_width(locator, pattern)</tt>
|
||||
def store_element_width locator, variable_name
|
||||
command 'storeElementWidth', locator, variable_name
|
||||
end
|
||||
|
||||
# Retrieves the horizontal position of an element. This method will fail
|
||||
# if the element is not present.
|
||||
#
|
||||
# Related Assertions, automatically generated:
|
||||
# * <tt>assert_element_position_left(locator, pattern)</tt>
|
||||
# * <tt>assert_not_element_position_left(locator, pattern)</tt>
|
||||
# * <tt>verify_element_position_left(locator, pattern)</tt>
|
||||
# * <tt>verify_not_element_position_left(locator, pattern)</tt>
|
||||
# * <tt>wait_for_element_position_left(locator, pattern)</tt>
|
||||
# * <tt>wait_for_not_element_position_left(locator, pattern)</tt>
|
||||
def store_element_position_left locator, variable_name
|
||||
command 'storeElementPositionLeft', locator, variable_name
|
||||
end
|
||||
|
||||
# Retrieves the vertical position of an element. This method will fail
|
||||
# if the element is not present.
|
||||
#
|
||||
# Related Assertions, automatically generated:
|
||||
# * <tt>assert_element_position_top(locator, pattern)</tt>
|
||||
# * <tt>assert_not_element_position_top(locator, pattern)</tt>
|
||||
# * <tt>verify_element_position_top(locator, pattern)</tt>
|
||||
# * <tt>verify_not_element_position_top(locator, pattern)</tt>
|
||||
# * <tt>wait_for_element_position_top(locator, pattern)</tt>
|
||||
# * <tt>wait_for_not_element_position_top(locator, pattern)</tt>
|
||||
def store_element_position_top locator, variable_name
|
||||
command 'storeElementPositionTop', locator, variable_name
|
||||
end
|
||||
|
||||
# Return the contents of the log.
|
||||
#
|
||||
# Related Assertions, automatically generated:
|
||||
# * <tt>assert_log_messages(pattern)</tt>
|
||||
# * <tt>assert_not_log_messages(pattern)</tt>
|
||||
# * <tt>verify_log_messages(pattern)</tt>
|
||||
# * <tt>verify_not_log_messages(pattern)</tt>
|
||||
# * <tt>wait_for_log_messages(pattern)</tt>
|
||||
# * <tt>wait_for_not_log_messages(pattern)</tt>
|
||||
def store_log_messages variable_name
|
||||
command 'storeLogMessages', variable_name
|
||||
end
|
||||
|
||||
# Determines whether the specified input element is editable, i.e. hasn't
|
||||
# been disabled. This method will fail if the specified element isn't an
|
||||
# input element.
|
||||
|
|
@ -469,6 +823,53 @@ module SeleniumOnRails::TestBuilderAccessors
|
|||
command 'storeExpression', expression, variable_name
|
||||
end
|
||||
|
||||
# Determine whether current/locator identify the frame containing this
|
||||
# running code.
|
||||
#
|
||||
# This is useful in proxy injection mode, where this code runs in every
|
||||
# browser frame and window, and sometimes the selenium server needs to
|
||||
# identify the "current" frame. In this case, when the test calls select_frame,
|
||||
# this routine is called for each frame to figure out which one has been
|
||||
# selected. The selected frame will return true, while all others will return
|
||||
# false.
|
||||
#
|
||||
# NOTE: <tt>store_whether_this_frame_match_frame_expression</tt> is currently
|
||||
# not supported by Selenium Core.
|
||||
#
|
||||
# Related Assertions, automatically generated:
|
||||
# * <tt>assert_whether_this_frame_match_frame_expression(current_frame_string, target)</tt>
|
||||
# * <tt>assert_not_whether_this_frame_match_frame_expression(current_frame_string, target)</tt>
|
||||
# * <tt>verify_whether_this_frame_match_frame_expression(current_frame_string, target)</tt>
|
||||
# * <tt>verify_not_whether_this_frame_match_frame_expression(current_frame_string, target)</tt>
|
||||
# * <tt>wait_for_whether_this_frame_match_frame_expression(current_frame_string, target)</tt>
|
||||
# * <tt>wait_for_not_whether_this_frame_match_frame_expression(current_frame_string, target)</tt>
|
||||
def store_whether_this_frame_match_frame_expression current_frame_string, target, variable_name
|
||||
raise 'Not supported in Selenium Core at the moment'
|
||||
end
|
||||
|
||||
# Determine whether current_window_string plus target identify the window
|
||||
# containing this running code.
|
||||
#
|
||||
# This is useful in proxy injection mode, where this code runs in every browser
|
||||
# frame and window, and sometimes the selenium server needs to identify the
|
||||
# "current" window. In this case, when the test calls select_window, this routine
|
||||
# is called for each window to figure out which one has been selected. The selected
|
||||
# window will return true, while all others will return false.
|
||||
#
|
||||
# NOTE: <tt>store_whether_this_window_match_window_expression</tt> is currently
|
||||
# not supported by Selenium Core.
|
||||
#
|
||||
# Related Assertions, automatically generated:
|
||||
# * <tt>assert_whether_this_window_match_window_expression(current_window_string, target)</tt>
|
||||
# * <tt>assert_not_whether_this_window_match_window_expression(current_window_string, target)</tt>
|
||||
# * <tt>verify_whether_this_window_match_window_expression(current_window_string, target)</tt>
|
||||
# * <tt>verify_not_whether_this_window_match_window_expression(current_window_string, target)</tt>
|
||||
# * <tt>wait_for_whether_this_window_match_window_expression(current_window_string, target)</tt>
|
||||
# * <tt>wait_for_not_whether_this_window_match_window_expression(current_window_string, target)</tt>
|
||||
def store_whether_this_window_match_window_expression current_window_string, target, variable_name
|
||||
raise 'Not supported in Selenium Core at the moment'
|
||||
end
|
||||
|
||||
private
|
||||
# Generates all assertions for the accessors.
|
||||
def self.generate_methods
|
||||
|
|
@ -482,8 +883,16 @@ private
|
|||
command command_name
|
||||
end
|
||||
end
|
||||
when 'store_alert',
|
||||
when 'store_error_on_next',
|
||||
'store_failure_on_next',
|
||||
'store_alert',
|
||||
'store_all_window_ids',
|
||||
'store_all_window_names',
|
||||
'store_all_window_titles',
|
||||
'store_confirmation',
|
||||
'store_cookie',
|
||||
'store_log_messages',
|
||||
'store_mouse_speed',
|
||||
'store_prompt',
|
||||
'store_title',
|
||||
'store_body_text',
|
||||
|
|
@ -491,18 +900,37 @@ private
|
|||
'store_element_present',
|
||||
'store_visible',
|
||||
'store_editable',
|
||||
'store_html_source'
|
||||
'store_html_source',
|
||||
'store_checked',
|
||||
'store_something_selected'
|
||||
each_assertion method do |assertion_method, command_name|
|
||||
define_method assertion_method do |pattern|
|
||||
command command_name, pattern
|
||||
end
|
||||
end
|
||||
when 'store_value',
|
||||
when 'store_attribute_from_all_windows',
|
||||
'store_value',
|
||||
'store_text',
|
||||
'store_eval',
|
||||
'store_checked',
|
||||
'store_cursor_position',
|
||||
'store_selected',
|
||||
'store_expression'
|
||||
'store_selected_id',
|
||||
'store_selected_ids',
|
||||
'store_selected_index',
|
||||
'store_selected_indexes',
|
||||
'store_selected_label',
|
||||
'store_selected_labels',
|
||||
'store_selected_value',
|
||||
'store_selected_values',
|
||||
'store_element_height',
|
||||
'store_element_index',
|
||||
'store_element_width',
|
||||
'store_element_position_left',
|
||||
'store_element_position_top',
|
||||
'store_expression',
|
||||
'store_ordered',
|
||||
'store_whether_this_frame_match_frame_expression',
|
||||
'store_whether_this_window_match_window_expression'
|
||||
each_assertion method do |assertion_method, command_name|
|
||||
define_method assertion_method do |arg1, arg2|
|
||||
command command_name, arg1, arg2
|
||||
|
|
@ -572,4 +1000,3 @@ private
|
|||
|
||||
generate_methods
|
||||
end
|
||||
|
||||
|
|
|
|||
|
|
@ -48,6 +48,12 @@ module SeleniumOnRails::TestBuilderActions
|
|||
command 'click', locator
|
||||
end
|
||||
|
||||
# Clicks on a link, button, checkbox or radio button. If the click action causes
|
||||
# a new page to load (like a link usually does), call wait_for_page_to_load.
|
||||
def click_at locator, coord_string
|
||||
command 'clickAt', locator, coord_string
|
||||
end
|
||||
|
||||
# Explicitly simulate an event (e.g. <tt>"focus"</tt>, <tt>"blur"</tt>), to
|
||||
# trigger the corresponding <tt>"on_event_"</tt> handler.
|
||||
def fire_event locator, event_name
|
||||
|
|
@ -210,6 +216,229 @@ module SeleniumOnRails::TestBuilderActions
|
|||
command 'close'
|
||||
end
|
||||
|
||||
# Simulates the user pressing the alt key and hold it down until do_alt_up()
|
||||
# is called or a new page is loaded.
|
||||
def alt_key_down
|
||||
command 'altKeyDown'
|
||||
end
|
||||
|
||||
# Simulates the user releasing the alt key.
|
||||
def alt_key_up
|
||||
command 'altKeyUp'
|
||||
end
|
||||
|
||||
# Halt the currently running test, and wait for the user to press the Continue
|
||||
# button. This command is useful for debugging, but be careful when using it,
|
||||
# because it will force automated tests to hang until a user intervenes manually.
|
||||
#
|
||||
# NOTE: <tt>break</tt> is a reserved word in Ruby, so we have to simulate
|
||||
# Selenium core's <tt>break()</tt> with <tt>brake()</tt>
|
||||
def brake
|
||||
command 'break'
|
||||
end
|
||||
|
||||
# Simulates the user pressing the alt key and hold it down until do_control_up()
|
||||
# is called or a new page is loaded.
|
||||
def control_key_down
|
||||
command 'controlKeyDown'
|
||||
end
|
||||
|
||||
# Simulates the user releasing the control key.
|
||||
def control_key_up
|
||||
command 'controlKeyUp'
|
||||
end
|
||||
|
||||
# Create a new cookie whose path and domain are same with those of current page
|
||||
# under test, unless you specified a path for this cookie explicitly.
|
||||
#
|
||||
# Arguments:
|
||||
# * <tt>name_value_pair</tt> - name and value of the cookie in a format "name=value"
|
||||
# * <tt>options_string</tt> - options for the cookie. Currently supported options
|
||||
# include 'path' and 'max_age'. The options_string's format is
|
||||
# <tt>"path=/path/, max_age=60"</tt>. The order of options are irrelevant, the
|
||||
# unit of the value of 'max_age' is second.
|
||||
def create_cookie name_value_pair, options_string
|
||||
command 'createCookie', name_value_pair, options_string
|
||||
end
|
||||
|
||||
# Delete a named cookie with specified path.
|
||||
def delete_cookie name, path
|
||||
command 'deleteCookie', name, path
|
||||
end
|
||||
|
||||
# Double clicks on a link, button, checkbox or radio button. If the double click action
|
||||
# causes a new page to load (like a link usually does), call <tt>wait_for_page_to_load</tt>.
|
||||
def double_click locator
|
||||
command 'doubleClick', locator
|
||||
end
|
||||
|
||||
# Doubleclicks on a link, button, checkbox or radio button. If the action causes a new page
|
||||
# to load (like a link usually does), call <tt>wait_for_page_to_load</tt>.
|
||||
def double_click_at locator, coord_string
|
||||
command 'doubleClickAt', locator, coord_string
|
||||
end
|
||||
|
||||
# Drags an element a certain distance and then drops it.
|
||||
def drag_and_drop locator, movements_string
|
||||
command 'dragAndDrop', locator, movements_string
|
||||
end
|
||||
|
||||
# Drags an element and drops it on another element.
|
||||
def drag_and_drop_to_object locator_of_object_to_be_dragged, locator_of_drag_destination_object
|
||||
command 'dragAndDropToObject', locator_of_object_to_be_dragged, locator_of_drag_destination_object
|
||||
end
|
||||
|
||||
# Prints the specified message into the third table cell in your Selenese
|
||||
# tables.
|
||||
# Useful for debugging.
|
||||
def echo message
|
||||
command 'echo', message
|
||||
end
|
||||
|
||||
# Briefly changes the backgroundColor of the specified element yellow.
|
||||
# Useful for debugging.
|
||||
def highlight locator
|
||||
command 'highlight', locator
|
||||
end
|
||||
|
||||
# Press the meta key and hold it down until <tt>doMetaUp()</tt> is called or
|
||||
# a new page is loaded.
|
||||
def meta_key_down
|
||||
command 'metaKeyDown'
|
||||
end
|
||||
|
||||
# Release the meta key.
|
||||
def meta_key_up
|
||||
command 'metaKeyUp'
|
||||
end
|
||||
|
||||
# Simulates a user pressing the mouse button (without releasing it yet) on the specified
|
||||
# element.
|
||||
def mouse_down_at locator, coord_string
|
||||
command 'mouseDownAt', locator, coord_string
|
||||
end
|
||||
|
||||
# Simulates a user moving the mouse.
|
||||
def mouse_move locator
|
||||
command 'mouseMove', locator
|
||||
end
|
||||
|
||||
# Simulates a user moving the mouse relative to the specified element.
|
||||
def mouse_move_at locator, coord_string
|
||||
command 'mouseMoveAt', locator, coord_string
|
||||
end
|
||||
|
||||
# Simulates the user moving the mouse off the specified element.
|
||||
def mouse_out locator
|
||||
command 'mouseOut', locator
|
||||
end
|
||||
|
||||
# Simulates the user releasing the mouse button on the specified element.
|
||||
def mouse_up locator
|
||||
command 'mouseUp', locator
|
||||
end
|
||||
|
||||
# Simulates a user pressing the mouse button (without releasing it yet) on the
|
||||
# specified element.
|
||||
def mouse_up_at locator, coord_string
|
||||
command 'mouseUpAt', locator, coord_string
|
||||
end
|
||||
|
||||
# Opens a popup window (if a window with that ID isn't already open). After opening the
|
||||
# window, you'll need to select it using the <tt>select_window</tt> command.
|
||||
#
|
||||
# This command can also be a useful workaround for bug SEL-339. In some cases, Selenium
|
||||
# will be unable to intercept a call to window.open (if the call occurs during or before
|
||||
# the "onLoad" event, for example). In those cases, you can force Selenium to notice the
|
||||
# open window's name by using the Selenium openWindow command, using an empty (blank) url,
|
||||
# like this: <tt>open_window("", "myFunnyWindow")</tt>.
|
||||
def open_window url, window_id
|
||||
command 'openWindow', url, window_id
|
||||
end
|
||||
|
||||
# Wait for the specified amount of time (in milliseconds).
|
||||
def pause wait_time
|
||||
command 'pause', wait_time
|
||||
end
|
||||
|
||||
# Unselects all of the selected options in a multi-select element.
|
||||
def remove_all_selections locator
|
||||
command 'removeAllSelections', locator
|
||||
end
|
||||
|
||||
# Selects a frame within the current window. (You may invoke this command multiple times
|
||||
# to select nested frames.) To select the parent frame, use "relative=parent" as a
|
||||
# locator; to select the top frame, use "relative=top".
|
||||
#
|
||||
# You may also use a DOM expression to identify the frame you want directly, like this:
|
||||
# <tt>dom=frames["main"].frames["subframe"]</tt>
|
||||
def select_frame locator
|
||||
command 'selectFrame', locator
|
||||
end
|
||||
|
||||
# Moves the text cursor to the specified position in the given input element or textarea.
|
||||
# This method will fail if the specified element isn't an input element or textarea.
|
||||
def set_cursor_position locator, position
|
||||
command 'setCursorPosition', locator, position
|
||||
end
|
||||
|
||||
# Configure the number of pixels between "mousemove" events during dragAndDrop commands
|
||||
# (default=10).
|
||||
# Setting this value to 0 means that we'll send a "mousemove" event to every single pixel
|
||||
# in between the start location and the end location; that can be very slow, and may
|
||||
# cause some browsers to force the JavaScript to timeout.
|
||||
#
|
||||
# If the mouse speed is greater than the distance between the two dragged objects, we'll
|
||||
# just send one "mousemove" at the start location and then one final one at the end location.
|
||||
def set_mouse_speed pixels
|
||||
command 'setMouseSpeed', pixels
|
||||
end
|
||||
|
||||
# Press the shift key and hold it down until <tt>doShiftUp()</tt> is called or a new page
|
||||
# is loaded.
|
||||
def shift_key_down
|
||||
command 'shiftKeyDown'
|
||||
end
|
||||
|
||||
# Release the shift key.
|
||||
def shift_key_up
|
||||
command 'shiftKeyUp'
|
||||
end
|
||||
|
||||
# This command is a synonym for <tt>store_expression</tt>.
|
||||
def store expression, variable_name
|
||||
command 'store', expression, variable_name
|
||||
end
|
||||
|
||||
# Simulates keystroke events on the specified element, as though you typed the value
|
||||
# key-by-key.
|
||||
#
|
||||
# This is a convenience method for calling <tt>key_down</tt>, <tt>key_up</tt>,
|
||||
# <tt>key_press</tt> for every character in the specified string; this is useful for
|
||||
# dynamic UI widgets (like auto-completing combo boxes) that require explicit key events.
|
||||
#
|
||||
# Unlike the simple "type" command, which forces the specified value into the page directly,
|
||||
# this command may or may not have any visible effect, even in cases where typing keys would
|
||||
# normally have a visible effect. For example, if you use "<tt>type_keys</tt>" on a form
|
||||
# element, you may or may not see the results of what you typed in the field.
|
||||
#
|
||||
# In some cases, you may need to use the simple "type" command to set the value of the field
|
||||
# and then the "<tt>type_keys</tt>" command to send the keystroke events corresponding to
|
||||
# what you just typed.
|
||||
def type_keys locator, value
|
||||
command 'typeKeys', locator, value
|
||||
end
|
||||
|
||||
# Gives focus to a window.
|
||||
def window_focus window_name
|
||||
command 'windowFocus', window_name
|
||||
end
|
||||
|
||||
# Resize window to take up the entire screen.
|
||||
def window_maximize window_name
|
||||
command 'windowMaximize', window_name
|
||||
end
|
||||
|
||||
# Writes a message to the status bar and adds a note to the browser-side log.
|
||||
#
|
||||
# +context+ is the message sent to the browser.
|
||||
|
|
|
|||
91
vendor/plugins/selenium-on-rails/lib/selenium_on_rails/test_builder_user_accessors.rb.example
vendored
Normal file
|
|
@ -0,0 +1,91 @@
|
|||
# Mirrors the accessors specified in user-extensions.js from the selenium-core
|
||||
module SeleniumOnRails::TestBuilderUserAccessors
|
||||
|
||||
# Return the length of text of a specified element.
|
||||
#
|
||||
# Related Assertions, automatically generated:
|
||||
# * <tt>assert_text_length(locator, variable)</tt>
|
||||
# * <tt>assert_not_text_length(locator, length)</tt>
|
||||
# * <tt>verify_text_length(locator, length)</tt>
|
||||
# * <tt>verify_not_text_length(locator, length)</tt>
|
||||
# * <tt>wait_for_text_length(locator, length)</tt>
|
||||
# * <tt>wait_for_not_text_length(locator, length)</tt>
|
||||
def store_text_length locator, variable_name
|
||||
command 'storeTextLength', locator, variable_name
|
||||
end
|
||||
|
||||
# Checks if value entered more than once in textbox.
|
||||
#
|
||||
# Related Assertions, automatically generated:
|
||||
# * <tt>assert_not_text_length(locator, text)</tt>
|
||||
# * <tt>verify_text_length(locator, text)</tt>
|
||||
# * <tt>verify_not_text_length(locator, text)</tt>
|
||||
# * <tt>wait_for_text_length(locator, text)</tt>
|
||||
# * <tt>wait_for_not_text_length(locator, text)</tt>
|
||||
def assert_value_repeated locator, text
|
||||
command 'assertValueRepeated', locator, text
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def self.generate_methods
|
||||
public_instance_methods.each do |method|
|
||||
case method
|
||||
when 'store_text_length'
|
||||
each_assertion method do |assertion_method, command_name|
|
||||
define_method assertion_method do |arg1, arg2|
|
||||
command command_name, arg1, arg2
|
||||
end
|
||||
end
|
||||
when 'assert_value_repeated'
|
||||
each_check method do |check_method, command_name|
|
||||
define_method check_method do |arg1, arg2|
|
||||
command command_name, arg1, arg2
|
||||
end
|
||||
end
|
||||
else
|
||||
raise "Internal error: Don't know how to process user accessor: #{method}"
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
# Generates all the assertions needed given a +store_method+.
|
||||
def self.each_assertion store_method
|
||||
before_negation = nil
|
||||
after_negation = store_method.split('_')[1..-1] #throw away 'store'
|
||||
if after_negation.last == 'present'
|
||||
before_negation, after_negation = after_negation, after_negation.pop
|
||||
end
|
||||
|
||||
['assert', 'verify', ['wait','for']].each do |action|
|
||||
[nil, 'not'].each do |negation|
|
||||
name = [action, before_negation, negation, after_negation].flatten.reject{|a|a.nil?}
|
||||
method_name = name.join '_'
|
||||
command = name.inject(name.shift.clone) {|n, p| n << p.capitalize}
|
||||
yield method_name, command
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def self.each_check assert_method
|
||||
before_negation = nil
|
||||
after_negation = assert_method.split('_')[1..-1] #throw away 'assert'
|
||||
if after_negation.last == 'present'
|
||||
before_negation, after_negation = after_negation, after_negation.pop
|
||||
end
|
||||
|
||||
['assert', 'verify', ['wait', 'for']].each do |action|
|
||||
[nil, 'not'].each do |negation|
|
||||
unless (action == 'assert' && negation.nil?)
|
||||
name = [action, before_negation, negation, after_negation].flatten.reject{|a|a.nil?}
|
||||
method_name = name.join '_'
|
||||
command = name.inject(name.shift.clone) {|n, p| n << p.capitalize}
|
||||
yield method_name, command
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
generate_methods
|
||||
|
||||
end
|
||||
24
vendor/plugins/selenium-on-rails/lib/selenium_on_rails/test_builder_user_actions.rb.example
vendored
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
# Mirrors the actions specified in user-extensions.js from the selenium-core
|
||||
module SeleniumOnRails::TestBuilderUserActions
|
||||
|
||||
# Types the text twice into a text box.
|
||||
def type_repeated locator, text
|
||||
command 'typeRepeated', locator, text
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
# Generates the corresponding +_and_wait+ for each action.
|
||||
def self.generate_and_wait_actions
|
||||
public_instance_methods.each do |method|
|
||||
define_method method + '_and_wait' do |*args|
|
||||
make_command_waiting do
|
||||
send method, *args
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
generate_and_wait_actions
|
||||
|
||||
end
|
||||
|
|
@ -1,22 +1,26 @@
|
|||
require 'yaml'
|
||||
|
||||
class SeleniumOnRailsConfig
|
||||
@@defaults = {:environments => ['test']}
|
||||
def self.get var, default = nil
|
||||
value = configs[var.to_s]
|
||||
value ||= @@defaults[var]
|
||||
attr_accessor :configs
|
||||
|
||||
def initialize
|
||||
@defaults = {:environments => ['test']}
|
||||
initialize_configs
|
||||
end
|
||||
|
||||
def get var, default = nil
|
||||
value = @configs[var.to_s]
|
||||
value ||= @defaults[var]
|
||||
value ||= default
|
||||
value ||= yield if block_given?
|
||||
value
|
||||
end
|
||||
|
||||
private
|
||||
def self.configs
|
||||
unless defined? @@configs
|
||||
file = File.expand_path(File.dirname(__FILE__) + '/../config.yml')
|
||||
@@configs = File.exist?(file) ? YAML.load_file(file) : {}
|
||||
end
|
||||
@@configs
|
||||
def initialize_configs
|
||||
@configs = {}
|
||||
files = [File.expand_path(File.dirname(__FILE__) + '/../config.yml')]
|
||||
files << File.join(RAILS_ROOT, 'config', 'selenium.yml')
|
||||
files.each { |file| @configs = YAML.load_file(file) if File.exist?(file) }
|
||||
end
|
||||
|
||||
end
|
||||
9
vendor/plugins/selenium-on-rails/lib/views/selenium_helper.rb
vendored
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
module SeleniumHelper
|
||||
include SeleniumOnRails::SuiteRenderer
|
||||
include SeleniumOnRails::FixtureLoader
|
||||
|
||||
def test_case_name filename
|
||||
File.basename(filename).sub(/\..*/,'').humanize
|
||||
end
|
||||
|
||||
end
|
||||
5
vendor/plugins/selenium-on-rails/routes.rb
vendored
|
|
@ -14,8 +14,9 @@ module ActionController
|
|||
:controller => 'selenium', :action => 'record', :requirements => { :logFile => /.*/ }
|
||||
map.connect 'selenium/*filename',
|
||||
:controller => 'selenium', :action => 'support_file'
|
||||
|
||||
yield map
|
||||
map.connect 'switch_environment',
|
||||
:controller => 'switch_environment', :action => 'index'
|
||||
yield map if block_given?
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 843 B After Width: | Height: | Size: 843 B |
|
Before Width: | Height: | Size: 848 B After Width: | Height: | Size: 848 B |
|
Before Width: | Height: | Size: 662 B After Width: | Height: | Size: 662 B |
|
Before Width: | Height: | Size: 405 B After Width: | Height: | Size: 405 B |
|
Before Width: | Height: | Size: 374 B After Width: | Height: | Size: 374 B |
|
Before Width: | Height: | Size: 275 B After Width: | Height: | Size: 275 B |
|
Before Width: | Height: | Size: 263 B After Width: | Height: | Size: 263 B |
|
Before Width: | Height: | Size: 668 B After Width: | Height: | Size: 668 B |
|
Before Width: | Height: | Size: 452 B After Width: | Height: | Size: 452 B |
|
Before Width: | Height: | Size: 402 B After Width: | Height: | Size: 402 B |