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>
|
||||||
524
vendor/plugins/selenium-on-rails/README
vendored
|
|
@ -1,192 +1,332 @@
|
||||||
= Selenium on Rails
|
|
||||||
|
Installation for rails versions before Rails 2.1
|
||||||
== Overview
|
|
||||||
|
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.
|
||||||
Selenium on Rails provides an easy way to test Rails application with
|
|
||||||
SeleniumCore[http://www.openqa.org/selenium-core/].
|
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
|
||||||
This plugin does four things:
|
3. If the RedCloth gem is available the Selenese test cases can use it for better markup.
|
||||||
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>.
|
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.)
|
||||||
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).
|
5. Create a test case: script/generate selenium login
|
||||||
3. Instead of writing the test cases in HTML you can use a number of better formats (see <tt>Formats</tt>).
|
6. Start the server: script/server -e test
|
||||||
4. Loading of fixtures and wiping of session (<tt>/selenium/setup</tt>).
|
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.
|
||||||
== Installation
|
|
||||||
|
Formats
|
||||||
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>
|
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.
|
||||||
3. <i>If RedCloth is available the Selenese test cases can use it for better markup.</i>
|
RSelenese, .rsel
|
||||||
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>
|
RSelenese enable you to write your tests in Ruby. This is my favorite format.
|
||||||
6. Start the server: <tt>script/server -e test</tt>
|
|
||||||
7. Point your browser to <tt>http://localhost:3000/selenium</tt>
|
setup :fixtures => :all
|
||||||
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.
|
open '/'
|
||||||
|
assert_title 'Home'
|
||||||
=== win32-open3
|
('a'..'z').each {|c| open :controller => 'user', :action => 'create', :name => c }
|
||||||
|
|
||||||
win32-open3[http://raa.ruby-lang.org/project/win32-open3/] is needed if you're
|
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:
|
||||||
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
|
(1..10).each do |index|
|
||||||
recommended.
|
do something
|
||||||
|
end
|
||||||
You can build it from source or install the binary:
|
|
||||||
|
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.
|
||||||
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.
|
Selenese, .sel
|
||||||
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>
|
Selenese is the dumbest format (in a good way). You just write your commands delimited by | characters.
|
||||||
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>)
|
|open|/selenium/setup|
|
||||||
|
|open|/|
|
||||||
== Formats
|
|goBack|
|
||||||
|
|
||||||
The test cases can be written in a number of formats. Which one you choose is a
|
If you don‘t want to write Selenese tests by hand you can use SeleniumIDE which has support for Selenese.
|
||||||
matter of taste. You can generate your test files by running
|
|
||||||
<tt>script/generate selenium</tt> or by creating them manually in your
|
SeleniumIDE makes it super easy to record test and edit them.
|
||||||
<tt>/test/selenium</tt> directory.
|
HTML/RHTML
|
||||||
|
|
||||||
=== Selenese, .sel
|
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
|
||||||
Selenese is the dumbest format (in a good way). You just write your commands
|
|
||||||
delimited by | characters.
|
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.
|
||||||
|
|
||||||
|open|/selenium/setup|
|
A partial test case is just like a normal test case besides that its filename has to start with _:
|
||||||
|open|/|
|
|
||||||
|goBack|
|
#_login.rsel
|
||||||
|
open '/login'
|
||||||
If you don't want to write Selenese tests by hand you can use
|
type 'name', name
|
||||||
SeleniumIDE[http://www.openqa.org/selenium-ide/] which has
|
type 'password', password
|
||||||
support[http://wiki.openqa.org/display/SIDE/SeleniumOnRails] for Selenese.
|
click 'submit', :wait=>true
|
||||||
|
|
||||||
SeleniumIDE makes it super easy to record test and edit them.
|
To include a partial test case in a RSelenese test case:
|
||||||
|
|
||||||
=== RSelenese, .rsel
|
include_partial 'login', :name => 'Jane Doe', :password => 'Jane Doe'.reverse
|
||||||
|
|
||||||
RSelenese enable you to write your tests in Ruby.
|
in a Selenese test case:
|
||||||
|
|
||||||
setup :fixtures => :all
|
|includePartial|login|name=John Doe|password=eoD nhoJ|
|
||||||
open '/'
|
|
||||||
assert_title 'Home'
|
and in a RHTML test case:
|
||||||
('a'..'z').each {|c| open :controller => 'user', :action => 'create', :name => c }
|
|
||||||
|
<%= render :partial => 'login', :locals => {:name = 'Joe Schmo', :password => 'Joe Schmo'.reverse} %>
|
||||||
See SeleniumOnRails::TestBuilder for available commands.
|
|
||||||
|
Configuration
|
||||||
=== HTML/RHTML
|
|
||||||
|
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.
|
||||||
You can write your tests in HTML/RHTML but that's mostly useful if you have
|
Environments
|
||||||
existing tests you want to reuse.
|
|
||||||
|
Per default this plugin is only available in test environment. You can change this by setting environments, such as:
|
||||||
=== Partial test cases
|
|
||||||
|
#config.yml
|
||||||
If you have some common actions you want to do in several test cases you can put
|
environments:
|
||||||
them in a separate partial test case and include them in your other test cases.
|
- test
|
||||||
|
- development
|
||||||
A partial test case is just like a normal test case besides that its filename
|
|
||||||
has to start with _:
|
Selenium Core path
|
||||||
|
|
||||||
#_login.rsel
|
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.
|
||||||
open '/login'
|
|
||||||
type 'name', name
|
#config.yml
|
||||||
type 'password', password
|
selenium_path: 'c:\selenium'
|
||||||
click 'submit', :wait=>true
|
|
||||||
|
test:acceptance
|
||||||
To include a partial test case you write like this in a Selenese test case:
|
|
||||||
|
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.
|
||||||
|includePartial|login|name=John Doe|password=eoD nhoJ|
|
|
||||||
|
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:
|
||||||
in a RSelenese test case:
|
|
||||||
|
#config.yml
|
||||||
include_partial 'login', :name => 'Jane Doe', :password => 'Jane Doe'.reverse
|
browsers:
|
||||||
|
firefox: 'c:\Program Files\Mozilla Firefox\firefox.exe'
|
||||||
and in a RHTML test case:
|
ie: 'c:\Program Files\Internet Explorer\iexplore.exe'
|
||||||
|
|
||||||
<%= render :partial => 'login', :locals => {:name = 'Joe Schmo', :password => 'Joe Schmo'.reverse} %>
|
Now you‘re all set. First start a server:
|
||||||
|
|
||||||
== Configuration
|
script/server -e test
|
||||||
|
|
||||||
There are a number of settings available. You make them by renaming
|
Then run the tests:
|
||||||
<tt>config.yml.example</tt> to <tt>config.yml</tt> and make your changes in that
|
|
||||||
file.
|
rake test:acceptance
|
||||||
|
|
||||||
=== Environments
|
Now it should work, otherwise let me know!
|
||||||
|
Store results
|
||||||
Per default this plugin is only available in test environment. You can change
|
|
||||||
this by setting <tt>environments</tt>, such as:
|
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
|
#config.yml
|
||||||
environments:
|
result_dir: 'c:\result'
|
||||||
- test
|
|
||||||
- development
|
So when you run rake test:acceptance the tables with the results will be stored as .html files in that directory.
|
||||||
|
|
||||||
== <tt>test:acceptance</tt>
|
This can be useful especially for continous integration.
|
||||||
|
|
||||||
You can run all your Selenium tests as a Rake task.
|
|
||||||
|
= Selenium on Rails
|
||||||
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:
|
== Overview
|
||||||
|
|
||||||
#config.yml
|
Selenium on Rails provides an easy way to test Rails application with
|
||||||
browsers:
|
SeleniumCore[http://www.openqa.org/selenium-core/].
|
||||||
firefox: 'c:\Program Files\Mozilla Firefox\firefox.exe'
|
|
||||||
ie: 'c:\Program Files\Internet Explorer\iexplore.exe'
|
This plugin does four things:
|
||||||
|
1. The Selenium Core files don't have to pollute <tt>/public</tt>.
|
||||||
Now you're all set. First start a server:
|
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>).
|
||||||
script/server -e test
|
4. Loading of fixtures and wiping of session (<tt>/selenium/setup</tt>).
|
||||||
|
|
||||||
Then run the tests:
|
== Installation
|
||||||
|
|
||||||
rake test:acceptance
|
== Installation for Rails 2.1
|
||||||
|
|
||||||
Now it should work, otherwise let me know!
|
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
|
||||||
=== Store results
|
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.)
|
||||||
If you want to store the results from a <tt>test:acceptance</tt> you just need
|
5. Create a test case: script/generate selenium login
|
||||||
to set in which directory they should be stored:
|
6. Start the server: script/server -e test
|
||||||
|
7. Point your browser to localhost:3000/selenium
|
||||||
#config.yml
|
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.
|
||||||
result_dir: 'c:\result'
|
|
||||||
|
== Installation for rails versions before Rails 2.1
|
||||||
So when you run <tt>rake test:acceptance</tt> the tables with the results will
|
|
||||||
be stored as <tt>.html</tt> files in that directory.
|
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.
|
||||||
|
|
||||||
This can be useful especially for continous integration.
|
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
|
||||||
== Todo
|
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.)
|
||||||
=== Standalone mode
|
5. Create a test case: script/generate selenium login
|
||||||
|
6. Start the server: script/server -e test
|
||||||
More work is needed on <tt>test:acceptance</tt> on Windows to be able to start
|
7. Point your browser to localhost:3000/selenium
|
||||||
the server when needed.
|
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.
|
||||||
|
|
||||||
=== user_extension.js
|
|
||||||
|
== Formats
|
||||||
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
|
The test cases can be written in a number of formats. Which one you choose is a
|
||||||
such a file in Selenium on Rails.
|
matter of taste. You can generate your test files by running
|
||||||
|
<tt>script/generate selenium</tt> or by creating them manually in your
|
||||||
=== More setup/teardown support?
|
<tt>/test/selenium</tt> directory.
|
||||||
|
|
||||||
Currently there is only support to load fixtures and to wipe the session in
|
=== Selenese, .sel
|
||||||
<tt>/selenium/setup</tt>. Is there a need for more kinds of setups or teardowns?
|
|
||||||
|
Selenese is the dumbest format (in a good way). You just write your commands
|
||||||
=== More documentation
|
delimited by | characters.
|
||||||
|
|
||||||
|
|open|/selenium/setup|
|
||||||
== Not todo
|
|open|/|
|
||||||
|
|goBack|
|
||||||
=== Editor
|
|
||||||
|
If you don't want to write Selenese tests by hand you can use
|
||||||
Creating an editor for the test cases is currently considered out of scope for
|
SeleniumIDE[http://www.openqa.org/selenium-ide/] which has
|
||||||
this plugin. SeleniumIDE[http://www.openqa.org/selenium-ide/] does such a good
|
support[http://wiki.openqa.org/display/SIDE/SeleniumOnRails] for Selenese.
|
||||||
job and has support[http://wiki.openqa.org/display/SIDE/SeleniumOnRails] for
|
|
||||||
the Selenese format.
|
SeleniumIDE makes it super easy to record test and edit them.
|
||||||
|
|
||||||
== Credits
|
=== RSelenese, .rsel
|
||||||
|
|
||||||
* Jon Tirsen, http://jutopia.tirsen.com -- initial inspiration[http://wiki.rubyonrails.com/rails/pages/SeleniumIntegration]
|
RSelenese enable you to write your tests in Ruby.
|
||||||
* Eric Kidd, http://www.randomhacks.net -- contribution of RSelenese
|
|
||||||
|
setup :fixtures => :all
|
||||||
== Information
|
open '/'
|
||||||
|
assert_title 'Home'
|
||||||
For more information, check out the website[http://www.openqa.org/selenium-on-rails/].
|
('a'..'z').each {|c| open :controller => 'user', :action => 'create', :name => c }
|
||||||
|
|
||||||
|
See SeleniumOnRails::TestBuilder for available commands.
|
||||||
|
|
||||||
|
=== 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.
|
||||||
|
|
||||||
|
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 you write like this in a Selenese test case:
|
||||||
|
|
||||||
|
|includePartial|login|name=John Doe|password=eoD nhoJ|
|
||||||
|
|
||||||
|
in a RSelenese test case:
|
||||||
|
|
||||||
|
include_partial 'login', :name => 'Jane Doe', :password => 'Jane Doe'.reverse
|
||||||
|
|
||||||
|
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 copying <tt>config.yml.example</tt> to <tt>config/selenium.yml</tt> in your application and make your changes in that file.
|
||||||
|
|
||||||
|
=== Environments
|
||||||
|
|
||||||
|
Per default this plugin is only available in test environment. You can change
|
||||||
|
this by setting <tt>environments</tt>, 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
|
||||||
|
<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.
|
||||||
|
|
||||||
|
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 <tt>test:acceptance</tt> you just need
|
||||||
|
to set in which directory they should be stored:
|
||||||
|
|
||||||
|
#config.yml
|
||||||
|
result_dir: 'c:\result'
|
||||||
|
|
||||||
|
So when you run <tt>rake test:acceptance</tt> the tables with the results will
|
||||||
|
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
|
||||||
|
|
||||||
|
More work is needed on <tt>test:acceptance</tt> on Windows to be able to start
|
||||||
|
the server when needed.
|
||||||
|
|
||||||
|
=== More setup/teardown support?
|
||||||
|
|
||||||
|
Currently there is only support to load fixtures and to wipe the session in
|
||||||
|
<tt>/selenium/setup</tt>. Is there a need for more kinds of setups or teardowns?
|
||||||
|
|
||||||
|
=== More documentation
|
||||||
|
|
||||||
|
|
||||||
|
== Not todo
|
||||||
|
|
||||||
|
=== Editor
|
||||||
|
|
||||||
|
Creating an editor for the test cases is currently considered out of scope for
|
||||||
|
this plugin. SeleniumIDE[http://www.openqa.org/selenium-ide/] does such a good
|
||||||
|
job and has support[http://wiki.openqa.org/display/SIDE/SeleniumOnRails] for
|
||||||
|
the Selenese format.
|
||||||
|
|
||||||
|
== Credits
|
||||||
|
|
||||||
|
* 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
|
||||||
|
|
||||||
|
For more information, check out the website[http://www.openqa.org/selenium-on-rails/].
|
||||||
|
|
|
||||||
2
vendor/plugins/selenium-on-rails/Rakefile
vendored
|
|
@ -15,7 +15,7 @@ end
|
||||||
desc 'Generate documentation for the Selenium on Rails plugin.'
|
desc 'Generate documentation for the Selenium on Rails plugin.'
|
||||||
task :rdoc do
|
task :rdoc do
|
||||||
rm_rf 'doc'
|
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
|
end
|
||||||
|
|
||||||
begin
|
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,27 +1,33 @@
|
||||||
# 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
|
# General settings
|
||||||
#
|
#
|
||||||
|
|
||||||
environments:
|
environments:
|
||||||
- test
|
- test
|
||||||
# - development # Uncomment this line to enable in development environment. N.B. your development database will likely be altered/destroyed/abducted
|
# - 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
|
# rake test:acceptance settings
|
||||||
#
|
#
|
||||||
|
|
||||||
browsers:
|
browsers:
|
||||||
firefox: 'c:\Program Files\Mozilla Firefox\firefox.exe'
|
# Windows
|
||||||
ie: 'c:\Program Files\Internet Explorer\iexplore.exe'
|
firefox: 'c:\Program Files\Mozilla Firefox\firefox.exe'
|
||||||
|
ie: 'c:\Program Files\Internet Explorer\iexplore.exe'
|
||||||
#host: 'localhost'
|
|
||||||
#port_start: 3000
|
# Mac OS X
|
||||||
#port_end: 3005
|
#firefox: '/Applications/Firefox.app/Contents/MacOS/firefox-bin'
|
||||||
#max_browser_duration: 120
|
#safari: '/Applications/Safari.app/Contents/MacOS/Safari'
|
||||||
#multi_window: false
|
|
||||||
|
#host: 'localhost'
|
||||||
#result_dir: 'c:\result' # the directory where the results will be stored after a test:acceptance run
|
#port_start: 3000
|
||||||
|
#port_end: 3005
|
||||||
|
#base_url_path: '/'
|
||||||
|
#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,265 +1,265 @@
|
||||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||||
<!DOCTYPE html
|
<!DOCTYPE html
|
||||||
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
||||||
<head>
|
<head>
|
||||||
<title>Class: SeleniumController</title>
|
<title>Class: SeleniumController</title>
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
||||||
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
||||||
<link rel="stylesheet" href=".././rdoc-style.css" type="text/css" media="screen" />
|
<link rel="stylesheet" href=".././rdoc-style.css" type="text/css" media="screen" />
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
// <![CDATA[
|
// <![CDATA[
|
||||||
|
|
||||||
function popupCode( url ) {
|
function popupCode( url ) {
|
||||||
window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
|
window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
|
||||||
}
|
}
|
||||||
|
|
||||||
function toggleCode( id ) {
|
function toggleCode( id ) {
|
||||||
if ( document.getElementById )
|
if ( document.getElementById )
|
||||||
elem = document.getElementById( id );
|
elem = document.getElementById( id );
|
||||||
else if ( document.all )
|
else if ( document.all )
|
||||||
elem = eval( "document.all." + id );
|
elem = eval( "document.all." + id );
|
||||||
else
|
else
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
elemStyle = elem.style;
|
elemStyle = elem.style;
|
||||||
|
|
||||||
if ( elemStyle.display != "block" ) {
|
if ( elemStyle.display != "block" ) {
|
||||||
elemStyle.display = "block"
|
elemStyle.display = "block"
|
||||||
} else {
|
} else {
|
||||||
elemStyle.display = "none"
|
elemStyle.display = "none"
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Make codeblocks hidden by default
|
// Make codeblocks hidden by default
|
||||||
document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
|
document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
|
||||||
|
|
||||||
// ]]>
|
// ]]>
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div id="classHeader">
|
<div id="classHeader">
|
||||||
<table class="header-table">
|
<table class="header-table">
|
||||||
<tr class="top-aligned-row">
|
<tr class="top-aligned-row">
|
||||||
<td><strong>Class</strong></td>
|
<td><strong>Class</strong></td>
|
||||||
<td class="class-name-in-header">SeleniumController</td>
|
<td class="class-name-in-header">SeleniumController</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="top-aligned-row">
|
<tr class="top-aligned-row">
|
||||||
<td><strong>In:</strong></td>
|
<td><strong>In:</strong></td>
|
||||||
<td>
|
<td>
|
||||||
<a href="../files/lib/controllers/selenium_controller_rb.html">
|
<a href="../files/lib/controllers/selenium_controller_rb.html">
|
||||||
lib/controllers/selenium_controller.rb
|
lib/controllers/selenium_controller.rb
|
||||||
</a>
|
</a>
|
||||||
<br />
|
<br />
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
<tr class="top-aligned-row">
|
<tr class="top-aligned-row">
|
||||||
<td><strong>Parent:</strong></td>
|
<td><strong>Parent:</strong></td>
|
||||||
<td>
|
<td>
|
||||||
ActionController::Base
|
ActionController::Base
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
<!-- banner header -->
|
<!-- banner header -->
|
||||||
|
|
||||||
<div id="bodyContent">
|
<div id="bodyContent">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div id="contextContent">
|
<div id="contextContent">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="method-list">
|
<div id="method-list">
|
||||||
<h3 class="section-bar">Methods</h3>
|
<h3 class="section-bar">Methods</h3>
|
||||||
|
|
||||||
<div class="name-list">
|
<div class="name-list">
|
||||||
<a href="#M000006">record</a>
|
<a href="#M000006">record</a>
|
||||||
<a href="#M000003">setup</a>
|
<a href="#M000003">setup</a>
|
||||||
<a href="#M000005">support_file</a>
|
<a href="#M000005">support_file</a>
|
||||||
<a href="#M000004">test_file</a>
|
<a href="#M000004">test_file</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<!-- if includes -->
|
<!-- if includes -->
|
||||||
<div id="includes">
|
<div id="includes">
|
||||||
<h3 class="section-bar">Included Modules</h3>
|
<h3 class="section-bar">Included Modules</h3>
|
||||||
|
|
||||||
<div id="includes-list">
|
<div id="includes-list">
|
||||||
<span class="include-name"><a href="SeleniumOnRails/FixtureLoader.html">SeleniumOnRails::FixtureLoader</a></span>
|
<span class="include-name"><a href="SeleniumOnRails/FixtureLoader.html">SeleniumOnRails::FixtureLoader</a></span>
|
||||||
<span class="include-name"><a href="SeleniumOnRails/Renderer.html">SeleniumOnRails::Renderer</a></span>
|
<span class="include-name"><a href="SeleniumOnRails/Renderer.html">SeleniumOnRails::Renderer</a></span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="section">
|
<div id="section">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<!-- if method_list -->
|
<!-- if method_list -->
|
||||||
<div id="methods">
|
<div id="methods">
|
||||||
<h3 class="section-bar">Public Instance methods</h3>
|
<h3 class="section-bar">Public Instance methods</h3>
|
||||||
|
|
||||||
<div id="method-M000006" class="method-detail">
|
<div id="method-M000006" class="method-detail">
|
||||||
<a name="M000006"></a>
|
<a name="M000006"></a>
|
||||||
|
|
||||||
<div class="method-heading">
|
<div class="method-heading">
|
||||||
<a href="#M000006" class="method-signature">
|
<a href="#M000006" class="method-signature">
|
||||||
<span class="method-name">record</span><span class="method-args">()</span>
|
<span class="method-name">record</span><span class="method-args">()</span>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="method-description">
|
<div class="method-description">
|
||||||
<p><a class="source-toggle" href="#"
|
<p><a class="source-toggle" href="#"
|
||||||
onclick="toggleCode('M000006-source');return false;">[Source]</a></p>
|
onclick="toggleCode('M000006-source');return false;">[Source]</a></p>
|
||||||
<div class="method-source-code" id="M000006-source">
|
<div class="method-source-code" id="M000006-source">
|
||||||
<pre>
|
<pre>
|
||||||
<span class="ruby-comment cmt"># File lib/controllers/selenium_controller.rb, line 50</span>
|
<span class="ruby-comment cmt"># File lib/controllers/selenium_controller.rb, line 50</span>
|
||||||
50: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">record</span>
|
50: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">record</span>
|
||||||
51: <span class="ruby-identifier">dir</span> = <span class="ruby-identifier">record_table</span>
|
51: <span class="ruby-identifier">dir</span> = <span class="ruby-identifier">record_table</span>
|
||||||
52:
|
52:
|
||||||
53: <span class="ruby-ivar">@result</span> = {<span class="ruby-value str">'resultDir'</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">dir</span>}
|
53: <span class="ruby-ivar">@result</span> = {<span class="ruby-value str">'resultDir'</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">dir</span>}
|
||||||
54: <span class="ruby-keyword kw">for</span> <span class="ruby-identifier">p</span> <span class="ruby-keyword kw">in</span> [<span class="ruby-value str">'result'</span>, <span class="ruby-value str">'numTestFailures'</span>, <span class="ruby-value str">'numTestPasses'</span>, <span class="ruby-value str">'numCommandFailures'</span>, <span class="ruby-value str">'numCommandPasses'</span>, <span class="ruby-value str">'numCommandErrors'</span>, <span class="ruby-value str">'totalTime'</span>]
|
54: <span class="ruby-keyword kw">for</span> <span class="ruby-identifier">p</span> <span class="ruby-keyword kw">in</span> [<span class="ruby-value str">'result'</span>, <span class="ruby-value str">'numTestFailures'</span>, <span class="ruby-value str">'numTestPasses'</span>, <span class="ruby-value str">'numCommandFailures'</span>, <span class="ruby-value str">'numCommandPasses'</span>, <span class="ruby-value str">'numCommandErrors'</span>, <span class="ruby-value str">'totalTime'</span>]
|
||||||
55: <span class="ruby-ivar">@result</span>[<span class="ruby-identifier">p</span>] = <span class="ruby-identifier">params</span>[<span class="ruby-identifier">p</span>]
|
55: <span class="ruby-ivar">@result</span>[<span class="ruby-identifier">p</span>] = <span class="ruby-identifier">params</span>[<span class="ruby-identifier">p</span>]
|
||||||
56: <span class="ruby-keyword kw">end</span>
|
56: <span class="ruby-keyword kw">end</span>
|
||||||
57: <span class="ruby-constant">File</span>.<span class="ruby-identifier">open</span>(<span class="ruby-identifier">log_path</span>(<span class="ruby-identifier">params</span>[<span class="ruby-identifier">:logFile</span>] <span class="ruby-operator">||</span> <span class="ruby-value str">'default.yml'</span>), <span class="ruby-value str">'w'</span>) {<span class="ruby-operator">|</span><span class="ruby-identifier">f</span><span class="ruby-operator">|</span> <span class="ruby-constant">YAML</span>.<span class="ruby-identifier">dump</span>(<span class="ruby-ivar">@result</span>, <span class="ruby-identifier">f</span>)}
|
57: <span class="ruby-constant">File</span>.<span class="ruby-identifier">open</span>(<span class="ruby-identifier">log_path</span>(<span class="ruby-identifier">params</span>[<span class="ruby-identifier">:logFile</span>] <span class="ruby-operator">||</span> <span class="ruby-value str">'default.yml'</span>), <span class="ruby-value str">'w'</span>) {<span class="ruby-operator">|</span><span class="ruby-identifier">f</span><span class="ruby-operator">|</span> <span class="ruby-constant">YAML</span>.<span class="ruby-identifier">dump</span>(<span class="ruby-ivar">@result</span>, <span class="ruby-identifier">f</span>)}
|
||||||
58:
|
58:
|
||||||
59: <span class="ruby-identifier">render</span> <span class="ruby-identifier">:file</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">view_path</span>(<span class="ruby-value str">'record.rhtml'</span>), <span class="ruby-identifier">:layout</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">layout_path</span>
|
59: <span class="ruby-identifier">render</span> <span class="ruby-identifier">:file</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">view_path</span>(<span class="ruby-value str">'record.rhtml'</span>), <span class="ruby-identifier">:layout</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">layout_path</span>
|
||||||
60: <span class="ruby-keyword kw">end</span>
|
60: <span class="ruby-keyword kw">end</span>
|
||||||
</pre>
|
</pre>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="method-M000003" class="method-detail">
|
<div id="method-M000003" class="method-detail">
|
||||||
<a name="M000003"></a>
|
<a name="M000003"></a>
|
||||||
|
|
||||||
<div class="method-heading">
|
<div class="method-heading">
|
||||||
<a href="#M000003" class="method-signature">
|
<a href="#M000003" class="method-signature">
|
||||||
<span class="method-name">setup</span><span class="method-args">()</span>
|
<span class="method-name">setup</span><span class="method-args">()</span>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="method-description">
|
<div class="method-description">
|
||||||
<p><a class="source-toggle" href="#"
|
<p><a class="source-toggle" href="#"
|
||||||
onclick="toggleCode('M000003-source');return false;">[Source]</a></p>
|
onclick="toggleCode('M000003-source');return false;">[Source]</a></p>
|
||||||
<div class="method-source-code" id="M000003-source">
|
<div class="method-source-code" id="M000003-source">
|
||||||
<pre>
|
<pre>
|
||||||
<span class="ruby-comment cmt"># File lib/controllers/selenium_controller.rb, line 7</span>
|
<span class="ruby-comment cmt"># File lib/controllers/selenium_controller.rb, line 7</span>
|
||||||
7: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">setup</span>
|
7: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">setup</span>
|
||||||
8: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">params</span>.<span class="ruby-identifier">has_key?</span> <span class="ruby-identifier">:keep_session</span>
|
8: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">params</span>.<span class="ruby-identifier">has_key?</span> <span class="ruby-identifier">:keep_session</span>
|
||||||
9: <span class="ruby-identifier">reset_session</span>
|
9: <span class="ruby-identifier">reset_session</span>
|
||||||
10: <span class="ruby-ivar">@session_wiped</span> = <span class="ruby-keyword kw">true</span>
|
10: <span class="ruby-ivar">@session_wiped</span> = <span class="ruby-keyword kw">true</span>
|
||||||
11: <span class="ruby-keyword kw">end</span>
|
11: <span class="ruby-keyword kw">end</span>
|
||||||
12: <span class="ruby-ivar">@cleared_tables</span> = <span class="ruby-identifier">clear_tables</span> <span class="ruby-identifier">params</span>[<span class="ruby-identifier">:clear_tables</span>].<span class="ruby-identifier">to_s</span>
|
12: <span class="ruby-ivar">@cleared_tables</span> = <span class="ruby-identifier">clear_tables</span> <span class="ruby-identifier">params</span>[<span class="ruby-identifier">:clear_tables</span>].<span class="ruby-identifier">to_s</span>
|
||||||
13: <span class="ruby-ivar">@loaded_fixtures</span> = <span class="ruby-identifier">load_fixtures</span> <span class="ruby-identifier">params</span>[<span class="ruby-identifier">:fixtures</span>].<span class="ruby-identifier">to_s</span>
|
13: <span class="ruby-ivar">@loaded_fixtures</span> = <span class="ruby-identifier">load_fixtures</span> <span class="ruby-identifier">params</span>[<span class="ruby-identifier">:fixtures</span>].<span class="ruby-identifier">to_s</span>
|
||||||
14: <span class="ruby-identifier">render</span> <span class="ruby-identifier">:file</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">view_path</span>(<span class="ruby-value str">'setup.rhtml'</span>), <span class="ruby-identifier">:layout</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">layout_path</span>
|
14: <span class="ruby-identifier">render</span> <span class="ruby-identifier">:file</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">view_path</span>(<span class="ruby-value str">'setup.rhtml'</span>), <span class="ruby-identifier">:layout</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">layout_path</span>
|
||||||
15: <span class="ruby-keyword kw">end</span>
|
15: <span class="ruby-keyword kw">end</span>
|
||||||
</pre>
|
</pre>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="method-M000005" class="method-detail">
|
<div id="method-M000005" class="method-detail">
|
||||||
<a name="M000005"></a>
|
<a name="M000005"></a>
|
||||||
|
|
||||||
<div class="method-heading">
|
<div class="method-heading">
|
||||||
<a href="#M000005" class="method-signature">
|
<a href="#M000005" class="method-signature">
|
||||||
<span class="method-name">support_file</span><span class="method-args">()</span>
|
<span class="method-name">support_file</span><span class="method-args">()</span>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="method-description">
|
<div class="method-description">
|
||||||
<p><a class="source-toggle" href="#"
|
<p><a class="source-toggle" href="#"
|
||||||
onclick="toggleCode('M000005-source');return false;">[Source]</a></p>
|
onclick="toggleCode('M000005-source');return false;">[Source]</a></p>
|
||||||
<div class="method-source-code" id="M000005-source">
|
<div class="method-source-code" id="M000005-source">
|
||||||
<pre>
|
<pre>
|
||||||
<span class="ruby-comment cmt"># File lib/controllers/selenium_controller.rb, line 34</span>
|
<span class="ruby-comment cmt"># File lib/controllers/selenium_controller.rb, line 34</span>
|
||||||
34: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">support_file</span>
|
34: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">support_file</span>
|
||||||
35: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">params</span>[<span class="ruby-identifier">:filename</span>].<span class="ruby-identifier">empty?</span>
|
35: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">params</span>[<span class="ruby-identifier">:filename</span>].<span class="ruby-identifier">empty?</span>
|
||||||
36: <span class="ruby-identifier">redirect_to</span> <span class="ruby-identifier">:filename</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'TestRunner.html'</span>, <span class="ruby-identifier">:test</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'tests'</span>
|
36: <span class="ruby-identifier">redirect_to</span> <span class="ruby-identifier">:filename</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'TestRunner.html'</span>, <span class="ruby-identifier">:test</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'tests'</span>
|
||||||
37: <span class="ruby-keyword kw">return</span>
|
37: <span class="ruby-keyword kw">return</span>
|
||||||
38: <span class="ruby-keyword kw">end</span>
|
38: <span class="ruby-keyword kw">end</span>
|
||||||
39:
|
39:
|
||||||
40: <span class="ruby-identifier">filename</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span> <span class="ruby-identifier">selenium_path</span>, <span class="ruby-identifier">params</span>[<span class="ruby-identifier">:filename</span>]
|
40: <span class="ruby-identifier">filename</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span> <span class="ruby-identifier">selenium_path</span>, <span class="ruby-identifier">params</span>[<span class="ruby-identifier">:filename</span>]
|
||||||
41: <span class="ruby-keyword kw">if</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">file?</span> <span class="ruby-identifier">filename</span>
|
41: <span class="ruby-keyword kw">if</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">file?</span> <span class="ruby-identifier">filename</span>
|
||||||
42: <span class="ruby-identifier">type</span> = <span class="ruby-constant">WEBrick</span><span class="ruby-operator">::</span><span class="ruby-constant">HTTPUtils</span><span class="ruby-operator">::</span><span class="ruby-constant">DefaultMimeTypes</span>[<span class="ruby-identifier">$1</span>.<span class="ruby-identifier">downcase</span>] <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">filename</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp re">/\.(\w+)$/</span>
|
42: <span class="ruby-identifier">type</span> = <span class="ruby-constant">WEBrick</span><span class="ruby-operator">::</span><span class="ruby-constant">HTTPUtils</span><span class="ruby-operator">::</span><span class="ruby-constant">DefaultMimeTypes</span>[<span class="ruby-identifier">$1</span>.<span class="ruby-identifier">downcase</span>] <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">filename</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp re">/\.(\w+)$/</span>
|
||||||
43: <span class="ruby-identifier">type</span> <span class="ruby-operator">||=</span> <span class="ruby-value str">'text/html'</span>
|
43: <span class="ruby-identifier">type</span> <span class="ruby-operator">||=</span> <span class="ruby-value str">'text/html'</span>
|
||||||
44: <span class="ruby-identifier">send_file</span> <span class="ruby-identifier">filename</span>, <span class="ruby-identifier">:type</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">type</span>, <span class="ruby-identifier">:disposition</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'inline'</span>, <span class="ruby-identifier">:stream</span> =<span class="ruby-operator">></span> <span class="ruby-keyword kw">false</span>
|
44: <span class="ruby-identifier">send_file</span> <span class="ruby-identifier">filename</span>, <span class="ruby-identifier">:type</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">type</span>, <span class="ruby-identifier">:disposition</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'inline'</span>, <span class="ruby-identifier">:stream</span> =<span class="ruby-operator">></span> <span class="ruby-keyword kw">false</span>
|
||||||
45: <span class="ruby-keyword kw">else</span>
|
45: <span class="ruby-keyword kw">else</span>
|
||||||
46: <span class="ruby-identifier">render</span> <span class="ruby-identifier">:text</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'Not found'</span>, <span class="ruby-identifier">:status</span> =<span class="ruby-operator">></span> <span class="ruby-value">404</span>
|
46: <span class="ruby-identifier">render</span> <span class="ruby-identifier">:text</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'Not found'</span>, <span class="ruby-identifier">:status</span> =<span class="ruby-operator">></span> <span class="ruby-value">404</span>
|
||||||
47: <span class="ruby-keyword kw">end</span>
|
47: <span class="ruby-keyword kw">end</span>
|
||||||
48: <span class="ruby-keyword kw">end</span>
|
48: <span class="ruby-keyword kw">end</span>
|
||||||
</pre>
|
</pre>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="method-M000004" class="method-detail">
|
<div id="method-M000004" class="method-detail">
|
||||||
<a name="M000004"></a>
|
<a name="M000004"></a>
|
||||||
|
|
||||||
<div class="method-heading">
|
<div class="method-heading">
|
||||||
<a href="#M000004" class="method-signature">
|
<a href="#M000004" class="method-signature">
|
||||||
<span class="method-name">test_file</span><span class="method-args">()</span>
|
<span class="method-name">test_file</span><span class="method-args">()</span>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="method-description">
|
<div class="method-description">
|
||||||
<p><a class="source-toggle" href="#"
|
<p><a class="source-toggle" href="#"
|
||||||
onclick="toggleCode('M000004-source');return false;">[Source]</a></p>
|
onclick="toggleCode('M000004-source');return false;">[Source]</a></p>
|
||||||
<div class="method-source-code" id="M000004-source">
|
<div class="method-source-code" id="M000004-source">
|
||||||
<pre>
|
<pre>
|
||||||
<span class="ruby-comment cmt"># File lib/controllers/selenium_controller.rb, line 17</span>
|
<span class="ruby-comment cmt"># File lib/controllers/selenium_controller.rb, line 17</span>
|
||||||
17: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">test_file</span>
|
17: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">test_file</span>
|
||||||
18: <span class="ruby-identifier">params</span>[<span class="ruby-identifier">:testname</span>] = <span class="ruby-value str">''</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">params</span>[<span class="ruby-identifier">:testname</span>].<span class="ruby-identifier">to_s</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'TestSuite.html'</span>
|
18: <span class="ruby-identifier">params</span>[<span class="ruby-identifier">:testname</span>] = <span class="ruby-value str">''</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">params</span>[<span class="ruby-identifier">:testname</span>].<span class="ruby-identifier">to_s</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'TestSuite.html'</span>
|
||||||
19: <span class="ruby-identifier">filename</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span> <span class="ruby-identifier">selenium_tests_path</span>, <span class="ruby-identifier">params</span>[<span class="ruby-identifier">:testname</span>]
|
19: <span class="ruby-identifier">filename</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span> <span class="ruby-identifier">selenium_tests_path</span>, <span class="ruby-identifier">params</span>[<span class="ruby-identifier">:testname</span>]
|
||||||
20: <span class="ruby-keyword kw">if</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">directory?</span> <span class="ruby-identifier">filename</span>
|
20: <span class="ruby-keyword kw">if</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">directory?</span> <span class="ruby-identifier">filename</span>
|
||||||
21: <span class="ruby-ivar">@suite_path</span> = <span class="ruby-identifier">filename</span>
|
21: <span class="ruby-ivar">@suite_path</span> = <span class="ruby-identifier">filename</span>
|
||||||
22: <span class="ruby-identifier">render</span> <span class="ruby-identifier">:file</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">view_path</span>(<span class="ruby-value str">'test_suite.rhtml'</span>), <span class="ruby-identifier">:layout</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">layout_path</span>
|
22: <span class="ruby-identifier">render</span> <span class="ruby-identifier">:file</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">view_path</span>(<span class="ruby-value str">'test_suite.rhtml'</span>), <span class="ruby-identifier">:layout</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">layout_path</span>
|
||||||
23: <span class="ruby-keyword kw">elsif</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">readable?</span> <span class="ruby-identifier">filename</span>
|
23: <span class="ruby-keyword kw">elsif</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">readable?</span> <span class="ruby-identifier">filename</span>
|
||||||
24: <span class="ruby-identifier">render_test_case</span> <span class="ruby-identifier">filename</span>
|
24: <span class="ruby-identifier">render_test_case</span> <span class="ruby-identifier">filename</span>
|
||||||
25: <span class="ruby-keyword kw">else</span>
|
25: <span class="ruby-keyword kw">else</span>
|
||||||
26: <span class="ruby-keyword kw">if</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">directory?</span> <span class="ruby-identifier">selenium_tests_path</span>
|
26: <span class="ruby-keyword kw">if</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">directory?</span> <span class="ruby-identifier">selenium_tests_path</span>
|
||||||
27: <span class="ruby-identifier">render</span> <span class="ruby-identifier">:text</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'Not found'</span>, <span class="ruby-identifier">:status</span> =<span class="ruby-operator">></span> <span class="ruby-value">404</span>
|
27: <span class="ruby-identifier">render</span> <span class="ruby-identifier">:text</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'Not found'</span>, <span class="ruby-identifier">:status</span> =<span class="ruby-operator">></span> <span class="ruby-value">404</span>
|
||||||
28: <span class="ruby-keyword kw">else</span>
|
28: <span class="ruby-keyword kw">else</span>
|
||||||
29: <span class="ruby-identifier">render</span> <span class="ruby-identifier">:text</span> =<span class="ruby-operator">></span> <span class="ruby-node">"Did not find the Selenium tests path (#{selenium_tests_path}). Run script/generate selenium"</span>, <span class="ruby-identifier">:status</span> =<span class="ruby-operator">></span> <span class="ruby-value">404</span>
|
29: <span class="ruby-identifier">render</span> <span class="ruby-identifier">:text</span> =<span class="ruby-operator">></span> <span class="ruby-node">"Did not find the Selenium tests path (#{selenium_tests_path}). Run script/generate selenium"</span>, <span class="ruby-identifier">:status</span> =<span class="ruby-operator">></span> <span class="ruby-value">404</span>
|
||||||
30: <span class="ruby-keyword kw">end</span>
|
30: <span class="ruby-keyword kw">end</span>
|
||||||
31: <span class="ruby-keyword kw">end</span>
|
31: <span class="ruby-keyword kw">end</span>
|
||||||
32: <span class="ruby-keyword kw">end</span>
|
32: <span class="ruby-keyword kw">end</span>
|
||||||
</pre>
|
</pre>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div id="validator-badges">
|
<div id="validator-badges">
|
||||||
<p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
|
<p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
@ -1,148 +1,148 @@
|
||||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||||
<!DOCTYPE html
|
<!DOCTYPE html
|
||||||
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
||||||
<head>
|
<head>
|
||||||
<title>Module: SeleniumHelper</title>
|
<title>Module: SeleniumHelper</title>
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
||||||
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
||||||
<link rel="stylesheet" href=".././rdoc-style.css" type="text/css" media="screen" />
|
<link rel="stylesheet" href=".././rdoc-style.css" type="text/css" media="screen" />
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
// <![CDATA[
|
// <![CDATA[
|
||||||
|
|
||||||
function popupCode( url ) {
|
function popupCode( url ) {
|
||||||
window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
|
window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
|
||||||
}
|
}
|
||||||
|
|
||||||
function toggleCode( id ) {
|
function toggleCode( id ) {
|
||||||
if ( document.getElementById )
|
if ( document.getElementById )
|
||||||
elem = document.getElementById( id );
|
elem = document.getElementById( id );
|
||||||
else if ( document.all )
|
else if ( document.all )
|
||||||
elem = eval( "document.all." + id );
|
elem = eval( "document.all." + id );
|
||||||
else
|
else
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
elemStyle = elem.style;
|
elemStyle = elem.style;
|
||||||
|
|
||||||
if ( elemStyle.display != "block" ) {
|
if ( elemStyle.display != "block" ) {
|
||||||
elemStyle.display = "block"
|
elemStyle.display = "block"
|
||||||
} else {
|
} else {
|
||||||
elemStyle.display = "none"
|
elemStyle.display = "none"
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Make codeblocks hidden by default
|
// Make codeblocks hidden by default
|
||||||
document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
|
document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
|
||||||
|
|
||||||
// ]]>
|
// ]]>
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div id="classHeader">
|
<div id="classHeader">
|
||||||
<table class="header-table">
|
<table class="header-table">
|
||||||
<tr class="top-aligned-row">
|
<tr class="top-aligned-row">
|
||||||
<td><strong>Module</strong></td>
|
<td><strong>Module</strong></td>
|
||||||
<td class="class-name-in-header">SeleniumHelper</td>
|
<td class="class-name-in-header">SeleniumHelper</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="top-aligned-row">
|
<tr class="top-aligned-row">
|
||||||
<td><strong>In:</strong></td>
|
<td><strong>In:</strong></td>
|
||||||
<td>
|
<td>
|
||||||
<a href="../files/lib/selenium_helper_rb.html">
|
<a href="../files/lib/selenium_helper_rb.html">
|
||||||
lib/selenium_helper.rb
|
lib/selenium_helper.rb
|
||||||
</a>
|
</a>
|
||||||
<br />
|
<br />
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
<!-- banner header -->
|
<!-- banner header -->
|
||||||
|
|
||||||
<div id="bodyContent">
|
<div id="bodyContent">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div id="contextContent">
|
<div id="contextContent">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="method-list">
|
<div id="method-list">
|
||||||
<h3 class="section-bar">Methods</h3>
|
<h3 class="section-bar">Methods</h3>
|
||||||
|
|
||||||
<div class="name-list">
|
<div class="name-list">
|
||||||
<a href="#M000008">test_case_name</a>
|
<a href="#M000008">test_case_name</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<!-- if includes -->
|
<!-- if includes -->
|
||||||
<div id="includes">
|
<div id="includes">
|
||||||
<h3 class="section-bar">Included Modules</h3>
|
<h3 class="section-bar">Included Modules</h3>
|
||||||
|
|
||||||
<div id="includes-list">
|
<div id="includes-list">
|
||||||
<span class="include-name"><a href="SeleniumOnRails/SuiteRenderer.html">SeleniumOnRails::SuiteRenderer</a></span>
|
<span class="include-name"><a href="SeleniumOnRails/SuiteRenderer.html">SeleniumOnRails::SuiteRenderer</a></span>
|
||||||
<span class="include-name"><a href="SeleniumOnRails/FixtureLoader.html">SeleniumOnRails::FixtureLoader</a></span>
|
<span class="include-name"><a href="SeleniumOnRails/FixtureLoader.html">SeleniumOnRails::FixtureLoader</a></span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="section">
|
<div id="section">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<!-- if method_list -->
|
<!-- if method_list -->
|
||||||
<div id="methods">
|
<div id="methods">
|
||||||
<h3 class="section-bar">Public Instance methods</h3>
|
<h3 class="section-bar">Public Instance methods</h3>
|
||||||
|
|
||||||
<div id="method-M000008" class="method-detail">
|
<div id="method-M000008" class="method-detail">
|
||||||
<a name="M000008"></a>
|
<a name="M000008"></a>
|
||||||
|
|
||||||
<div class="method-heading">
|
<div class="method-heading">
|
||||||
<a href="#M000008" class="method-signature">
|
<a href="#M000008" class="method-signature">
|
||||||
<span class="method-name">test_case_name</span><span class="method-args">(filename)</span>
|
<span class="method-name">test_case_name</span><span class="method-args">(filename)</span>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="method-description">
|
<div class="method-description">
|
||||||
<p><a class="source-toggle" href="#"
|
<p><a class="source-toggle" href="#"
|
||||||
onclick="toggleCode('M000008-source');return false;">[Source]</a></p>
|
onclick="toggleCode('M000008-source');return false;">[Source]</a></p>
|
||||||
<div class="method-source-code" id="M000008-source">
|
<div class="method-source-code" id="M000008-source">
|
||||||
<pre>
|
<pre>
|
||||||
<span class="ruby-comment cmt"># File lib/selenium_helper.rb, line 5</span>
|
<span class="ruby-comment cmt"># File lib/selenium_helper.rb, line 5</span>
|
||||||
5: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">test_case_name</span> <span class="ruby-identifier">filename</span>
|
5: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">test_case_name</span> <span class="ruby-identifier">filename</span>
|
||||||
6: <span class="ruby-constant">File</span>.<span class="ruby-identifier">basename</span>(<span class="ruby-identifier">filename</span>).<span class="ruby-identifier">sub</span>(<span class="ruby-regexp re">/\..*/</span>,<span class="ruby-value str">''</span>).<span class="ruby-identifier">humanize</span>
|
6: <span class="ruby-constant">File</span>.<span class="ruby-identifier">basename</span>(<span class="ruby-identifier">filename</span>).<span class="ruby-identifier">sub</span>(<span class="ruby-regexp re">/\..*/</span>,<span class="ruby-value str">''</span>).<span class="ruby-identifier">humanize</span>
|
||||||
7: <span class="ruby-keyword kw">end</span>
|
7: <span class="ruby-keyword kw">end</span>
|
||||||
</pre>
|
</pre>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div id="validator-badges">
|
<div id="validator-badges">
|
||||||
<p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
|
<p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
@ -1,124 +1,126 @@
|
||||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||||
<!DOCTYPE html
|
<!DOCTYPE html
|
||||||
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
||||||
<head>
|
<head>
|
||||||
<title>Module: SeleniumOnRails</title>
|
<title>Module: SeleniumOnRails</title>
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
||||||
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
||||||
<link rel="stylesheet" href=".././rdoc-style.css" type="text/css" media="screen" />
|
<link rel="stylesheet" href=".././rdoc-style.css" type="text/css" media="screen" />
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
// <![CDATA[
|
// <![CDATA[
|
||||||
|
|
||||||
function popupCode( url ) {
|
function popupCode( url ) {
|
||||||
window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
|
window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
|
||||||
}
|
}
|
||||||
|
|
||||||
function toggleCode( id ) {
|
function toggleCode( id ) {
|
||||||
if ( document.getElementById )
|
if ( document.getElementById )
|
||||||
elem = document.getElementById( id );
|
elem = document.getElementById( id );
|
||||||
else if ( document.all )
|
else if ( document.all )
|
||||||
elem = eval( "document.all." + id );
|
elem = eval( "document.all." + id );
|
||||||
else
|
else
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
elemStyle = elem.style;
|
elemStyle = elem.style;
|
||||||
|
|
||||||
if ( elemStyle.display != "block" ) {
|
if ( elemStyle.display != "block" ) {
|
||||||
elemStyle.display = "block"
|
elemStyle.display = "block"
|
||||||
} else {
|
} else {
|
||||||
elemStyle.display = "none"
|
elemStyle.display = "none"
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Make codeblocks hidden by default
|
// Make codeblocks hidden by default
|
||||||
document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
|
document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
|
||||||
|
|
||||||
// ]]>
|
// ]]>
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div id="classHeader">
|
<div id="classHeader">
|
||||||
<table class="header-table">
|
<table class="header-table">
|
||||||
<tr class="top-aligned-row">
|
<tr class="top-aligned-row">
|
||||||
<td><strong>Module</strong></td>
|
<td><strong>Module</strong></td>
|
||||||
<td class="class-name-in-header">SeleniumOnRails</td>
|
<td class="class-name-in-header">SeleniumOnRails</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="top-aligned-row">
|
<tr class="top-aligned-row">
|
||||||
<td><strong>In:</strong></td>
|
<td><strong>In:</strong></td>
|
||||||
<td>
|
<td>
|
||||||
<a href="../files/lib/selenium_on_rails/paths_rb.html">
|
<a href="../files/lib/selenium_on_rails/paths_rb.html">
|
||||||
lib/selenium_on_rails/paths.rb
|
lib/selenium_on_rails/paths.rb
|
||||||
</a>
|
</a>
|
||||||
<br />
|
<br />
|
||||||
<a href="../files/lib/selenium_on_rails_rb.html">
|
<a href="../files/lib/selenium_on_rails_rb.html">
|
||||||
lib/selenium_on_rails.rb
|
lib/selenium_on_rails.rb
|
||||||
</a>
|
</a>
|
||||||
<br />
|
<br />
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
<!-- banner header -->
|
<!-- banner header -->
|
||||||
|
|
||||||
<div id="bodyContent">
|
<div id="bodyContent">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div id="contextContent">
|
<div id="contextContent">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<!-- if includes -->
|
<!-- if includes -->
|
||||||
|
|
||||||
<div id="section">
|
<div id="section">
|
||||||
|
|
||||||
<div id="class-list">
|
<div id="class-list">
|
||||||
<h3 class="section-bar">Classes and Modules</h3>
|
<h3 class="section-bar">Classes and Modules</h3>
|
||||||
|
|
||||||
Module <a href="SeleniumOnRails/FixtureLoader.html" class="link">SeleniumOnRails::FixtureLoader</a><br />
|
Module <a href="SeleniumOnRails/FixtureLoader.html" class="link">SeleniumOnRails::FixtureLoader</a><br />
|
||||||
Module <a href="SeleniumOnRails/PartialsSupport.html" class="link">SeleniumOnRails::PartialsSupport</a><br />
|
Module <a href="SeleniumOnRails/PartialsSupport.html" class="link">SeleniumOnRails::PartialsSupport</a><br />
|
||||||
Module <a href="SeleniumOnRails/Paths.html" class="link">SeleniumOnRails::Paths</a><br />
|
Module <a href="SeleniumOnRails/Paths.html" class="link">SeleniumOnRails::Paths</a><br />
|
||||||
Module <a href="SeleniumOnRails/Renderer.html" class="link">SeleniumOnRails::Renderer</a><br />
|
Module <a href="SeleniumOnRails/Renderer.html" class="link">SeleniumOnRails::Renderer</a><br />
|
||||||
Module <a href="SeleniumOnRails/SuiteRenderer.html" class="link">SeleniumOnRails::SuiteRenderer</a><br />
|
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/TestBuilderAccessors.html" class="link">SeleniumOnRails::TestBuilderAccessors</a><br />
|
||||||
Module <a href="SeleniumOnRails/TestBuilderActions.html" class="link">SeleniumOnRails::TestBuilderActions</a><br />
|
Module <a href="SeleniumOnRails/TestBuilderActions.html" class="link">SeleniumOnRails::TestBuilderActions</a><br />
|
||||||
Class <a href="SeleniumOnRails/RSelenese.html" class="link">SeleniumOnRails::RSelenese</a><br />
|
Module <a href="SeleniumOnRails/TestBuilderUserAccessors.html" class="link">SeleniumOnRails::TestBuilderUserAccessors</a><br />
|
||||||
Class <a href="SeleniumOnRails/Selenese.html" class="link">SeleniumOnRails::Selenese</a><br />
|
Module <a href="SeleniumOnRails/TestBuilderUserActions.html" class="link">SeleniumOnRails::TestBuilderUserActions</a><br />
|
||||||
Class <a href="SeleniumOnRails/TestBuilder.html" class="link">SeleniumOnRails::TestBuilder</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 />
|
||||||
</div>
|
Class <a href="SeleniumOnRails/TestBuilder.html" class="link">SeleniumOnRails::TestBuilder</a><br />
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<!-- if method_list -->
|
|
||||||
|
|
||||||
|
<!-- if method_list -->
|
||||||
</div>
|
|
||||||
|
|
||||||
|
</div>
|
||||||
<div id="validator-badges">
|
|
||||||
<p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
|
|
||||||
</div>
|
<div id="validator-badges">
|
||||||
|
<p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
|
||||||
</body>
|
</div>
|
||||||
|
|
||||||
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
@ -1,231 +1,231 @@
|
||||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||||
<!DOCTYPE html
|
<!DOCTYPE html
|
||||||
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
||||||
<head>
|
<head>
|
||||||
<title>Module: SeleniumOnRails::FixtureLoader</title>
|
<title>Module: SeleniumOnRails::FixtureLoader</title>
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
||||||
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
||||||
<link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
|
<link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
// <![CDATA[
|
// <![CDATA[
|
||||||
|
|
||||||
function popupCode( url ) {
|
function popupCode( url ) {
|
||||||
window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
|
window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
|
||||||
}
|
}
|
||||||
|
|
||||||
function toggleCode( id ) {
|
function toggleCode( id ) {
|
||||||
if ( document.getElementById )
|
if ( document.getElementById )
|
||||||
elem = document.getElementById( id );
|
elem = document.getElementById( id );
|
||||||
else if ( document.all )
|
else if ( document.all )
|
||||||
elem = eval( "document.all." + id );
|
elem = eval( "document.all." + id );
|
||||||
else
|
else
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
elemStyle = elem.style;
|
elemStyle = elem.style;
|
||||||
|
|
||||||
if ( elemStyle.display != "block" ) {
|
if ( elemStyle.display != "block" ) {
|
||||||
elemStyle.display = "block"
|
elemStyle.display = "block"
|
||||||
} else {
|
} else {
|
||||||
elemStyle.display = "none"
|
elemStyle.display = "none"
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Make codeblocks hidden by default
|
// Make codeblocks hidden by default
|
||||||
document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
|
document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
|
||||||
|
|
||||||
// ]]>
|
// ]]>
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div id="classHeader">
|
<div id="classHeader">
|
||||||
<table class="header-table">
|
<table class="header-table">
|
||||||
<tr class="top-aligned-row">
|
<tr class="top-aligned-row">
|
||||||
<td><strong>Module</strong></td>
|
<td><strong>Module</strong></td>
|
||||||
<td class="class-name-in-header">SeleniumOnRails::FixtureLoader</td>
|
<td class="class-name-in-header">SeleniumOnRails::FixtureLoader</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="top-aligned-row">
|
<tr class="top-aligned-row">
|
||||||
<td><strong>In:</strong></td>
|
<td><strong>In:</strong></td>
|
||||||
<td>
|
<td>
|
||||||
<a href="../../files/lib/selenium_on_rails/fixture_loader_rb.html">
|
<a href="../../files/lib/selenium_on_rails/fixture_loader_rb.html">
|
||||||
lib/selenium_on_rails/fixture_loader.rb
|
lib/selenium_on_rails/fixture_loader.rb
|
||||||
</a>
|
</a>
|
||||||
<br />
|
<br />
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
<!-- banner header -->
|
<!-- banner header -->
|
||||||
|
|
||||||
<div id="bodyContent">
|
<div id="bodyContent">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div id="contextContent">
|
<div id="contextContent">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="method-list">
|
<div id="method-list">
|
||||||
<h3 class="section-bar">Methods</h3>
|
<h3 class="section-bar">Methods</h3>
|
||||||
|
|
||||||
<div class="name-list">
|
<div class="name-list">
|
||||||
<a href="#M000049">available_fixtures</a>
|
<a href="#M000083">available_fixtures</a>
|
||||||
<a href="#M000051">clear_tables</a>
|
<a href="#M000085">clear_tables</a>
|
||||||
<a href="#M000050">load_fixtures</a>
|
<a href="#M000084">load_fixtures</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<!-- if includes -->
|
<!-- if includes -->
|
||||||
<div id="includes">
|
<div id="includes">
|
||||||
<h3 class="section-bar">Included Modules</h3>
|
<h3 class="section-bar">Included Modules</h3>
|
||||||
|
|
||||||
<div id="includes-list">
|
<div id="includes-list">
|
||||||
<span class="include-name"><a href="Paths.html">SeleniumOnRails::Paths</a></span>
|
<span class="include-name"><a href="Paths.html">SeleniumOnRails::Paths</a></span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="section">
|
<div id="section">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<!-- if method_list -->
|
<!-- if method_list -->
|
||||||
<div id="methods">
|
<div id="methods">
|
||||||
<h3 class="section-bar">Public Instance methods</h3>
|
<h3 class="section-bar">Public Instance methods</h3>
|
||||||
|
|
||||||
<div id="method-M000049" class="method-detail">
|
<div id="method-M000083" class="method-detail">
|
||||||
<a name="M000049"></a>
|
<a name="M000083"></a>
|
||||||
|
|
||||||
<div class="method-heading">
|
<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>
|
<span class="method-name">available_fixtures</span><span class="method-args">()</span>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="method-description">
|
<div class="method-description">
|
||||||
<p><a class="source-toggle" href="#"
|
<p><a class="source-toggle" href="#"
|
||||||
onclick="toggleCode('M000049-source');return false;">[Source]</a></p>
|
onclick="toggleCode('M000083-source');return false;">[Source]</a></p>
|
||||||
<div class="method-source-code" id="M000049-source">
|
<div class="method-source-code" id="M000083-source">
|
||||||
<pre>
|
<pre>
|
||||||
<span class="ruby-comment cmt"># File lib/selenium_on_rails/fixture_loader.rb, line 6</span>
|
<span class="ruby-comment cmt"># File lib/selenium_on_rails/fixture_loader.rb, line 7</span>
|
||||||
6: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">available_fixtures</span>
|
7: <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">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">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-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">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-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-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-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_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">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> []
|
||||||
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-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: <span class="ruby-keyword kw">end</span>
|
||||||
19:
|
20:
|
||||||
20: <span class="ruby-identifier">fixtures</span>
|
21: <span class="ruby-identifier">fixtures</span>
|
||||||
21: <span class="ruby-keyword kw">end</span>
|
22: <span class="ruby-keyword kw">end</span>
|
||||||
</pre>
|
</pre>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="method-M000051" class="method-detail">
|
<div id="method-M000085" class="method-detail">
|
||||||
<a name="M000051"></a>
|
<a name="M000085"></a>
|
||||||
|
|
||||||
<div class="method-heading">
|
<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>
|
<span class="method-name">clear_tables</span><span class="method-args">(tables)</span>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="method-description">
|
<div class="method-description">
|
||||||
<p><a class="source-toggle" href="#"
|
<p><a class="source-toggle" href="#"
|
||||||
onclick="toggleCode('M000051-source');return false;">[Source]</a></p>
|
onclick="toggleCode('M000085-source');return false;">[Source]</a></p>
|
||||||
<div class="method-source-code" id="M000051-source">
|
<div class="method-source-code" id="M000085-source">
|
||||||
<pre>
|
<pre>
|
||||||
<span class="ruby-comment cmt"># File lib/selenium_on_rails/fixture_loader.rb, line 45</span>
|
<span class="ruby-comment cmt"># File lib/selenium_on_rails/fixture_loader.rb, line 46</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-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">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">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">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-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-keyword kw">end</span>
|
||||||
51: <span class="ruby-identifier">table_names</span>
|
52: <span class="ruby-identifier">table_names</span>
|
||||||
52: <span class="ruby-keyword kw">end</span>
|
53: <span class="ruby-keyword kw">end</span>
|
||||||
</pre>
|
</pre>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="method-M000050" class="method-detail">
|
<div id="method-M000084" class="method-detail">
|
||||||
<a name="M000050"></a>
|
<a name="M000084"></a>
|
||||||
|
|
||||||
<div class="method-heading">
|
<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>
|
<span class="method-name">load_fixtures</span><span class="method-args">(fixtures_param)</span>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="method-description">
|
<div class="method-description">
|
||||||
<p><a class="source-toggle" href="#"
|
<p><a class="source-toggle" href="#"
|
||||||
onclick="toggleCode('M000050-source');return false;">[Source]</a></p>
|
onclick="toggleCode('M000084-source');return false;">[Source]</a></p>
|
||||||
<div class="method-source-code" id="M000050-source">
|
<div class="method-source-code" id="M000084-source">
|
||||||
<pre>
|
<pre>
|
||||||
<span class="ruby-comment cmt"># File lib/selenium_on_rails/fixture_loader.rb, line 23</span>
|
<span class="ruby-comment cmt"># File lib/selenium_on_rails/fixture_loader.rb, line 24</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-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">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">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-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_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-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-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-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-identifier">available</span>[<span class="ruby-identifier">fixture_set</span>]
|
||||||
32: <span class="ruby-keyword kw">else</span>
|
33: <span class="ruby-keyword kw">else</span>
|
||||||
33: <span class="ruby-identifier">f</span>
|
34: <span class="ruby-identifier">f</span>
|
||||||
34: <span class="ruby-keyword kw">end</span>
|
35: <span class="ruby-keyword kw">end</span>
|
||||||
35: <span class="ruby-keyword kw">end</span>
|
36: <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">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: <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:
|
||||||
39: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">fixtures</span>.<span class="ruby-identifier">any?</span>
|
40: <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-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-keyword kw">end</span>
|
||||||
42: <span class="ruby-identifier">fixtures</span>
|
43: <span class="ruby-identifier">fixtures</span>
|
||||||
43: <span class="ruby-keyword kw">end</span>
|
44: <span class="ruby-keyword kw">end</span>
|
||||||
</pre>
|
</pre>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div id="validator-badges">
|
<div id="validator-badges">
|
||||||
<p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
|
<p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
@ -1,195 +1,195 @@
|
||||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||||
<!DOCTYPE html
|
<!DOCTYPE html
|
||||||
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
||||||
<head>
|
<head>
|
||||||
<title>Module: SeleniumOnRails::PartialsSupport</title>
|
<title>Module: SeleniumOnRails::PartialsSupport</title>
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
||||||
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
||||||
<link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
|
<link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
// <![CDATA[
|
// <![CDATA[
|
||||||
|
|
||||||
function popupCode( url ) {
|
function popupCode( url ) {
|
||||||
window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
|
window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
|
||||||
}
|
}
|
||||||
|
|
||||||
function toggleCode( id ) {
|
function toggleCode( id ) {
|
||||||
if ( document.getElementById )
|
if ( document.getElementById )
|
||||||
elem = document.getElementById( id );
|
elem = document.getElementById( id );
|
||||||
else if ( document.all )
|
else if ( document.all )
|
||||||
elem = eval( "document.all." + id );
|
elem = eval( "document.all." + id );
|
||||||
else
|
else
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
elemStyle = elem.style;
|
elemStyle = elem.style;
|
||||||
|
|
||||||
if ( elemStyle.display != "block" ) {
|
if ( elemStyle.display != "block" ) {
|
||||||
elemStyle.display = "block"
|
elemStyle.display = "block"
|
||||||
} else {
|
} else {
|
||||||
elemStyle.display = "none"
|
elemStyle.display = "none"
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Make codeblocks hidden by default
|
// Make codeblocks hidden by default
|
||||||
document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
|
document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
|
||||||
|
|
||||||
// ]]>
|
// ]]>
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div id="classHeader">
|
<div id="classHeader">
|
||||||
<table class="header-table">
|
<table class="header-table">
|
||||||
<tr class="top-aligned-row">
|
<tr class="top-aligned-row">
|
||||||
<td><strong>Module</strong></td>
|
<td><strong>Module</strong></td>
|
||||||
<td class="class-name-in-header">SeleniumOnRails::PartialsSupport</td>
|
<td class="class-name-in-header">SeleniumOnRails::PartialsSupport</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="top-aligned-row">
|
<tr class="top-aligned-row">
|
||||||
<td><strong>In:</strong></td>
|
<td><strong>In:</strong></td>
|
||||||
<td>
|
<td>
|
||||||
<a href="../../files/lib/selenium_on_rails/partials_support_rb.html">
|
<a href="../../files/lib/selenium_on_rails/partials_support_rb.html">
|
||||||
lib/selenium_on_rails/partials_support.rb
|
lib/selenium_on_rails/partials_support.rb
|
||||||
</a>
|
</a>
|
||||||
<br />
|
<br />
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
<!-- banner header -->
|
<!-- banner header -->
|
||||||
|
|
||||||
<div id="bodyContent">
|
<div id="bodyContent">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div id="contextContent">
|
<div id="contextContent">
|
||||||
|
|
||||||
<div id="description">
|
<div id="description">
|
||||||
<p>
|
<p>
|
||||||
Provides partials support to test cases so they can include other partial
|
Provides partials support to test cases so they can include other partial
|
||||||
test cases.
|
test cases.
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
The partial’s commands are returned as html table rows.
|
The partial‘s commands are returned as html table rows.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="method-list">
|
<div id="method-list">
|
||||||
<h3 class="section-bar">Methods</h3>
|
<h3 class="section-bar">Methods</h3>
|
||||||
|
|
||||||
<div class="name-list">
|
<div class="name-list">
|
||||||
<a href="#M000081">extract_commands_from_partial</a>
|
<a href="#M000142">extract_commands_from_partial</a>
|
||||||
<a href="#M000080">render_partial</a>
|
<a href="#M000141">render_partial</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<!-- if includes -->
|
<!-- if includes -->
|
||||||
<div id="includes">
|
<div id="includes">
|
||||||
<h3 class="section-bar">Included Modules</h3>
|
<h3 class="section-bar">Included Modules</h3>
|
||||||
|
|
||||||
<div id="includes-list">
|
<div id="includes-list">
|
||||||
<span class="include-name"><a href="Paths.html">SeleniumOnRails::Paths</a></span>
|
<span class="include-name"><a href="Paths.html">SeleniumOnRails::Paths</a></span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="section">
|
<div id="section">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<!-- if method_list -->
|
<!-- if method_list -->
|
||||||
<div id="methods">
|
<div id="methods">
|
||||||
<h3 class="section-bar">Public Instance methods</h3>
|
<h3 class="section-bar">Public Instance methods</h3>
|
||||||
|
|
||||||
<div id="method-M000081" class="method-detail">
|
<div id="method-M000142" class="method-detail">
|
||||||
<a name="M000081"></a>
|
<a name="M000142"></a>
|
||||||
|
|
||||||
<div class="method-heading">
|
<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>
|
<span class="method-name">extract_commands_from_partial</span><span class="method-args">(partial)</span>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="method-description">
|
<div class="method-description">
|
||||||
<p>
|
<p>
|
||||||
Extracts the commands from a partial. The partial must contain a html table
|
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.
|
and the first row is ignored since it cannot contain a command.
|
||||||
</p>
|
</p>
|
||||||
<p><a class="source-toggle" href="#"
|
<p><a class="source-toggle" href="#"
|
||||||
onclick="toggleCode('M000081-source');return false;">[Source]</a></p>
|
onclick="toggleCode('M000142-source');return false;">[Source]</a></p>
|
||||||
<div class="method-source-code" id="M000081-source">
|
<div class="method-source-code" id="M000142-source">
|
||||||
<pre>
|
<pre>
|
||||||
<span class="ruby-comment cmt"># File lib/selenium_on_rails/partials_support.rb, line 19</span>
|
<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>
|
19: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">extract_commands_from_partial</span> <span class="ruby-identifier">partial</span>
|
||||||
20: <span class="ruby-identifier">partial</span> = <span class="ruby-identifier">partial</span>.<span class="ruby-identifier">match</span>(<span class="ruby-regexp re">/.*<table>.*?<tr>.*?<\/tr>(.*?)<\/table>/i</span><span class="ruby-identifier">m</span>)[<span class="ruby-value">1</span>]
|
20: <span class="ruby-identifier">partial</span> = <span class="ruby-identifier">partial</span>.<span class="ruby-identifier">match</span>(<span class="ruby-regexp re">/.*<table>.*?<tr>.*?<\/tr>(.*?)<\/table>/i</span><span class="ruby-identifier">m</span>)[<span class="ruby-value">1</span>]
|
||||||
21: <span class="ruby-identifier">raise</span> <span class="ruby-node">"Partial '#{name}' doesn't contain any table"</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">partial</span>
|
21: <span class="ruby-identifier">raise</span> <span class="ruby-node">"Partial '#{name}' doesn't contain any table"</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">partial</span>
|
||||||
22: <span class="ruby-identifier">partial</span>
|
22: <span class="ruby-identifier">partial</span>
|
||||||
23: <span class="ruby-keyword kw">end</span>
|
23: <span class="ruby-keyword kw">end</span>
|
||||||
</pre>
|
</pre>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="method-M000080" class="method-detail">
|
<div id="method-M000141" class="method-detail">
|
||||||
<a name="M000080"></a>
|
<a name="M000141"></a>
|
||||||
|
|
||||||
<div class="method-heading">
|
<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>
|
<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>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="method-description">
|
<div class="method-description">
|
||||||
<p>
|
<p>
|
||||||
Overrides where the partial is searched for, and returns only the command
|
Overrides where the partial is searched for, and returns only the command
|
||||||
table rows.
|
table rows.
|
||||||
</p>
|
</p>
|
||||||
<p><a class="source-toggle" href="#"
|
<p><a class="source-toggle" href="#"
|
||||||
onclick="toggleCode('M000080-source');return false;">[Source]</a></p>
|
onclick="toggleCode('M000141-source');return false;">[Source]</a></p>
|
||||||
<div class="method-source-code" id="M000080-source">
|
<div class="method-source-code" id="M000141-source">
|
||||||
<pre>
|
<pre>
|
||||||
<span class="ruby-comment cmt"># File lib/selenium_on_rails/partials_support.rb, line 9</span>
|
<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>
|
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>
|
||||||
10: <span class="ruby-identifier">pattern</span> = <span class="ruby-identifier">partial_pattern</span> <span class="ruby-identifier">partial_path</span>
|
10: <span class="ruby-identifier">pattern</span> = <span class="ruby-identifier">partial_pattern</span> <span class="ruby-identifier">partial_path</span>
|
||||||
11: <span class="ruby-identifier">filename</span> = <span class="ruby-constant">Dir</span>[<span class="ruby-identifier">pattern</span>].<span class="ruby-identifier">first</span>
|
11: <span class="ruby-identifier">filename</span> = <span class="ruby-constant">Dir</span>[<span class="ruby-identifier">pattern</span>].<span class="ruby-identifier">first</span>
|
||||||
12: <span class="ruby-identifier">raise</span> <span class="ruby-node">"Partial '#{partial_path}' cannot be found! (Looking for file: '#{pattern}')"</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">filename</span>
|
12: <span class="ruby-identifier">raise</span> <span class="ruby-node">"Partial '#{partial_path}' cannot be found! (Looking for file: '#{pattern}')"</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">filename</span>
|
||||||
13: <span class="ruby-identifier">partial</span> = <span class="ruby-identifier">render</span> <span class="ruby-identifier">:file</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">filename</span>, <span class="ruby-identifier">:use_full_path</span> =<span class="ruby-operator">></span> <span class="ruby-keyword kw">false</span>, <span class="ruby-identifier">:locals</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">local_assigns</span>
|
13: <span class="ruby-identifier">partial</span> = <span class="ruby-identifier">render</span> <span class="ruby-identifier">:file</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">filename</span>, <span class="ruby-identifier">:use_full_path</span> =<span class="ruby-operator">></span> <span class="ruby-keyword kw">false</span>, <span class="ruby-identifier">:locals</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">local_assigns</span>
|
||||||
14: <span class="ruby-identifier">extract_commands_from_partial</span> <span class="ruby-identifier">partial</span>
|
14: <span class="ruby-identifier">extract_commands_from_partial</span> <span class="ruby-identifier">partial</span>
|
||||||
15: <span class="ruby-keyword kw">end</span>
|
15: <span class="ruby-keyword kw">end</span>
|
||||||
</pre>
|
</pre>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div id="validator-badges">
|
<div id="validator-badges">
|
||||||
<p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
|
<p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
@ -1,295 +1,295 @@
|
||||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||||
<!DOCTYPE html
|
<!DOCTYPE html
|
||||||
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
||||||
<head>
|
<head>
|
||||||
<title>Module: SeleniumOnRails::Paths</title>
|
<title>Module: SeleniumOnRails::Paths</title>
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
||||||
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
||||||
<link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
|
<link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
// <![CDATA[
|
// <![CDATA[
|
||||||
|
|
||||||
function popupCode( url ) {
|
function popupCode( url ) {
|
||||||
window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
|
window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
|
||||||
}
|
}
|
||||||
|
|
||||||
function toggleCode( id ) {
|
function toggleCode( id ) {
|
||||||
if ( document.getElementById )
|
if ( document.getElementById )
|
||||||
elem = document.getElementById( id );
|
elem = document.getElementById( id );
|
||||||
else if ( document.all )
|
else if ( document.all )
|
||||||
elem = eval( "document.all." + id );
|
elem = eval( "document.all." + id );
|
||||||
else
|
else
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
elemStyle = elem.style;
|
elemStyle = elem.style;
|
||||||
|
|
||||||
if ( elemStyle.display != "block" ) {
|
if ( elemStyle.display != "block" ) {
|
||||||
elemStyle.display = "block"
|
elemStyle.display = "block"
|
||||||
} else {
|
} else {
|
||||||
elemStyle.display = "none"
|
elemStyle.display = "none"
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Make codeblocks hidden by default
|
// Make codeblocks hidden by default
|
||||||
document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
|
document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
|
||||||
|
|
||||||
// ]]>
|
// ]]>
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div id="classHeader">
|
<div id="classHeader">
|
||||||
<table class="header-table">
|
<table class="header-table">
|
||||||
<tr class="top-aligned-row">
|
<tr class="top-aligned-row">
|
||||||
<td><strong>Module</strong></td>
|
<td><strong>Module</strong></td>
|
||||||
<td class="class-name-in-header">SeleniumOnRails::Paths</td>
|
<td class="class-name-in-header">SeleniumOnRails::Paths</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="top-aligned-row">
|
<tr class="top-aligned-row">
|
||||||
<td><strong>In:</strong></td>
|
<td><strong>In:</strong></td>
|
||||||
<td>
|
<td>
|
||||||
<a href="../../files/lib/selenium_on_rails/paths_rb.html">
|
<a href="../../files/lib/selenium_on_rails/paths_rb.html">
|
||||||
lib/selenium_on_rails/paths.rb
|
lib/selenium_on_rails/paths.rb
|
||||||
</a>
|
</a>
|
||||||
<br />
|
<br />
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
<!-- banner header -->
|
<!-- banner header -->
|
||||||
|
|
||||||
<div id="bodyContent">
|
<div id="bodyContent">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div id="contextContent">
|
<div id="contextContent">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="method-list">
|
<div id="method-list">
|
||||||
<h3 class="section-bar">Methods</h3>
|
<h3 class="section-bar">Methods</h3>
|
||||||
|
|
||||||
<div class="name-list">
|
<div class="name-list">
|
||||||
<a href="#M000042">fixtures_path</a>
|
<a href="#M000076">fixtures_path</a>
|
||||||
<a href="#M000041">layout_path</a>
|
<a href="#M000075">layout_path</a>
|
||||||
<a href="#M000043">log_path</a>
|
<a href="#M000077">log_path</a>
|
||||||
<a href="#M000038">selenium_path</a>
|
<a href="#M000072">selenium_path</a>
|
||||||
<a href="#M000039">selenium_tests_path</a>
|
<a href="#M000073">selenium_tests_path</a>
|
||||||
<a href="#M000044">skip_file?</a>
|
<a href="#M000078">skip_file?</a>
|
||||||
<a href="#M000040">view_path</a>
|
<a href="#M000074">view_path</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<!-- if includes -->
|
<!-- if includes -->
|
||||||
|
|
||||||
<div id="section">
|
<div id="section">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<!-- if method_list -->
|
<!-- if method_list -->
|
||||||
<div id="methods">
|
<div id="methods">
|
||||||
<h3 class="section-bar">Public Instance methods</h3>
|
<h3 class="section-bar">Public Instance methods</h3>
|
||||||
|
|
||||||
<div id="method-M000042" class="method-detail">
|
<div id="method-M000076" class="method-detail">
|
||||||
<a name="M000042"></a>
|
<a name="M000076"></a>
|
||||||
|
|
||||||
<div class="method-heading">
|
<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>
|
<span class="method-name">fixtures_path</span><span class="method-args">()</span>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="method-description">
|
<div class="method-description">
|
||||||
<p><a class="source-toggle" href="#"
|
<p><a class="source-toggle" href="#"
|
||||||
onclick="toggleCode('M000042-source');return false;">[Source]</a></p>
|
onclick="toggleCode('M000076-source');return false;">[Source]</a></p>
|
||||||
<div class="method-source-code" id="M000042-source">
|
<div class="method-source-code" id="M000076-source">
|
||||||
<pre>
|
<pre>
|
||||||
<span class="ruby-comment cmt"># File lib/selenium_on_rails/paths.rb, line 25</span>
|
<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>
|
25: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">fixtures_path</span>
|
||||||
26: <span class="ruby-constant">File</span>.<span class="ruby-identifier">expand_path</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-constant">RAILS_ROOT</span>, <span class="ruby-value str">'test/fixtures'</span>)
|
26: <span class="ruby-constant">File</span>.<span class="ruby-identifier">expand_path</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-constant">RAILS_ROOT</span>, <span class="ruby-value str">'test/fixtures'</span>)
|
||||||
27: <span class="ruby-keyword kw">end</span>
|
27: <span class="ruby-keyword kw">end</span>
|
||||||
</pre>
|
</pre>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="method-M000041" class="method-detail">
|
<div id="method-M000075" class="method-detail">
|
||||||
<a name="M000041"></a>
|
<a name="M000075"></a>
|
||||||
|
|
||||||
<div class="method-heading">
|
<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>
|
<span class="method-name">layout_path</span><span class="method-args">()</span>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="method-description">
|
<div class="method-description">
|
||||||
<p>
|
<p>
|
||||||
Returns the path to the layout template. The path is relative in relation
|
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.
|
paths to layout templates.
|
||||||
</p>
|
</p>
|
||||||
<p><a class="source-toggle" href="#"
|
<p><a class="source-toggle" href="#"
|
||||||
onclick="toggleCode('M000041-source');return false;">[Source]</a></p>
|
onclick="toggleCode('M000075-source');return false;">[Source]</a></p>
|
||||||
<div class="method-source-code" id="M000041-source">
|
<div class="method-source-code" id="M000075-source">
|
||||||
<pre>
|
<pre>
|
||||||
<span class="ruby-comment cmt"># File lib/selenium_on_rails/paths.rb, line 19</span>
|
<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>
|
19: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">layout_path</span>
|
||||||
20: <span class="ruby-identifier">rails_root</span> = <span class="ruby-constant">Pathname</span>.<span class="ruby-identifier">new</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">expand_path</span>(<span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-constant">RAILS_ROOT</span>, <span class="ruby-value str">'app/views'</span>))
|
20: <span class="ruby-identifier">rails_root</span> = <span class="ruby-constant">Pathname</span>.<span class="ruby-identifier">new</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">expand_path</span>(<span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-constant">RAILS_ROOT</span>, <span class="ruby-value str">'app/views'</span>))
|
||||||
21: <span class="ruby-identifier">view_path</span> = <span class="ruby-constant">Pathname</span>.<span class="ruby-identifier">new</span> <span class="ruby-identifier">view_path</span>(<span class="ruby-value str">'layout'</span>)
|
21: <span class="ruby-identifier">view_path</span> = <span class="ruby-constant">Pathname</span>.<span class="ruby-identifier">new</span> <span class="ruby-identifier">view_path</span>(<span class="ruby-value str">'layout'</span>)
|
||||||
22: <span class="ruby-identifier">view_path</span>.<span class="ruby-identifier">relative_path_from</span>(<span class="ruby-identifier">rails_root</span>).<span class="ruby-identifier">to_s</span>
|
22: <span class="ruby-identifier">view_path</span>.<span class="ruby-identifier">relative_path_from</span>(<span class="ruby-identifier">rails_root</span>).<span class="ruby-identifier">to_s</span>
|
||||||
23: <span class="ruby-keyword kw">end</span>
|
23: <span class="ruby-keyword kw">end</span>
|
||||||
</pre>
|
</pre>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="method-M000043" class="method-detail">
|
<div id="method-M000077" class="method-detail">
|
||||||
<a name="M000043"></a>
|
<a name="M000077"></a>
|
||||||
|
|
||||||
<div class="method-heading">
|
<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>
|
<span class="method-name">log_path</span><span class="method-args">(log_file)</span>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="method-description">
|
<div class="method-description">
|
||||||
<p><a class="source-toggle" href="#"
|
<p><a class="source-toggle" href="#"
|
||||||
onclick="toggleCode('M000043-source');return false;">[Source]</a></p>
|
onclick="toggleCode('M000077-source');return false;">[Source]</a></p>
|
||||||
<div class="method-source-code" id="M000043-source">
|
<div class="method-source-code" id="M000077-source">
|
||||||
<pre>
|
<pre>
|
||||||
<span class="ruby-comment cmt"># File lib/selenium_on_rails/paths.rb, line 29</span>
|
<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>
|
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>
|
31: <span class="ruby-keyword kw">end</span>
|
||||||
</pre>
|
</pre>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="method-M000038" class="method-detail">
|
<div id="method-M000072" class="method-detail">
|
||||||
<a name="M000038"></a>
|
<a name="M000072"></a>
|
||||||
|
|
||||||
<div class="method-heading">
|
<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>
|
<span class="method-name">selenium_path</span><span class="method-args">()</span>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="method-description">
|
<div class="method-description">
|
||||||
<p><a class="source-toggle" href="#"
|
<p><a class="source-toggle" href="#"
|
||||||
onclick="toggleCode('M000038-source');return false;">[Source]</a></p>
|
onclick="toggleCode('M000072-source');return false;">[Source]</a></p>
|
||||||
<div class="method-source-code" id="M000038-source">
|
<div class="method-source-code" id="M000072-source">
|
||||||
<pre>
|
<pre>
|
||||||
<span class="ruby-comment cmt"># File lib/selenium_on_rails/paths.rb, line 3</span>
|
<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>
|
3: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">selenium_path</span>
|
||||||
4: <span class="ruby-ivar">@@selenium_path</span> <span class="ruby-operator">||=</span> <span class="ruby-identifier">find_selenium_path</span>
|
4: <span class="ruby-ivar">@@selenium_path</span> <span class="ruby-operator">||=</span> <span class="ruby-identifier">find_selenium_path</span>
|
||||||
5: <span class="ruby-ivar">@@selenium_path</span>
|
5: <span class="ruby-ivar">@@selenium_path</span>
|
||||||
6: <span class="ruby-keyword kw">end</span>
|
6: <span class="ruby-keyword kw">end</span>
|
||||||
</pre>
|
</pre>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="method-M000039" class="method-detail">
|
<div id="method-M000073" class="method-detail">
|
||||||
<a name="M000039"></a>
|
<a name="M000073"></a>
|
||||||
|
|
||||||
<div class="method-heading">
|
<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>
|
<span class="method-name">selenium_tests_path</span><span class="method-args">()</span>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="method-description">
|
<div class="method-description">
|
||||||
<p><a class="source-toggle" href="#"
|
<p><a class="source-toggle" href="#"
|
||||||
onclick="toggleCode('M000039-source');return false;">[Source]</a></p>
|
onclick="toggleCode('M000073-source');return false;">[Source]</a></p>
|
||||||
<div class="method-source-code" id="M000039-source">
|
<div class="method-source-code" id="M000073-source">
|
||||||
<pre>
|
<pre>
|
||||||
<span class="ruby-comment cmt"># File lib/selenium_on_rails/paths.rb, line 8</span>
|
<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>
|
8: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">selenium_tests_path</span>
|
||||||
9: <span class="ruby-constant">File</span>.<span class="ruby-identifier">expand_path</span>(<span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-constant">RAILS_ROOT</span>, <span class="ruby-value str">'test/selenium'</span>))
|
9: <span class="ruby-constant">File</span>.<span class="ruby-identifier">expand_path</span>(<span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-constant">RAILS_ROOT</span>, <span class="ruby-value str">'test/selenium'</span>))
|
||||||
10: <span class="ruby-keyword kw">end</span>
|
10: <span class="ruby-keyword kw">end</span>
|
||||||
</pre>
|
</pre>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="method-M000044" class="method-detail">
|
<div id="method-M000078" class="method-detail">
|
||||||
<a name="M000044"></a>
|
<a name="M000078"></a>
|
||||||
|
|
||||||
<div class="method-heading">
|
<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>
|
<span class="method-name">skip_file?</span><span class="method-args">(file)</span>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="method-description">
|
<div class="method-description">
|
||||||
<p><a class="source-toggle" href="#"
|
<p><a class="source-toggle" href="#"
|
||||||
onclick="toggleCode('M000044-source');return false;">[Source]</a></p>
|
onclick="toggleCode('M000078-source');return false;">[Source]</a></p>
|
||||||
<div class="method-source-code" id="M000044-source">
|
<div class="method-source-code" id="M000078-source">
|
||||||
<pre>
|
<pre>
|
||||||
<span class="ruby-comment cmt"># File lib/selenium_on_rails/paths.rb, line 33</span>
|
<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>
|
33: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">skip_file?</span> <span class="ruby-identifier">file</span>
|
||||||
34: <span class="ruby-identifier">file</span>.<span class="ruby-identifier">split</span>(<span class="ruby-value str">'/'</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">f</span><span class="ruby-operator">|</span>
|
34: <span class="ruby-identifier">file</span>.<span class="ruby-identifier">split</span>(<span class="ruby-value str">'/'</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">f</span><span class="ruby-operator">|</span>
|
||||||
35: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">true</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">f</span>.<span class="ruby-identifier">upcase</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'CVS'</span> <span class="ruby-keyword kw">or</span> <span class="ruby-identifier">f</span>.<span class="ruby-identifier">starts_with?</span>(<span class="ruby-value str">'.'</span>) <span class="ruby-keyword kw">or</span> <span class="ruby-identifier">f</span>.<span class="ruby-identifier">ends_with?</span>(<span class="ruby-value str">'~'</span>) <span class="ruby-keyword kw">or</span> <span class="ruby-identifier">f</span>.<span class="ruby-identifier">starts_with?</span>(<span class="ruby-value str">'_'</span>)
|
35: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">true</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">f</span>.<span class="ruby-identifier">upcase</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'CVS'</span> <span class="ruby-keyword kw">or</span> <span class="ruby-identifier">f</span>.<span class="ruby-identifier">starts_with?</span>(<span class="ruby-value str">'.'</span>) <span class="ruby-keyword kw">or</span> <span class="ruby-identifier">f</span>.<span class="ruby-identifier">ends_with?</span>(<span class="ruby-value str">'~'</span>) <span class="ruby-keyword kw">or</span> <span class="ruby-identifier">f</span>.<span class="ruby-identifier">starts_with?</span>(<span class="ruby-value str">'_'</span>)
|
||||||
36: <span class="ruby-keyword kw">end</span>
|
36: <span class="ruby-keyword kw">end</span>
|
||||||
37: <span class="ruby-keyword kw">false</span>
|
37: <span class="ruby-keyword kw">false</span>
|
||||||
38: <span class="ruby-keyword kw">end</span>
|
38: <span class="ruby-keyword kw">end</span>
|
||||||
</pre>
|
</pre>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="method-M000040" class="method-detail">
|
<div id="method-M000074" class="method-detail">
|
||||||
<a name="M000040"></a>
|
<a name="M000074"></a>
|
||||||
|
|
||||||
<div class="method-heading">
|
<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>
|
<span class="method-name">view_path</span><span class="method-args">(view)</span>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="method-description">
|
<div class="method-description">
|
||||||
<p><a class="source-toggle" href="#"
|
<p><a class="source-toggle" href="#"
|
||||||
onclick="toggleCode('M000040-source');return false;">[Source]</a></p>
|
onclick="toggleCode('M000074-source');return false;">[Source]</a></p>
|
||||||
<div class="method-source-code" id="M000040-source">
|
<div class="method-source-code" id="M000074-source">
|
||||||
<pre>
|
<pre>
|
||||||
<span class="ruby-comment cmt"># File lib/selenium_on_rails/paths.rb, line 12</span>
|
<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>
|
12: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">view_path</span> <span class="ruby-identifier">view</span>
|
||||||
13: <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">'/../views/'</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">view</span>)
|
13: <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">'/../views/'</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">view</span>)
|
||||||
14: <span class="ruby-keyword kw">end</span>
|
14: <span class="ruby-keyword kw">end</span>
|
||||||
</pre>
|
</pre>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div id="validator-badges">
|
<div id="validator-badges">
|
||||||
<p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
|
<p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
@ -1,219 +1,219 @@
|
||||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||||
<!DOCTYPE html
|
<!DOCTYPE html
|
||||||
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
||||||
<head>
|
<head>
|
||||||
<title>Class: SeleniumOnRails::RSelenese</title>
|
<title>Class: SeleniumOnRails::RSelenese</title>
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
||||||
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
||||||
<link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
|
<link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
// <![CDATA[
|
// <![CDATA[
|
||||||
|
|
||||||
function popupCode( url ) {
|
function popupCode( url ) {
|
||||||
window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
|
window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
|
||||||
}
|
}
|
||||||
|
|
||||||
function toggleCode( id ) {
|
function toggleCode( id ) {
|
||||||
if ( document.getElementById )
|
if ( document.getElementById )
|
||||||
elem = document.getElementById( id );
|
elem = document.getElementById( id );
|
||||||
else if ( document.all )
|
else if ( document.all )
|
||||||
elem = eval( "document.all." + id );
|
elem = eval( "document.all." + id );
|
||||||
else
|
else
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
elemStyle = elem.style;
|
elemStyle = elem.style;
|
||||||
|
|
||||||
if ( elemStyle.display != "block" ) {
|
if ( elemStyle.display != "block" ) {
|
||||||
elemStyle.display = "block"
|
elemStyle.display = "block"
|
||||||
} else {
|
} else {
|
||||||
elemStyle.display = "none"
|
elemStyle.display = "none"
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Make codeblocks hidden by default
|
// Make codeblocks hidden by default
|
||||||
document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
|
document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
|
||||||
|
|
||||||
// ]]>
|
// ]]>
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div id="classHeader">
|
<div id="classHeader">
|
||||||
<table class="header-table">
|
<table class="header-table">
|
||||||
<tr class="top-aligned-row">
|
<tr class="top-aligned-row">
|
||||||
<td><strong>Class</strong></td>
|
<td><strong>Class</strong></td>
|
||||||
<td class="class-name-in-header">SeleniumOnRails::RSelenese</td>
|
<td class="class-name-in-header">SeleniumOnRails::RSelenese</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="top-aligned-row">
|
<tr class="top-aligned-row">
|
||||||
<td><strong>In:</strong></td>
|
<td><strong>In:</strong></td>
|
||||||
<td>
|
<td>
|
||||||
<a href="../../files/lib/selenium_on_rails/rselenese_rb.html">
|
<a href="../../files/lib/selenium_on_rails/rselenese_rb.html">
|
||||||
lib/selenium_on_rails/rselenese.rb
|
lib/selenium_on_rails/rselenese.rb
|
||||||
</a>
|
</a>
|
||||||
<br />
|
<br />
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
<tr class="top-aligned-row">
|
<tr class="top-aligned-row">
|
||||||
<td><strong>Parent:</strong></td>
|
<td><strong>Parent:</strong></td>
|
||||||
<td>
|
<td>
|
||||||
<a href="TestBuilder.html">
|
<a href="TestBuilder.html">
|
||||||
SeleniumOnRails::TestBuilder
|
SeleniumOnRails::TestBuilder
|
||||||
</a>
|
</a>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
<!-- banner header -->
|
<!-- banner header -->
|
||||||
|
|
||||||
<div id="bodyContent">
|
<div id="bodyContent">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div id="contextContent">
|
<div id="contextContent">
|
||||||
|
|
||||||
<div id="description">
|
<div id="description">
|
||||||
<p>
|
<p>
|
||||||
Renders Selenium test templates in a fashion analogous to <tt>rxml</tt> and
|
Renders Selenium test templates in a fashion analogous to <tt>rxml</tt> and
|
||||||
<tt>rjs</tt> templates.
|
<tt>rjs</tt> templates.
|
||||||
</p>
|
</p>
|
||||||
<pre>
|
<pre>
|
||||||
setup
|
setup
|
||||||
open :controller => 'customer', :action => 'list'
|
open :controller => 'customer', :action => 'list'
|
||||||
assert_title 'Customers'
|
assert_title 'Customers'
|
||||||
</pre>
|
</pre>
|
||||||
<p>
|
<p>
|
||||||
See <a href="TestBuilder.html">SeleniumOnRails::TestBuilder</a> for a list
|
See <a href="TestBuilder.html">SeleniumOnRails::TestBuilder</a> for a list
|
||||||
of available commands.
|
of available commands.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="method-list">
|
<div id="method-list">
|
||||||
<h3 class="section-bar">Methods</h3>
|
<h3 class="section-bar">Methods</h3>
|
||||||
|
|
||||||
<div class="name-list">
|
<div class="name-list">
|
||||||
<a href="#M000084">new</a>
|
<a href="#M000145">new</a>
|
||||||
<a href="#M000085">render</a>
|
<a href="#M000146">render</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<!-- if includes -->
|
<!-- if includes -->
|
||||||
|
|
||||||
<div id="section">
|
<div id="section">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div id="attribute-list">
|
<div id="attribute-list">
|
||||||
<h3 class="section-bar">Attributes</h3>
|
<h3 class="section-bar">Attributes</h3>
|
||||||
|
|
||||||
<div class="name-list">
|
<div class="name-list">
|
||||||
<table>
|
<table>
|
||||||
<tr class="top-aligned-row context-row">
|
<tr class="top-aligned-row context-row">
|
||||||
<td class="context-item-name">view</td>
|
<td class="context-item-name">view</td>
|
||||||
<td class="context-item-value"> [RW] </td>
|
<td class="context-item-value"> [RW] </td>
|
||||||
<td class="context-item-desc"></td>
|
<td class="context-item-desc"></td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<!-- if method_list -->
|
<!-- if method_list -->
|
||||||
<div id="methods">
|
<div id="methods">
|
||||||
<h3 class="section-bar">Public Class methods</h3>
|
<h3 class="section-bar">Public Class methods</h3>
|
||||||
|
|
||||||
<div id="method-M000084" class="method-detail">
|
<div id="method-M000145" class="method-detail">
|
||||||
<a name="M000084"></a>
|
<a name="M000145"></a>
|
||||||
|
|
||||||
<div class="method-heading">
|
<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>
|
<span class="method-name">new</span><span class="method-args">(view)</span>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="method-description">
|
<div class="method-description">
|
||||||
<p>
|
<p>
|
||||||
Create a new <a href="RSelenese.html">RSelenese</a> renderer bound to
|
Create a <a href="RSelenese.html#M000145">new</a> <a
|
||||||
<em>view</em>.
|
href="RSelenese.html">RSelenese</a> renderer bound to <em>view</em>.
|
||||||
</p>
|
</p>
|
||||||
<p><a class="source-toggle" href="#"
|
<p><a class="source-toggle" href="#"
|
||||||
onclick="toggleCode('M000084-source');return false;">[Source]</a></p>
|
onclick="toggleCode('M000145-source');return false;">[Source]</a></p>
|
||||||
<div class="method-source-code" id="M000084-source">
|
<div class="method-source-code" id="M000145-source">
|
||||||
<pre>
|
<pre>
|
||||||
<span class="ruby-comment cmt"># File lib/selenium_on_rails/rselenese.rb, line 17</span>
|
<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>
|
17: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span> <span class="ruby-identifier">view</span>
|
||||||
18: <span class="ruby-keyword kw">super</span> <span class="ruby-identifier">view</span>
|
18: <span class="ruby-keyword kw">super</span> <span class="ruby-identifier">view</span>
|
||||||
19: <span class="ruby-ivar">@view</span> = <span class="ruby-identifier">view</span>
|
19: <span class="ruby-ivar">@view</span> = <span class="ruby-identifier">view</span>
|
||||||
20: <span class="ruby-keyword kw">end</span>
|
20: <span class="ruby-keyword kw">end</span>
|
||||||
</pre>
|
</pre>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<h3 class="section-bar">Public Instance methods</h3>
|
<h3 class="section-bar">Public Instance methods</h3>
|
||||||
|
|
||||||
<div id="method-M000085" class="method-detail">
|
<div id="method-M000146" class="method-detail">
|
||||||
<a name="M000085"></a>
|
<a name="M000146"></a>
|
||||||
|
|
||||||
<div class="method-heading">
|
<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>
|
<span class="method-name">render</span><span class="method-args">(template, local_assigns)</span>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="method-description">
|
<div class="method-description">
|
||||||
<p>
|
<p>
|
||||||
Render <em>template</em> using <em>local_assigns</em>.
|
Render <em>template</em> using <em>local_assigns</em>.
|
||||||
</p>
|
</p>
|
||||||
<p><a class="source-toggle" href="#"
|
<p><a class="source-toggle" href="#"
|
||||||
onclick="toggleCode('M000085-source');return false;">[Source]</a></p>
|
onclick="toggleCode('M000146-source');return false;">[Source]</a></p>
|
||||||
<div class="method-source-code" id="M000085-source">
|
<div class="method-source-code" id="M000146-source">
|
||||||
<pre>
|
<pre>
|
||||||
<span class="ruby-comment cmt"># File lib/selenium_on_rails/rselenese.rb, line 23</span>
|
<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>
|
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>])
|
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>
|
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:
|
27:
|
||||||
28: <span class="ruby-identifier">assign_locals_code</span> = <span class="ruby-value str">''</span>
|
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>}
|
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>}
|
||||||
30:
|
30:
|
||||||
31: <span class="ruby-identifier">eval</span> <span class="ruby-identifier">assign_locals_code</span> <span class="ruby-operator">+</span> <span class="ruby-value str">"\n"</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">template</span>
|
31: <span class="ruby-identifier">eval</span> <span class="ruby-identifier">assign_locals_code</span> <span class="ruby-operator">+</span> <span class="ruby-value str">"\n"</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">template</span>
|
||||||
32: <span class="ruby-keyword kw">end</span>
|
32: <span class="ruby-keyword kw">end</span>
|
||||||
33: <span class="ruby-keyword kw">end</span>
|
33: <span class="ruby-keyword kw">end</span>
|
||||||
</pre>
|
</pre>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div id="validator-badges">
|
<div id="validator-badges">
|
||||||
<p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
|
<p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
@ -1,156 +1,156 @@
|
||||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||||
<!DOCTYPE html
|
<!DOCTYPE html
|
||||||
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
||||||
<head>
|
<head>
|
||||||
<title>Module: SeleniumOnRails::Renderer</title>
|
<title>Module: SeleniumOnRails::Renderer</title>
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
||||||
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
||||||
<link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
|
<link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
// <![CDATA[
|
// <![CDATA[
|
||||||
|
|
||||||
function popupCode( url ) {
|
function popupCode( url ) {
|
||||||
window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
|
window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
|
||||||
}
|
}
|
||||||
|
|
||||||
function toggleCode( id ) {
|
function toggleCode( id ) {
|
||||||
if ( document.getElementById )
|
if ( document.getElementById )
|
||||||
elem = document.getElementById( id );
|
elem = document.getElementById( id );
|
||||||
else if ( document.all )
|
else if ( document.all )
|
||||||
elem = eval( "document.all." + id );
|
elem = eval( "document.all." + id );
|
||||||
else
|
else
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
elemStyle = elem.style;
|
elemStyle = elem.style;
|
||||||
|
|
||||||
if ( elemStyle.display != "block" ) {
|
if ( elemStyle.display != "block" ) {
|
||||||
elemStyle.display = "block"
|
elemStyle.display = "block"
|
||||||
} else {
|
} else {
|
||||||
elemStyle.display = "none"
|
elemStyle.display = "none"
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Make codeblocks hidden by default
|
// Make codeblocks hidden by default
|
||||||
document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
|
document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
|
||||||
|
|
||||||
// ]]>
|
// ]]>
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div id="classHeader">
|
<div id="classHeader">
|
||||||
<table class="header-table">
|
<table class="header-table">
|
||||||
<tr class="top-aligned-row">
|
<tr class="top-aligned-row">
|
||||||
<td><strong>Module</strong></td>
|
<td><strong>Module</strong></td>
|
||||||
<td class="class-name-in-header">SeleniumOnRails::Renderer</td>
|
<td class="class-name-in-header">SeleniumOnRails::Renderer</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="top-aligned-row">
|
<tr class="top-aligned-row">
|
||||||
<td><strong>In:</strong></td>
|
<td><strong>In:</strong></td>
|
||||||
<td>
|
<td>
|
||||||
<a href="../../files/lib/selenium_on_rails/renderer_rb.html">
|
<a href="../../files/lib/selenium_on_rails/renderer_rb.html">
|
||||||
lib/selenium_on_rails/renderer.rb
|
lib/selenium_on_rails/renderer.rb
|
||||||
</a>
|
</a>
|
||||||
<br />
|
<br />
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
<!-- banner header -->
|
<!-- banner header -->
|
||||||
|
|
||||||
<div id="bodyContent">
|
<div id="bodyContent">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div id="contextContent">
|
<div id="contextContent">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="method-list">
|
<div id="method-list">
|
||||||
<h3 class="section-bar">Methods</h3>
|
<h3 class="section-bar">Methods</h3>
|
||||||
|
|
||||||
<div class="name-list">
|
<div class="name-list">
|
||||||
<a href="#M000037">render_test_case</a>
|
<a href="#M000071">render_test_case</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<!-- if includes -->
|
<!-- if includes -->
|
||||||
<div id="includes">
|
<div id="includes">
|
||||||
<h3 class="section-bar">Included Modules</h3>
|
<h3 class="section-bar">Included Modules</h3>
|
||||||
|
|
||||||
<div id="includes-list">
|
<div id="includes-list">
|
||||||
<span class="include-name"><a href="Paths.html">SeleniumOnRails::Paths</a></span>
|
<span class="include-name"><a href="Paths.html">SeleniumOnRails::Paths</a></span>
|
||||||
<span class="include-name"><a href="../SeleniumHelper.html">SeleniumHelper</a></span>
|
<span class="include-name"><a href="../SeleniumHelper.html">SeleniumHelper</a></span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="section">
|
<div id="section">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<!-- if method_list -->
|
<!-- if method_list -->
|
||||||
<div id="methods">
|
<div id="methods">
|
||||||
<h3 class="section-bar">Public Instance methods</h3>
|
<h3 class="section-bar">Public Instance methods</h3>
|
||||||
|
|
||||||
<div id="method-M000037" class="method-detail">
|
<div id="method-M000071" class="method-detail">
|
||||||
<a name="M000037"></a>
|
<a name="M000071"></a>
|
||||||
|
|
||||||
<div class="method-heading">
|
<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>
|
<span class="method-name">render_test_case</span><span class="method-args">(filename)</span>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="method-description">
|
<div class="method-description">
|
||||||
<p><a class="source-toggle" href="#"
|
<p><a class="source-toggle" href="#"
|
||||||
onclick="toggleCode('M000037-source');return false;">[Source]</a></p>
|
onclick="toggleCode('M000071-source');return false;">[Source]</a></p>
|
||||||
<div class="method-source-code" id="M000037-source">
|
<div class="method-source-code" id="M000071-source">
|
||||||
<pre>
|
<pre>
|
||||||
<span class="ruby-comment cmt"># File lib/selenium_on_rails/renderer.rb, line 5</span>
|
<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>
|
5: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">render_test_case</span> <span class="ruby-identifier">filename</span>
|
||||||
6: <span class="ruby-ivar">@template</span>.<span class="ruby-identifier">extend</span> <span class="ruby-constant">SeleniumOnRails</span><span class="ruby-operator">::</span><span class="ruby-constant">PartialsSupport</span>
|
6: <span class="ruby-ivar">@template</span>.<span class="ruby-identifier">extend</span> <span class="ruby-constant">SeleniumOnRails</span><span class="ruby-operator">::</span><span class="ruby-constant">PartialsSupport</span>
|
||||||
7: <span class="ruby-ivar">@page_title</span> = <span class="ruby-identifier">test_case_name</span> <span class="ruby-identifier">filename</span>
|
7: <span class="ruby-ivar">@page_title</span> = <span class="ruby-identifier">test_case_name</span> <span class="ruby-identifier">filename</span>
|
||||||
8: <span class="ruby-identifier">output</span> = <span class="ruby-identifier">render_to_string</span> <span class="ruby-identifier">:file</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">filename</span>
|
8: <span class="ruby-identifier">output</span> = <span class="ruby-identifier">render_to_string</span> <span class="ruby-identifier">:file</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">filename</span>
|
||||||
9: <span class="ruby-identifier">layout</span> = (<span class="ruby-identifier">output</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp re">/<html>/i</span> <span class="ruby-operator">?</span> <span class="ruby-keyword kw">false</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">layout_path</span>)
|
9: <span class="ruby-identifier">layout</span> = (<span class="ruby-identifier">output</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp re">/<html>/i</span> <span class="ruby-operator">?</span> <span class="ruby-keyword kw">false</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">layout_path</span>)
|
||||||
10: <span class="ruby-identifier">render</span> <span class="ruby-identifier">:text</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">output</span>, <span class="ruby-identifier">:layout</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">layout</span>
|
10: <span class="ruby-identifier">render</span> <span class="ruby-identifier">:text</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">output</span>, <span class="ruby-identifier">:layout</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">layout</span>
|
||||||
11:
|
11:
|
||||||
12: <span class="ruby-identifier">headers</span>[<span class="ruby-value str">'Cache-control'</span>] = <span class="ruby-value str">'no-cache'</span>
|
12: <span class="ruby-identifier">headers</span>[<span class="ruby-value str">'Cache-control'</span>] = <span class="ruby-value str">'no-cache'</span>
|
||||||
13: <span class="ruby-identifier">headers</span>[<span class="ruby-value str">'Pragma'</span>] = <span class="ruby-value str">'no-cache'</span>
|
13: <span class="ruby-identifier">headers</span>[<span class="ruby-value str">'Pragma'</span>] = <span class="ruby-value str">'no-cache'</span>
|
||||||
14: <span class="ruby-identifier">headers</span>[<span class="ruby-value str">'Expires'</span>] = <span class="ruby-value str">'-1'</span>
|
14: <span class="ruby-identifier">headers</span>[<span class="ruby-value str">'Expires'</span>] = <span class="ruby-value str">'-1'</span>
|
||||||
15: <span class="ruby-keyword kw">end</span>
|
15: <span class="ruby-keyword kw">end</span>
|
||||||
</pre>
|
</pre>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div id="validator-badges">
|
<div id="validator-badges">
|
||||||
<p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
|
<p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
@ -1,179 +1,179 @@
|
||||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||||
<!DOCTYPE html
|
<!DOCTYPE html
|
||||||
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
||||||
<head>
|
<head>
|
||||||
<title>Class: SeleniumOnRails::Selenese</title>
|
<title>Class: SeleniumOnRails::Selenese</title>
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
||||||
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
||||||
<link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
|
<link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
// <![CDATA[
|
// <![CDATA[
|
||||||
|
|
||||||
function popupCode( url ) {
|
function popupCode( url ) {
|
||||||
window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
|
window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
|
||||||
}
|
}
|
||||||
|
|
||||||
function toggleCode( id ) {
|
function toggleCode( id ) {
|
||||||
if ( document.getElementById )
|
if ( document.getElementById )
|
||||||
elem = document.getElementById( id );
|
elem = document.getElementById( id );
|
||||||
else if ( document.all )
|
else if ( document.all )
|
||||||
elem = eval( "document.all." + id );
|
elem = eval( "document.all." + id );
|
||||||
else
|
else
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
elemStyle = elem.style;
|
elemStyle = elem.style;
|
||||||
|
|
||||||
if ( elemStyle.display != "block" ) {
|
if ( elemStyle.display != "block" ) {
|
||||||
elemStyle.display = "block"
|
elemStyle.display = "block"
|
||||||
} else {
|
} else {
|
||||||
elemStyle.display = "none"
|
elemStyle.display = "none"
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Make codeblocks hidden by default
|
// Make codeblocks hidden by default
|
||||||
document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
|
document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
|
||||||
|
|
||||||
// ]]>
|
// ]]>
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div id="classHeader">
|
<div id="classHeader">
|
||||||
<table class="header-table">
|
<table class="header-table">
|
||||||
<tr class="top-aligned-row">
|
<tr class="top-aligned-row">
|
||||||
<td><strong>Class</strong></td>
|
<td><strong>Class</strong></td>
|
||||||
<td class="class-name-in-header">SeleniumOnRails::Selenese</td>
|
<td class="class-name-in-header">SeleniumOnRails::Selenese</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="top-aligned-row">
|
<tr class="top-aligned-row">
|
||||||
<td><strong>In:</strong></td>
|
<td><strong>In:</strong></td>
|
||||||
<td>
|
<td>
|
||||||
<a href="../../files/lib/selenium_on_rails/selenese_rb.html">
|
<a href="../../files/lib/selenium_on_rails/selenese_rb.html">
|
||||||
lib/selenium_on_rails/selenese.rb
|
lib/selenium_on_rails/selenese.rb
|
||||||
</a>
|
</a>
|
||||||
<br />
|
<br />
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
<tr class="top-aligned-row">
|
<tr class="top-aligned-row">
|
||||||
<td><strong>Parent:</strong></td>
|
<td><strong>Parent:</strong></td>
|
||||||
<td>
|
<td>
|
||||||
Object
|
Object
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
<!-- banner header -->
|
<!-- banner header -->
|
||||||
|
|
||||||
<div id="bodyContent">
|
<div id="bodyContent">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div id="contextContent">
|
<div id="contextContent">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="method-list">
|
<div id="method-list">
|
||||||
<h3 class="section-bar">Methods</h3>
|
<h3 class="section-bar">Methods</h3>
|
||||||
|
|
||||||
<div class="name-list">
|
<div class="name-list">
|
||||||
<a href="#M000082">new</a>
|
<a href="#M000143">new</a>
|
||||||
<a href="#M000083">render</a>
|
<a href="#M000144">render</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<!-- if includes -->
|
<!-- if includes -->
|
||||||
|
|
||||||
<div id="section">
|
<div id="section">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<!-- if method_list -->
|
<!-- if method_list -->
|
||||||
<div id="methods">
|
<div id="methods">
|
||||||
<h3 class="section-bar">Public Class methods</h3>
|
<h3 class="section-bar">Public Class methods</h3>
|
||||||
|
|
||||||
<div id="method-M000082" class="method-detail">
|
<div id="method-M000143" class="method-detail">
|
||||||
<a name="M000082"></a>
|
<a name="M000143"></a>
|
||||||
|
|
||||||
<div class="method-heading">
|
<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>
|
<span class="method-name">new</span><span class="method-args">(view)</span>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="method-description">
|
<div class="method-description">
|
||||||
<p><a class="source-toggle" href="#"
|
<p><a class="source-toggle" href="#"
|
||||||
onclick="toggleCode('M000082-source');return false;">[Source]</a></p>
|
onclick="toggleCode('M000143-source');return false;">[Source]</a></p>
|
||||||
<div class="method-source-code" id="M000082-source">
|
<div class="method-source-code" id="M000143-source">
|
||||||
<pre>
|
<pre>
|
||||||
<span class="ruby-comment cmt"># File lib/selenium_on_rails/selenese.rb, line 7</span>
|
<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>
|
7: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span> <span class="ruby-identifier">view</span>
|
||||||
8: <span class="ruby-ivar">@view</span> = <span class="ruby-identifier">view</span>
|
8: <span class="ruby-ivar">@view</span> = <span class="ruby-identifier">view</span>
|
||||||
9: <span class="ruby-keyword kw">end</span>
|
9: <span class="ruby-keyword kw">end</span>
|
||||||
</pre>
|
</pre>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<h3 class="section-bar">Public Instance methods</h3>
|
<h3 class="section-bar">Public Instance methods</h3>
|
||||||
|
|
||||||
<div id="method-M000083" class="method-detail">
|
<div id="method-M000144" class="method-detail">
|
||||||
<a name="M000083"></a>
|
<a name="M000144"></a>
|
||||||
|
|
||||||
<div class="method-heading">
|
<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>
|
<span class="method-name">render</span><span class="method-args">(template, local_assigns)</span>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="method-description">
|
<div class="method-description">
|
||||||
<p><a class="source-toggle" href="#"
|
<p><a class="source-toggle" href="#"
|
||||||
onclick="toggleCode('M000083-source');return false;">[Source]</a></p>
|
onclick="toggleCode('M000144-source');return false;">[Source]</a></p>
|
||||||
<div class="method-source-code" id="M000083-source">
|
<div class="method-source-code" id="M000144-source">
|
||||||
<pre>
|
<pre>
|
||||||
<span class="ruby-comment cmt"># File lib/selenium_on_rails/selenese.rb, line 11</span>
|
<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>
|
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>
|
||||||
12: <span class="ruby-identifier">name</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>])
|
12: <span class="ruby-identifier">name</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>])
|
||||||
13: <span class="ruby-identifier">lines</span> = <span class="ruby-identifier">template</span>.<span class="ruby-identifier">strip</span>.<span class="ruby-identifier">split</span> <span class="ruby-value str">"\n"</span>
|
13: <span class="ruby-identifier">lines</span> = <span class="ruby-identifier">template</span>.<span class="ruby-identifier">strip</span>.<span class="ruby-identifier">split</span> <span class="ruby-value str">"\n"</span>
|
||||||
14: <span class="ruby-identifier">html</span> = <span class="ruby-value str">''</span>
|
14: <span class="ruby-identifier">html</span> = <span class="ruby-value str">''</span>
|
||||||
15: <span class="ruby-identifier">html</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">extract_comments</span>(<span class="ruby-identifier">lines</span>)
|
15: <span class="ruby-identifier">html</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">extract_comments</span>(<span class="ruby-identifier">lines</span>)
|
||||||
16: <span class="ruby-identifier">html</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">extract_commands</span>(<span class="ruby-identifier">lines</span>, <span class="ruby-identifier">name</span>)
|
16: <span class="ruby-identifier">html</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">extract_commands</span>(<span class="ruby-identifier">lines</span>, <span class="ruby-identifier">name</span>)
|
||||||
17: <span class="ruby-identifier">html</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">extract_comments</span>(<span class="ruby-identifier">lines</span>)
|
17: <span class="ruby-identifier">html</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">extract_comments</span>(<span class="ruby-identifier">lines</span>)
|
||||||
18: <span class="ruby-identifier">raise</span> <span class="ruby-value str">'You cannot have comments in the middle of commands!'</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">next_line</span> <span class="ruby-identifier">lines</span>, <span class="ruby-identifier">:any</span>
|
18: <span class="ruby-identifier">raise</span> <span class="ruby-value str">'You cannot have comments in the middle of commands!'</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">next_line</span> <span class="ruby-identifier">lines</span>, <span class="ruby-identifier">:any</span>
|
||||||
19: <span class="ruby-identifier">html</span>
|
19: <span class="ruby-identifier">html</span>
|
||||||
20: <span class="ruby-keyword kw">end</span>
|
20: <span class="ruby-keyword kw">end</span>
|
||||||
</pre>
|
</pre>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div id="validator-badges">
|
<div id="validator-badges">
|
||||||
<p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
|
<p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
@ -1,223 +1,223 @@
|
||||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||||
<!DOCTYPE html
|
<!DOCTYPE html
|
||||||
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
||||||
<head>
|
<head>
|
||||||
<title>Module: SeleniumOnRails::SuiteRenderer</title>
|
<title>Module: SeleniumOnRails::SuiteRenderer</title>
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
||||||
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
||||||
<link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
|
<link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
// <![CDATA[
|
// <![CDATA[
|
||||||
|
|
||||||
function popupCode( url ) {
|
function popupCode( url ) {
|
||||||
window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
|
window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
|
||||||
}
|
}
|
||||||
|
|
||||||
function toggleCode( id ) {
|
function toggleCode( id ) {
|
||||||
if ( document.getElementById )
|
if ( document.getElementById )
|
||||||
elem = document.getElementById( id );
|
elem = document.getElementById( id );
|
||||||
else if ( document.all )
|
else if ( document.all )
|
||||||
elem = eval( "document.all." + id );
|
elem = eval( "document.all." + id );
|
||||||
else
|
else
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
elemStyle = elem.style;
|
elemStyle = elem.style;
|
||||||
|
|
||||||
if ( elemStyle.display != "block" ) {
|
if ( elemStyle.display != "block" ) {
|
||||||
elemStyle.display = "block"
|
elemStyle.display = "block"
|
||||||
} else {
|
} else {
|
||||||
elemStyle.display = "none"
|
elemStyle.display = "none"
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Make codeblocks hidden by default
|
// Make codeblocks hidden by default
|
||||||
document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
|
document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
|
||||||
|
|
||||||
// ]]>
|
// ]]>
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div id="classHeader">
|
<div id="classHeader">
|
||||||
<table class="header-table">
|
<table class="header-table">
|
||||||
<tr class="top-aligned-row">
|
<tr class="top-aligned-row">
|
||||||
<td><strong>Module</strong></td>
|
<td><strong>Module</strong></td>
|
||||||
<td class="class-name-in-header">SeleniumOnRails::SuiteRenderer</td>
|
<td class="class-name-in-header">SeleniumOnRails::SuiteRenderer</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="top-aligned-row">
|
<tr class="top-aligned-row">
|
||||||
<td><strong>In:</strong></td>
|
<td><strong>In:</strong></td>
|
||||||
<td>
|
<td>
|
||||||
<a href="../../files/lib/selenium_on_rails/suite_renderer_rb.html">
|
<a href="../../files/lib/selenium_on_rails/suite_renderer_rb.html">
|
||||||
lib/selenium_on_rails/suite_renderer.rb
|
lib/selenium_on_rails/suite_renderer.rb
|
||||||
</a>
|
</a>
|
||||||
<br />
|
<br />
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
<!-- banner header -->
|
<!-- banner header -->
|
||||||
|
|
||||||
<div id="bodyContent">
|
<div id="bodyContent">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div id="contextContent">
|
<div id="contextContent">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="method-list">
|
<div id="method-list">
|
||||||
<h3 class="section-bar">Methods</h3>
|
<h3 class="section-bar">Methods</h3>
|
||||||
|
|
||||||
<div class="name-list">
|
<div class="name-list">
|
||||||
<a href="#M000048">link_to_test_case</a>
|
<a href="#M000082">link_to_test_case</a>
|
||||||
<a href="#M000047">test_cases</a>
|
<a href="#M000081">test_cases</a>
|
||||||
<a href="#M000045">test_suite_name</a>
|
<a href="#M000079">test_suite_name</a>
|
||||||
<a href="#M000046">test_suites</a>
|
<a href="#M000080">test_suites</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<!-- if includes -->
|
<!-- if includes -->
|
||||||
|
|
||||||
<div id="section">
|
<div id="section">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<!-- if method_list -->
|
<!-- if method_list -->
|
||||||
<div id="methods">
|
<div id="methods">
|
||||||
<h3 class="section-bar">Public Instance methods</h3>
|
<h3 class="section-bar">Public Instance methods</h3>
|
||||||
|
|
||||||
<div id="method-M000048" class="method-detail">
|
<div id="method-M000082" class="method-detail">
|
||||||
<a name="M000048"></a>
|
<a name="M000082"></a>
|
||||||
|
|
||||||
<div class="method-heading">
|
<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>
|
<span class="method-name">link_to_test_case</span><span class="method-args">(suite_name, filename)</span>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="method-description">
|
<div class="method-description">
|
||||||
<p><a class="source-toggle" href="#"
|
<p><a class="source-toggle" href="#"
|
||||||
onclick="toggleCode('M000048-source');return false;">[Source]</a></p>
|
onclick="toggleCode('M000082-source');return false;">[Source]</a></p>
|
||||||
<div class="method-source-code" id="M000048-source">
|
<div class="method-source-code" id="M000082-source">
|
||||||
<pre>
|
<pre>
|
||||||
<span class="ruby-comment cmt"># File lib/selenium_on_rails/suite_renderer.rb, line 24</span>
|
<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>
|
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>
|
||||||
25: <span class="ruby-identifier">name</span> = <span class="ruby-identifier">suite_name</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">test_case_name</span>(<span class="ruby-identifier">filename</span>)
|
25: <span class="ruby-identifier">name</span> = <span class="ruby-identifier">suite_name</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">test_case_name</span>(<span class="ruby-identifier">filename</span>)
|
||||||
26: <span class="ruby-identifier">link_to</span> <span class="ruby-identifier">name</span>, <span class="ruby-identifier">:action</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">:test_file</span>, <span class="ruby-identifier">:testname</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">path_to_relative_url</span>(<span class="ruby-identifier">filename</span>).<span class="ruby-identifier">sub</span>(<span class="ruby-regexp re">/^\//</span>,<span class="ruby-value str">''</span>)
|
26: <span class="ruby-identifier">link_to</span> <span class="ruby-identifier">name</span>, <span class="ruby-identifier">:action</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">:test_file</span>, <span class="ruby-identifier">:testname</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">path_to_relative_url</span>(<span class="ruby-identifier">filename</span>).<span class="ruby-identifier">sub</span>(<span class="ruby-regexp re">/^\//</span>,<span class="ruby-value str">''</span>)
|
||||||
27: <span class="ruby-keyword kw">end</span>
|
27: <span class="ruby-keyword kw">end</span>
|
||||||
</pre>
|
</pre>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="method-M000047" class="method-detail">
|
<div id="method-M000081" class="method-detail">
|
||||||
<a name="M000047"></a>
|
<a name="M000081"></a>
|
||||||
|
|
||||||
<div class="method-heading">
|
<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>
|
<span class="method-name">test_cases</span><span class="method-args">(path)</span>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="method-description">
|
<div class="method-description">
|
||||||
<p><a class="source-toggle" href="#"
|
<p><a class="source-toggle" href="#"
|
||||||
onclick="toggleCode('M000047-source');return false;">[Source]</a></p>
|
onclick="toggleCode('M000081-source');return false;">[Source]</a></p>
|
||||||
<div class="method-source-code" id="M000047-source">
|
<div class="method-source-code" id="M000081-source">
|
||||||
<pre>
|
<pre>
|
||||||
<span class="ruby-comment cmt"># File lib/selenium_on_rails/suite_renderer.rb, line 18</span>
|
<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>
|
18: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">test_cases</span> <span class="ruby-identifier">path</span>
|
||||||
19: <span class="ruby-identifier">tests</span> = []
|
19: <span class="ruby-identifier">tests</span> = []
|
||||||
20: <span class="ruby-identifier">visit_all_tests</span> <span class="ruby-identifier">path</span>, <span class="ruby-value str">''</span>, <span class="ruby-keyword kw">nil</span>, <span class="ruby-constant">Proc</span>.<span class="ruby-identifier">new</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">n</span>, <span class="ruby-identifier">p</span><span class="ruby-operator">|</span> <span class="ruby-identifier">tests</span> <span class="ruby-operator"><<</span> [<span class="ruby-identifier">n</span>,<span class="ruby-identifier">p</span>]}
|
20: <span class="ruby-identifier">visit_all_tests</span> <span class="ruby-identifier">path</span>, <span class="ruby-value str">''</span>, <span class="ruby-keyword kw">nil</span>, <span class="ruby-constant">Proc</span>.<span class="ruby-identifier">new</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">n</span>, <span class="ruby-identifier">p</span><span class="ruby-operator">|</span> <span class="ruby-identifier">tests</span> <span class="ruby-operator"><<</span> [<span class="ruby-identifier">n</span>,<span class="ruby-identifier">p</span>]}
|
||||||
21: <span class="ruby-identifier">tests</span>
|
21: <span class="ruby-identifier">tests</span>
|
||||||
22: <span class="ruby-keyword kw">end</span>
|
22: <span class="ruby-keyword kw">end</span>
|
||||||
</pre>
|
</pre>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="method-M000045" class="method-detail">
|
<div id="method-M000079" class="method-detail">
|
||||||
<a name="M000045"></a>
|
<a name="M000079"></a>
|
||||||
|
|
||||||
<div class="method-heading">
|
<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>
|
<span class="method-name">test_suite_name</span><span class="method-args">(path)</span>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="method-description">
|
<div class="method-description">
|
||||||
<p><a class="source-toggle" href="#"
|
<p><a class="source-toggle" href="#"
|
||||||
onclick="toggleCode('M000045-source');return false;">[Source]</a></p>
|
onclick="toggleCode('M000079-source');return false;">[Source]</a></p>
|
||||||
<div class="method-source-code" id="M000045-source">
|
<div class="method-source-code" id="M000079-source">
|
||||||
<pre>
|
<pre>
|
||||||
<span class="ruby-comment cmt"># File lib/selenium_on_rails/suite_renderer.rb, line 2</span>
|
<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>
|
2: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">test_suite_name</span> <span class="ruby-identifier">path</span>
|
||||||
3: <span class="ruby-keyword kw">return</span> <span class="ruby-value str">'All test cases'</span> <span class="ruby-keyword kw">if</span> [<span class="ruby-keyword kw">nil</span>, <span class="ruby-value str">'/'</span>].<span class="ruby-identifier">include?</span> <span class="ruby-identifier">path_to_relative_url</span>(<span class="ruby-identifier">path</span>)
|
3: <span class="ruby-keyword kw">return</span> <span class="ruby-value str">'All test cases'</span> <span class="ruby-keyword kw">if</span> [<span class="ruby-keyword kw">nil</span>, <span class="ruby-value str">'/'</span>].<span class="ruby-identifier">include?</span> <span class="ruby-identifier">path_to_relative_url</span>(<span class="ruby-identifier">path</span>)
|
||||||
4: <span class="ruby-constant">File</span>.<span class="ruby-identifier">split</span>(<span class="ruby-identifier">path</span>)[<span class="ruby-value">-1</span>].<span class="ruby-identifier">humanize</span>
|
4: <span class="ruby-constant">File</span>.<span class="ruby-identifier">split</span>(<span class="ruby-identifier">path</span>)[<span class="ruby-value">-1</span>].<span class="ruby-identifier">humanize</span>
|
||||||
5: <span class="ruby-keyword kw">end</span>
|
5: <span class="ruby-keyword kw">end</span>
|
||||||
</pre>
|
</pre>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="method-M000046" class="method-detail">
|
<div id="method-M000080" class="method-detail">
|
||||||
<a name="M000046"></a>
|
<a name="M000080"></a>
|
||||||
|
|
||||||
<div class="method-heading">
|
<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>
|
<span class="method-name">test_suites</span><span class="method-args">(path)</span>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="method-description">
|
<div class="method-description">
|
||||||
<p><a class="source-toggle" href="#"
|
<p><a class="source-toggle" href="#"
|
||||||
onclick="toggleCode('M000046-source');return false;">[Source]</a></p>
|
onclick="toggleCode('M000080-source');return false;">[Source]</a></p>
|
||||||
<div class="method-source-code" id="M000046-source">
|
<div class="method-source-code" id="M000080-source">
|
||||||
<pre>
|
<pre>
|
||||||
<span class="ruby-comment cmt"># File lib/selenium_on_rails/suite_renderer.rb, line 7</span>
|
<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>
|
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> = []
|
8: <span class="ruby-identifier">suites</span> = []
|
||||||
9:
|
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>
|
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>
|
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:
|
13:
|
||||||
14: <span class="ruby-identifier">visit_all_tests</span> <span class="ruby-identifier">path</span>, <span class="ruby-value str">''</span>, <span class="ruby-constant">Proc</span>.<span class="ruby-identifier">new</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">n</span>, <span class="ruby-identifier">p</span><span class="ruby-operator">|</span> <span class="ruby-identifier">suites</span> <span class="ruby-operator"><<</span> [<span class="ruby-identifier">n</span>,<span class="ruby-identifier">path_to_relative_url</span>(<span class="ruby-identifier">p</span>)]}, <span class="ruby-keyword kw">nil</span>
|
14: <span class="ruby-identifier">visit_all_tests</span> <span class="ruby-identifier">path</span>, <span class="ruby-value str">''</span>, <span class="ruby-constant">Proc</span>.<span class="ruby-identifier">new</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">n</span>, <span class="ruby-identifier">p</span><span class="ruby-operator">|</span> <span class="ruby-identifier">suites</span> <span class="ruby-operator"><<</span> [<span class="ruby-identifier">n</span>,<span class="ruby-identifier">path_to_relative_url</span>(<span class="ruby-identifier">p</span>)]}, <span class="ruby-keyword kw">nil</span>
|
||||||
15: <span class="ruby-identifier">suites</span>
|
15: <span class="ruby-identifier">suites</span>
|
||||||
16: <span class="ruby-keyword kw">end</span>
|
16: <span class="ruby-keyword kw">end</span>
|
||||||
</pre>
|
</pre>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div id="validator-badges">
|
<div id="validator-badges">
|
||||||
<p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
|
<p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
@ -1,372 +1,441 @@
|
||||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||||
<!DOCTYPE html
|
<!DOCTYPE html
|
||||||
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
||||||
<head>
|
<head>
|
||||||
<title>Class: SeleniumOnRails::TestBuilder</title>
|
<title>Class: SeleniumOnRails::TestBuilder</title>
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
||||||
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
||||||
<link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
|
<link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
// <![CDATA[
|
// <![CDATA[
|
||||||
|
|
||||||
function popupCode( url ) {
|
function popupCode( url ) {
|
||||||
window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
|
window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
|
||||||
}
|
}
|
||||||
|
|
||||||
function toggleCode( id ) {
|
function toggleCode( id ) {
|
||||||
if ( document.getElementById )
|
if ( document.getElementById )
|
||||||
elem = document.getElementById( id );
|
elem = document.getElementById( id );
|
||||||
else if ( document.all )
|
else if ( document.all )
|
||||||
elem = eval( "document.all." + id );
|
elem = eval( "document.all." + id );
|
||||||
else
|
else
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
elemStyle = elem.style;
|
elemStyle = elem.style;
|
||||||
|
|
||||||
if ( elemStyle.display != "block" ) {
|
if ( elemStyle.display != "block" ) {
|
||||||
elemStyle.display = "block"
|
elemStyle.display = "block"
|
||||||
} else {
|
} else {
|
||||||
elemStyle.display = "none"
|
elemStyle.display = "none"
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Make codeblocks hidden by default
|
// Make codeblocks hidden by default
|
||||||
document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
|
document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
|
||||||
|
|
||||||
// ]]>
|
// ]]>
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div id="classHeader">
|
<div id="classHeader">
|
||||||
<table class="header-table">
|
<table class="header-table">
|
||||||
<tr class="top-aligned-row">
|
<tr class="top-aligned-row">
|
||||||
<td><strong>Class</strong></td>
|
<td><strong>Class</strong></td>
|
||||||
<td class="class-name-in-header">SeleniumOnRails::TestBuilder</td>
|
<td class="class-name-in-header">SeleniumOnRails::TestBuilder</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="top-aligned-row">
|
<tr class="top-aligned-row">
|
||||||
<td><strong>In:</strong></td>
|
<td><strong>In:</strong></td>
|
||||||
<td>
|
<td>
|
||||||
<a href="../../files/lib/selenium_on_rails/test_builder_rb.html">
|
<a href="../../files/lib/selenium_on_rails/test_builder_rb.html">
|
||||||
lib/selenium_on_rails/test_builder.rb
|
lib/selenium_on_rails/test_builder.rb
|
||||||
</a>
|
</a>
|
||||||
<br />
|
<br />
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
<tr class="top-aligned-row">
|
<tr class="top-aligned-row">
|
||||||
<td><strong>Parent:</strong></td>
|
<td><strong>Parent:</strong></td>
|
||||||
<td>
|
<td>
|
||||||
Object
|
Object
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
<!-- banner header -->
|
<!-- banner header -->
|
||||||
|
|
||||||
<div id="bodyContent">
|
<div id="bodyContent">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div id="contextContent">
|
<div id="contextContent">
|
||||||
|
|
||||||
<div id="description">
|
<div id="description">
|
||||||
<p>
|
<p>
|
||||||
Builds Selenium test table using a high-level Ruby interface. Normally
|
Builds Selenium test <a href="TestBuilder.html#M000150">table</a> using a
|
||||||
invoked through <a href="RSelenese.html">SeleniumOnRails::RSelenese</a>.
|
high-level Ruby interface. Normally invoked through <a
|
||||||
</p>
|
href="RSelenese.html">SeleniumOnRails::RSelenese</a>.
|
||||||
<p>
|
</p>
|
||||||
See <a
|
<p>
|
||||||
href="TestBuilderActions.html">SeleniumOnRails::TestBuilderActions</a> for
|
See <a
|
||||||
the available actions and <a
|
href="TestBuilderActions.html">SeleniumOnRails::TestBuilderActions</a> for
|
||||||
href="TestBuilderAccessors.html">SeleniumOnRails::TestBuilderAccessors</a>
|
the available actions and <a
|
||||||
for the available checks.
|
href="TestBuilderAccessors.html">SeleniumOnRails::TestBuilderAccessors</a>
|
||||||
</p>
|
for the available checks.
|
||||||
<p>
|
</p>
|
||||||
For more information on the commands supported by <a
|
<p>
|
||||||
href="TestBuilder.html">TestBuilder</a>, see the Selenium Commands
|
For more information on the commands supported by <a
|
||||||
Documentation at <a
|
href="TestBuilder.html">TestBuilder</a>, see the Selenium Commands
|
||||||
href="http://release.openqa.org/selenium-core/nightly/reference.html">release.openqa.org/selenium-core/nightly/reference.html</a>.
|
Documentation at <a
|
||||||
</p>
|
href="http://release.openqa.org/selenium-core/nightly/reference.html">release.openqa.org/selenium-core/nightly/reference.html</a>.
|
||||||
|
</p>
|
||||||
</div>
|
|
||||||
|
</div>
|
||||||
|
|
||||||
</div>
|
|
||||||
|
</div>
|
||||||
<div id="method-list">
|
|
||||||
<h3 class="section-bar">Methods</h3>
|
<div id="method-list">
|
||||||
|
<h3 class="section-bar">Methods</h3>
|
||||||
<div class="name-list">
|
|
||||||
<a href="#M000090">command</a>
|
<div class="name-list">
|
||||||
<a href="#M000092">command_and_wait</a>
|
<a href="#M000156">collection_arg</a>
|
||||||
<a href="#M000091">command_verbatim</a>
|
<a href="#M000151">command</a>
|
||||||
<a href="#M000087">exactize</a>
|
<a href="#M000153">command_and_wait</a>
|
||||||
<a href="#M000093">make_command_waiting</a>
|
<a href="#M000152">command_verbatim</a>
|
||||||
<a href="#M000088">new</a>
|
<a href="#M000148">exactize</a>
|
||||||
<a href="#M000086">selenize</a>
|
<a href="#M000154">make_command_waiting</a>
|
||||||
<a href="#M000089">table</a>
|
<a href="#M000149">new</a>
|
||||||
</div>
|
<a href="#M000147">selenize</a>
|
||||||
</div>
|
<a href="#M000150">table</a>
|
||||||
|
<a href="#M000155">url_arg</a>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<!-- if includes -->
|
</div>
|
||||||
<div id="includes">
|
|
||||||
<h3 class="section-bar">Included Modules</h3>
|
|
||||||
|
<!-- if includes -->
|
||||||
<div id="includes-list">
|
<div id="includes">
|
||||||
<span class="include-name"><a href="TestBuilderActions.html">SeleniumOnRails::TestBuilderActions</a></span>
|
<h3 class="section-bar">Included Modules</h3>
|
||||||
<span class="include-name"><a href="TestBuilderAccessors.html">SeleniumOnRails::TestBuilderAccessors</a></span>
|
|
||||||
</div>
|
<div id="includes-list">
|
||||||
</div>
|
<span class="include-name"><a href="TestBuilderActions.html">SeleniumOnRails::TestBuilderActions</a></span>
|
||||||
|
<span class="include-name"><a href="TestBuilderAccessors.html">SeleniumOnRails::TestBuilderAccessors</a></span>
|
||||||
<div id="section">
|
<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>
|
||||||
|
|
||||||
|
<div id="section">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<!-- if method_list -->
|
|
||||||
<div id="methods">
|
|
||||||
<h3 class="section-bar">Public Class methods</h3>
|
|
||||||
|
|
||||||
<div id="method-M000088" class="method-detail">
|
|
||||||
<a name="M000088"></a>
|
<!-- if method_list -->
|
||||||
|
<div id="methods">
|
||||||
<div class="method-heading">
|
<h3 class="section-bar">Public Class methods</h3>
|
||||||
<a href="#M000088" class="method-signature">
|
|
||||||
<span class="method-name">new</span><span class="method-args">(view)</span>
|
<div id="method-M000149" class="method-detail">
|
||||||
</a>
|
<a name="M000149"></a>
|
||||||
</div>
|
|
||||||
|
<div class="method-heading">
|
||||||
<div class="method-description">
|
<a href="#M000149" class="method-signature">
|
||||||
<p>
|
<span class="method-name">new</span><span class="method-args">(view)</span>
|
||||||
Create a new <a href="TestBuilder.html">TestBuilder</a> for <em>view</em>.
|
</a>
|
||||||
</p>
|
</div>
|
||||||
<p><a class="source-toggle" href="#"
|
|
||||||
onclick="toggleCode('M000088-source');return false;">[Source]</a></p>
|
<div class="method-description">
|
||||||
<div class="method-source-code" id="M000088-source">
|
<p>
|
||||||
<pre>
|
Create a <a href="TestBuilder.html#M000149">new</a> <a
|
||||||
<span class="ruby-comment cmt"># File lib/selenium_on_rails/test_builder.rb, line 26</span>
|
href="TestBuilder.html">TestBuilder</a> for <em>view</em>.
|
||||||
26: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span> <span class="ruby-identifier">view</span>
|
</p>
|
||||||
27: <span class="ruby-ivar">@view</span> = <span class="ruby-identifier">view</span>
|
<p><a class="source-toggle" href="#"
|
||||||
28: <span class="ruby-ivar">@output</span> = <span class="ruby-value str">''</span>
|
onclick="toggleCode('M000149-source');return false;">[Source]</a></p>
|
||||||
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>
|
<div class="method-source-code" id="M000149-source">
|
||||||
30: <span class="ruby-keyword kw">end</span>
|
<pre>
|
||||||
</pre>
|
<span class="ruby-comment cmt"># File lib/selenium_on_rails/test_builder.rb, line 47</span>
|
||||||
</div>
|
47: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span> <span class="ruby-identifier">view</span>
|
||||||
</div>
|
48: <span class="ruby-ivar">@view</span> = <span class="ruby-identifier">view</span>
|
||||||
</div>
|
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>
|
||||||
<div id="method-M000086" class="method-detail">
|
51: <span class="ruby-keyword kw">end</span>
|
||||||
<a name="M000086"></a>
|
</pre>
|
||||||
|
</div>
|
||||||
<div class="method-heading">
|
</div>
|
||||||
<a href="#M000086" class="method-signature">
|
</div>
|
||||||
<span class="method-name">selenize</span><span class="method-args">(str)</span>
|
|
||||||
</a>
|
<div id="method-M000147" class="method-detail">
|
||||||
</div>
|
<a name="M000147"></a>
|
||||||
|
|
||||||
<div class="method-description">
|
<div class="method-heading">
|
||||||
<p>
|
<a href="#M000147" class="method-signature">
|
||||||
Convert <em>str</em> to a Selenium command name.
|
<span class="method-name">selenize</span><span class="method-args">(str)</span>
|
||||||
</p>
|
</a>
|
||||||
<p><a class="source-toggle" href="#"
|
</div>
|
||||||
onclick="toggleCode('M000086-source');return false;">[Source]</a></p>
|
|
||||||
<div class="method-source-code" id="M000086-source">
|
<div class="method-description">
|
||||||
<pre>
|
<p>
|
||||||
<span class="ruby-comment cmt"># File lib/selenium_on_rails/test_builder.rb, line 15</span>
|
Convert <em>str</em> to a Selenium <a
|
||||||
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>
|
href="TestBuilder.html#M000151">command</a> name.
|
||||||
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> }
|
</p>
|
||||||
17: <span class="ruby-keyword kw">end</span>
|
<p><a class="source-toggle" href="#"
|
||||||
</pre>
|
onclick="toggleCode('M000147-source');return false;">[Source]</a></p>
|
||||||
</div>
|
<div class="method-source-code" id="M000147-source">
|
||||||
</div>
|
<pre>
|
||||||
</div>
|
<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>
|
||||||
<h3 class="section-bar">Public Instance methods</h3>
|
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>
|
||||||
<div id="method-M000090" class="method-detail">
|
</pre>
|
||||||
<a name="M000090"></a>
|
</div>
|
||||||
|
</div>
|
||||||
<div class="method-heading">
|
</div>
|
||||||
<a href="#M000090" class="method-signature">
|
|
||||||
<span class="method-name">command</span><span class="method-args">(cmd, target=nil, value=nil)</span>
|
<h3 class="section-bar">Public Instance methods</h3>
|
||||||
</a>
|
|
||||||
</div>
|
<div id="method-M000151" class="method-detail">
|
||||||
|
<a name="M000151"></a>
|
||||||
<div class="method-description">
|
|
||||||
<p>
|
<div class="method-heading">
|
||||||
Add a new test command using <em>cmd</em>, <em>target</em> and
|
<a href="#M000151" class="method-signature">
|
||||||
<em>value</em>.
|
<span class="method-name">command</span><span class="method-args">(cmd, target=nil, value=nil)</span>
|
||||||
</p>
|
</a>
|
||||||
<p><a class="source-toggle" href="#"
|
</div>
|
||||||
onclick="toggleCode('M000090-source');return false;">[Source]</a></p>
|
|
||||||
<div class="method-source-code" id="M000090-source">
|
<div class="method-description">
|
||||||
<pre>
|
<p>
|
||||||
<span class="ruby-comment cmt"># File lib/selenium_on_rails/test_builder.rb, line 41</span>
|
Add a <a href="TestBuilder.html#M000149">new</a> test <a
|
||||||
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>
|
href="TestBuilder.html#M000151">command</a> using <em>cmd</em>,
|
||||||
42: <span class="ruby-ivar">@xml</span>.<span class="ruby-identifier">tr</span> <span class="ruby-keyword kw">do</span>
|
<em>target</em> and <em>value</em>.
|
||||||
43: <span class="ruby-identifier">_tdata</span> <span class="ruby-identifier">cmd</span>
|
</p>
|
||||||
44: <span class="ruby-identifier">_tdata</span> <span class="ruby-identifier">target</span>
|
<p><a class="source-toggle" href="#"
|
||||||
45: <span class="ruby-identifier">_tdata</span> <span class="ruby-identifier">value</span>
|
onclick="toggleCode('M000151-source');return false;">[Source]</a></p>
|
||||||
46: <span class="ruby-keyword kw">end</span>
|
<div class="method-source-code" id="M000151-source">
|
||||||
47: <span class="ruby-keyword kw">end</span>
|
<pre>
|
||||||
</pre>
|
<span class="ruby-comment cmt"># File lib/selenium_on_rails/test_builder.rb, line 62</span>
|
||||||
</div>
|
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>
|
||||||
</div>
|
63: <span class="ruby-ivar">@xml</span>.<span class="ruby-identifier">tr</span> <span class="ruby-keyword kw">do</span>
|
||||||
</div>
|
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>
|
||||||
<div id="method-M000092" class="method-detail">
|
66: <span class="ruby-identifier">_tdata</span> <span class="ruby-identifier">value</span>
|
||||||
<a name="M000092"></a>
|
67: <span class="ruby-keyword kw">end</span>
|
||||||
|
68: <span class="ruby-keyword kw">end</span>
|
||||||
<div class="method-heading">
|
</pre>
|
||||||
<a href="#M000092" class="method-signature">
|
</div>
|
||||||
<span class="method-name">command_and_wait</span><span class="method-args">(cmd, target=nil, value=nil)</span>
|
</div>
|
||||||
</a>
|
</div>
|
||||||
</div>
|
|
||||||
|
<div id="method-M000153" class="method-detail">
|
||||||
<div class="method-description">
|
<a name="M000153"></a>
|
||||||
<p>
|
|
||||||
Same as <em>command</em> but add <em>AndWait</em> to the name of
|
<div class="method-heading">
|
||||||
<em>cmd</em>.
|
<a href="#M000153" class="method-signature">
|
||||||
</p>
|
<span class="method-name">command_and_wait</span><span class="method-args">(cmd, target=nil, value=nil)</span>
|
||||||
<p><a class="source-toggle" href="#"
|
</a>
|
||||||
onclick="toggleCode('M000092-source');return false;">[Source]</a></p>
|
</div>
|
||||||
<div class="method-source-code" id="M000092-source">
|
|
||||||
<pre>
|
<div class="method-description">
|
||||||
<span class="ruby-comment cmt"># File lib/selenium_on_rails/test_builder.rb, line 52</span>
|
<p>
|
||||||
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>
|
Same as <em><a href="TestBuilder.html#M000151">command</a></em> but add
|
||||||
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>
|
<em>AndWait</em> to the name of <em>cmd</em>.
|
||||||
54: <span class="ruby-keyword kw">end</span>
|
</p>
|
||||||
</pre>
|
<p><a class="source-toggle" href="#"
|
||||||
</div>
|
onclick="toggleCode('M000153-source');return false;">[Source]</a></p>
|
||||||
</div>
|
<div class="method-source-code" id="M000153-source">
|
||||||
</div>
|
<pre>
|
||||||
|
<span class="ruby-comment cmt"># File lib/selenium_on_rails/test_builder.rb, line 73</span>
|
||||||
<div id="method-M000091" class="method-detail">
|
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>
|
||||||
<a name="M000091"></a>
|
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>
|
||||||
<div class="method-heading">
|
</pre>
|
||||||
<span class="method-name">command_verbatim</span><span class="method-args">(cmd, target=nil, value=nil)</span>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
<div class="method-description">
|
|
||||||
<p>
|
<div id="method-M000152" class="method-detail">
|
||||||
Alias for <a href="TestBuilder.html#M000090">command</a>
|
<a name="M000152"></a>
|
||||||
</p>
|
|
||||||
</div>
|
<div class="method-heading">
|
||||||
</div>
|
<span class="method-name">command_verbatim</span><span class="method-args">(cmd, target=nil, value=nil)</span>
|
||||||
|
</div>
|
||||||
<div id="method-M000087" class="method-detail">
|
|
||||||
<a name="M000087"></a>
|
<div class="method-description">
|
||||||
|
<p>
|
||||||
<div class="method-heading">
|
Alias for <a href="TestBuilder.html#M000151">command</a>
|
||||||
<a href="#M000087" class="method-signature">
|
</p>
|
||||||
<span class="method-name">exactize</span><span class="method-args">(pattern)</span>
|
</div>
|
||||||
</a>
|
</div>
|
||||||
</div>
|
|
||||||
|
<div id="method-M000148" class="method-detail">
|
||||||
<div class="method-description">
|
<a name="M000148"></a>
|
||||||
<p>
|
|
||||||
Prepends <em>pattern</em> with ‘exact:’ if it would be
|
<div class="method-heading">
|
||||||
considered containing string-match pattern otherwise.
|
<a href="#M000148" class="method-signature">
|
||||||
</p>
|
<span class="method-name">exactize</span><span class="method-args">(pattern)</span>
|
||||||
<p><a class="source-toggle" href="#"
|
</a>
|
||||||
onclick="toggleCode('M000087-source');return false;">[Source]</a></p>
|
</div>
|
||||||
<div class="method-source-code" id="M000087-source">
|
|
||||||
<pre>
|
<div class="method-description">
|
||||||
<span class="ruby-comment cmt"># File lib/selenium_on_rails/test_builder.rb, line 21</span>
|
<p>
|
||||||
21: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">exactize</span> <span class="ruby-identifier">pattern</span>
|
Prepends <em>pattern</em> with ‘exact:’ if it would be
|
||||||
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>
|
considered containing string-match pattern otherwise.
|
||||||
23: <span class="ruby-keyword kw">end</span>
|
</p>
|
||||||
</pre>
|
<p><a class="source-toggle" href="#"
|
||||||
</div>
|
onclick="toggleCode('M000148-source');return false;">[Source]</a></p>
|
||||||
</div>
|
<div class="method-source-code" id="M000148-source">
|
||||||
</div>
|
<pre>
|
||||||
|
<span class="ruby-comment cmt"># File lib/selenium_on_rails/test_builder.rb, line 42</span>
|
||||||
<div id="method-M000093" class="method-detail">
|
42: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">exactize</span> <span class="ruby-identifier">pattern</span>
|
||||||
<a name="M000093"></a>
|
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>
|
||||||
<div class="method-heading">
|
</pre>
|
||||||
<a href="#M000093" class="method-signature">
|
</div>
|
||||||
<span class="method-name">make_command_waiting</span><span class="method-args">() {|| ...}</span>
|
</div>
|
||||||
</a>
|
</div>
|
||||||
</div>
|
|
||||||
|
<div id="method-M000154" class="method-detail">
|
||||||
<div class="method-description">
|
<a name="M000154"></a>
|
||||||
<p>
|
|
||||||
Re routes commands in the provided block to <a
|
<div class="method-heading">
|
||||||
href="TestBuilder.html#M000092">command_and_wait</a> instead of <a
|
<a href="#M000154" class="method-signature">
|
||||||
href="TestBuilder.html#M000090">command</a>.
|
<span class="method-name">make_command_waiting</span><span class="method-args">() {|| ...}</span>
|
||||||
</p>
|
</a>
|
||||||
<p><a class="source-toggle" href="#"
|
</div>
|
||||||
onclick="toggleCode('M000093-source');return false;">[Source]</a></p>
|
|
||||||
<div class="method-source-code" id="M000093-source">
|
<div class="method-description">
|
||||||
<pre>
|
<p>
|
||||||
<span class="ruby-comment cmt"># File lib/selenium_on_rails/test_builder.rb, line 58</span>
|
Re routes commands in the provided block to <a
|
||||||
58: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">make_command_waiting</span>
|
href="TestBuilder.html#M000153">command_and_wait</a> instead of <a
|
||||||
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>
|
href="TestBuilder.html#M000151">command</a>.
|
||||||
60: <span class="ruby-keyword kw">yield</span>
|
</p>
|
||||||
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>
|
<p><a class="source-toggle" href="#"
|
||||||
62: <span class="ruby-keyword kw">end</span>
|
onclick="toggleCode('M000154-source');return false;">[Source]</a></p>
|
||||||
</pre>
|
<div class="method-source-code" id="M000154-source">
|
||||||
</div>
|
<pre>
|
||||||
</div>
|
<span class="ruby-comment cmt"># File lib/selenium_on_rails/test_builder.rb, line 79</span>
|
||||||
</div>
|
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>
|
||||||
<div id="method-M000089" class="method-detail">
|
81: <span class="ruby-keyword kw">yield</span>
|
||||||
<a name="M000089"></a>
|
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>
|
||||||
<div class="method-heading">
|
</pre>
|
||||||
<a href="#M000089" class="method-signature">
|
</div>
|
||||||
<span class="method-name">table</span><span class="method-args">(title) {|self| ...}</span>
|
</div>
|
||||||
</a>
|
</div>
|
||||||
</div>
|
|
||||||
|
<div id="method-M000150" class="method-detail">
|
||||||
<div class="method-description">
|
<a name="M000150"></a>
|
||||||
<p>
|
|
||||||
Add a new table of tests, and return the HTML.
|
<div class="method-heading">
|
||||||
</p>
|
<a href="#M000150" class="method-signature">
|
||||||
<p><a class="source-toggle" href="#"
|
<span class="method-name">table</span><span class="method-args">(title) {|self| ...}</span>
|
||||||
onclick="toggleCode('M000089-source');return false;">[Source]</a></p>
|
</a>
|
||||||
<div class="method-source-code" id="M000089-source">
|
</div>
|
||||||
<pre>
|
|
||||||
<span class="ruby-comment cmt"># File lib/selenium_on_rails/test_builder.rb, line 33</span>
|
<div class="method-description">
|
||||||
33: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">table</span> <span class="ruby-identifier">title</span>
|
<p>
|
||||||
34: <span class="ruby-ivar">@xml</span>.<span class="ruby-identifier">table</span> <span class="ruby-keyword kw">do</span>
|
Add a <a href="TestBuilder.html#M000149">new</a> <a
|
||||||
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>
|
href="TestBuilder.html#M000150">table</a> of tests, and return the HTML.
|
||||||
36: <span class="ruby-keyword kw">yield</span> <span class="ruby-keyword kw">self</span>
|
</p>
|
||||||
37: <span class="ruby-keyword kw">end</span>
|
<p><a class="source-toggle" href="#"
|
||||||
38: <span class="ruby-keyword kw">end</span>
|
onclick="toggleCode('M000150-source');return false;">[Source]</a></p>
|
||||||
</pre>
|
<div class="method-source-code" id="M000150-source">
|
||||||
</div>
|
<pre>
|
||||||
</div>
|
<span class="ruby-comment cmt"># File lib/selenium_on_rails/test_builder.rb, line 54</span>
|
||||||
</div>
|
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>
|
||||||
</div>
|
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>
|
||||||
</div>
|
</pre>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div id="validator-badges">
|
</div>
|
||||||
<p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
|
|
||||||
</div>
|
<h3 class="section-bar">Protected Instance methods</h3>
|
||||||
|
|
||||||
</body>
|
<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>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div id="validator-badges">
|
||||||
|
<p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</body>
|
||||||
</html>
|
</html>
|
||||||
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>
|
||||||
|
|
@ -1,150 +1,150 @@
|
||||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||||
<!DOCTYPE html
|
<!DOCTYPE html
|
||||||
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
||||||
<head>
|
<head>
|
||||||
<title>Class: SeleniumOnRailsConfig</title>
|
<title>Class: SeleniumOnRailsConfig</title>
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
||||||
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
||||||
<link rel="stylesheet" href=".././rdoc-style.css" type="text/css" media="screen" />
|
<link rel="stylesheet" href=".././rdoc-style.css" type="text/css" media="screen" />
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
// <![CDATA[
|
// <![CDATA[
|
||||||
|
|
||||||
function popupCode( url ) {
|
function popupCode( url ) {
|
||||||
window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
|
window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
|
||||||
}
|
}
|
||||||
|
|
||||||
function toggleCode( id ) {
|
function toggleCode( id ) {
|
||||||
if ( document.getElementById )
|
if ( document.getElementById )
|
||||||
elem = document.getElementById( id );
|
elem = document.getElementById( id );
|
||||||
else if ( document.all )
|
else if ( document.all )
|
||||||
elem = eval( "document.all." + id );
|
elem = eval( "document.all." + id );
|
||||||
else
|
else
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
elemStyle = elem.style;
|
elemStyle = elem.style;
|
||||||
|
|
||||||
if ( elemStyle.display != "block" ) {
|
if ( elemStyle.display != "block" ) {
|
||||||
elemStyle.display = "block"
|
elemStyle.display = "block"
|
||||||
} else {
|
} else {
|
||||||
elemStyle.display = "none"
|
elemStyle.display = "none"
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Make codeblocks hidden by default
|
// Make codeblocks hidden by default
|
||||||
document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
|
document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
|
||||||
|
|
||||||
// ]]>
|
// ]]>
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div id="classHeader">
|
<div id="classHeader">
|
||||||
<table class="header-table">
|
<table class="header-table">
|
||||||
<tr class="top-aligned-row">
|
<tr class="top-aligned-row">
|
||||||
<td><strong>Class</strong></td>
|
<td><strong>Class</strong></td>
|
||||||
<td class="class-name-in-header">SeleniumOnRailsConfig</td>
|
<td class="class-name-in-header">SeleniumOnRailsConfig</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="top-aligned-row">
|
<tr class="top-aligned-row">
|
||||||
<td><strong>In:</strong></td>
|
<td><strong>In:</strong></td>
|
||||||
<td>
|
<td>
|
||||||
<a href="../files/lib/selenium_on_rails_config_rb.html">
|
<a href="../files/lib/selenium_on_rails_config_rb.html">
|
||||||
lib/selenium_on_rails_config.rb
|
lib/selenium_on_rails_config.rb
|
||||||
</a>
|
</a>
|
||||||
<br />
|
<br />
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
<tr class="top-aligned-row">
|
<tr class="top-aligned-row">
|
||||||
<td><strong>Parent:</strong></td>
|
<td><strong>Parent:</strong></td>
|
||||||
<td>
|
<td>
|
||||||
Object
|
Object
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
<!-- banner header -->
|
<!-- banner header -->
|
||||||
|
|
||||||
<div id="bodyContent">
|
<div id="bodyContent">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div id="contextContent">
|
<div id="contextContent">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="method-list">
|
<div id="method-list">
|
||||||
<h3 class="section-bar">Methods</h3>
|
<h3 class="section-bar">Methods</h3>
|
||||||
|
|
||||||
<div class="name-list">
|
<div class="name-list">
|
||||||
<a href="#M000007">get</a>
|
<a href="#M000007">get</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<!-- if includes -->
|
<!-- if includes -->
|
||||||
|
|
||||||
<div id="section">
|
<div id="section">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<!-- if method_list -->
|
<!-- if method_list -->
|
||||||
<div id="methods">
|
<div id="methods">
|
||||||
<h3 class="section-bar">Public Class methods</h3>
|
<h3 class="section-bar">Public Class methods</h3>
|
||||||
|
|
||||||
<div id="method-M000007" class="method-detail">
|
<div id="method-M000007" class="method-detail">
|
||||||
<a name="M000007"></a>
|
<a name="M000007"></a>
|
||||||
|
|
||||||
<div class="method-heading">
|
<div class="method-heading">
|
||||||
<a href="#M000007" class="method-signature">
|
<a href="#M000007" class="method-signature">
|
||||||
<span class="method-name">get</span><span class="method-args">(var, default = nil) {|if block_given?| ...}</span>
|
<span class="method-name">get</span><span class="method-args">(var, default = nil) {|if block_given?| ...}</span>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="method-description">
|
<div class="method-description">
|
||||||
<p><a class="source-toggle" href="#"
|
<p><a class="source-toggle" href="#"
|
||||||
onclick="toggleCode('M000007-source');return false;">[Source]</a></p>
|
onclick="toggleCode('M000007-source');return false;">[Source]</a></p>
|
||||||
<div class="method-source-code" id="M000007-source">
|
<div class="method-source-code" id="M000007-source">
|
||||||
<pre>
|
<pre>
|
||||||
<span class="ruby-comment cmt"># File lib/selenium_on_rails_config.rb, line 5</span>
|
<span class="ruby-comment cmt"># File lib/selenium_on_rails_config.rb, line 5</span>
|
||||||
5: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">get</span> <span class="ruby-identifier">var</span>, <span class="ruby-identifier">default</span> = <span class="ruby-keyword kw">nil</span>
|
5: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">get</span> <span class="ruby-identifier">var</span>, <span class="ruby-identifier">default</span> = <span class="ruby-keyword kw">nil</span>
|
||||||
6: <span class="ruby-identifier">value</span> = <span class="ruby-identifier">configs</span>[<span class="ruby-identifier">var</span>.<span class="ruby-identifier">to_s</span>]
|
6: <span class="ruby-identifier">value</span> = <span class="ruby-identifier">configs</span>[<span class="ruby-identifier">var</span>.<span class="ruby-identifier">to_s</span>]
|
||||||
7: <span class="ruby-identifier">value</span> <span class="ruby-operator">||=</span> <span class="ruby-ivar">@@defaults</span>[<span class="ruby-identifier">var</span>]
|
7: <span class="ruby-identifier">value</span> <span class="ruby-operator">||=</span> <span class="ruby-ivar">@@defaults</span>[<span class="ruby-identifier">var</span>]
|
||||||
8: <span class="ruby-identifier">value</span> <span class="ruby-operator">||=</span> <span class="ruby-identifier">default</span>
|
8: <span class="ruby-identifier">value</span> <span class="ruby-operator">||=</span> <span class="ruby-identifier">default</span>
|
||||||
9: <span class="ruby-identifier">value</span> <span class="ruby-operator">||=</span> <span class="ruby-keyword kw">yield</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">block_given?</span>
|
9: <span class="ruby-identifier">value</span> <span class="ruby-operator">||=</span> <span class="ruby-keyword kw">yield</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">block_given?</span>
|
||||||
10: <span class="ruby-identifier">value</span>
|
10: <span class="ruby-identifier">value</span>
|
||||||
11: <span class="ruby-keyword kw">end</span>
|
11: <span class="ruby-keyword kw">end</span>
|
||||||
</pre>
|
</pre>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div id="validator-badges">
|
<div id="validator-badges">
|
||||||
<p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
|
<p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</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>
|
||||||
|
|
@ -1,388 +1,372 @@
|
||||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||||
<!DOCTYPE html
|
<!DOCTYPE html
|
||||||
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
||||||
<head>
|
<head>
|
||||||
<title>File: README</title>
|
<title>File: README</title>
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
||||||
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
||||||
<link rel="stylesheet" href=".././rdoc-style.css" type="text/css" media="screen" />
|
<link rel="stylesheet" href=".././rdoc-style.css" type="text/css" media="screen" />
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
// <![CDATA[
|
// <![CDATA[
|
||||||
|
|
||||||
function popupCode( url ) {
|
function popupCode( url ) {
|
||||||
window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
|
window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
|
||||||
}
|
}
|
||||||
|
|
||||||
function toggleCode( id ) {
|
function toggleCode( id ) {
|
||||||
if ( document.getElementById )
|
if ( document.getElementById )
|
||||||
elem = document.getElementById( id );
|
elem = document.getElementById( id );
|
||||||
else if ( document.all )
|
else if ( document.all )
|
||||||
elem = eval( "document.all." + id );
|
elem = eval( "document.all." + id );
|
||||||
else
|
else
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
elemStyle = elem.style;
|
elemStyle = elem.style;
|
||||||
|
|
||||||
if ( elemStyle.display != "block" ) {
|
if ( elemStyle.display != "block" ) {
|
||||||
elemStyle.display = "block"
|
elemStyle.display = "block"
|
||||||
} else {
|
} else {
|
||||||
elemStyle.display = "none"
|
elemStyle.display = "none"
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Make codeblocks hidden by default
|
// Make codeblocks hidden by default
|
||||||
document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
|
document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
|
||||||
|
|
||||||
// ]]>
|
// ]]>
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div id="fileHeader">
|
<div id="fileHeader">
|
||||||
<h1>README</h1>
|
<h1>README</h1>
|
||||||
<table class="header-table">
|
<table class="header-table">
|
||||||
<tr class="top-aligned-row">
|
<tr class="top-aligned-row">
|
||||||
<td><strong>Path:</strong></td>
|
<td><strong>Path:</strong></td>
|
||||||
<td>README
|
<td>README
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="top-aligned-row">
|
<tr class="top-aligned-row">
|
||||||
<td><strong>Last Update:</strong></td>
|
<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>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
<!-- banner header -->
|
<!-- banner header -->
|
||||||
|
|
||||||
<div id="bodyContent">
|
<div id="bodyContent">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div id="contextContent">
|
<div id="contextContent">
|
||||||
|
|
||||||
<div id="description">
|
<div id="description">
|
||||||
<h1>Selenium on Rails</h1>
|
<h1>Selenium on Rails</h1>
|
||||||
<h2>Overview</h2>
|
<h2>Overview</h2>
|
||||||
<p>
|
<p>
|
||||||
Selenium on Rails provides an easy way to test Rails application with <a
|
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>
|
||||||
<p>
|
<p>
|
||||||
This plugin does four things:
|
This plugin does four things:
|
||||||
</p>
|
</p>
|
||||||
<ol>
|
<ol>
|
||||||
<li>The Selenium Core files don’t have to pollute <tt>/public</tt>, they
|
<li>The Selenium Core files don‘t have to pollute <tt>/public</tt>.
|
||||||
can stay in the Selenium gem or in <tt>/vendor/selenium</tt>.
|
|
||||||
|
</li>
|
||||||
</li>
|
<li>No need to create suite files, they are generated on the fly — one
|
||||||
<li>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).
|
||||||
suite per directory in <tt>/test/selenium</tt> (suites can be nested).
|
|
||||||
|
</li>
|
||||||
</li>
|
<li>Instead of writing the test cases in HTML you can use a number of better
|
||||||
<li>Instead of writing the test cases in HTML you can use a number of better
|
formats (see <tt>Formats</tt>).
|
||||||
formats (see <tt>Formats</tt>).
|
|
||||||
|
</li>
|
||||||
</li>
|
<li>Loading of fixtures and wiping of session (<tt>/selenium/setup</tt>).
|
||||||
<li>Loading of fixtures and wiping of session (<tt>/selenium/setup</tt>).
|
|
||||||
|
</li>
|
||||||
</li>
|
</ol>
|
||||||
</ol>
|
<h2>Installation</h2>
|
||||||
<h2>Installation</h2>
|
<ol>
|
||||||
<ol>
|
<li>Install Selenium on Rails: <tt>script/plugin install <a
|
||||||
<li>Selenium Core needs to be available. It could either be installed as a gem
|
href="http://svn.openqa.org/svn/selenium-on-rails/selenium-on-rails">svn.openqa.org/svn/selenium-on-rails/selenium-on-rails</a></tt>
|
||||||
(<tt>gem install selenium</tt>) or in <tt>/vendor/selenium/</tt>.
|
|
||||||
|
</li>
|
||||||
</li>
|
<li>If you‘re on Windows, <tt>gem install win32-open3</tt>
|
||||||
<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>
|
</li>
|
||||||
|
<li><em>If the RedCloth gem is available the Selenese test cases can use it for
|
||||||
</li>
|
better markup.</em>
|
||||||
<li><em>If RedCloth 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
|
||||||
</li>
|
to see that everything works. (If RedCloth isn‘t installed a few
|
||||||
<li>Run the Rakefile in the plugin’s directory to run the tests in order
|
tests will fail since they assume RedCloth is installed.)
|
||||||
to see that everything works. (If RedCloth isn’t installed a few
|
|
||||||
tests will fail since they assume RedCloth is installed.)
|
</li>
|
||||||
|
<li>Create a test case: <tt>script/generate selenium login</tt>
|
||||||
</li>
|
|
||||||
<li>Create a test case: <tt>script/generate selenium login</tt>
|
</li>
|
||||||
|
<li>Start the server: <tt>script/server -e test</tt>
|
||||||
</li>
|
|
||||||
<li>Start the server: <tt>script/server -e test</tt>
|
</li>
|
||||||
|
<li>Point your browser to <tt><a
|
||||||
</li>
|
href="http://localhost:3000/selenium">localhost:3000/selenium</a></tt>
|
||||||
<li>Point your browser to <tt><a
|
|
||||||
href="http://localhost:3000/selenium">http://localhost:3000/selenium</a></tt>
|
</li>
|
||||||
|
<li>If everything works as expected you should see the Selenium test runner.
|
||||||
</li>
|
The north east frame contains all your test cases (just one for now), and
|
||||||
<li>If everything works as expected you should see the Selenium test runner.
|
the north frame contains your test case.
|
||||||
The north east frame contains all your test cases (just one for now), and
|
|
||||||
the north frame contains your test case.
|
</li>
|
||||||
|
</ol>
|
||||||
</li>
|
<h2>Formats</h2>
|
||||||
</ol>
|
<p>
|
||||||
<h3>win32-open3</h3>
|
The test cases can be written in a number of formats. Which one you choose
|
||||||
<p>
|
is a matter of taste. You can generate your test files by running
|
||||||
<a href="http://raa.ruby-lang.org/project/win32-open3/">win32-open3</a> is
|
<tt>script/generate selenium</tt> or by creating them manually in your
|
||||||
needed if you’re on Windows and want to run your tests as a Rake task
|
<tt>/test/selenium</tt> directory.
|
||||||
(see <tt>test:acceptance</tt>), i.e. you don’t have to install it but
|
</p>
|
||||||
it’s recommended.
|
<h3>Selenese, .sel</h3>
|
||||||
</p>
|
<p>
|
||||||
<p>
|
Selenese is the dumbest format (in a good way). You just write your
|
||||||
You can build it from source or install the binary:
|
commands delimited by | characters.
|
||||||
</p>
|
</p>
|
||||||
<ol>
|
<pre>
|
||||||
<li>Download the latest version of win32-open3, <a
|
|open|/selenium/setup|
|
||||||
href="http://rubyforge.org/frs/download.php/8515/open3-0.2.2.so">open3-0.2.2.so</a>
|
|open|/|
|
||||||
at the time of this writing.
|
|goBack|
|
||||||
|
</pre>
|
||||||
</li>
|
<p>
|
||||||
<li>Open up irb and run this snippet: <tt>require ‘rbconfig’;
|
If you don‘t want to write Selenese tests by hand you can use <a
|
||||||
include Config; puts CONFIG[‘sitearchdir’]</tt>
|
href="http://www.openqa.org/selenium-ide/">SeleniumIDE</a> which has <a
|
||||||
|
href="http://wiki.openqa.org/display/SIDE/SeleniumOnRails">support</a> for
|
||||||
</li>
|
Selenese.
|
||||||
<li>Create a <tt>win32</tt> directory under the directory you got, e.g.
|
</p>
|
||||||
<tt>c:\ruby\lib\ruby\site_ruby\1.8\i386-msvcrt</tt>
|
<p>
|
||||||
|
SeleniumIDE makes it super easy to record test and edit them.
|
||||||
</li>
|
</p>
|
||||||
<li>Rename the .so file to <tt>open3.so</tt> and put it in the <tt>win32</tt>
|
<h3>RSelenese, .rsel</h3>
|
||||||
directory.
|
<p>
|
||||||
|
RSelenese enable you to write your tests in Ruby.
|
||||||
</li>
|
</p>
|
||||||
<li>Profit! (unless you get an error when doing <tt>require
|
<pre>
|
||||||
‘win32/open3‘</tt>)
|
setup :fixtures => :all
|
||||||
|
open '/'
|
||||||
</li>
|
assert_title 'Home'
|
||||||
</ol>
|
('a'..'z').each {|c| open :controller => 'user', :action => 'create', :name => c }
|
||||||
<h2>Formats</h2>
|
</pre>
|
||||||
<p>
|
<p>
|
||||||
The test cases can be written in a number of formats. Which one you choose
|
See <a
|
||||||
is a matter of taste. You can generate your test files by running
|
href="../classes/SeleniumOnRails/TestBuilder.html">SeleniumOnRails::TestBuilder</a>
|
||||||
<tt>script/generate selenium</tt> or by creating them manually in your
|
for available commands.
|
||||||
<tt>/test/selenium</tt> directory.
|
</p>
|
||||||
</p>
|
<h3>HTML/RHTML</h3>
|
||||||
<h3>Selenese, .sel</h3>
|
<p>
|
||||||
<p>
|
You can write your tests in HTML/RHTML but that‘s mostly useful if
|
||||||
Selenese is the dumbest format (in a good way). You just write your
|
you have existing tests you want to reuse.
|
||||||
commands delimited by | characters.
|
</p>
|
||||||
</p>
|
<h3>Partial test cases</h3>
|
||||||
<pre>
|
<p>
|
||||||
|open|/selenium/setup|
|
If you have some common actions you want to do in several test cases you
|
||||||
|open|/|
|
can put them in a separate partial test case and include them in your other
|
||||||
|goBack|
|
test cases.
|
||||||
</pre>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
If you don’t want to write Selenese tests by hand you can use <a
|
A partial test case is just like a normal test case besides that its
|
||||||
href="http://www.openqa.org/selenium-ide/">SeleniumIDE</a> which has <a
|
filename has to start with _:
|
||||||
href="http://wiki.openqa.org/display/SIDE/SeleniumOnRails">support</a> for
|
</p>
|
||||||
Selenese.
|
<pre>
|
||||||
</p>
|
#_login.rsel
|
||||||
<p>
|
open '/login'
|
||||||
SeleniumIDE makes it super easy to record test and edit them.
|
type 'name', name
|
||||||
</p>
|
type 'password', password
|
||||||
<h3>RSelenese, .rsel</h3>
|
click 'submit', :wait=>true
|
||||||
<p>
|
</pre>
|
||||||
RSelenese enable you to write your tests in Ruby.
|
<p>
|
||||||
</p>
|
To include a partial test case you write like this in a Selenese test case:
|
||||||
<pre>
|
</p>
|
||||||
setup :fixtures => :all
|
<pre>
|
||||||
open '/'
|
|includePartial|login|name=John Doe|password=eoD nhoJ|
|
||||||
assert_title 'Home'
|
</pre>
|
||||||
('a'..'z').each {|c| open :controller => 'user', :action => 'create', :name => c }
|
<p>
|
||||||
</pre>
|
in a RSelenese test case:
|
||||||
<p>
|
</p>
|
||||||
See <a
|
<pre>
|
||||||
href="../classes/SeleniumOnRails/TestBuilder.html">SeleniumOnRails::TestBuilder</a>
|
include_partial 'login', :name => 'Jane Doe', :password => 'Jane Doe'.reverse
|
||||||
for available commands.
|
</pre>
|
||||||
</p>
|
<p>
|
||||||
<h3>HTML/RHTML</h3>
|
and in a RHTML test case:
|
||||||
<p>
|
</p>
|
||||||
You can write your tests in HTML/RHTML but that’s mostly useful if
|
<pre>
|
||||||
you have existing tests you want to reuse.
|
<%= render :partial => 'login', :locals => {:name = 'Joe Schmo', :password => 'Joe Schmo'.reverse} %>
|
||||||
</p>
|
</pre>
|
||||||
<h3>Partial test cases</h3>
|
<h2>Configuration</h2>
|
||||||
<p>
|
<p>
|
||||||
If you have some common actions you want to do in several test cases you
|
There are a number of settings available. You make them by renaming
|
||||||
can put them in a separate partial test case and include them in your other
|
<tt>config.yml.example</tt> to <tt>config.yml</tt> and make your changes in
|
||||||
test cases.
|
that file.
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<h3>Environments</h3>
|
||||||
A partial test case is just like a normal test case besides that its
|
<p>
|
||||||
filename has to start with _:
|
Per default this plugin is only available in test environment. You can
|
||||||
</p>
|
change this by setting <tt>environments</tt>, such as:
|
||||||
<pre>
|
</p>
|
||||||
#_login.rsel
|
<pre>
|
||||||
open '/login'
|
#config.yml
|
||||||
type 'name', name
|
environments:
|
||||||
type 'password', password
|
- test
|
||||||
click 'submit', :wait=>true
|
- development
|
||||||
</pre>
|
</pre>
|
||||||
<p>
|
<h3>Selenium Core path</h3>
|
||||||
To include a partial test case you write like this in a Selenese test case:
|
<p>
|
||||||
</p>
|
If you don‘t want to use the bundled Selenium Core version you can
|
||||||
<pre>
|
set <tt>selenium_path</tt> to the directory where Selenium Core is stored.
|
||||||
|includePartial|login|name=John Doe|password=eoD nhoJ|
|
</p>
|
||||||
</pre>
|
<pre>
|
||||||
<p>
|
#config.yml
|
||||||
in a RSelenese test case:
|
selenium_path: 'c:\selenium'
|
||||||
</p>
|
</pre>
|
||||||
<pre>
|
<h2><tt>test:acceptance</tt></h2>
|
||||||
include_partial 'login', :name => 'Jane Doe', :password => 'Jane Doe'.reverse
|
<p>
|
||||||
</pre>
|
You can run all your Selenium tests as a Rake task.
|
||||||
<p>
|
</p>
|
||||||
and in a RHTML test case:
|
<p>
|
||||||
</p>
|
First, if you‘re on Windows, you have to make sure win32-open3 is
|
||||||
<pre>
|
installed. Then you have to configure which browsers you want to run, like
|
||||||
<%= render :partial => 'login', :locals => {:name = 'Joe Schmo', :password => 'Joe Schmo'.reverse} %>
|
this:
|
||||||
</pre>
|
</p>
|
||||||
<h2>Configuration</h2>
|
<pre>
|
||||||
<p>
|
#config.yml
|
||||||
There are a number of settings available. You make them by renaming
|
browsers:
|
||||||
<tt>config.yml.example</tt> to <tt>config.yml</tt> and make your changes in
|
firefox: 'c:\Program Files\Mozilla Firefox\firefox.exe'
|
||||||
that file.
|
ie: 'c:\Program Files\Internet Explorer\iexplore.exe'
|
||||||
</p>
|
</pre>
|
||||||
<h3>Environments</h3>
|
<p>
|
||||||
<p>
|
Now you‘re all set. First start a server:
|
||||||
Per default this plugin is only available in test environment. You can
|
</p>
|
||||||
change this by setting <tt>environments</tt>, such as:
|
<pre>
|
||||||
</p>
|
script/server -e test
|
||||||
<pre>
|
</pre>
|
||||||
#config.yml
|
<p>
|
||||||
environments:
|
Then run the tests:
|
||||||
- test
|
</p>
|
||||||
- development
|
<pre>
|
||||||
</pre>
|
rake test:acceptance
|
||||||
<h2><tt>test:acceptance</tt></h2>
|
</pre>
|
||||||
<p>
|
<p>
|
||||||
You can run all your Selenium tests as a Rake task.
|
Now it should work, otherwise let me know!
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<h3>Store results</h3>
|
||||||
First, if you’re on Windows, you have to make sure win32-open3 is
|
<p>
|
||||||
installed. Then you have to configure which browsers you want to run, like
|
If you want to store the results from a <tt>test:acceptance</tt> you just
|
||||||
this:
|
need to set in which directory they should be stored:
|
||||||
</p>
|
</p>
|
||||||
<pre>
|
<pre>
|
||||||
#config.yml
|
#config.yml
|
||||||
browsers:
|
result_dir: 'c:\result'
|
||||||
firefox: 'c:\Program Files\Mozilla Firefox\firefox.exe'
|
</pre>
|
||||||
ie: 'c:\Program Files\Internet Explorer\iexplore.exe'
|
<p>
|
||||||
</pre>
|
So when you run <tt>rake test:acceptance</tt> the tables with the results
|
||||||
<p>
|
will be stored as <tt>.html</tt> files in that directory.
|
||||||
Now you’re all set. First start a server:
|
</p>
|
||||||
</p>
|
<p>
|
||||||
<pre>
|
This can be useful especially for continous integration.
|
||||||
script/server -e test
|
</p>
|
||||||
</pre>
|
<h3>user_extension.js</h3>
|
||||||
<p>
|
<p>
|
||||||
Then run the tests:
|
Selenium has support for <tt>user_extension.js</tt> which is a way to
|
||||||
</p>
|
extend the functionality of Selenium Core. Selenium on Rails now provides
|
||||||
<pre>
|
the means for you to extend it‘s functionality to match.
|
||||||
rake test:acceptance
|
</p>
|
||||||
</pre>
|
<p>
|
||||||
<p>
|
To get you started, we‘ve included the example files
|
||||||
Now it should work, otherwise let me know!
|
<tt>lib/test_builder_user_accessors.rb.example</tt> and
|
||||||
</p>
|
<tt>lib/test_builder_user_actions.rb.example</tt> that replicate the sample
|
||||||
<h3>Store results</h3>
|
extensions in Selenium Core‘s <tt>user-extensions.js.sample</tt>
|
||||||
<p>
|
</p>
|
||||||
If you want to store the results from a <tt>test:acceptance</tt> you just
|
<p>
|
||||||
need to set in which directory they should be stored:
|
To get these examples running, simply remove the .example and .sample
|
||||||
</p>
|
extensions from the files and restart your server.
|
||||||
<pre>
|
</p>
|
||||||
#config.yml
|
<h2>Todo</h2>
|
||||||
result_dir: 'c:\result'
|
<h3>Standalone mode</h3>
|
||||||
</pre>
|
<p>
|
||||||
<p>
|
More work is needed on <tt>test:acceptance</tt> on Windows to be able to
|
||||||
So when you run <tt>rake test:acceptance</tt> the tables with the results
|
start the server when needed.
|
||||||
will be stored as <tt>.html</tt> files in that directory.
|
</p>
|
||||||
</p>
|
<h3>More setup/teardown support?</h3>
|
||||||
<p>
|
<p>
|
||||||
This can be useful especially for continous integration.
|
Currently there is only support to load fixtures and to wipe the session in
|
||||||
</p>
|
<tt>/selenium/setup</tt>. Is there a need for more kinds of setups or
|
||||||
<h2>Todo</h2>
|
teardowns?
|
||||||
<h3>Standalone mode</h3>
|
</p>
|
||||||
<p>
|
<h3>More documentation</h3>
|
||||||
More work is needed on <tt>test:acceptance</tt> on Windows to be able to
|
<h2>Not todo</h2>
|
||||||
start the server when needed.
|
<h3>Editor</h3>
|
||||||
</p>
|
<p>
|
||||||
<h3>user_extension.js</h3>
|
Creating an editor for the test cases is currently considered out of scope
|
||||||
<p>
|
for this plugin. <a
|
||||||
Selenium has support for <tt>user_extension.js</tt> which is a way to
|
href="http://www.openqa.org/selenium-ide/">SeleniumIDE</a> does such a good
|
||||||
extend the functionality of Selenium Core. However there is currently no
|
job and has <a
|
||||||
easy way to add such a file in Selenium on Rails.
|
href="http://wiki.openqa.org/display/SIDE/SeleniumOnRails">support</a> for
|
||||||
</p>
|
the Selenese format.
|
||||||
<h3>More setup/teardown support?</h3>
|
</p>
|
||||||
<p>
|
<h2>Credits</h2>
|
||||||
Currently there is only support to load fixtures and to wipe the session in
|
<ul>
|
||||||
<tt>/selenium/setup</tt>. Is there a need for more kinds of setups or
|
<li>Jon Tirsen, <a href="http://jutopia.tirsen.com">jutopia.tirsen.com</a>
|
||||||
teardowns?
|
— initial <a
|
||||||
</p>
|
href="http://wiki.rubyonrails.com/rails/pages/SeleniumIntegration">inspiration</a>
|
||||||
<h3>More documentation</h3>
|
|
||||||
<h2>Not todo</h2>
|
</li>
|
||||||
<h3>Editor</h3>
|
<li>Eric Kidd, <a href="http://www.randomhacks.net">www.randomhacks.net</a>
|
||||||
<p>
|
— contribution of RSelenese
|
||||||
Creating an editor for the test cases is currently considered out of scope
|
|
||||||
for this plugin. <a
|
</li>
|
||||||
href="http://www.openqa.org/selenium-ide/">SeleniumIDE</a> does such a good
|
</ul>
|
||||||
job and has <a
|
<h2>Information</h2>
|
||||||
href="http://wiki.openqa.org/display/SIDE/SeleniumOnRails">support</a> for
|
<p>
|
||||||
the Selenese format.
|
For more information, check out the <a
|
||||||
</p>
|
href="http://www.openqa.org/selenium-on-rails/">website</a>.
|
||||||
<h2>Credits</h2>
|
</p>
|
||||||
<ul>
|
|
||||||
<li>Jon Tirsen, <a href="http://jutopia.tirsen.com">jutopia.tirsen.com</a>
|
</div>
|
||||||
— initial <a
|
|
||||||
href="http://wiki.rubyonrails.com/rails/pages/SeleniumIntegration">inspiration</a>
|
|
||||||
|
</div>
|
||||||
</li>
|
|
||||||
<li>Eric Kidd, <a href="http://www.randomhacks.net">www.randomhacks.net</a>
|
|
||||||
— contribution of RSelenese
|
</div>
|
||||||
|
|
||||||
</li>
|
|
||||||
</ul>
|
<!-- if includes -->
|
||||||
<h2>Information</h2>
|
|
||||||
<p>
|
<div id="section">
|
||||||
For more information, check out the <a
|
|
||||||
href="http://www.openqa.org/selenium-on-rails/">website</a>.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
<!-- if method_list -->
|
||||||
|
|
||||||
</div>
|
|
||||||
|
</div>
|
||||||
|
|
||||||
<!-- if includes -->
|
|
||||||
|
<div id="validator-badges">
|
||||||
<div id="section">
|
<p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<!-- 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>
|
|
||||||
|
|
@ -1,108 +1,108 @@
|
||||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||||
<!DOCTYPE html
|
<!DOCTYPE html
|
||||||
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
||||||
<head>
|
<head>
|
||||||
<title>File: selenium_controller.rb</title>
|
<title>File: selenium_controller.rb</title>
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
||||||
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
||||||
<link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
|
<link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
// <![CDATA[
|
// <![CDATA[
|
||||||
|
|
||||||
function popupCode( url ) {
|
function popupCode( url ) {
|
||||||
window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
|
window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
|
||||||
}
|
}
|
||||||
|
|
||||||
function toggleCode( id ) {
|
function toggleCode( id ) {
|
||||||
if ( document.getElementById )
|
if ( document.getElementById )
|
||||||
elem = document.getElementById( id );
|
elem = document.getElementById( id );
|
||||||
else if ( document.all )
|
else if ( document.all )
|
||||||
elem = eval( "document.all." + id );
|
elem = eval( "document.all." + id );
|
||||||
else
|
else
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
elemStyle = elem.style;
|
elemStyle = elem.style;
|
||||||
|
|
||||||
if ( elemStyle.display != "block" ) {
|
if ( elemStyle.display != "block" ) {
|
||||||
elemStyle.display = "block"
|
elemStyle.display = "block"
|
||||||
} else {
|
} else {
|
||||||
elemStyle.display = "none"
|
elemStyle.display = "none"
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Make codeblocks hidden by default
|
// Make codeblocks hidden by default
|
||||||
document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
|
document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
|
||||||
|
|
||||||
// ]]>
|
// ]]>
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div id="fileHeader">
|
<div id="fileHeader">
|
||||||
<h1>selenium_controller.rb</h1>
|
<h1>selenium_controller.rb</h1>
|
||||||
<table class="header-table">
|
<table class="header-table">
|
||||||
<tr class="top-aligned-row">
|
<tr class="top-aligned-row">
|
||||||
<td><strong>Path:</strong></td>
|
<td><strong>Path:</strong></td>
|
||||||
<td>lib/controllers/selenium_controller.rb
|
<td>lib/controllers/selenium_controller.rb
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="top-aligned-row">
|
<tr class="top-aligned-row">
|
||||||
<td><strong>Last Update:</strong></td>
|
<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>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
<!-- banner header -->
|
<!-- banner header -->
|
||||||
|
|
||||||
<div id="bodyContent">
|
<div id="bodyContent">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div id="contextContent">
|
<div id="contextContent">
|
||||||
|
|
||||||
|
|
||||||
<div id="requires-list">
|
<div id="requires-list">
|
||||||
<h3 class="section-bar">Required files</h3>
|
<h3 class="section-bar">Required files</h3>
|
||||||
|
|
||||||
<div class="name-list">
|
<div class="name-list">
|
||||||
webrick/httputils
|
webrick/httputils
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<!-- if includes -->
|
<!-- if includes -->
|
||||||
|
|
||||||
<div id="section">
|
<div id="section">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<!-- if method_list -->
|
<!-- if method_list -->
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div id="validator-badges">
|
<div id="validator-badges">
|
||||||
<p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
|
<p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
@ -1,101 +1,101 @@
|
||||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||||
<!DOCTYPE html
|
<!DOCTYPE html
|
||||||
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
||||||
<head>
|
<head>
|
||||||
<title>File: selenium_helper.rb</title>
|
<title>File: selenium_helper.rb</title>
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
||||||
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
||||||
<link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
|
<link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
// <![CDATA[
|
// <![CDATA[
|
||||||
|
|
||||||
function popupCode( url ) {
|
function popupCode( url ) {
|
||||||
window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
|
window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
|
||||||
}
|
}
|
||||||
|
|
||||||
function toggleCode( id ) {
|
function toggleCode( id ) {
|
||||||
if ( document.getElementById )
|
if ( document.getElementById )
|
||||||
elem = document.getElementById( id );
|
elem = document.getElementById( id );
|
||||||
else if ( document.all )
|
else if ( document.all )
|
||||||
elem = eval( "document.all." + id );
|
elem = eval( "document.all." + id );
|
||||||
else
|
else
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
elemStyle = elem.style;
|
elemStyle = elem.style;
|
||||||
|
|
||||||
if ( elemStyle.display != "block" ) {
|
if ( elemStyle.display != "block" ) {
|
||||||
elemStyle.display = "block"
|
elemStyle.display = "block"
|
||||||
} else {
|
} else {
|
||||||
elemStyle.display = "none"
|
elemStyle.display = "none"
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Make codeblocks hidden by default
|
// Make codeblocks hidden by default
|
||||||
document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
|
document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
|
||||||
|
|
||||||
// ]]>
|
// ]]>
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div id="fileHeader">
|
<div id="fileHeader">
|
||||||
<h1>selenium_helper.rb</h1>
|
<h1>selenium_helper.rb</h1>
|
||||||
<table class="header-table">
|
<table class="header-table">
|
||||||
<tr class="top-aligned-row">
|
<tr class="top-aligned-row">
|
||||||
<td><strong>Path:</strong></td>
|
<td><strong>Path:</strong></td>
|
||||||
<td>lib/selenium_helper.rb
|
<td>lib/selenium_helper.rb
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="top-aligned-row">
|
<tr class="top-aligned-row">
|
||||||
<td><strong>Last Update:</strong></td>
|
<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>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
<!-- banner header -->
|
<!-- banner header -->
|
||||||
|
|
||||||
<div id="bodyContent">
|
<div id="bodyContent">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div id="contextContent">
|
<div id="contextContent">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<!-- if includes -->
|
<!-- if includes -->
|
||||||
|
|
||||||
<div id="section">
|
<div id="section">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<!-- if method_list -->
|
<!-- if method_list -->
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div id="validator-badges">
|
<div id="validator-badges">
|
||||||
<p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
|
<p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
@ -1,207 +1,222 @@
|
||||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||||
<!DOCTYPE html
|
<!DOCTYPE html
|
||||||
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
||||||
<head>
|
<head>
|
||||||
<title>File: acceptance_test_runner.rb</title>
|
<title>File: acceptance_test_runner.rb</title>
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
||||||
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
||||||
<link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
|
<link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
// <![CDATA[
|
// <![CDATA[
|
||||||
|
|
||||||
function popupCode( url ) {
|
function popupCode( url ) {
|
||||||
window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
|
window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
|
||||||
}
|
}
|
||||||
|
|
||||||
function toggleCode( id ) {
|
function toggleCode( id ) {
|
||||||
if ( document.getElementById )
|
if ( document.getElementById )
|
||||||
elem = document.getElementById( id );
|
elem = document.getElementById( id );
|
||||||
else if ( document.all )
|
else if ( document.all )
|
||||||
elem = eval( "document.all." + id );
|
elem = eval( "document.all." + id );
|
||||||
else
|
else
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
elemStyle = elem.style;
|
elemStyle = elem.style;
|
||||||
|
|
||||||
if ( elemStyle.display != "block" ) {
|
if ( elemStyle.display != "block" ) {
|
||||||
elemStyle.display = "block"
|
elemStyle.display = "block"
|
||||||
} else {
|
} else {
|
||||||
elemStyle.display = "none"
|
elemStyle.display = "none"
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Make codeblocks hidden by default
|
// Make codeblocks hidden by default
|
||||||
document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
|
document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
|
||||||
|
|
||||||
// ]]>
|
// ]]>
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div id="fileHeader">
|
<div id="fileHeader">
|
||||||
<h1>acceptance_test_runner.rb</h1>
|
<h1>acceptance_test_runner.rb</h1>
|
||||||
<table class="header-table">
|
<table class="header-table">
|
||||||
<tr class="top-aligned-row">
|
<tr class="top-aligned-row">
|
||||||
<td><strong>Path:</strong></td>
|
<td><strong>Path:</strong></td>
|
||||||
<td>lib/selenium_on_rails/acceptance_test_runner.rb
|
<td>lib/selenium_on_rails/acceptance_test_runner.rb
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="top-aligned-row">
|
<tr class="top-aligned-row">
|
||||||
<td><strong>Last Update:</strong></td>
|
<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>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
<!-- banner header -->
|
<!-- banner header -->
|
||||||
|
|
||||||
<div id="bodyContent">
|
<div id="bodyContent">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div id="contextContent">
|
<div id="contextContent">
|
||||||
|
|
||||||
|
|
||||||
<div id="requires-list">
|
<div id="requires-list">
|
||||||
<h3 class="section-bar">Required files</h3>
|
<h3 class="section-bar">Required files</h3>
|
||||||
|
|
||||||
<div class="name-list">
|
<div class="name-list">
|
||||||
net/http
|
net/http
|
||||||
tempfile
|
tempfile
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="method-list">
|
<div id="method-list">
|
||||||
<h3 class="section-bar">Methods</h3>
|
<h3 class="section-bar">Methods</h3>
|
||||||
|
|
||||||
<div class="name-list">
|
<div class="name-list">
|
||||||
<a href="#M000001">c</a>
|
<a href="#M000001">c</a>
|
||||||
<a href="#M000002">c_b</a>
|
<a href="#M000002">c_b</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<!-- if includes -->
|
<!-- if includes -->
|
||||||
|
|
||||||
<div id="section">
|
<div id="section">
|
||||||
|
|
||||||
|
|
||||||
<div id="constants-list">
|
<div id="constants-list">
|
||||||
<h3 class="section-bar">Constants</h3>
|
<h3 class="section-bar">Constants</h3>
|
||||||
|
|
||||||
<div class="name-list">
|
<div class="name-list">
|
||||||
<table summary="Constants">
|
<table summary="Constants">
|
||||||
<tr class="top-aligned-row context-row">
|
<tr class="top-aligned-row context-row">
|
||||||
<td class="context-item-name">BROWSERS</td>
|
<td class="context-item-name">BROWSERS</td>
|
||||||
<td>=</td>
|
<td>=</td>
|
||||||
<td class="context-item-value">c :browsers, {}</td>
|
<td class="context-item-value">c :browsers, {}</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="top-aligned-row context-row">
|
<tr class="top-aligned-row context-row">
|
||||||
<td class="context-item-name">REUSE_EXISTING_SERVER</td>
|
<td class="context-item-name">REUSE_EXISTING_SERVER</td>
|
||||||
<td>=</td>
|
<td>=</td>
|
||||||
<td class="context-item-value">c :reuse_existing_server, true</td>
|
<td class="context-item-value">c :reuse_existing_server, true</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="top-aligned-row context-row">
|
<tr class="top-aligned-row context-row">
|
||||||
<td class="context-item-name">START_SERVER</td>
|
<td class="context-item-name">START_SERVER</td>
|
||||||
<td>=</td>
|
<td>=</td>
|
||||||
<td class="context-item-value">c :start_server, false</td>
|
<td class="context-item-value">c :start_server, false</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="top-aligned-row context-row">
|
<tr class="top-aligned-row context-row">
|
||||||
<td class="context-item-name">PORTS</td>
|
<td class="context-item-name">HOST</td>
|
||||||
<td>=</td>
|
<td>=</td>
|
||||||
<td class="context-item-value">c(:port_start, 3000)..c(:port_end, 3005)</td>
|
<td class="context-item-value">c :host, 'localhost'</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="top-aligned-row context-row">
|
<tr class="top-aligned-row context-row">
|
||||||
<td class="context-item-name">TEST_RUNNER_URL</td>
|
<td class="context-item-name">PORTS</td>
|
||||||
<td>=</td>
|
<td>=</td>
|
||||||
<td class="context-item-value">c :test_runner_url, '/selenium/TestRunner.html'</td>
|
<td class="context-item-value">c(:port_start, 3000)..c(:port_end, 3005)</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="top-aligned-row context-row">
|
<tr class="top-aligned-row context-row">
|
||||||
<td class="context-item-name">MAX_BROWSER_DURATION</td>
|
<td class="context-item-name">BASE_URL_PATH</td>
|
||||||
<td>=</td>
|
<td>=</td>
|
||||||
<td class="context-item-value">c :max_browser_duration, 2*60</td>
|
<td class="context-item-value">c :base_url_path, '/'</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="top-aligned-row context-row">
|
<tr class="top-aligned-row context-row">
|
||||||
<td class="context-item-name">SERVER_COMMAND</td>
|
<td class="context-item-name">TEST_RUNNER_URL</td>
|
||||||
<td>=</td>
|
<td>=</td>
|
||||||
<td class="context-item-value">c_b :server_command do server_path = File.expand_path(File.dirname(__FILE__) + '/../../../../../script/server')</td>
|
<td class="context-item-value">c :test_runner_url, '/selenium/TestRunner.html'</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
<tr class="top-aligned-row context-row">
|
||||||
</div>
|
<td class="context-item-name">MAX_BROWSER_DURATION</td>
|
||||||
</div>
|
<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>
|
||||||
<!-- if method_list -->
|
</tr>
|
||||||
<div id="methods">
|
<tr class="top-aligned-row context-row">
|
||||||
<h3 class="section-bar">Public Instance methods</h3>
|
<td class="context-item-name">SERVER_COMMAND</td>
|
||||||
|
<td>=</td>
|
||||||
<div id="method-M000001" class="method-detail">
|
<td class="context-item-value">c_b :server_command do
server_path = File.expand_path(File.dirname(__FILE__) + '/../../../../../script/server')</td>
|
||||||
<a name="M000001"></a>
|
</tr>
|
||||||
|
</table>
|
||||||
<div class="method-heading">
|
</div>
|
||||||
<a href="#M000001" class="method-signature">
|
</div>
|
||||||
<span class="method-name">c</span><span class="method-args">(var, default = nil)</span>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="method-description">
|
|
||||||
<p><a class="source-toggle" href="#"
|
|
||||||
onclick="toggleCode('M000001-source');return false;">[Source]</a></p>
|
<!-- if method_list -->
|
||||||
<div class="method-source-code" id="M000001-source">
|
<div id="methods">
|
||||||
<pre>
|
<h3 class="section-bar">Public Instance methods</h3>
|
||||||
<span class="ruby-comment cmt"># File lib/selenium_on_rails/acceptance_test_runner.rb, line 7</span>
|
|
||||||
7: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">c</span>(<span class="ruby-identifier">var</span>, <span class="ruby-identifier">default</span> = <span class="ruby-keyword kw">nil</span>) <span class="ruby-constant">SeleniumOnRailsConfig</span>.<span class="ruby-identifier">get</span> <span class="ruby-identifier">var</span>, <span class="ruby-identifier">default</span> <span class="ruby-keyword kw">end</span>
|
<div id="method-M000001" class="method-detail">
|
||||||
</pre>
|
<a name="M000001"></a>
|
||||||
</div>
|
|
||||||
</div>
|
<div class="method-heading">
|
||||||
</div>
|
<a href="#M000001" class="method-signature">
|
||||||
|
<span class="method-name">c</span><span class="method-args">(var, default = nil)</span>
|
||||||
<div id="method-M000002" class="method-detail">
|
</a>
|
||||||
<a name="M000002"></a>
|
</div>
|
||||||
|
|
||||||
<div class="method-heading">
|
<div class="method-description">
|
||||||
<a href="#M000002" class="method-signature">
|
<p><a class="source-toggle" href="#"
|
||||||
<span class="method-name">c_b</span><span class="method-args">(var, default = nil) {|| ...}</span>
|
onclick="toggleCode('M000001-source');return false;">[Source]</a></p>
|
||||||
</a>
|
<div class="method-source-code" id="M000001-source">
|
||||||
</div>
|
<pre>
|
||||||
|
<span class="ruby-comment cmt"># File lib/selenium_on_rails/acceptance_test_runner.rb, line 7</span>
|
||||||
<div class="method-description">
|
7: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">c</span>(<span class="ruby-identifier">var</span>, <span class="ruby-identifier">default</span> = <span class="ruby-keyword kw">nil</span>) <span class="ruby-constant">SeleniumOnRailsConfig</span>.<span class="ruby-identifier">get</span> <span class="ruby-identifier">var</span>, <span class="ruby-identifier">default</span> <span class="ruby-keyword kw">end</span>
|
||||||
<p><a class="source-toggle" href="#"
|
</pre>
|
||||||
onclick="toggleCode('M000002-source');return false;">[Source]</a></p>
|
</div>
|
||||||
<div class="method-source-code" id="M000002-source">
|
</div>
|
||||||
<pre>
|
</div>
|
||||||
<span class="ruby-comment cmt"># File lib/selenium_on_rails/acceptance_test_runner.rb, line 8</span>
|
|
||||||
8: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">c_b</span>(<span class="ruby-identifier">var</span>, <span class="ruby-identifier">default</span> = <span class="ruby-keyword kw">nil</span>) <span class="ruby-constant">SeleniumOnRailsConfig</span>.<span class="ruby-identifier">get</span>(<span class="ruby-identifier">var</span>, <span class="ruby-identifier">default</span>) { <span class="ruby-keyword kw">yield</span> } <span class="ruby-keyword kw">end</span>
|
<div id="method-M000002" class="method-detail">
|
||||||
</pre>
|
<a name="M000002"></a>
|
||||||
</div>
|
|
||||||
</div>
|
<div class="method-heading">
|
||||||
</div>
|
<a href="#M000002" class="method-signature">
|
||||||
|
<span class="method-name">c_b</span><span class="method-args">(var, default = nil) {|| ...}</span>
|
||||||
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div class="method-description">
|
||||||
</div>
|
<p><a class="source-toggle" href="#"
|
||||||
|
onclick="toggleCode('M000002-source');return false;">[Source]</a></p>
|
||||||
|
<div class="method-source-code" id="M000002-source">
|
||||||
<div id="validator-badges">
|
<pre>
|
||||||
<p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
|
<span class="ruby-comment cmt"># File lib/selenium_on_rails/acceptance_test_runner.rb, line 8</span>
|
||||||
</div>
|
8: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">c_b</span>(<span class="ruby-identifier">var</span>, <span class="ruby-identifier">default</span> = <span class="ruby-keyword kw">nil</span>) <span class="ruby-constant">SeleniumOnRailsConfig</span>.<span class="ruby-identifier">get</span>(<span class="ruby-identifier">var</span>, <span class="ruby-identifier">default</span>) { <span class="ruby-keyword kw">yield</span> } <span class="ruby-keyword kw">end</span>
|
||||||
|
</pre>
|
||||||
</body>
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div id="validator-badges">
|
||||||
|
<p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
@ -1,108 +1,109 @@
|
||||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||||
<!DOCTYPE html
|
<!DOCTYPE html
|
||||||
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
||||||
<head>
|
<head>
|
||||||
<title>File: fixture_loader.rb</title>
|
<title>File: fixture_loader.rb</title>
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
||||||
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
||||||
<link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
|
<link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
// <![CDATA[
|
// <![CDATA[
|
||||||
|
|
||||||
function popupCode( url ) {
|
function popupCode( url ) {
|
||||||
window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
|
window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
|
||||||
}
|
}
|
||||||
|
|
||||||
function toggleCode( id ) {
|
function toggleCode( id ) {
|
||||||
if ( document.getElementById )
|
if ( document.getElementById )
|
||||||
elem = document.getElementById( id );
|
elem = document.getElementById( id );
|
||||||
else if ( document.all )
|
else if ( document.all )
|
||||||
elem = eval( "document.all." + id );
|
elem = eval( "document.all." + id );
|
||||||
else
|
else
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
elemStyle = elem.style;
|
elemStyle = elem.style;
|
||||||
|
|
||||||
if ( elemStyle.display != "block" ) {
|
if ( elemStyle.display != "block" ) {
|
||||||
elemStyle.display = "block"
|
elemStyle.display = "block"
|
||||||
} else {
|
} else {
|
||||||
elemStyle.display = "none"
|
elemStyle.display = "none"
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Make codeblocks hidden by default
|
// Make codeblocks hidden by default
|
||||||
document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
|
document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
|
||||||
|
|
||||||
// ]]>
|
// ]]>
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div id="fileHeader">
|
<div id="fileHeader">
|
||||||
<h1>fixture_loader.rb</h1>
|
<h1>fixture_loader.rb</h1>
|
||||||
<table class="header-table">
|
<table class="header-table">
|
||||||
<tr class="top-aligned-row">
|
<tr class="top-aligned-row">
|
||||||
<td><strong>Path:</strong></td>
|
<td><strong>Path:</strong></td>
|
||||||
<td>lib/selenium_on_rails/fixture_loader.rb
|
<td>lib/selenium_on_rails/fixture_loader.rb
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="top-aligned-row">
|
<tr class="top-aligned-row">
|
||||||
<td><strong>Last Update:</strong></td>
|
<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>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
<!-- banner header -->
|
<!-- banner header -->
|
||||||
|
|
||||||
<div id="bodyContent">
|
<div id="bodyContent">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div id="contextContent">
|
<div id="contextContent">
|
||||||
|
|
||||||
|
|
||||||
<div id="requires-list">
|
<div id="requires-list">
|
||||||
<h3 class="section-bar">Required files</h3>
|
<h3 class="section-bar">Required files</h3>
|
||||||
|
|
||||||
<div class="name-list">
|
<div class="name-list">
|
||||||
active_record/fixtures
|
test/unit
|
||||||
</div>
|
active_record/fixtures
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
|
||||||
|
</div>
|
||||||
|
|
||||||
</div>
|
|
||||||
|
</div>
|
||||||
|
|
||||||
<!-- if includes -->
|
|
||||||
|
<!-- if includes -->
|
||||||
<div id="section">
|
|
||||||
|
<div id="section">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<!-- if method_list -->
|
|
||||||
|
<!-- if method_list -->
|
||||||
|
|
||||||
</div>
|
|
||||||
|
</div>
|
||||||
|
|
||||||
<div id="validator-badges">
|
|
||||||
<p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
|
<div id="validator-badges">
|
||||||
</div>
|
<p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
|
||||||
|
</div>
|
||||||
</body>
|
|
||||||
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
@ -1,111 +1,111 @@
|
||||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||||
<!DOCTYPE html
|
<!DOCTYPE html
|
||||||
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
||||||
<head>
|
<head>
|
||||||
<title>File: partials_support.rb</title>
|
<title>File: partials_support.rb</title>
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
||||||
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
||||||
<link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
|
<link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
// <![CDATA[
|
// <![CDATA[
|
||||||
|
|
||||||
function popupCode( url ) {
|
function popupCode( url ) {
|
||||||
window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
|
window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
|
||||||
}
|
}
|
||||||
|
|
||||||
function toggleCode( id ) {
|
function toggleCode( id ) {
|
||||||
if ( document.getElementById )
|
if ( document.getElementById )
|
||||||
elem = document.getElementById( id );
|
elem = document.getElementById( id );
|
||||||
else if ( document.all )
|
else if ( document.all )
|
||||||
elem = eval( "document.all." + id );
|
elem = eval( "document.all." + id );
|
||||||
else
|
else
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
elemStyle = elem.style;
|
elemStyle = elem.style;
|
||||||
|
|
||||||
if ( elemStyle.display != "block" ) {
|
if ( elemStyle.display != "block" ) {
|
||||||
elemStyle.display = "block"
|
elemStyle.display = "block"
|
||||||
} else {
|
} else {
|
||||||
elemStyle.display = "none"
|
elemStyle.display = "none"
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Make codeblocks hidden by default
|
// Make codeblocks hidden by default
|
||||||
document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
|
document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
|
||||||
|
|
||||||
// ]]>
|
// ]]>
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div id="fileHeader">
|
<div id="fileHeader">
|
||||||
<h1>partials_support.rb</h1>
|
<h1>partials_support.rb</h1>
|
||||||
<table class="header-table">
|
<table class="header-table">
|
||||||
<tr class="top-aligned-row">
|
<tr class="top-aligned-row">
|
||||||
<td><strong>Path:</strong></td>
|
<td><strong>Path:</strong></td>
|
||||||
<td>lib/selenium_on_rails/partials_support.rb
|
<td>lib/selenium_on_rails/partials_support.rb
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="top-aligned-row">
|
<tr class="top-aligned-row">
|
||||||
<td><strong>Last Update:</strong></td>
|
<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>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
<!-- banner header -->
|
<!-- banner header -->
|
||||||
|
|
||||||
<div id="bodyContent">
|
<div id="bodyContent">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div id="contextContent">
|
<div id="contextContent">
|
||||||
|
|
||||||
<div id="description">
|
<div id="description">
|
||||||
<p>
|
<p>
|
||||||
Provides partials support to test cases so they can include other partial
|
Provides partials support to test cases so they can include other partial
|
||||||
test cases.
|
test cases.
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
The partial’s commands are returned as html table rows.
|
The partial‘s commands are returned as html table rows.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<!-- if includes -->
|
<!-- if includes -->
|
||||||
|
|
||||||
<div id="section">
|
<div id="section">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<!-- if method_list -->
|
<!-- if method_list -->
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div id="validator-badges">
|
<div id="validator-badges">
|
||||||
<p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
|
<p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
@ -1,101 +1,101 @@
|
||||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||||
<!DOCTYPE html
|
<!DOCTYPE html
|
||||||
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
||||||
<head>
|
<head>
|
||||||
<title>File: paths.rb</title>
|
<title>File: paths.rb</title>
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
||||||
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
||||||
<link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
|
<link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
// <![CDATA[
|
// <![CDATA[
|
||||||
|
|
||||||
function popupCode( url ) {
|
function popupCode( url ) {
|
||||||
window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
|
window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
|
||||||
}
|
}
|
||||||
|
|
||||||
function toggleCode( id ) {
|
function toggleCode( id ) {
|
||||||
if ( document.getElementById )
|
if ( document.getElementById )
|
||||||
elem = document.getElementById( id );
|
elem = document.getElementById( id );
|
||||||
else if ( document.all )
|
else if ( document.all )
|
||||||
elem = eval( "document.all." + id );
|
elem = eval( "document.all." + id );
|
||||||
else
|
else
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
elemStyle = elem.style;
|
elemStyle = elem.style;
|
||||||
|
|
||||||
if ( elemStyle.display != "block" ) {
|
if ( elemStyle.display != "block" ) {
|
||||||
elemStyle.display = "block"
|
elemStyle.display = "block"
|
||||||
} else {
|
} else {
|
||||||
elemStyle.display = "none"
|
elemStyle.display = "none"
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Make codeblocks hidden by default
|
// Make codeblocks hidden by default
|
||||||
document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
|
document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
|
||||||
|
|
||||||
// ]]>
|
// ]]>
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div id="fileHeader">
|
<div id="fileHeader">
|
||||||
<h1>paths.rb</h1>
|
<h1>paths.rb</h1>
|
||||||
<table class="header-table">
|
<table class="header-table">
|
||||||
<tr class="top-aligned-row">
|
<tr class="top-aligned-row">
|
||||||
<td><strong>Path:</strong></td>
|
<td><strong>Path:</strong></td>
|
||||||
<td>lib/selenium_on_rails/paths.rb
|
<td>lib/selenium_on_rails/paths.rb
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="top-aligned-row">
|
<tr class="top-aligned-row">
|
||||||
<td><strong>Last Update:</strong></td>
|
<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>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
<!-- banner header -->
|
<!-- banner header -->
|
||||||
|
|
||||||
<div id="bodyContent">
|
<div id="bodyContent">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div id="contextContent">
|
<div id="contextContent">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<!-- if includes -->
|
<!-- if includes -->
|
||||||
|
|
||||||
<div id="section">
|
<div id="section">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<!-- if method_list -->
|
<!-- if method_list -->
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div id="validator-badges">
|
<div id="validator-badges">
|
||||||
<p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
|
<p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
@ -1,101 +1,101 @@
|
||||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||||
<!DOCTYPE html
|
<!DOCTYPE html
|
||||||
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
||||||
<head>
|
<head>
|
||||||
<title>File: renderer.rb</title>
|
<title>File: renderer.rb</title>
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
||||||
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
||||||
<link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
|
<link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
// <![CDATA[
|
// <![CDATA[
|
||||||
|
|
||||||
function popupCode( url ) {
|
function popupCode( url ) {
|
||||||
window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
|
window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
|
||||||
}
|
}
|
||||||
|
|
||||||
function toggleCode( id ) {
|
function toggleCode( id ) {
|
||||||
if ( document.getElementById )
|
if ( document.getElementById )
|
||||||
elem = document.getElementById( id );
|
elem = document.getElementById( id );
|
||||||
else if ( document.all )
|
else if ( document.all )
|
||||||
elem = eval( "document.all." + id );
|
elem = eval( "document.all." + id );
|
||||||
else
|
else
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
elemStyle = elem.style;
|
elemStyle = elem.style;
|
||||||
|
|
||||||
if ( elemStyle.display != "block" ) {
|
if ( elemStyle.display != "block" ) {
|
||||||
elemStyle.display = "block"
|
elemStyle.display = "block"
|
||||||
} else {
|
} else {
|
||||||
elemStyle.display = "none"
|
elemStyle.display = "none"
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Make codeblocks hidden by default
|
// Make codeblocks hidden by default
|
||||||
document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
|
document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
|
||||||
|
|
||||||
// ]]>
|
// ]]>
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div id="fileHeader">
|
<div id="fileHeader">
|
||||||
<h1>renderer.rb</h1>
|
<h1>renderer.rb</h1>
|
||||||
<table class="header-table">
|
<table class="header-table">
|
||||||
<tr class="top-aligned-row">
|
<tr class="top-aligned-row">
|
||||||
<td><strong>Path:</strong></td>
|
<td><strong>Path:</strong></td>
|
||||||
<td>lib/selenium_on_rails/renderer.rb
|
<td>lib/selenium_on_rails/renderer.rb
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="top-aligned-row">
|
<tr class="top-aligned-row">
|
||||||
<td><strong>Last Update:</strong></td>
|
<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>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
<!-- banner header -->
|
<!-- banner header -->
|
||||||
|
|
||||||
<div id="bodyContent">
|
<div id="bodyContent">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div id="contextContent">
|
<div id="contextContent">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<!-- if includes -->
|
<!-- if includes -->
|
||||||
|
|
||||||
<div id="section">
|
<div id="section">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<!-- if method_list -->
|
<!-- if method_list -->
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div id="validator-badges">
|
<div id="validator-badges">
|
||||||
<p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
|
<p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
@ -1,118 +1,118 @@
|
||||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||||
<!DOCTYPE html
|
<!DOCTYPE html
|
||||||
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
||||||
<head>
|
<head>
|
||||||
<title>File: rselenese.rb</title>
|
<title>File: rselenese.rb</title>
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
||||||
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
||||||
<link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
|
<link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
// <![CDATA[
|
// <![CDATA[
|
||||||
|
|
||||||
function popupCode( url ) {
|
function popupCode( url ) {
|
||||||
window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
|
window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
|
||||||
}
|
}
|
||||||
|
|
||||||
function toggleCode( id ) {
|
function toggleCode( id ) {
|
||||||
if ( document.getElementById )
|
if ( document.getElementById )
|
||||||
elem = document.getElementById( id );
|
elem = document.getElementById( id );
|
||||||
else if ( document.all )
|
else if ( document.all )
|
||||||
elem = eval( "document.all." + id );
|
elem = eval( "document.all." + id );
|
||||||
else
|
else
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
elemStyle = elem.style;
|
elemStyle = elem.style;
|
||||||
|
|
||||||
if ( elemStyle.display != "block" ) {
|
if ( elemStyle.display != "block" ) {
|
||||||
elemStyle.display = "block"
|
elemStyle.display = "block"
|
||||||
} else {
|
} else {
|
||||||
elemStyle.display = "none"
|
elemStyle.display = "none"
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Make codeblocks hidden by default
|
// Make codeblocks hidden by default
|
||||||
document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
|
document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
|
||||||
|
|
||||||
// ]]>
|
// ]]>
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div id="fileHeader">
|
<div id="fileHeader">
|
||||||
<h1>rselenese.rb</h1>
|
<h1>rselenese.rb</h1>
|
||||||
<table class="header-table">
|
<table class="header-table">
|
||||||
<tr class="top-aligned-row">
|
<tr class="top-aligned-row">
|
||||||
<td><strong>Path:</strong></td>
|
<td><strong>Path:</strong></td>
|
||||||
<td>lib/selenium_on_rails/rselenese.rb
|
<td>lib/selenium_on_rails/rselenese.rb
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="top-aligned-row">
|
<tr class="top-aligned-row">
|
||||||
<td><strong>Last Update:</strong></td>
|
<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>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
<!-- banner header -->
|
<!-- banner header -->
|
||||||
|
|
||||||
<div id="bodyContent">
|
<div id="bodyContent">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div id="contextContent">
|
<div id="contextContent">
|
||||||
|
|
||||||
<div id="description">
|
<div id="description">
|
||||||
<p>
|
<p>
|
||||||
Renders Selenium test templates in a fashion analogous to <tt>rxml</tt> and
|
Renders Selenium test templates in a fashion analogous to <tt>rxml</tt> and
|
||||||
<tt>rjs</tt> templates.
|
<tt>rjs</tt> templates.
|
||||||
</p>
|
</p>
|
||||||
<pre>
|
<pre>
|
||||||
setup
|
setup
|
||||||
open :controller => 'customer', :action => 'list'
|
open :controller => 'customer', :action => 'list'
|
||||||
assert_title 'Customers'
|
assert_title 'Customers'
|
||||||
</pre>
|
</pre>
|
||||||
<p>
|
<p>
|
||||||
See <a
|
See <a
|
||||||
href="../../../classes/SeleniumOnRails/TestBuilder.html">SeleniumOnRails::TestBuilder</a>
|
href="../../../classes/SeleniumOnRails/TestBuilder.html">SeleniumOnRails::TestBuilder</a>
|
||||||
for a list of available commands.
|
for a list of available commands.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<!-- if includes -->
|
<!-- if includes -->
|
||||||
|
|
||||||
<div id="section">
|
<div id="section">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<!-- if method_list -->
|
<!-- if method_list -->
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div id="validator-badges">
|
<div id="validator-badges">
|
||||||
<p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
|
<p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
@ -1,101 +1,101 @@
|
||||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||||
<!DOCTYPE html
|
<!DOCTYPE html
|
||||||
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
||||||
<head>
|
<head>
|
||||||
<title>File: selenese.rb</title>
|
<title>File: selenese.rb</title>
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
||||||
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
||||||
<link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
|
<link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
// <![CDATA[
|
// <![CDATA[
|
||||||
|
|
||||||
function popupCode( url ) {
|
function popupCode( url ) {
|
||||||
window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
|
window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
|
||||||
}
|
}
|
||||||
|
|
||||||
function toggleCode( id ) {
|
function toggleCode( id ) {
|
||||||
if ( document.getElementById )
|
if ( document.getElementById )
|
||||||
elem = document.getElementById( id );
|
elem = document.getElementById( id );
|
||||||
else if ( document.all )
|
else if ( document.all )
|
||||||
elem = eval( "document.all." + id );
|
elem = eval( "document.all." + id );
|
||||||
else
|
else
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
elemStyle = elem.style;
|
elemStyle = elem.style;
|
||||||
|
|
||||||
if ( elemStyle.display != "block" ) {
|
if ( elemStyle.display != "block" ) {
|
||||||
elemStyle.display = "block"
|
elemStyle.display = "block"
|
||||||
} else {
|
} else {
|
||||||
elemStyle.display = "none"
|
elemStyle.display = "none"
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Make codeblocks hidden by default
|
// Make codeblocks hidden by default
|
||||||
document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
|
document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
|
||||||
|
|
||||||
// ]]>
|
// ]]>
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div id="fileHeader">
|
<div id="fileHeader">
|
||||||
<h1>selenese.rb</h1>
|
<h1>selenese.rb</h1>
|
||||||
<table class="header-table">
|
<table class="header-table">
|
||||||
<tr class="top-aligned-row">
|
<tr class="top-aligned-row">
|
||||||
<td><strong>Path:</strong></td>
|
<td><strong>Path:</strong></td>
|
||||||
<td>lib/selenium_on_rails/selenese.rb
|
<td>lib/selenium_on_rails/selenese.rb
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="top-aligned-row">
|
<tr class="top-aligned-row">
|
||||||
<td><strong>Last Update:</strong></td>
|
<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>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
<!-- banner header -->
|
<!-- banner header -->
|
||||||
|
|
||||||
<div id="bodyContent">
|
<div id="bodyContent">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div id="contextContent">
|
<div id="contextContent">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<!-- if includes -->
|
<!-- if includes -->
|
||||||
|
|
||||||
<div id="section">
|
<div id="section">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<!-- if method_list -->
|
<!-- if method_list -->
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div id="validator-badges">
|
<div id="validator-badges">
|
||||||
<p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
|
<p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
@ -1,101 +1,101 @@
|
||||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||||
<!DOCTYPE html
|
<!DOCTYPE html
|
||||||
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
||||||
<head>
|
<head>
|
||||||
<title>File: suite_renderer.rb</title>
|
<title>File: suite_renderer.rb</title>
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
||||||
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
||||||
<link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
|
<link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
// <![CDATA[
|
// <![CDATA[
|
||||||
|
|
||||||
function popupCode( url ) {
|
function popupCode( url ) {
|
||||||
window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
|
window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
|
||||||
}
|
}
|
||||||
|
|
||||||
function toggleCode( id ) {
|
function toggleCode( id ) {
|
||||||
if ( document.getElementById )
|
if ( document.getElementById )
|
||||||
elem = document.getElementById( id );
|
elem = document.getElementById( id );
|
||||||
else if ( document.all )
|
else if ( document.all )
|
||||||
elem = eval( "document.all." + id );
|
elem = eval( "document.all." + id );
|
||||||
else
|
else
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
elemStyle = elem.style;
|
elemStyle = elem.style;
|
||||||
|
|
||||||
if ( elemStyle.display != "block" ) {
|
if ( elemStyle.display != "block" ) {
|
||||||
elemStyle.display = "block"
|
elemStyle.display = "block"
|
||||||
} else {
|
} else {
|
||||||
elemStyle.display = "none"
|
elemStyle.display = "none"
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Make codeblocks hidden by default
|
// Make codeblocks hidden by default
|
||||||
document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
|
document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
|
||||||
|
|
||||||
// ]]>
|
// ]]>
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div id="fileHeader">
|
<div id="fileHeader">
|
||||||
<h1>suite_renderer.rb</h1>
|
<h1>suite_renderer.rb</h1>
|
||||||
<table class="header-table">
|
<table class="header-table">
|
||||||
<tr class="top-aligned-row">
|
<tr class="top-aligned-row">
|
||||||
<td><strong>Path:</strong></td>
|
<td><strong>Path:</strong></td>
|
||||||
<td>lib/selenium_on_rails/suite_renderer.rb
|
<td>lib/selenium_on_rails/suite_renderer.rb
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="top-aligned-row">
|
<tr class="top-aligned-row">
|
||||||
<td><strong>Last Update:</strong></td>
|
<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>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
<!-- banner header -->
|
<!-- banner header -->
|
||||||
|
|
||||||
<div id="bodyContent">
|
<div id="bodyContent">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div id="contextContent">
|
<div id="contextContent">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<!-- if includes -->
|
<!-- if includes -->
|
||||||
|
|
||||||
<div id="section">
|
<div id="section">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<!-- if method_list -->
|
<!-- if method_list -->
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div id="validator-badges">
|
<div id="validator-badges">
|
||||||
<p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
|
<p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
@ -1,114 +1,114 @@
|
||||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||||
<!DOCTYPE html
|
<!DOCTYPE html
|
||||||
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
||||||
<head>
|
<head>
|
||||||
<title>File: test_builder_accessors.rb</title>
|
<title>File: test_builder_accessors.rb</title>
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
||||||
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
||||||
<link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
|
<link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
// <![CDATA[
|
// <![CDATA[
|
||||||
|
|
||||||
function popupCode( url ) {
|
function popupCode( url ) {
|
||||||
window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
|
window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
|
||||||
}
|
}
|
||||||
|
|
||||||
function toggleCode( id ) {
|
function toggleCode( id ) {
|
||||||
if ( document.getElementById )
|
if ( document.getElementById )
|
||||||
elem = document.getElementById( id );
|
elem = document.getElementById( id );
|
||||||
else if ( document.all )
|
else if ( document.all )
|
||||||
elem = eval( "document.all." + id );
|
elem = eval( "document.all." + id );
|
||||||
else
|
else
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
elemStyle = elem.style;
|
elemStyle = elem.style;
|
||||||
|
|
||||||
if ( elemStyle.display != "block" ) {
|
if ( elemStyle.display != "block" ) {
|
||||||
elemStyle.display = "block"
|
elemStyle.display = "block"
|
||||||
} else {
|
} else {
|
||||||
elemStyle.display = "none"
|
elemStyle.display = "none"
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Make codeblocks hidden by default
|
// Make codeblocks hidden by default
|
||||||
document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
|
document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
|
||||||
|
|
||||||
// ]]>
|
// ]]>
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div id="fileHeader">
|
<div id="fileHeader">
|
||||||
<h1>test_builder_accessors.rb</h1>
|
<h1>test_builder_accessors.rb</h1>
|
||||||
<table class="header-table">
|
<table class="header-table">
|
||||||
<tr class="top-aligned-row">
|
<tr class="top-aligned-row">
|
||||||
<td><strong>Path:</strong></td>
|
<td><strong>Path:</strong></td>
|
||||||
<td>lib/selenium_on_rails/test_builder_accessors.rb
|
<td>lib/selenium_on_rails/test_builder_accessors.rb
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="top-aligned-row">
|
<tr class="top-aligned-row">
|
||||||
<td><strong>Last Update:</strong></td>
|
<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>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
<!-- banner header -->
|
<!-- banner header -->
|
||||||
|
|
||||||
<div id="bodyContent">
|
<div id="bodyContent">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div id="contextContent">
|
<div id="contextContent">
|
||||||
|
|
||||||
<div id="description">
|
<div id="description">
|
||||||
<p>
|
<p>
|
||||||
The accessors available for <a
|
The accessors available for <a
|
||||||
href="../../../classes/SeleniumOnRails/TestBuilder.html">SeleniumOnRails::TestBuilder</a>
|
href="../../../classes/SeleniumOnRails/TestBuilder.html">SeleniumOnRails::TestBuilder</a>
|
||||||
tests.
|
tests.
|
||||||
</p>
|
</p>
|
||||||
<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>assert_not_foo</tt>, <tt>verify_foo</tt>, <tt>verify_not_foo</tt>,
|
||||||
<tt>wait_for_foo</tt>, <tt>wait_for_not_foo</tt>.
|
<tt>wait_for_foo</tt>, <tt>wait_for_not_foo</tt>.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<!-- if includes -->
|
<!-- if includes -->
|
||||||
|
|
||||||
<div id="section">
|
<div id="section">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<!-- if method_list -->
|
<!-- if method_list -->
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div id="validator-badges">
|
<div id="validator-badges">
|
||||||
<p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
|
<p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
@ -1,113 +1,113 @@
|
||||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||||
<!DOCTYPE html
|
<!DOCTYPE html
|
||||||
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
||||||
<head>
|
<head>
|
||||||
<title>File: test_builder_actions.rb</title>
|
<title>File: test_builder_actions.rb</title>
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
||||||
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
||||||
<link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
|
<link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
// <![CDATA[
|
// <![CDATA[
|
||||||
|
|
||||||
function popupCode( url ) {
|
function popupCode( url ) {
|
||||||
window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
|
window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
|
||||||
}
|
}
|
||||||
|
|
||||||
function toggleCode( id ) {
|
function toggleCode( id ) {
|
||||||
if ( document.getElementById )
|
if ( document.getElementById )
|
||||||
elem = document.getElementById( id );
|
elem = document.getElementById( id );
|
||||||
else if ( document.all )
|
else if ( document.all )
|
||||||
elem = eval( "document.all." + id );
|
elem = eval( "document.all." + id );
|
||||||
else
|
else
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
elemStyle = elem.style;
|
elemStyle = elem.style;
|
||||||
|
|
||||||
if ( elemStyle.display != "block" ) {
|
if ( elemStyle.display != "block" ) {
|
||||||
elemStyle.display = "block"
|
elemStyle.display = "block"
|
||||||
} else {
|
} else {
|
||||||
elemStyle.display = "none"
|
elemStyle.display = "none"
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Make codeblocks hidden by default
|
// Make codeblocks hidden by default
|
||||||
document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
|
document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
|
||||||
|
|
||||||
// ]]>
|
// ]]>
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div id="fileHeader">
|
<div id="fileHeader">
|
||||||
<h1>test_builder_actions.rb</h1>
|
<h1>test_builder_actions.rb</h1>
|
||||||
<table class="header-table">
|
<table class="header-table">
|
||||||
<tr class="top-aligned-row">
|
<tr class="top-aligned-row">
|
||||||
<td><strong>Path:</strong></td>
|
<td><strong>Path:</strong></td>
|
||||||
<td>lib/selenium_on_rails/test_builder_actions.rb
|
<td>lib/selenium_on_rails/test_builder_actions.rb
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="top-aligned-row">
|
<tr class="top-aligned-row">
|
||||||
<td><strong>Last Update:</strong></td>
|
<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>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
<!-- banner header -->
|
<!-- banner header -->
|
||||||
|
|
||||||
<div id="bodyContent">
|
<div id="bodyContent">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div id="contextContent">
|
<div id="contextContent">
|
||||||
|
|
||||||
<div id="description">
|
<div id="description">
|
||||||
<p>
|
<p>
|
||||||
The actions available for <a
|
The actions available for <a
|
||||||
href="../../../classes/SeleniumOnRails/TestBuilder.html">SeleniumOnRails::TestBuilder</a>
|
href="../../../classes/SeleniumOnRails/TestBuilder.html">SeleniumOnRails::TestBuilder</a>
|
||||||
tests.
|
tests.
|
||||||
</p>
|
</p>
|
||||||
<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>.
|
<tt>foo_and_wait</tt>.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<!-- if includes -->
|
<!-- if includes -->
|
||||||
|
|
||||||
<div id="section">
|
<div id="section">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<!-- if method_list -->
|
<!-- if method_list -->
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div id="validator-badges">
|
<div id="validator-badges">
|
||||||
<p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
|
<p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
@ -1,121 +1,120 @@
|
||||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||||
<!DOCTYPE html
|
<!DOCTYPE html
|
||||||
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
||||||
<head>
|
<head>
|
||||||
<title>File: test_builder.rb</title>
|
<title>File: test_builder.rb</title>
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
||||||
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
||||||
<link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
|
<link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
// <![CDATA[
|
// <![CDATA[
|
||||||
|
|
||||||
function popupCode( url ) {
|
function popupCode( url ) {
|
||||||
window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
|
window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
|
||||||
}
|
}
|
||||||
|
|
||||||
function toggleCode( id ) {
|
function toggleCode( id ) {
|
||||||
if ( document.getElementById )
|
if ( document.getElementById )
|
||||||
elem = document.getElementById( id );
|
elem = document.getElementById( id );
|
||||||
else if ( document.all )
|
else if ( document.all )
|
||||||
elem = eval( "document.all." + id );
|
elem = eval( "document.all." + id );
|
||||||
else
|
else
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
elemStyle = elem.style;
|
elemStyle = elem.style;
|
||||||
|
|
||||||
if ( elemStyle.display != "block" ) {
|
if ( elemStyle.display != "block" ) {
|
||||||
elemStyle.display = "block"
|
elemStyle.display = "block"
|
||||||
} else {
|
} else {
|
||||||
elemStyle.display = "none"
|
elemStyle.display = "none"
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Make codeblocks hidden by default
|
// Make codeblocks hidden by default
|
||||||
document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
|
document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
|
||||||
|
|
||||||
// ]]>
|
// ]]>
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div id="fileHeader">
|
<div id="fileHeader">
|
||||||
<h1>test_builder.rb</h1>
|
<h1>test_builder.rb</h1>
|
||||||
<table class="header-table">
|
<table class="header-table">
|
||||||
<tr class="top-aligned-row">
|
<tr class="top-aligned-row">
|
||||||
<td><strong>Path:</strong></td>
|
<td><strong>Path:</strong></td>
|
||||||
<td>lib/selenium_on_rails/test_builder.rb
|
<td>lib/selenium_on_rails/test_builder.rb
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="top-aligned-row">
|
<tr class="top-aligned-row">
|
||||||
<td><strong>Last Update:</strong></td>
|
<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>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
<!-- banner header -->
|
<!-- banner header -->
|
||||||
|
|
||||||
<div id="bodyContent">
|
<div id="bodyContent">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div id="contextContent">
|
<div id="contextContent">
|
||||||
|
|
||||||
<div id="description">
|
<div id="description">
|
||||||
<p>
|
<p>
|
||||||
Builds Selenium test table using a high-level Ruby interface. Normally
|
Create test_builder_user_actions.rb to support actions included in
|
||||||
invoked through <a
|
selenium-core‘s user-extensions.js
|
||||||
href="../../../classes/SeleniumOnRails/RSelenese.html">SeleniumOnRails::RSelenese</a>.
|
</p>
|
||||||
</p>
|
<p>
|
||||||
<p>
|
See test_builder_user_actions.rb.example for examples matching
|
||||||
See <a
|
selenium-core‘s user-extensions.js.sample
|
||||||
href="../../../classes/SeleniumOnRails/TestBuilderActions.html">SeleniumOnRails::TestBuilderActions</a>
|
</p>
|
||||||
for the available actions and <a
|
|
||||||
href="../../../classes/SeleniumOnRails/TestBuilderAccessors.html">SeleniumOnRails::TestBuilderAccessors</a>
|
</div>
|
||||||
for the available checks.
|
|
||||||
</p>
|
<div id="requires-list">
|
||||||
<p>
|
<h3 class="section-bar">Required files</h3>
|
||||||
For more information on the commands supported by TestBuilder, see the
|
|
||||||
Selenium Commands Documentation at <a
|
<div class="name-list">
|
||||||
href="http://release.openqa.org/selenium-core/nightly/reference.html">release.openqa.org/selenium-core/nightly/reference.html</a>.
|
selenium_on_rails/test_builder_user_actions
|
||||||
</p>
|
selenium_on_rails/test_builder_user_accessors
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
</div>
|
|
||||||
|
|
||||||
|
</div>
|
||||||
</div>
|
|
||||||
|
|
||||||
|
<!-- if includes -->
|
||||||
<!-- if includes -->
|
|
||||||
|
<div id="section">
|
||||||
<div id="section">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<!-- if method_list -->
|
||||||
<!-- if method_list -->
|
|
||||||
|
|
||||||
|
</div>
|
||||||
</div>
|
|
||||||
|
|
||||||
|
<div id="validator-badges">
|
||||||
<div id="validator-badges">
|
<p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
|
||||||
<p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
|
</div>
|
||||||
</div>
|
|
||||||
|
</body>
|
||||||
</body>
|
|
||||||
</html>
|
</html>
|
||||||
|
|
@ -1,108 +1,108 @@
|
||||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||||
<!DOCTYPE html
|
<!DOCTYPE html
|
||||||
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
||||||
<head>
|
<head>
|
||||||
<title>File: selenium_on_rails_config.rb</title>
|
<title>File: selenium_on_rails_config.rb</title>
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
||||||
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
||||||
<link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
|
<link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
// <![CDATA[
|
// <![CDATA[
|
||||||
|
|
||||||
function popupCode( url ) {
|
function popupCode( url ) {
|
||||||
window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
|
window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
|
||||||
}
|
}
|
||||||
|
|
||||||
function toggleCode( id ) {
|
function toggleCode( id ) {
|
||||||
if ( document.getElementById )
|
if ( document.getElementById )
|
||||||
elem = document.getElementById( id );
|
elem = document.getElementById( id );
|
||||||
else if ( document.all )
|
else if ( document.all )
|
||||||
elem = eval( "document.all." + id );
|
elem = eval( "document.all." + id );
|
||||||
else
|
else
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
elemStyle = elem.style;
|
elemStyle = elem.style;
|
||||||
|
|
||||||
if ( elemStyle.display != "block" ) {
|
if ( elemStyle.display != "block" ) {
|
||||||
elemStyle.display = "block"
|
elemStyle.display = "block"
|
||||||
} else {
|
} else {
|
||||||
elemStyle.display = "none"
|
elemStyle.display = "none"
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Make codeblocks hidden by default
|
// Make codeblocks hidden by default
|
||||||
document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
|
document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
|
||||||
|
|
||||||
// ]]>
|
// ]]>
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div id="fileHeader">
|
<div id="fileHeader">
|
||||||
<h1>selenium_on_rails_config.rb</h1>
|
<h1>selenium_on_rails_config.rb</h1>
|
||||||
<table class="header-table">
|
<table class="header-table">
|
||||||
<tr class="top-aligned-row">
|
<tr class="top-aligned-row">
|
||||||
<td><strong>Path:</strong></td>
|
<td><strong>Path:</strong></td>
|
||||||
<td>lib/selenium_on_rails_config.rb
|
<td>lib/selenium_on_rails_config.rb
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="top-aligned-row">
|
<tr class="top-aligned-row">
|
||||||
<td><strong>Last Update:</strong></td>
|
<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>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
<!-- banner header -->
|
<!-- banner header -->
|
||||||
|
|
||||||
<div id="bodyContent">
|
<div id="bodyContent">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div id="contextContent">
|
<div id="contextContent">
|
||||||
|
|
||||||
|
|
||||||
<div id="requires-list">
|
<div id="requires-list">
|
||||||
<h3 class="section-bar">Required files</h3>
|
<h3 class="section-bar">Required files</h3>
|
||||||
|
|
||||||
<div class="name-list">
|
<div class="name-list">
|
||||||
yaml
|
yaml
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<!-- if includes -->
|
<!-- if includes -->
|
||||||
|
|
||||||
<div id="section">
|
<div id="section">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<!-- if method_list -->
|
<!-- if method_list -->
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div id="validator-badges">
|
<div id="validator-badges">
|
||||||
<p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
|
<p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
@ -1,115 +1,115 @@
|
||||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||||
<!DOCTYPE html
|
<!DOCTYPE html
|
||||||
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
||||||
<head>
|
<head>
|
||||||
<title>File: selenium_on_rails.rb</title>
|
<title>File: selenium_on_rails.rb</title>
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
||||||
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
||||||
<link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
|
<link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
// <![CDATA[
|
// <![CDATA[
|
||||||
|
|
||||||
function popupCode( url ) {
|
function popupCode( url ) {
|
||||||
window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
|
window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
|
||||||
}
|
}
|
||||||
|
|
||||||
function toggleCode( id ) {
|
function toggleCode( id ) {
|
||||||
if ( document.getElementById )
|
if ( document.getElementById )
|
||||||
elem = document.getElementById( id );
|
elem = document.getElementById( id );
|
||||||
else if ( document.all )
|
else if ( document.all )
|
||||||
elem = eval( "document.all." + id );
|
elem = eval( "document.all." + id );
|
||||||
else
|
else
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
elemStyle = elem.style;
|
elemStyle = elem.style;
|
||||||
|
|
||||||
if ( elemStyle.display != "block" ) {
|
if ( elemStyle.display != "block" ) {
|
||||||
elemStyle.display = "block"
|
elemStyle.display = "block"
|
||||||
} else {
|
} else {
|
||||||
elemStyle.display = "none"
|
elemStyle.display = "none"
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Make codeblocks hidden by default
|
// Make codeblocks hidden by default
|
||||||
document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
|
document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
|
||||||
|
|
||||||
// ]]>
|
// ]]>
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div id="fileHeader">
|
<div id="fileHeader">
|
||||||
<h1>selenium_on_rails.rb</h1>
|
<h1>selenium_on_rails.rb</h1>
|
||||||
<table class="header-table">
|
<table class="header-table">
|
||||||
<tr class="top-aligned-row">
|
<tr class="top-aligned-row">
|
||||||
<td><strong>Path:</strong></td>
|
<td><strong>Path:</strong></td>
|
||||||
<td>lib/selenium_on_rails.rb
|
<td>lib/selenium_on_rails.rb
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="top-aligned-row">
|
<tr class="top-aligned-row">
|
||||||
<td><strong>Last Update:</strong></td>
|
<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>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
<!-- banner header -->
|
<!-- banner header -->
|
||||||
|
|
||||||
<div id="bodyContent">
|
<div id="bodyContent">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div id="contextContent">
|
<div id="contextContent">
|
||||||
|
|
||||||
|
|
||||||
<div id="requires-list">
|
<div id="requires-list">
|
||||||
<h3 class="section-bar">Required files</h3>
|
<h3 class="section-bar">Required files</h3>
|
||||||
|
|
||||||
<div class="name-list">
|
<div class="name-list">
|
||||||
selenium_on_rails/selenese
|
selenium_on_rails/selenese
|
||||||
selenium_on_rails/test_builder
|
selenium_on_rails/test_builder
|
||||||
selenium_on_rails/rselenese
|
selenium_on_rails/rselenese
|
||||||
selenium_on_rails/suite_renderer
|
selenium_on_rails/suite_renderer
|
||||||
selenium_on_rails/paths
|
selenium_on_rails/paths
|
||||||
selenium_on_rails/fixture_loader
|
selenium_on_rails/fixture_loader
|
||||||
selenium_on_rails/partials_support
|
selenium_on_rails/partials_support
|
||||||
selenium_on_rails/renderer
|
selenium_on_rails/renderer
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<!-- if includes -->
|
<!-- if includes -->
|
||||||
|
|
||||||
<div id="section">
|
<div id="section">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<!-- if method_list -->
|
<!-- if method_list -->
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div id="validator-badges">
|
<div id="validator-badges">
|
||||||
<p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
|
<p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
@ -1,40 +1,42 @@
|
||||||
|
|
||||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||||
<!DOCTYPE html
|
<!DOCTYPE html
|
||||||
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
|
|
||||||
Classes
|
Classes
|
||||||
|
|
||||||
-->
|
-->
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
||||||
<head>
|
<head>
|
||||||
<title>Classes</title>
|
<title>Classes</title>
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
||||||
<link rel="stylesheet" href="rdoc-style.css" type="text/css" />
|
<link rel="stylesheet" href="rdoc-style.css" type="text/css" />
|
||||||
<base target="docwin" />
|
<base target="docwin" />
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div id="index">
|
<div id="index">
|
||||||
<h1 class="section-bar">Classes</h1>
|
<h1 class="section-bar">Classes</h1>
|
||||||
<div id="index-entries">
|
<div id="index-entries">
|
||||||
<a href="classes/SeleniumController.html">SeleniumController</a><br />
|
<a href="classes/SeleniumController.html">SeleniumController</a><br />
|
||||||
<a href="classes/SeleniumHelper.html">SeleniumHelper</a><br />
|
<a href="classes/SeleniumHelper.html">SeleniumHelper</a><br />
|
||||||
<a href="classes/SeleniumOnRails.html">SeleniumOnRails</a><br />
|
<a href="classes/SeleniumOnRails.html">SeleniumOnRails</a><br />
|
||||||
<a href="classes/SeleniumOnRails/FixtureLoader.html">SeleniumOnRails::FixtureLoader</a><br />
|
<a href="classes/SeleniumOnRails/FixtureLoader.html">SeleniumOnRails::FixtureLoader</a><br />
|
||||||
<a href="classes/SeleniumOnRails/PartialsSupport.html">SeleniumOnRails::PartialsSupport</a><br />
|
<a href="classes/SeleniumOnRails/PartialsSupport.html">SeleniumOnRails::PartialsSupport</a><br />
|
||||||
<a href="classes/SeleniumOnRails/Paths.html">SeleniumOnRails::Paths</a><br />
|
<a href="classes/SeleniumOnRails/Paths.html">SeleniumOnRails::Paths</a><br />
|
||||||
<a href="classes/SeleniumOnRails/RSelenese.html">SeleniumOnRails::RSelenese</a><br />
|
<a href="classes/SeleniumOnRails/RSelenese.html">SeleniumOnRails::RSelenese</a><br />
|
||||||
<a href="classes/SeleniumOnRails/Renderer.html">SeleniumOnRails::Renderer</a><br />
|
<a href="classes/SeleniumOnRails/Renderer.html">SeleniumOnRails::Renderer</a><br />
|
||||||
<a href="classes/SeleniumOnRails/Selenese.html">SeleniumOnRails::Selenese</a><br />
|
<a href="classes/SeleniumOnRails/Selenese.html">SeleniumOnRails::Selenese</a><br />
|
||||||
<a href="classes/SeleniumOnRails/SuiteRenderer.html">SeleniumOnRails::SuiteRenderer</a><br />
|
<a href="classes/SeleniumOnRails/SuiteRenderer.html">SeleniumOnRails::SuiteRenderer</a><br />
|
||||||
<a href="classes/SeleniumOnRails/TestBuilder.html">SeleniumOnRails::TestBuilder</a><br />
|
<a href="classes/SeleniumOnRails/TestBuilder.html">SeleniumOnRails::TestBuilder</a><br />
|
||||||
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html">SeleniumOnRails::TestBuilderAccessors</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/TestBuilderActions.html">SeleniumOnRails::TestBuilderActions</a><br />
|
||||||
<a href="classes/SeleniumOnRailsConfig.html">SeleniumOnRailsConfig</a><br />
|
<a href="classes/SeleniumOnRails/TestBuilderUserAccessors.html">SeleniumOnRails::TestBuilderUserAccessors</a><br />
|
||||||
</div>
|
<a href="classes/SeleniumOnRails/TestBuilderUserActions.html">SeleniumOnRails::TestBuilderUserActions</a><br />
|
||||||
</div>
|
<a href="classes/SeleniumOnRailsConfig.html">SeleniumOnRailsConfig</a><br />
|
||||||
</body>
|
</div>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
@ -1,42 +1,43 @@
|
||||||
|
|
||||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||||
<!DOCTYPE html
|
<!DOCTYPE html
|
||||||
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
|
|
||||||
Files
|
Files
|
||||||
|
|
||||||
-->
|
-->
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
||||||
<head>
|
<head>
|
||||||
<title>Files</title>
|
<title>Files</title>
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
||||||
<link rel="stylesheet" href="rdoc-style.css" type="text/css" />
|
<link rel="stylesheet" href="rdoc-style.css" type="text/css" />
|
||||||
<base target="docwin" />
|
<base target="docwin" />
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div id="index">
|
<div id="index">
|
||||||
<h1 class="section-bar">Files</h1>
|
<h1 class="section-bar">Files</h1>
|
||||||
<div id="index-entries">
|
<div id="index-entries">
|
||||||
<a href="files/README.html">README</a><br />
|
<a href="files/CHANGELOG.html">CHANGELOG</a><br />
|
||||||
<a href="files/lib/controllers/selenium_controller_rb.html">lib/controllers/selenium_controller.rb</a><br />
|
<a href="files/README.html">README</a><br />
|
||||||
<a href="files/lib/selenium_helper_rb.html">lib/selenium_helper.rb</a><br />
|
<a href="files/lib/controllers/selenium_controller_rb.html">lib/controllers/selenium_controller.rb</a><br />
|
||||||
<a href="files/lib/selenium_on_rails_rb.html">lib/selenium_on_rails.rb</a><br />
|
<a href="files/lib/selenium_helper_rb.html">lib/selenium_helper.rb</a><br />
|
||||||
<a href="files/lib/selenium_on_rails/acceptance_test_runner_rb.html">lib/selenium_on_rails/acceptance_test_runner.rb</a><br />
|
<a href="files/lib/selenium_on_rails_rb.html">lib/selenium_on_rails.rb</a><br />
|
||||||
<a href="files/lib/selenium_on_rails/fixture_loader_rb.html">lib/selenium_on_rails/fixture_loader.rb</a><br />
|
<a href="files/lib/selenium_on_rails/acceptance_test_runner_rb.html">lib/selenium_on_rails/acceptance_test_runner.rb</a><br />
|
||||||
<a href="files/lib/selenium_on_rails/partials_support_rb.html">lib/selenium_on_rails/partials_support.rb</a><br />
|
<a href="files/lib/selenium_on_rails/fixture_loader_rb.html">lib/selenium_on_rails/fixture_loader.rb</a><br />
|
||||||
<a href="files/lib/selenium_on_rails/paths_rb.html">lib/selenium_on_rails/paths.rb</a><br />
|
<a href="files/lib/selenium_on_rails/partials_support_rb.html">lib/selenium_on_rails/partials_support.rb</a><br />
|
||||||
<a href="files/lib/selenium_on_rails/renderer_rb.html">lib/selenium_on_rails/renderer.rb</a><br />
|
<a href="files/lib/selenium_on_rails/paths_rb.html">lib/selenium_on_rails/paths.rb</a><br />
|
||||||
<a href="files/lib/selenium_on_rails/rselenese_rb.html">lib/selenium_on_rails/rselenese.rb</a><br />
|
<a href="files/lib/selenium_on_rails/renderer_rb.html">lib/selenium_on_rails/renderer.rb</a><br />
|
||||||
<a href="files/lib/selenium_on_rails/selenese_rb.html">lib/selenium_on_rails/selenese.rb</a><br />
|
<a href="files/lib/selenium_on_rails/rselenese_rb.html">lib/selenium_on_rails/rselenese.rb</a><br />
|
||||||
<a href="files/lib/selenium_on_rails/suite_renderer_rb.html">lib/selenium_on_rails/suite_renderer.rb</a><br />
|
<a href="files/lib/selenium_on_rails/selenese_rb.html">lib/selenium_on_rails/selenese.rb</a><br />
|
||||||
<a href="files/lib/selenium_on_rails/test_builder_rb.html">lib/selenium_on_rails/test_builder.rb</a><br />
|
<a href="files/lib/selenium_on_rails/suite_renderer_rb.html">lib/selenium_on_rails/suite_renderer.rb</a><br />
|
||||||
<a href="files/lib/selenium_on_rails/test_builder_accessors_rb.html">lib/selenium_on_rails/test_builder_accessors.rb</a><br />
|
<a href="files/lib/selenium_on_rails/test_builder_rb.html">lib/selenium_on_rails/test_builder.rb</a><br />
|
||||||
<a href="files/lib/selenium_on_rails/test_builder_actions_rb.html">lib/selenium_on_rails/test_builder_actions.rb</a><br />
|
<a href="files/lib/selenium_on_rails/test_builder_accessors_rb.html">lib/selenium_on_rails/test_builder_accessors.rb</a><br />
|
||||||
<a href="files/lib/selenium_on_rails_config_rb.html">lib/selenium_on_rails_config.rb</a><br />
|
<a href="files/lib/selenium_on_rails/test_builder_actions_rb.html">lib/selenium_on_rails/test_builder_actions.rb</a><br />
|
||||||
</div>
|
<a href="files/lib/selenium_on_rails_config_rb.html">lib/selenium_on_rails_config.rb</a><br />
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</div>
|
||||||
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
@ -1,119 +1,182 @@
|
||||||
|
|
||||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||||
<!DOCTYPE html
|
<!DOCTYPE html
|
||||||
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
|
|
||||||
Methods
|
Methods
|
||||||
|
|
||||||
-->
|
-->
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
||||||
<head>
|
<head>
|
||||||
<title>Methods</title>
|
<title>Methods</title>
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
||||||
<link rel="stylesheet" href="rdoc-style.css" type="text/css" />
|
<link rel="stylesheet" href="rdoc-style.css" type="text/css" />
|
||||||
<base target="docwin" />
|
<base target="docwin" />
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div id="index">
|
<div id="index">
|
||||||
<h1 class="section-bar">Methods</h1>
|
<h1 class="section-bar">Methods</h1>
|
||||||
<div id="index-entries">
|
<div id="index-entries">
|
||||||
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000022">add_selection (SeleniumOnRails::TestBuilderActions)</a><br />
|
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000023">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/TestBuilderActions.html#M000034">alt_key_down (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||||
<a href="classes/SeleniumOnRails/FixtureLoader.html#M000049">available_fixtures (SeleniumOnRails::FixtureLoader)</a><br />
|
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000035">alt_key_up (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="classes/SeleniumOnRails/TestBuilderActions.html#M000030">answer_on_next_prompt (SeleniumOnRails::TestBuilderActions)</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/FixtureLoader.html#M000083">available_fixtures (SeleniumOnRails::FixtureLoader)</a><br />
|
||||||
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000019">check (SeleniumOnRails::TestBuilderActions)</a><br />
|
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000036">brake (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||||
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000028">choose_cancel_on_next_confirmation (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="classes/SeleniumOnRails/FixtureLoader.html#M000051">clear_tables (SeleniumOnRails::FixtureLoader)</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#M000011">click (SeleniumOnRails::TestBuilderActions)</a><br />
|
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000020">check (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||||
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000032">close (SeleniumOnRails::TestBuilderActions)</a><br />
|
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000029">choose_cancel_on_next_confirmation (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||||
<a href="classes/SeleniumOnRails/TestBuilder.html#M000090">command (SeleniumOnRails::TestBuilder)</a><br />
|
<a href="classes/SeleniumOnRails/FixtureLoader.html#M000085">clear_tables (SeleniumOnRails::FixtureLoader)</a><br />
|
||||||
<a href="classes/SeleniumOnRails/TestBuilder.html#M000092">command_and_wait (SeleniumOnRails::TestBuilder)</a><br />
|
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000011">click (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||||
<a href="classes/SeleniumOnRails/TestBuilder.html#M000091">command_verbatim (SeleniumOnRails::TestBuilder)</a><br />
|
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000012">click_at (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||||
<a href="classes/SeleniumOnRails/TestBuilder.html#M000087">exactize (SeleniumOnRails::TestBuilder)</a><br />
|
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000033">close (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||||
<a href="classes/SeleniumOnRails/PartialsSupport.html#M000081">extract_commands_from_partial (SeleniumOnRails::PartialsSupport)</a><br />
|
<a href="classes/SeleniumOnRails/TestBuilder.html#M000156">collection_arg (SeleniumOnRails::TestBuilder)</a><br />
|
||||||
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000012">fire_event (SeleniumOnRails::TestBuilderActions)</a><br />
|
<a href="classes/SeleniumOnRails/TestBuilder.html#M000151">command (SeleniumOnRails::TestBuilder)</a><br />
|
||||||
<a href="classes/SeleniumOnRails/Paths.html#M000042">fixtures_path (SeleniumOnRails::Paths)</a><br />
|
<a href="classes/SeleniumOnRails/TestBuilder.html#M000153">command_and_wait (SeleniumOnRails::TestBuilder)</a><br />
|
||||||
<a href="classes/SeleniumOnRailsConfig.html#M000007">get (SeleniumOnRailsConfig)</a><br />
|
<a href="classes/SeleniumOnRails/TestBuilder.html#M000152">command_verbatim (SeleniumOnRails::TestBuilder)</a><br />
|
||||||
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000030">go_back (SeleniumOnRails::TestBuilderActions)</a><br />
|
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000037">control_key_down (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||||
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000010">include_partial (SeleniumOnRails::TestBuilderActions)</a><br />
|
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000038">control_key_up (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||||
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000014">key_down (SeleniumOnRails::TestBuilderActions)</a><br />
|
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000039">create_cookie (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||||
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000013">key_press (SeleniumOnRails::TestBuilderActions)</a><br />
|
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000040">delete_cookie (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||||
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000015">key_up (SeleniumOnRails::TestBuilderActions)</a><br />
|
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000041">double_click (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||||
<a href="classes/SeleniumOnRails/Paths.html#M000041">layout_path (SeleniumOnRails::Paths)</a><br />
|
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000042">double_click_at (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||||
<a href="classes/SeleniumOnRails/SuiteRenderer.html#M000048">link_to_test_case (SeleniumOnRails::SuiteRenderer)</a><br />
|
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000043">drag_and_drop (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||||
<a href="classes/SeleniumOnRails/FixtureLoader.html#M000050">load_fixtures (SeleniumOnRails::FixtureLoader)</a><br />
|
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000044">drag_and_drop_to_object (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||||
<a href="classes/SeleniumOnRails/Paths.html#M000043">log_path (SeleniumOnRails::Paths)</a><br />
|
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000045">echo (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||||
<a href="classes/SeleniumOnRails/TestBuilder.html#M000093">make_command_waiting (SeleniumOnRails::TestBuilder)</a><br />
|
<a href="classes/SeleniumOnRails/TestBuilder.html#M000148">exactize (SeleniumOnRails::TestBuilder)</a><br />
|
||||||
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000017">mouse_down (SeleniumOnRails::TestBuilderActions)</a><br />
|
<a href="classes/SeleniumOnRails/PartialsSupport.html#M000142">extract_commands_from_partial (SeleniumOnRails::PartialsSupport)</a><br />
|
||||||
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000016">mouse_over (SeleniumOnRails::TestBuilderActions)</a><br />
|
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000013">fire_event (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||||
<a href="classes/SeleniumOnRails/Selenese.html#M000082">new (SeleniumOnRails::Selenese)</a><br />
|
<a href="classes/SeleniumOnRails/Paths.html#M000076">fixtures_path (SeleniumOnRails::Paths)</a><br />
|
||||||
<a href="classes/SeleniumOnRails/TestBuilder.html#M000088">new (SeleniumOnRails::TestBuilder)</a><br />
|
<a href="classes/SeleniumOnRailsConfig.html#M000007">get (SeleniumOnRailsConfig)</a><br />
|
||||||
<a href="classes/SeleniumOnRails/RSelenese.html#M000084">new (SeleniumOnRails::RSelenese)</a><br />
|
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000031">go_back (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||||
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000025">open (SeleniumOnRails::TestBuilderActions)</a><br />
|
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000046">highlight (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||||
<a href="classes/SeleniumController.html#M000006">record (SeleniumController)</a><br />
|
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000010">include_partial (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||||
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000031">refresh (SeleniumOnRails::TestBuilderActions)</a><br />
|
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000015">key_down (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||||
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000023">remove_selection (SeleniumOnRails::TestBuilderActions)</a><br />
|
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000014">key_press (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||||
<a href="classes/SeleniumOnRails/Selenese.html#M000083">render (SeleniumOnRails::Selenese)</a><br />
|
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000016">key_up (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||||
<a href="classes/SeleniumOnRails/RSelenese.html#M000085">render (SeleniumOnRails::RSelenese)</a><br />
|
<a href="classes/SeleniumOnRails/Paths.html#M000075">layout_path (SeleniumOnRails::Paths)</a><br />
|
||||||
<a href="classes/SeleniumOnRails/PartialsSupport.html#M000080">render_partial (SeleniumOnRails::PartialsSupport)</a><br />
|
<a href="classes/SeleniumOnRails/SuiteRenderer.html#M000082">link_to_test_case (SeleniumOnRails::SuiteRenderer)</a><br />
|
||||||
<a href="classes/SeleniumOnRails/Renderer.html#M000037">render_test_case (SeleniumOnRails::Renderer)</a><br />
|
<a href="classes/SeleniumOnRails/FixtureLoader.html#M000084">load_fixtures (SeleniumOnRails::FixtureLoader)</a><br />
|
||||||
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000021">select (SeleniumOnRails::TestBuilderActions)</a><br />
|
<a href="classes/SeleniumOnRails/Paths.html#M000077">log_path (SeleniumOnRails::Paths)</a><br />
|
||||||
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000026">select_window (SeleniumOnRails::TestBuilderActions)</a><br />
|
<a href="classes/SeleniumOnRails/TestBuilder.html#M000154">make_command_waiting (SeleniumOnRails::TestBuilder)</a><br />
|
||||||
<a href="classes/SeleniumOnRails/Paths.html#M000038">selenium_path (SeleniumOnRails::Paths)</a><br />
|
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000047">meta_key_down (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||||
<a href="classes/SeleniumOnRails/Paths.html#M000039">selenium_tests_path (SeleniumOnRails::Paths)</a><br />
|
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000048">meta_key_up (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||||
<a href="classes/SeleniumOnRails/TestBuilder.html#M000086">selenize (SeleniumOnRails::TestBuilder)</a><br />
|
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000018">mouse_down (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||||
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000033">set_context (SeleniumOnRails::TestBuilderActions)</a><br />
|
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000049">mouse_down_at (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||||
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000035">set_timeout (SeleniumOnRails::TestBuilderActions)</a><br />
|
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000050">mouse_move (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||||
<a href="classes/SeleniumController.html#M000003">setup (SeleniumController)</a><br />
|
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000051">mouse_move_at (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||||
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000009">setup (SeleniumOnRails::TestBuilderActions)</a><br />
|
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000052">mouse_out (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||||
<a href="classes/SeleniumOnRails/Paths.html#M000044">skip_file? (SeleniumOnRails::Paths)</a><br />
|
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000017">mouse_over (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||||
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000058">store_absolute_location (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000053">mouse_up (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||||
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000055">store_alert (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000054">mouse_up_at (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||||
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000052">store_alert_present (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
<a href="classes/SeleniumOnRails/TestBuilder.html#M000149">new (SeleniumOnRails::TestBuilder)</a><br />
|
||||||
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000075">store_all_buttons (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
<a href="classes/SeleniumOnRails/RSelenese.html#M000145">new (SeleniumOnRails::RSelenese)</a><br />
|
||||||
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000077">store_all_fields (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
<a href="classes/SeleniumOnRails/Selenese.html#M000143">new (SeleniumOnRails::Selenese)</a><br />
|
||||||
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000076">store_all_links (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000026">open (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||||
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000070">store_attribute (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000055">open_window (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||||
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000061">store_body_text (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000056">pause (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||||
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000065">store_checked (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
<a href="classes/SeleniumController.html#M000006">record (SeleniumController)</a><br />
|
||||||
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000056">store_confirmation (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000032">refresh (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||||
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000054">store_confirmation_present (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000057">remove_all_selections (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||||
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000074">store_editable (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000024">remove_selection (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||||
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000072">store_element_present (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
<a href="classes/SeleniumOnRails/RSelenese.html#M000146">render (SeleniumOnRails::RSelenese)</a><br />
|
||||||
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000064">store_eval (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
<a href="classes/SeleniumOnRails/Selenese.html#M000144">render (SeleniumOnRails::Selenese)</a><br />
|
||||||
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000079">store_expression (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
<a href="classes/SeleniumOnRails/PartialsSupport.html#M000141">render_partial (SeleniumOnRails::PartialsSupport)</a><br />
|
||||||
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000078">store_html_source (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
<a href="classes/SeleniumOnRails/Renderer.html#M000071">render_test_case (SeleniumOnRails::Renderer)</a><br />
|
||||||
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000059">store_location (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000022">select (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||||
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000057">store_prompt (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000058">select_frame (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||||
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000053">store_prompt_present (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000027">select_window (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||||
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000069">store_select_options (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
<a href="classes/SeleniumOnRails/Paths.html#M000072">selenium_path (SeleniumOnRails::Paths)</a><br />
|
||||||
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000067">store_selected (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
<a href="classes/SeleniumOnRails/Paths.html#M000073">selenium_tests_path (SeleniumOnRails::Paths)</a><br />
|
||||||
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000068">store_selected_options (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
<a href="classes/SeleniumOnRails/TestBuilder.html#M000147">selenize (SeleniumOnRails::TestBuilder)</a><br />
|
||||||
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000066">store_table (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000067">set_context (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||||
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000063">store_text (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000059">set_cursor_position (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||||
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000071">store_text_present (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000060">set_mouse_speed (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||||
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000060">store_title (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000069">set_timeout (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||||
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000062">store_value (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000009">setup (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||||
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000073">store_visible (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
<a href="classes/SeleniumController.html#M000003">setup (SeleniumController)</a><br />
|
||||||
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000024">submit (SeleniumOnRails::TestBuilderActions)</a><br />
|
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000061">shift_key_down (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||||
<a href="classes/SeleniumController.html#M000005">support_file (SeleniumController)</a><br />
|
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000062">shift_key_up (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||||
<a href="classes/SeleniumOnRails/TestBuilder.html#M000089">table (SeleniumOnRails::TestBuilder)</a><br />
|
<a href="classes/SeleniumOnRails/Paths.html#M000078">skip_file? (SeleniumOnRails::Paths)</a><br />
|
||||||
<a href="classes/SeleniumHelper.html#M000008">test_case_name (SeleniumHelper)</a><br />
|
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000063">store (SeleniumOnRails::TestBuilderActions)</a><br />
|
||||||
<a href="classes/SeleniumOnRails/SuiteRenderer.html#M000047">test_cases (SeleniumOnRails::SuiteRenderer)</a><br />
|
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000100">store_absolute_location (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
||||||
<a href="classes/SeleniumController.html#M000004">test_file (SeleniumController)</a><br />
|
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000097">store_alert (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
||||||
<a href="classes/SeleniumOnRails/SuiteRenderer.html#M000045">test_suite_name (SeleniumOnRails::SuiteRenderer)</a><br />
|
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000091">store_alert_present (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
||||||
<a href="classes/SeleniumOnRails/SuiteRenderer.html#M000046">test_suites (SeleniumOnRails::SuiteRenderer)</a><br />
|
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000134">store_all_buttons (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
||||||
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000018">type (SeleniumOnRails::TestBuilderActions)</a><br />
|
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000136">store_all_fields (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
||||||
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000020">uncheck (SeleniumOnRails::TestBuilderActions)</a><br />
|
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000135">store_all_links (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
||||||
<a href="classes/SeleniumOnRails/Paths.html#M000040">view_path (SeleniumOnRails::Paths)</a><br />
|
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000088">store_all_window_ids (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
||||||
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000034">wait_for_condition (SeleniumOnRails::TestBuilderActions)</a><br />
|
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000089">store_all_window_names (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
||||||
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000036">wait_for_page_to_load (SeleniumOnRails::TestBuilderActions)</a><br />
|
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000090">store_all_window_titles (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
||||||
<a href="classes/SeleniumOnRails/TestBuilderActions.html#M000027">wait_for_popup (SeleniumOnRails::TestBuilderActions)</a><br />
|
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000122">store_attribute (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
||||||
</div>
|
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000092">store_attribute_from_all_windows (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
||||||
</div>
|
<a href="classes/SeleniumOnRails/TestBuilderAccessors.html#M000104">store_body_text (SeleniumOnRails::TestBuilderAccessors)</a><br />
|
||||||
</body>
|
<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#M000150">table (SeleniumOnRails::TestBuilder)</a><br />
|
||||||
|
<a href="classes/SeleniumHelper.html#M000008">test_case_name (SeleniumHelper)</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#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>
|
||||||
</html>
|
</html>
|
||||||
46
vendor/plugins/selenium-on-rails/doc/index.html
vendored
|
|
@ -1,24 +1,24 @@
|
||||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||||
<!DOCTYPE html
|
<!DOCTYPE html
|
||||||
PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
|
PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
|
||||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
|
|
||||||
SeleniumOnRails
|
SeleniumOnRails
|
||||||
|
|
||||||
-->
|
-->
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
||||||
<head>
|
<head>
|
||||||
<title>SeleniumOnRails</title>
|
<title>SeleniumOnRails</title>
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
||||||
</head>
|
</head>
|
||||||
<frameset rows="20%, 80%">
|
<frameset rows="20%, 80%">
|
||||||
<frameset cols="25%,35%,45%">
|
<frameset cols="25%,35%,45%">
|
||||||
<frame src="fr_file_index.html" title="Files" name="Files" />
|
<frame src="fr_file_index.html" title="Files" name="Files" />
|
||||||
<frame src="fr_class_index.html" name="Classes" />
|
<frame src="fr_class_index.html" name="Classes" />
|
||||||
<frame src="fr_method_index.html" name="Methods" />
|
<frame src="fr_method_index.html" name="Methods" />
|
||||||
</frameset>
|
</frameset>
|
||||||
<frame src="files/README.html" name="docwin" />
|
<frame src="files/README.html" name="docwin" />
|
||||||
</frameset>
|
</frameset>
|
||||||
</html>
|
</html>
|
||||||
414
vendor/plugins/selenium-on-rails/doc/rdoc-style.css
vendored
|
|
@ -1,208 +1,208 @@
|
||||||
|
|
||||||
body {
|
body {
|
||||||
font-family: Verdana,Arial,Helvetica,sans-serif;
|
font-family: Verdana,Arial,Helvetica,sans-serif;
|
||||||
font-size: 90%;
|
font-size: 90%;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
margin-left: 40px;
|
margin-left: 40px;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
background: white;
|
background: white;
|
||||||
}
|
}
|
||||||
|
|
||||||
h1,h2,h3,h4 { margin: 0; color: #efefef; background: transparent; }
|
h1,h2,h3,h4 { margin: 0; color: #efefef; background: transparent; }
|
||||||
h1 { font-size: 150%; }
|
h1 { font-size: 150%; }
|
||||||
h2,h3,h4 { margin-top: 1em; }
|
h2,h3,h4 { margin-top: 1em; }
|
||||||
|
|
||||||
a { background: #eef; color: #039; text-decoration: none; }
|
a { background: #eef; color: #039; text-decoration: none; }
|
||||||
a:hover { background: #039; color: #eef; }
|
a:hover { background: #039; color: #eef; }
|
||||||
|
|
||||||
/* Override the base stylesheet's Anchor inside a table cell */
|
/* Override the base stylesheet's Anchor inside a table cell */
|
||||||
td > a {
|
td > a {
|
||||||
background: transparent;
|
background: transparent;
|
||||||
color: #039;
|
color: #039;
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* and inside a section title */
|
/* and inside a section title */
|
||||||
.section-title > a {
|
.section-title > a {
|
||||||
background: transparent;
|
background: transparent;
|
||||||
color: #eee;
|
color: #eee;
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* === Structural elements =================================== */
|
/* === Structural elements =================================== */
|
||||||
|
|
||||||
div#index {
|
div#index {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
margin-left: -40px;
|
margin-left: -40px;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
font-size: 90%;
|
font-size: 90%;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
div#index a {
|
div#index a {
|
||||||
margin-left: 0.7em;
|
margin-left: 0.7em;
|
||||||
}
|
}
|
||||||
|
|
||||||
div#index .section-bar {
|
div#index .section-bar {
|
||||||
margin-left: 0px;
|
margin-left: 0px;
|
||||||
padding-left: 0.7em;
|
padding-left: 0.7em;
|
||||||
background: #ccc;
|
background: #ccc;
|
||||||
font-size: small;
|
font-size: small;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
div#classHeader, div#fileHeader {
|
div#classHeader, div#fileHeader {
|
||||||
width: auto;
|
width: auto;
|
||||||
color: white;
|
color: white;
|
||||||
padding: 0.5em 1.5em 0.5em 1.5em;
|
padding: 0.5em 1.5em 0.5em 1.5em;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
margin-left: -40px;
|
margin-left: -40px;
|
||||||
border-bottom: 3px solid #006;
|
border-bottom: 3px solid #006;
|
||||||
}
|
}
|
||||||
|
|
||||||
div#classHeader a, div#fileHeader a {
|
div#classHeader a, div#fileHeader a {
|
||||||
background: inherit;
|
background: inherit;
|
||||||
color: white;
|
color: white;
|
||||||
}
|
}
|
||||||
|
|
||||||
div#classHeader td, div#fileHeader td {
|
div#classHeader td, div#fileHeader td {
|
||||||
background: inherit;
|
background: inherit;
|
||||||
color: white;
|
color: white;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
div#fileHeader {
|
div#fileHeader {
|
||||||
background: #057;
|
background: #057;
|
||||||
}
|
}
|
||||||
|
|
||||||
div#classHeader {
|
div#classHeader {
|
||||||
background: #048;
|
background: #048;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
.class-name-in-header {
|
.class-name-in-header {
|
||||||
font-size: 180%;
|
font-size: 180%;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
div#bodyContent {
|
div#bodyContent {
|
||||||
padding: 0 1.5em 0 1.5em;
|
padding: 0 1.5em 0 1.5em;
|
||||||
}
|
}
|
||||||
|
|
||||||
div#description {
|
div#description {
|
||||||
padding: 0.5em 1.5em;
|
padding: 0.5em 1.5em;
|
||||||
background: #efefef;
|
background: #efefef;
|
||||||
border: 1px dotted #999;
|
border: 1px dotted #999;
|
||||||
}
|
}
|
||||||
|
|
||||||
div#description h1,h2,h3,h4,h5,h6 {
|
div#description h1,h2,h3,h4,h5,h6 {
|
||||||
color: #125;;
|
color: #125;;
|
||||||
background: transparent;
|
background: transparent;
|
||||||
}
|
}
|
||||||
|
|
||||||
div#validator-badges {
|
div#validator-badges {
|
||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
div#validator-badges img { border: 0; }
|
div#validator-badges img { border: 0; }
|
||||||
|
|
||||||
div#copyright {
|
div#copyright {
|
||||||
color: #333;
|
color: #333;
|
||||||
background: #efefef;
|
background: #efefef;
|
||||||
font: 0.75em sans-serif;
|
font: 0.75em sans-serif;
|
||||||
margin-top: 5em;
|
margin-top: 5em;
|
||||||
margin-bottom: 0;
|
margin-bottom: 0;
|
||||||
padding: 0.5em 2em;
|
padding: 0.5em 2em;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* === Classes =================================== */
|
/* === Classes =================================== */
|
||||||
|
|
||||||
table.header-table {
|
table.header-table {
|
||||||
color: white;
|
color: white;
|
||||||
font-size: small;
|
font-size: small;
|
||||||
}
|
}
|
||||||
|
|
||||||
.type-note {
|
.type-note {
|
||||||
font-size: small;
|
font-size: small;
|
||||||
color: #DEDEDE;
|
color: #DEDEDE;
|
||||||
}
|
}
|
||||||
|
|
||||||
.xxsection-bar {
|
.xxsection-bar {
|
||||||
background: #eee;
|
background: #eee;
|
||||||
color: #333;
|
color: #333;
|
||||||
padding: 3px;
|
padding: 3px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.section-bar {
|
.section-bar {
|
||||||
color: #333;
|
color: #333;
|
||||||
border-bottom: 1px solid #999;
|
border-bottom: 1px solid #999;
|
||||||
margin-left: -20px;
|
margin-left: -20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
.section-title {
|
.section-title {
|
||||||
background: #79a;
|
background: #79a;
|
||||||
color: #eee;
|
color: #eee;
|
||||||
padding: 3px;
|
padding: 3px;
|
||||||
margin-top: 2em;
|
margin-top: 2em;
|
||||||
margin-left: -30px;
|
margin-left: -30px;
|
||||||
border: 1px solid #999;
|
border: 1px solid #999;
|
||||||
}
|
}
|
||||||
|
|
||||||
.top-aligned-row { vertical-align: top }
|
.top-aligned-row { vertical-align: top }
|
||||||
.bottom-aligned-row { vertical-align: bottom }
|
.bottom-aligned-row { vertical-align: bottom }
|
||||||
|
|
||||||
/* --- Context section classes ----------------------- */
|
/* --- Context section classes ----------------------- */
|
||||||
|
|
||||||
.context-row { }
|
.context-row { }
|
||||||
.context-item-name { font-family: monospace; font-weight: bold; color: black; }
|
.context-item-name { font-family: monospace; font-weight: bold; color: black; }
|
||||||
.context-item-value { font-size: small; color: #448; }
|
.context-item-value { font-size: small; color: #448; }
|
||||||
.context-item-desc { color: #333; padding-left: 2em; }
|
.context-item-desc { color: #333; padding-left: 2em; }
|
||||||
|
|
||||||
/* --- Method classes -------------------------- */
|
/* --- Method classes -------------------------- */
|
||||||
.method-detail {
|
.method-detail {
|
||||||
background: #efefef;
|
background: #efefef;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
margin-top: 0.5em;
|
margin-top: 0.5em;
|
||||||
margin-bottom: 1em;
|
margin-bottom: 1em;
|
||||||
border: 1px dotted #ccc;
|
border: 1px dotted #ccc;
|
||||||
}
|
}
|
||||||
.method-heading {
|
.method-heading {
|
||||||
color: black;
|
color: black;
|
||||||
background: #ccc;
|
background: #ccc;
|
||||||
border-bottom: 1px solid #666;
|
border-bottom: 1px solid #666;
|
||||||
padding: 0.2em 0.5em 0 0.5em;
|
padding: 0.2em 0.5em 0 0.5em;
|
||||||
}
|
}
|
||||||
.method-signature { color: black; background: inherit; }
|
.method-signature { color: black; background: inherit; }
|
||||||
.method-name { font-weight: bold; }
|
.method-name { font-weight: bold; }
|
||||||
.method-args { font-style: italic; }
|
.method-args { font-style: italic; }
|
||||||
.method-description { padding: 0 0.5em 0 0.5em; }
|
.method-description { padding: 0 0.5em 0 0.5em; }
|
||||||
|
|
||||||
/* --- Source code sections -------------------- */
|
/* --- Source code sections -------------------- */
|
||||||
|
|
||||||
a.source-toggle { font-size: 90%; }
|
a.source-toggle { font-size: 90%; }
|
||||||
div.method-source-code {
|
div.method-source-code {
|
||||||
background: #262626;
|
background: #262626;
|
||||||
color: #ffdead;
|
color: #ffdead;
|
||||||
margin: 1em;
|
margin: 1em;
|
||||||
padding: 0.5em;
|
padding: 0.5em;
|
||||||
border: 1px dashed #999;
|
border: 1px dashed #999;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
}
|
}
|
||||||
|
|
||||||
div.method-source-code pre { color: #ffdead; overflow: hidden; }
|
div.method-source-code pre { color: #ffdead; overflow: hidden; }
|
||||||
|
|
||||||
/* --- Ruby keyword styles --------------------- */
|
/* --- Ruby keyword styles --------------------- */
|
||||||
|
|
||||||
.standalone-code { background: #221111; color: #ffdead; overflow: hidden; }
|
.standalone-code { background: #221111; color: #ffdead; overflow: hidden; }
|
||||||
|
|
||||||
.ruby-constant { color: #7fffd4; background: transparent; }
|
.ruby-constant { color: #7fffd4; background: transparent; }
|
||||||
.ruby-keyword { color: #00ffff; background: transparent; }
|
.ruby-keyword { color: #00ffff; background: transparent; }
|
||||||
.ruby-ivar { color: #eedd82; background: transparent; }
|
.ruby-ivar { color: #eedd82; background: transparent; }
|
||||||
.ruby-operator { color: #00ffee; background: transparent; }
|
.ruby-operator { color: #00ffee; background: transparent; }
|
||||||
.ruby-identifier { color: #ffdead; background: transparent; }
|
.ruby-identifier { color: #ffdead; background: transparent; }
|
||||||
.ruby-node { color: #ffa07a; background: transparent; }
|
.ruby-node { color: #ffa07a; background: transparent; }
|
||||||
.ruby-comment { color: #b22222; font-weight: bold; background: transparent; }
|
.ruby-comment { color: #b22222; font-weight: bold; background: transparent; }
|
||||||
.ruby-regexp { color: #ffa07a; background: transparent; }
|
.ruby-regexp { color: #ffa07a; background: transparent; }
|
||||||
.ruby-value { color: #7fffd4; background: transparent; }
|
.ruby-value { color: #7fffd4; background: transparent; }
|
||||||
|
|
@ -1,16 +1,16 @@
|
||||||
<p>It's often a good idea to start the test with opening <tt>/selenium/setup</tt> (see <%%= link_to 'here', :controller => 'selenium', :action => 'setup' %> for more info).</p>
|
<p>It's often a good idea to start the test with opening <tt>/selenium/setup</tt> (see <%%= link_to 'here', :controller => 'selenium', :action => 'setup' %> for more info).</p>
|
||||||
|
|
||||||
<table>
|
<table>
|
||||||
<tr><th colspan="3"><%%= @page_title %></th></tr>
|
<tr><th colspan="3"><%%= @page_title %></th></tr>
|
||||||
<tr><td>open</td><td>/selenium/setup</td><td> </td></tr>
|
<tr><td>open</td><td>/selenium/setup</td><td> </td></tr>
|
||||||
<%% for page in ['/', '/home'] -%>
|
<%% for page in ['/', '/home'] -%>
|
||||||
<tr><td>open</td><td><%%= page %></td><td> </td></tr>
|
<tr><td>open</td><td><%%= page %></td><td> </td></tr>
|
||||||
<tr><td>assertTitle</td><td>Home</td><td> </td></tr>
|
<tr><td>assertTitle</td><td>Home</td><td> </td></tr>
|
||||||
<%% end -%>
|
<%% end -%>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
<p>More information about the commands is available <a href="http://release.openqa.org/selenium-core/nightly/reference.html">here</a>.</p>
|
<p>More information about the commands is available <a href="http://release.openqa.org/selenium-core/nightly/reference.html">here</a>.</p>
|
||||||
|
|
||||||
<p>You can write comments above and below the commands, but you can only have one set of commands, i.e. one table, per test.</p>
|
<p>You can write comments above and below the commands, but you can only have one set of commands, i.e. one table, per test.</p>
|
||||||
|
|
||||||
<p>Point the browser to <a href="<%= testcase_link %>"><%= testcase_link %></a> to see how this test is rendered, or to <a href="<%= suite_link %>"><%= suite_link %></a> to run the suite.</p>
|
<p>Point the browser to <a href="<%= testcase_link %>"><%= testcase_link %></a> to see how this test is rendered, or to <a href="<%= suite_link %>"><%= suite_link %></a> to run the suite.</p>
|
||||||
|
|
|
||||||
|
|
@ -1,14 +1,14 @@
|
||||||
# It's often a good idea to start the test with 'setup'.
|
# It's often a good idea to start the test with 'setup'.
|
||||||
# See /selenium/setup for more info.
|
# See /selenium/setup for more info.
|
||||||
|
|
||||||
setup
|
setup
|
||||||
open '/'
|
open '/'
|
||||||
assert_title 'Home'
|
assert_title 'Home'
|
||||||
|
|
||||||
# More information about the commands is available at:
|
# More information about the commands is available at:
|
||||||
# http://release.openqa.org/selenium-core/nightly/reference.html
|
# http://release.openqa.org/selenium-core/nightly/reference.html
|
||||||
# See also the RDoc for SeleniumOnRails::TestBuilder.
|
# See also the RDoc for SeleniumOnRails::TestBuilder.
|
||||||
#
|
#
|
||||||
# Point the browser to <%= testcase_link %> to see
|
# Point the browser to <%= testcase_link %> to see
|
||||||
# how this test is rendered, or to <%= suite_link %> to
|
# how this test is rendered, or to <%= suite_link %> to
|
||||||
# run the suite.
|
# run the suite.
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,11 @@
|
||||||
It's often a good idea to start the test with opening <tt>/selenium/setup</tt> (see "here":/selenium/setup for more info).
|
It's often a good idea to start the test with opening <tt>/selenium/setup</tt> (see "here":/selenium/setup for more info).
|
||||||
|
|
||||||
|open|/selenium/setup|
|
|open|/selenium/setup|
|
||||||
|open|/|
|
|open|/|
|
||||||
|assertTitle|Home|
|
|assertTitle|Home|
|
||||||
|
|
||||||
More information about the commands is available "here":http://release.openqa.org/selenium-core/nightly/reference.html.
|
More information about the commands is available "here":http://release.openqa.org/selenium-core/nightly/reference.html.
|
||||||
|
|
||||||
You can write comments above and below the commands, but you can only have one set of commands, i.e. one table, per test. "RedCloth":http://www.whytheluckystiff.net/ruby/redcloth/ is used for formatting if installed.
|
You can write comments above and below the commands, but you can only have one set of commands, i.e. one table, per test. "RedCloth":http://www.whytheluckystiff.net/ruby/redcloth/ is used for formatting if installed.
|
||||||
|
|
||||||
Point the browser to "<%= testcase_link %>":<%= testcase_link %> to see how this test is rendered, or to "<%= suite_link %>":<%= suite_link %> to run the suite.
|
Point the browser to "<%= testcase_link %>":<%= testcase_link %> to see how this test is rendered, or to "<%= suite_link %>":<%= suite_link %> to run the suite.
|
||||||
|
|
|
||||||
8
vendor/plugins/selenium-on-rails/init.rb
vendored
|
|
@ -1,5 +1,5 @@
|
||||||
require 'selenium_on_rails_config'
|
require 'selenium_on_rails_config'
|
||||||
envs = SeleniumOnRailsConfig.get :environments
|
envs = SeleniumOnRailsConfig.new.get :environments
|
||||||
|
|
||||||
if envs.include? RAILS_ENV
|
if envs.include? RAILS_ENV
|
||||||
#initialize the plugin
|
#initialize the plugin
|
||||||
|
|
@ -8,14 +8,8 @@ if envs.include? RAILS_ENV
|
||||||
require File.dirname(__FILE__) + '/routes'
|
require File.dirname(__FILE__) + '/routes'
|
||||||
|
|
||||||
SeleniumController.prepend_view_path File.expand_path(File.dirname(__FILE__) + '/lib/views')
|
SeleniumController.prepend_view_path File.expand_path(File.dirname(__FILE__) + '/lib/views')
|
||||||
|
|
||||||
else
|
else
|
||||||
#erase all traces
|
#erase all traces
|
||||||
$LOAD_PATH.delete lib_path
|
$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
|
end
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,120 +1,122 @@
|
||||||
require 'webrick/httputils'
|
require 'webrick/httputils'
|
||||||
|
|
||||||
class SeleniumController < ActionController::Base
|
class SeleniumController < ActionController::Base
|
||||||
include SeleniumOnRails::FixtureLoader
|
include SeleniumOnRails::FixtureLoader
|
||||||
include SeleniumOnRails::Renderer
|
include SeleniumOnRails::Renderer
|
||||||
|
|
||||||
def setup
|
def initialize
|
||||||
unless params.has_key? :keep_session
|
@config = SeleniumOnRailsConfig.new
|
||||||
reset_session
|
end
|
||||||
@session_wiped = true
|
|
||||||
end
|
def setup
|
||||||
@cleared_tables = clear_tables params[:clear_tables].to_s
|
unless params.has_key? :keep_session
|
||||||
Fixtures.reset_cache # added in during Rails 2 transition to address issue with selenium tests not relaoding fixtures
|
reset_session
|
||||||
@loaded_fixtures = load_fixtures params[:fixtures].to_s
|
@session_wiped = true
|
||||||
render :file => view_path('setup.rhtml'), :layout => layout_path
|
end
|
||||||
end
|
@cleared_tables = clear_tables params[:clear_tables].to_s
|
||||||
|
@loaded_fixtures = load_fixtures params[:fixtures].to_s
|
||||||
def test_file
|
render :file => view_path('setup.rhtml'), :layout => layout_path\
|
||||||
params[:testname] = '' if params[:testname].to_s == 'TestSuite.html'
|
end
|
||||||
filename = File.join selenium_tests_path, params[:testname]
|
|
||||||
if File.directory? filename
|
def test_file
|
||||||
@suite_path = filename
|
params[:testname] = '' if params[:testname].to_s == 'TestSuite.html'
|
||||||
render :file => view_path('test_suite.rhtml'), :layout => layout_path
|
filename = File.join selenium_tests_path, params[:testname]
|
||||||
elsif File.readable? filename
|
if File.directory? filename
|
||||||
render_test_case filename
|
@suite_path = filename
|
||||||
else
|
render :file => view_path('test_suite.rhtml'), :layout => layout_path
|
||||||
if File.directory? selenium_tests_path
|
elsif File.readable? filename
|
||||||
render :text => 'Not found', :status => 404
|
render_test_case filename
|
||||||
else
|
else
|
||||||
render :text => "Did not find the Selenium tests path (#{selenium_tests_path}). Run script/generate selenium", :status => 404
|
if File.directory? selenium_tests_path
|
||||||
end
|
render :text => 'Not found', :status => 404
|
||||||
end
|
else
|
||||||
end
|
render :text => "Did not find the Selenium tests path (#{selenium_tests_path}). Run script/generate selenium", :status => 404
|
||||||
|
end
|
||||||
def support_file
|
end
|
||||||
if params[:filename].empty?
|
end
|
||||||
redirect_to :filename => 'TestRunner.html', :test => 'tests'
|
|
||||||
return
|
def support_file
|
||||||
end
|
if params[:filename].empty?
|
||||||
|
redirect_to :filename => 'TestRunner.html', :test => 'tests'
|
||||||
filename = File.join selenium_path, params[:filename]
|
return
|
||||||
if File.file? filename
|
end
|
||||||
type = WEBrick::HTTPUtils::DefaultMimeTypes[$1.downcase] if filename =~ /\.(\w+)$/
|
|
||||||
type ||= 'text/html'
|
filename = File.join selenium_path, params[:filename]
|
||||||
send_file filename, :type => type, :disposition => 'inline', :stream => false
|
if File.file? filename
|
||||||
else
|
type = WEBrick::HTTPUtils::DefaultMimeTypes[$1.downcase] if filename =~ /\.(\w+)$/
|
||||||
render :text => 'Not found', :status => 404
|
type ||= 'text/html'
|
||||||
end
|
send_file filename, :type => type, :disposition => 'inline', :stream => false
|
||||||
end
|
else
|
||||||
|
render :text => 'Not found', :status => 404
|
||||||
def record
|
end
|
||||||
dir = record_table
|
end
|
||||||
|
|
||||||
@result = {'resultDir' => dir}
|
def record
|
||||||
for p in ['result', 'numTestFailures', 'numTestPasses', 'numCommandFailures', 'numCommandPasses', 'numCommandErrors', 'totalTime']
|
dir = record_table
|
||||||
@result[p] = params[p]
|
|
||||||
end
|
@result = {'resultDir' => dir}
|
||||||
File.open(log_path(params[:logFile] || 'default.yml'), 'w') {|f| YAML.dump(@result, f)}
|
['result', 'numTestFailures', 'numTestPasses', 'numCommandFailures', 'numCommandPasses', 'numCommandErrors', 'totalTime'].each do |item|
|
||||||
|
@result[item] = params[item]
|
||||||
render :file => view_path('record.rhtml'), :layout => layout_path
|
end
|
||||||
end
|
|
||||||
|
File.open(log_path(params[:logFile] || 'default.yml'), 'w') {|f| YAML.dump(@result, f)}
|
||||||
def record_table
|
|
||||||
return nil unless result_dir = SeleniumOnRailsConfig.get(:result_dir)
|
render :file => view_path('record.rhtml'), :layout => layout_path
|
||||||
|
end
|
||||||
cur_result_dir = File.join(result_dir, (params[:logFile] || "default").sub(/\.yml$/, ''))
|
|
||||||
FileUtils.mkdir_p(cur_result_dir)
|
def record_table
|
||||||
File.open("#{cur_result_dir}/index.html", "wb") do |f|
|
return nil unless result_dir = @config.get(:result_dir)
|
||||||
f.write <<EOS
|
|
||||||
<html>
|
cur_result_dir = File.join(result_dir, (params[:logFile] || "default").sub(/\.yml$/, ''))
|
||||||
<head><title>Selenium Test Result</title></head>
|
FileUtils.mkdir_p(cur_result_dir)
|
||||||
<frameset cols="30%,*">
|
File.open("#{cur_result_dir}/index.html", "wb") do |f|
|
||||||
<frame name="suite" src="suite.html">
|
f.write <<EOS
|
||||||
<frame name="testcase" src="blank.html">
|
<html>
|
||||||
</frameset>
|
<head><title>Selenium Test Result</title></head>
|
||||||
</html>
|
<frameset cols="30%,*">
|
||||||
EOS
|
<frame name="suite" src="suite.html">
|
||||||
end
|
<frame name="testcase" src="blank.html">
|
||||||
html_header = <<EOS
|
</frameset>
|
||||||
<html>
|
</html>
|
||||||
<head>
|
EOS
|
||||||
<link rel="stylesheet" type="text/css" href="selenium-test.css">
|
end
|
||||||
</head>
|
html_header = <<EOS
|
||||||
<body>
|
<html>
|
||||||
EOS
|
<head>
|
||||||
html_footer = "</body></html>\n"
|
<link rel="stylesheet" type="text/css" href="selenium-test.css">
|
||||||
if selenium_path
|
</head>
|
||||||
css_file = File.join selenium_path, "selenium-test.css"
|
<body>
|
||||||
if File.exist?(css_file)
|
EOS
|
||||||
FileUtils.cp css_file, cur_result_dir
|
html_footer = "</body></html>\n"
|
||||||
end
|
if selenium_path
|
||||||
end
|
css_file = File.join selenium_path, "selenium-test.css"
|
||||||
File.open("#{cur_result_dir}/blank.html", "wb") do |f|
|
if File.exist?(css_file)
|
||||||
f.write "<html><body></body></html>"
|
FileUtils.cp css_file, cur_result_dir
|
||||||
end
|
end
|
||||||
File.open("#{cur_result_dir}/suite.html", "wb") do |f|
|
end
|
||||||
suite = params[:suite]
|
File.open("#{cur_result_dir}/blank.html", "wb") do |f|
|
||||||
suite.sub!(/^.*(<table[\s>])/im, '\1')
|
f.write "<html><body></body></html>"
|
||||||
i = 1
|
end
|
||||||
suite.gsub!(/(\shref=)"[^"]*"/i) do |m|
|
File.open("#{cur_result_dir}/suite.html", "wb") do |f|
|
||||||
link = "#{$1}\"test#{i}.html\" target=\"testcase\""
|
suite = params[:suite]
|
||||||
File.open("#{cur_result_dir}/test#{i}.html", "wb") do |testcase|
|
suite.sub!(/^.*(<table[\s>])/im, '\1')
|
||||||
testcase.write html_header
|
i = 1
|
||||||
testcase.write(params["testTable.#{i}"])
|
suite.gsub!(/(\shref=)"[^"]*"/i) do |m|
|
||||||
testcase.write html_footer
|
link = "#{$1}\"test#{i}.html\" target=\"testcase\""
|
||||||
end
|
File.open("#{cur_result_dir}/test#{i}.html", "wb") do |testcase|
|
||||||
i += 1
|
testcase.write html_header
|
||||||
link
|
testcase.write(params["testTable.#{i}"])
|
||||||
end
|
testcase.write html_footer
|
||||||
f.write html_header
|
end
|
||||||
f.write suite
|
i += 1
|
||||||
f.write html_footer
|
link
|
||||||
end
|
end
|
||||||
cur_result_dir
|
f.write html_header
|
||||||
end
|
f.write suite
|
||||||
|
f.write html_footer
|
||||||
private :record_table
|
end
|
||||||
|
cur_result_dir
|
||||||
|
end
|
||||||
end
|
|
||||||
|
private :record_table
|
||||||
|
end
|
||||||
|
|
@ -1,16 +1,16 @@
|
||||||
class SwitchEnvironmentController < ActionController::Base
|
class SwitchEnvironmentController < ActionController::Base
|
||||||
def index
|
def index
|
||||||
readme_path = File.expand_path File.join(File.dirname(__FILE__), '..', 'README')
|
readme_path = File.expand_path File.join(File.dirname(__FILE__), '..', 'README')
|
||||||
render :status => 500, :locals => {:readme_path => readme_path }, :inline => <<END
|
render :status => 500, :locals => {:readme_path => readme_path }, :inline => <<END
|
||||||
<p>
|
<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
|
environment<%= SeleniumOnRailsConfig.get(:environments).size > 1 ? 's' : '' %> (you're running
|
||||||
<%= RAILS_ENV %>).
|
<%= RAILS_ENV %>).
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
Start your server in a different environment or see <tt><%= readme_path %></tt>
|
Start your server in a different environment or see <tt><%= readme_path %></tt>
|
||||||
for information regarding how to change this behavior.
|
for information regarding how to change this behavior.
|
||||||
</p>
|
</p>
|
||||||
END
|
END
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
@ -1,9 +1,8 @@
|
||||||
module SeleniumHelper
|
module SeleniumHelper
|
||||||
include SeleniumOnRails::SuiteRenderer
|
include SeleniumOnRails::SuiteRenderer
|
||||||
include SeleniumOnRails::FixtureLoader
|
include SeleniumOnRails::FixtureLoader
|
||||||
|
|
||||||
def test_case_name filename
|
def test_case_name filename
|
||||||
File.basename(filename).sub(/\..*/,'').humanize
|
File.basename(filename).sub(/\..*/,'').humanize
|
||||||
end
|
end
|
||||||
|
end
|
||||||
end
|
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,11 @@
|
||||||
module SeleniumOnRails # :nodoc
|
module SeleniumOnRails # :nodoc
|
||||||
end
|
end
|
||||||
|
|
||||||
require 'selenium_on_rails/selenese'
|
require 'selenium_on_rails/selenese'
|
||||||
require 'selenium_on_rails/test_builder'
|
require 'selenium_on_rails/test_builder'
|
||||||
require 'selenium_on_rails/rselenese'
|
require 'selenium_on_rails/rselenese'
|
||||||
require 'selenium_on_rails/suite_renderer'
|
require 'selenium_on_rails/suite_renderer'
|
||||||
require 'selenium_on_rails/paths'
|
require 'selenium_on_rails/paths'
|
||||||
require 'selenium_on_rails/fixture_loader'
|
require 'selenium_on_rails/fixture_loader'
|
||||||
require 'selenium_on_rails/partials_support'
|
require 'selenium_on_rails/partials_support'
|
||||||
require 'selenium_on_rails/renderer'
|
require 'selenium_on_rails/renderer'
|
||||||
|
|
|
||||||
|
|
@ -1,210 +1,214 @@
|
||||||
require File.dirname(__FILE__) + '/paths'
|
$: << File.expand_path(File.dirname(__FILE__) + "/")
|
||||||
require File.dirname(__FILE__) + '/../selenium_on_rails_config'
|
$: << File.expand_path(File.dirname(__FILE__) + "/../")
|
||||||
require 'net/http'
|
require 'paths'
|
||||||
require 'tempfile'
|
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
|
BROWSERS = c :browsers, {}
|
||||||
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
|
REUSE_EXISTING_SERVER = c :reuse_existing_server, true
|
||||||
HOST = c :host, 'localhost'
|
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
|
||||||
PORTS = c(:port_start, 3000)..c(:port_end, 3005)
|
HOST = c :host, 'localhost'
|
||||||
TEST_RUNNER_URL = c :test_runner_url, '/selenium/TestRunner.html'
|
PORTS = c(:port_start, 3000)..c(:port_end, 3005)
|
||||||
MAX_BROWSER_DURATION = c :max_browser_duration, 2*60
|
BASE_URL_PATH = c :base_url_path, '/'
|
||||||
MULTI_WINDOW = c :multi_window, false
|
TEST_RUNNER_URL = c :test_runner_url, '/selenium/TestRunner.html'
|
||||||
SERVER_COMMAND = c_b :server_command do
|
MAX_BROWSER_DURATION = c :max_browser_duration, 2*60
|
||||||
server_path = File.expand_path(File.dirname(__FILE__) + '/../../../../../script/server')
|
MULTI_WINDOW = c :multi_window, false
|
||||||
if RUBY_PLATFORM =~ /mswin/
|
SERVER_COMMAND = c_b :server_command do
|
||||||
"ruby #{server_path} -p %d -e test > NUL 2>&1"
|
server_path = File.expand_path(File.dirname(__FILE__) + '/../../../../../script/server')
|
||||||
else
|
if RUBY_PLATFORM =~ /mswin/
|
||||||
# don't use redirects to /dev/nul since it makes the fork return wrong pid
|
"ruby #{server_path} webrick -p %d -e test > NUL 2>&1"
|
||||||
# see UnixSubProcess
|
else
|
||||||
"#{server_path} -p %d -e test"
|
# don't use redirects to /dev/nul since it makes the fork return wrong pid
|
||||||
end
|
# see UnixSubProcess
|
||||||
end
|
"#{server_path} webrick -p %d -e test"
|
||||||
|
end
|
||||||
module SeleniumOnRails
|
end
|
||||||
class AcceptanceTestRunner
|
|
||||||
include SeleniumOnRails::Paths
|
module SeleniumOnRails
|
||||||
|
class AcceptanceTestRunner
|
||||||
def run
|
include SeleniumOnRails::Paths
|
||||||
raise 'no browser specified, edit/create config.yml' if BROWSERS.empty?
|
|
||||||
start_server
|
def run
|
||||||
has_error = false
|
raise 'no browser specified, edit/create config.yml' if BROWSERS.empty?
|
||||||
begin
|
start_server
|
||||||
BROWSERS.each_pair do |browser, path|
|
has_error = false
|
||||||
log_file = start_browser browser, path
|
begin
|
||||||
wait_for_completion log_file
|
BROWSERS.each_pair do |browser, path|
|
||||||
stop_browser
|
log_file = start_browser browser, path
|
||||||
result = YAML::load_file log_file
|
wait_for_completion log_file
|
||||||
print_result result
|
stop_browser
|
||||||
has_error ||= result['numTestFailures'].to_i > 0
|
result = YAML::load_file log_file
|
||||||
File.delete log_file unless has_error
|
print_result result
|
||||||
end
|
has_error ||= result['numTestFailures'].to_i > 0
|
||||||
rescue
|
# File.delete log_file unless has_error
|
||||||
stop_server
|
end
|
||||||
raise
|
rescue
|
||||||
end
|
stop_server
|
||||||
stop_server
|
raise
|
||||||
raise 'Test failures' if has_error
|
end
|
||||||
end
|
stop_server
|
||||||
|
raise 'Test failures' if has_error
|
||||||
private
|
end
|
||||||
def start_server
|
|
||||||
PORTS.each do |p|
|
private
|
||||||
@port = p
|
def start_server
|
||||||
case server_check
|
PORTS.each do |p|
|
||||||
when :success
|
@port = p
|
||||||
return if REUSE_EXISTING_SERVER
|
case server_check
|
||||||
next
|
when :success
|
||||||
when Fixnum
|
return if REUSE_EXISTING_SERVER
|
||||||
next
|
next
|
||||||
when :no_response
|
when Fixnum
|
||||||
next unless START_SERVER
|
next
|
||||||
do_start_server
|
when :no_response
|
||||||
return
|
next unless START_SERVER
|
||||||
end
|
do_start_server
|
||||||
end
|
return
|
||||||
raise START_SERVER ? 'failed to start server': 'failed to find existing server, run script/server -e test'
|
end
|
||||||
end
|
end
|
||||||
|
raise START_SERVER ? 'failed to start server': 'failed to find existing server, run script/server -e test'
|
||||||
def do_start_server
|
end
|
||||||
puts 'Starting server'
|
|
||||||
@server = start_subprocess(format(SERVER_COMMAND, @port))
|
def do_start_server
|
||||||
while true
|
puts 'Starting server'
|
||||||
print '.'
|
@server = start_subprocess(format(SERVER_COMMAND, @port))
|
||||||
r = server_check
|
while true
|
||||||
if r == :success
|
print '.'
|
||||||
puts
|
r = server_check
|
||||||
return
|
if r == :success
|
||||||
end
|
puts
|
||||||
raise "server returned error: #{r}" if r.instance_of? Fixnum
|
return
|
||||||
sleep 3
|
end
|
||||||
end
|
raise "server returned error: #{r}" if r.instance_of? Fixnum
|
||||||
end
|
sleep 3
|
||||||
|
end
|
||||||
def server_check
|
end
|
||||||
begin
|
|
||||||
res = Net::HTTP.get_response HOST, TEST_RUNNER_URL, @port
|
def server_check
|
||||||
return :success if (200..399).include? res.code.to_i
|
begin
|
||||||
return res.code.to_i
|
res = Net::HTTP.get_response HOST, TEST_RUNNER_URL, @port
|
||||||
rescue Errno::ECONNREFUSED
|
return :success if (200..399).include? res.code.to_i
|
||||||
return :no_response
|
return res.code.to_i
|
||||||
end
|
rescue Errno::ECONNREFUSED
|
||||||
end
|
return :no_response
|
||||||
|
end
|
||||||
def stop_server
|
end
|
||||||
return unless defined? @server
|
|
||||||
puts
|
def stop_server
|
||||||
@server.stop 'server'
|
return unless defined? @server
|
||||||
end
|
puts
|
||||||
|
@server.stop 'server'
|
||||||
def start_browser browser, path
|
end
|
||||||
puts
|
|
||||||
puts "Starting #{browser}"
|
def start_browser browser, path
|
||||||
log = log_file browser
|
puts
|
||||||
command = "\"#{path}\" \"http://#{HOST}:#{@port}#{TEST_RUNNER_URL}?test=tests&auto=true&resultsUrl=postResults/#{log}&multiWindow=#{MULTI_WINDOW}\""
|
puts "Starting #{browser}"
|
||||||
@browser = start_subprocess command
|
base_url = "http://#{HOST}:#{@port}#{BASE_URL_PATH}"
|
||||||
log_path log
|
log = log_file browser
|
||||||
end
|
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
|
||||||
def stop_browser
|
log_path log
|
||||||
@browser.stop 'browser'
|
end
|
||||||
end
|
|
||||||
|
def stop_browser
|
||||||
def start_subprocess command
|
@browser.stop 'browser'
|
||||||
if RUBY_PLATFORM =~ /mswin/
|
end
|
||||||
SeleniumOnRails::AcceptanceTestRunner::Win32SubProcess.new command
|
|
||||||
elsif RUBY_PLATFORM =~ /darwin/i && command =~ /safari/i
|
def start_subprocess command
|
||||||
SeleniumOnRails::AcceptanceTestRunner::SafariSubProcess.new command
|
if RUBY_PLATFORM =~ /mswin/
|
||||||
else
|
SeleniumOnRails::AcceptanceTestRunner::Win32SubProcess.new command
|
||||||
SeleniumOnRails::AcceptanceTestRunner::UnixSubProcess.new command
|
elsif RUBY_PLATFORM =~ /darwin/i && command =~ /safari/i
|
||||||
end
|
SeleniumOnRails::AcceptanceTestRunner::SafariSubProcess.new command
|
||||||
end
|
else
|
||||||
|
SeleniumOnRails::AcceptanceTestRunner::UnixSubProcess.new command
|
||||||
def log_file browser
|
end
|
||||||
(0..100).each do |i|
|
end
|
||||||
name = browser + (i==0 ? '' : "(#{i})") + '.yml'
|
|
||||||
return name unless File.exist?(log_path(name))
|
def log_file browser
|
||||||
end
|
FileUtils.mkdir_p(log_path(''))
|
||||||
raise 'there are way too many files in the log directory...'
|
(0..100).each do |i|
|
||||||
end
|
name = browser + (i==0 ? '' : "(#{i})") + '.yml'
|
||||||
|
return name unless File.exist?(log_path(name))
|
||||||
def wait_for_completion log_file
|
end
|
||||||
duration = 0
|
raise 'there are way too many files in the log directory...'
|
||||||
while true
|
end
|
||||||
raise 'browser takes too long' if duration > MAX_BROWSER_DURATION
|
|
||||||
print '.'
|
def wait_for_completion log_file
|
||||||
break if File.exist? log_file
|
duration = 0
|
||||||
sleep 5
|
while true
|
||||||
duration += 5
|
raise 'browser takes too long' if duration > MAX_BROWSER_DURATION
|
||||||
end
|
print '.'
|
||||||
puts
|
break if File.exist? log_file
|
||||||
end
|
sleep 5
|
||||||
|
duration += 5
|
||||||
def print_result result
|
end
|
||||||
puts "Finished in #{result['totalTime']} seconds."
|
puts
|
||||||
puts
|
end
|
||||||
puts "#{result['numTestPasses']} tests passed, #{result['numTestFailures']} tests failed"
|
|
||||||
puts "(Results stored in '#{result['resultDir']}')" if result['resultDir']
|
def print_result result
|
||||||
end
|
puts "Finished in #{result['totalTime']} seconds."
|
||||||
|
puts
|
||||||
end
|
puts "#{result['numTestPasses']} tests passed, #{result['numTestFailures']} tests failed"
|
||||||
end
|
puts "(Results stored in '#{result['resultDir']}')" if result['resultDir']
|
||||||
|
end
|
||||||
class SeleniumOnRails::AcceptanceTestRunner::SubProcess
|
|
||||||
def stop what
|
end
|
||||||
begin
|
end
|
||||||
puts "Stopping #{what} (pid=#{@pid}) ..."
|
|
||||||
Process.kill 9, @pid
|
class SeleniumOnRails::AcceptanceTestRunner::SubProcess
|
||||||
rescue Errno::EPERM #such as the process is already closed (tabbed browser)
|
def stop what
|
||||||
end
|
begin
|
||||||
end
|
puts "Stopping #{what} (pid=#{@pid}) ..."
|
||||||
end
|
Process.kill 9, @pid
|
||||||
|
rescue Errno::EPERM #such as the process is already closed (tabbed browser)
|
||||||
class SeleniumOnRails::AcceptanceTestRunner::Win32SubProcess < SeleniumOnRails::AcceptanceTestRunner::SubProcess
|
end
|
||||||
def initialize command
|
end
|
||||||
require 'win32/open3' #win32-open3 http://raa.ruby-lang.org/project/win32-open3/
|
end
|
||||||
|
|
||||||
puts command
|
class SeleniumOnRails::AcceptanceTestRunner::Win32SubProcess < SeleniumOnRails::AcceptanceTestRunner::SubProcess
|
||||||
input, output, error, @pid = Open4.popen4 command, 't', true
|
def initialize command
|
||||||
end
|
require 'win32/open3' #win32-open3 http://raa.ruby-lang.org/project/win32-open3/
|
||||||
end
|
|
||||||
|
puts command
|
||||||
class SeleniumOnRails::AcceptanceTestRunner::UnixSubProcess < SeleniumOnRails::AcceptanceTestRunner::SubProcess
|
input, output, error, @pid = Open4.popen4 command, 't', true
|
||||||
def initialize command
|
end
|
||||||
puts command
|
end
|
||||||
@pid = fork do
|
|
||||||
# Since we can't use shell redirects without screwing
|
class SeleniumOnRails::AcceptanceTestRunner::UnixSubProcess < SeleniumOnRails::AcceptanceTestRunner::SubProcess
|
||||||
# up the pid, we'll reopen stdin and stdout instead
|
def initialize command
|
||||||
# to get the same effect.
|
puts command
|
||||||
[STDOUT,STDERR].each {|f| f.reopen '/dev/null', 'w' }
|
@pid = fork do
|
||||||
exec command
|
# Since we can't use shell redirects without screwing
|
||||||
end
|
# up the pid, we'll reopen stdin and stdout instead
|
||||||
end
|
# to get the same effect.
|
||||||
end
|
[STDOUT,STDERR].each {|f| f.reopen '/dev/null', 'w' }
|
||||||
|
exec command
|
||||||
# The path to Safari should look like this: /Applications/Safari.app/Contents/MacOS/Safari
|
end
|
||||||
class SeleniumOnRails::AcceptanceTestRunner::SafariSubProcess < SeleniumOnRails::AcceptanceTestRunner::UnixSubProcess
|
end
|
||||||
def initialize command
|
end
|
||||||
f = File.open(Tempfile.new('selenium-on-rails').path, 'w')
|
|
||||||
f.puts <<-HTML
|
# The path to Safari should look like this: /Applications/Safari.app/Contents/MacOS/Safari
|
||||||
<html>
|
class SeleniumOnRails::AcceptanceTestRunner::SafariSubProcess < SeleniumOnRails::AcceptanceTestRunner::UnixSubProcess
|
||||||
<head>
|
def initialize command
|
||||||
<script type="text/javascript" charset="utf-8">
|
f = File.open(Tempfile.new('selenium-on-rails').path, 'w')
|
||||||
window.location.href = #{command.split.last};
|
f.puts <<-HTML
|
||||||
</script>
|
<html>
|
||||||
</head>
|
<head>
|
||||||
<body></body>
|
<script type="text/javascript" charset="utf-8">
|
||||||
</html>
|
window.location.href = #{command.split.last};
|
||||||
HTML
|
</script>
|
||||||
f.close
|
</head>
|
||||||
|
<body></body>
|
||||||
super "#{command.split.first} #{f.path}"
|
</html>
|
||||||
end
|
HTML
|
||||||
|
f.close
|
||||||
end
|
|
||||||
|
super "#{command.split.first} #{f.path}"
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,54 +1,57 @@
|
||||||
require 'active_record/fixtures'
|
require 'test/unit'
|
||||||
|
require 'active_record'
|
||||||
module SeleniumOnRails::FixtureLoader
|
require 'active_record/fixtures'
|
||||||
include SeleniumOnRails::Paths
|
|
||||||
|
module SeleniumOnRails::FixtureLoader
|
||||||
def available_fixtures
|
include SeleniumOnRails::Paths
|
||||||
fixtures = {}
|
|
||||||
path = fixtures_path + '/'
|
def available_fixtures
|
||||||
files = Dir["#{path}**/*.{yml,csv}"]
|
fixtures = {}
|
||||||
files.each do |file|
|
path = fixtures_path + '/'
|
||||||
rel_path = file.sub(path, '')
|
files = Dir["#{path}**/*.{yml,csv}"]
|
||||||
next if skip_file? rel_path
|
files.each do |file|
|
||||||
fixture_set = File.dirname(rel_path)
|
rel_path = file.sub(path, '')
|
||||||
fixture_set = '' if fixture_set == '.'
|
next if skip_file? rel_path
|
||||||
fixture = rel_path.sub /\.[^.]*$/, ''
|
fixture_set = File.dirname(rel_path)
|
||||||
fixtures[fixture_set] ||= []
|
fixture_set = '' if fixture_set == '.'
|
||||||
fixtures[fixture_set] << fixture
|
fixture = rel_path.sub /\.[^.]*$/, ''
|
||||||
end
|
fixtures[fixture_set] ||= []
|
||||||
|
fixtures[fixture_set] << fixture
|
||||||
fixtures
|
end
|
||||||
end
|
|
||||||
|
fixtures
|
||||||
def load_fixtures fixtures_param
|
end
|
||||||
available = nil
|
|
||||||
fixtures = fixtures_param.split(/\s*,\s*/).collect do |f|
|
def load_fixtures fixtures_param
|
||||||
fixture_set = File.dirname f
|
available = nil
|
||||||
fixture_set = '' if fixture_set == '.'
|
fixtures = fixtures_param.split(/\s*,\s*/).collect do |f|
|
||||||
fixture = File.basename f
|
fixture_set = File.dirname f
|
||||||
if fixture == 'all'
|
fixture_set = '' if fixture_set == '.'
|
||||||
available ||= available_fixtures
|
fixture = File.basename f
|
||||||
available[fixture_set]
|
if fixture == 'all'
|
||||||
else
|
available ||= available_fixtures
|
||||||
f
|
available[fixture_set]
|
||||||
end
|
else
|
||||||
end
|
f
|
||||||
fixtures.flatten!
|
end
|
||||||
fixtures.reject! {|f| f.blank? }
|
end
|
||||||
|
fixtures.flatten!
|
||||||
if fixtures.any?
|
fixtures.reject! {|f| f.blank? }
|
||||||
Fixtures.create_fixtures fixtures_path, fixtures
|
|
||||||
end
|
if fixtures.any?
|
||||||
fixtures
|
Fixtures.reset_cache # in case they've already been loaded and things have changed
|
||||||
end
|
Fixtures.create_fixtures fixtures_path, fixtures
|
||||||
|
end
|
||||||
def clear_tables tables
|
fixtures
|
||||||
table_names = tables.split /\s*,\s*/
|
end
|
||||||
connection = ActiveRecord::Base.connection
|
|
||||||
table_names.each do |table|
|
def clear_tables tables
|
||||||
connection.execute "DELETE FROM #{table}"
|
table_names = tables.split /\s*,\s*/
|
||||||
end
|
connection = ActiveRecord::Base.connection
|
||||||
table_names
|
table_names.each do |table|
|
||||||
end
|
connection.execute "DELETE FROM #{table}"
|
||||||
|
end
|
||||||
end
|
table_names
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
||||||
|
|
|
||||||
|
|
@ -1,38 +1,36 @@
|
||||||
# Provides partials support to test cases so they can include other partial test
|
require 'selenium_on_rails/paths'
|
||||||
# cases.
|
|
||||||
#
|
module SeleniumOnRails::PartialsSupport
|
||||||
# The partial's commands are returned as html table rows.
|
include SeleniumOnRails::Paths
|
||||||
module SeleniumOnRails::PartialsSupport
|
|
||||||
include SeleniumOnRails::Paths
|
# Overrides where the partial is searched for, and returns only the command table rows.
|
||||||
|
def render_partial(options)
|
||||||
# Overrides where the partial is searched for, and returns only the command table rows.
|
pattern = partial_pattern options[:partial]
|
||||||
def render_partial partial_path = default_template_name, object = nil, local_assigns = nil, status = nil
|
filename = Dir[pattern].first
|
||||||
pattern = partial_pattern partial_path
|
raise "Partial '#{partial_path}' cannot be found! (Looking for file: '#{pattern}')" unless filename
|
||||||
filename = Dir[pattern].first
|
partial = render :file => filename, :use_full_path => false, :locals => options[:locals]
|
||||||
raise "Partial '#{partial_path}' cannot be found! (Looking for file: '#{pattern}')" unless filename
|
extract_commands_from_partial partial
|
||||||
partial = render :file => filename, :use_full_path => false, :locals => local_assigns
|
end
|
||||||
extract_commands_from_partial partial
|
|
||||||
end
|
# 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.
|
||||||
# Extracts the commands from a partial. The partial must contain a html table
|
def extract_commands_from_partial partial
|
||||||
# and the first row is ignored since it cannot contain a command.
|
partial = partial.match(/.*<table>.*?<tr>.*?<\/tr>(.*?)<\/table>/im)[1]
|
||||||
def extract_commands_from_partial partial
|
raise "Partial '#{name}' doesn't contain any table" unless partial
|
||||||
partial = partial.match(/.*<table>.*?<tr>.*?<\/tr>(.*?)<\/table>/im)[1]
|
partial
|
||||||
raise "Partial '#{name}' doesn't contain any table" unless partial
|
end
|
||||||
partial
|
|
||||||
end
|
private
|
||||||
|
# Generates the file pattern from the provided partial path.
|
||||||
private
|
# The starting _ and file extension don't have too be provided.
|
||||||
# Generates the file pattern from the provided partial path.
|
def partial_pattern partial_path
|
||||||
# The starting _ and file extension don't have too be provided.
|
path = partial_path.split '/'
|
||||||
def partial_pattern partial_path
|
filename = path.delete_at(-1)
|
||||||
path = partial_path.split '/'
|
filename = '_' + filename unless filename.starts_with? '_'
|
||||||
filename = path.delete_at(-1)
|
filename << '.*' unless filename.include? '.'
|
||||||
filename = '_' + filename unless filename.starts_with? '_'
|
pattern = selenium_tests_path + '/'
|
||||||
filename << '.*' unless filename.include? '.'
|
pattern << path.join('/') + '/' if path
|
||||||
pattern = selenium_tests_path + '/'
|
pattern << filename
|
||||||
pattern << path.join('/') + '/' if path
|
end
|
||||||
pattern << filename
|
|
||||||
end
|
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
@ -1,5 +1,9 @@
|
||||||
|
require 'selenium_on_rails_config'
|
||||||
|
|
||||||
module SeleniumOnRails
|
module SeleniumOnRails
|
||||||
module Paths
|
module Paths
|
||||||
|
attr_accessor :config
|
||||||
|
|
||||||
def selenium_path
|
def selenium_path
|
||||||
@@selenium_path ||= find_selenium_path
|
@@selenium_path ||= find_selenium_path
|
||||||
@@selenium_path
|
@@selenium_path
|
||||||
|
|
@ -13,8 +17,11 @@ module SeleniumOnRails
|
||||||
File.expand_path(File.dirname(__FILE__) + '/../views/' + view)
|
File.expand_path(File.dirname(__FILE__) + '/../views/' + view)
|
||||||
end
|
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
|
def layout_path
|
||||||
'/layout.rhtml'
|
'layout.rhtml'
|
||||||
end
|
end
|
||||||
|
|
||||||
def fixtures_path
|
def fixtures_path
|
||||||
|
|
@ -32,25 +39,22 @@ module SeleniumOnRails
|
||||||
false
|
false
|
||||||
end
|
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
|
|
||||||
end
|
|
||||||
|
|
||||||
sel_dirs.to_a.each do |seleniumdir|
|
def find_selenium_path
|
||||||
['', 'core', 'selenium', 'javascript'].each do |subdir|
|
sel_dirs = @config.get :selenium_path do
|
||||||
path = File.join seleniumdir, subdir
|
File.expand_path(File.dirname(__FILE__) + '/../../selenium-core')
|
||||||
return path if File.exist?(File.join(path, 'TestRunner.html'))
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
raise 'Could not find Selenium Core installation'
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
sel_dirs.to_a.each do |seleniumdir|
|
||||||
|
['', 'core', 'selenium', 'javascript'].each do |subdir|
|
||||||
|
path = File.join seleniumdir, subdir
|
||||||
|
return path if File.exist?(File.join(path, 'TestRunner.html'))
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
raise 'Could not find Selenium Core installation'
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -1,17 +1,20 @@
|
||||||
module SeleniumOnRails::Renderer
|
module SeleniumOnRails::Renderer
|
||||||
include SeleniumOnRails::Paths
|
include SeleniumOnRails::Paths
|
||||||
include SeleniumHelper
|
|
||||||
|
def render_test_case filename
|
||||||
def render_test_case filename
|
@template.extend SeleniumOnRails::PartialsSupport
|
||||||
@template.extend SeleniumOnRails::PartialsSupport
|
@page_title = test_case_name filename
|
||||||
@page_title = test_case_name filename
|
output = render_to_string :file => filename, :locals => {"page_title" => @page_title}
|
||||||
output = render_to_string :file => filename
|
layout = (output =~ /<html>/i ? false : layout_path)
|
||||||
layout = (output =~ /<html>/i ? false : layout_path)
|
render :text => output, :layout => layout
|
||||||
render :text => output, :layout => layout
|
|
||||||
|
headers['Cache-control'] = 'no-cache'
|
||||||
headers['Cache-control'] = 'no-cache'
|
headers['Pragma'] = 'no-cache'
|
||||||
headers['Pragma'] = 'no-cache'
|
headers['Expires'] = '-1'
|
||||||
headers['Expires'] = '-1'
|
end
|
||||||
end
|
|
||||||
|
def test_case_name filename
|
||||||
|
File.basename(filename).sub(/\..*/,'').humanize
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
@ -13,23 +13,24 @@ ActionView::Template.register_template_handler 'rsel', SeleniumOnRails::RSelenes
|
||||||
class SeleniumOnRails::RSelenese < SeleniumOnRails::TestBuilder
|
class SeleniumOnRails::RSelenese < SeleniumOnRails::TestBuilder
|
||||||
attr_accessor :view
|
attr_accessor :view
|
||||||
|
|
||||||
# Create a new RSelenese renderer bound to _view_.
|
|
||||||
def initialize view
|
def initialize view
|
||||||
super view
|
super view
|
||||||
@view = view
|
@view = view
|
||||||
end
|
end
|
||||||
|
|
||||||
# Render _template_ using _local_assigns_.
|
def render template, local_assigns
|
||||||
def render template
|
title = (@view.assigns['page_title'] or local_assigns['page_title'])
|
||||||
title = @view.assigns['page_title']
|
|
||||||
table(title) do
|
table(title) do
|
||||||
test = self #to enable test.command
|
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
|
||||||
end
|
end
|
||||||
|
|
||||||
def compilable?
|
def self.call(template)
|
||||||
false
|
"#{name}.new(self).render(template, local_assigns)"
|
||||||
end
|
end
|
||||||
|
end
|
||||||
end
|
|
||||||
|
|
|
||||||
|
|
@ -1,16 +1,18 @@
|
||||||
|
require 'selenium_on_rails/partials_support'
|
||||||
|
|
||||||
class SeleniumOnRails::Selenese
|
class SeleniumOnRails::Selenese
|
||||||
end
|
end
|
||||||
ActionView::Template.register_template_handler 'sel', SeleniumOnRails::Selenese
|
ActionView::Template.register_template_handler 'sel', SeleniumOnRails::Selenese
|
||||||
|
|
||||||
|
|
||||||
class SeleniumOnRails::Selenese
|
class SeleniumOnRails::Selenese
|
||||||
def initialize view
|
def initialize view
|
||||||
@view = view
|
@view = view
|
||||||
end
|
end
|
||||||
|
|
||||||
def render template
|
def render template, local_assigns = {}
|
||||||
name = @view.assigns['page_title']
|
name = (@view.assigns['page_title'] or local_assigns['page_title'])
|
||||||
lines = template.strip.split "\n"
|
lines = template.source.strip.split "\n"
|
||||||
html = ''
|
html = ''
|
||||||
html << extract_comments(lines)
|
html << extract_comments(lines)
|
||||||
html << extract_commands(lines, name)
|
html << extract_commands(lines, name)
|
||||||
|
|
@ -19,10 +21,6 @@ class SeleniumOnRails::Selenese
|
||||||
html
|
html
|
||||||
end
|
end
|
||||||
|
|
||||||
def compilable?
|
|
||||||
false
|
|
||||||
end
|
|
||||||
|
|
||||||
private
|
private
|
||||||
def next_line lines, expects
|
def next_line lines, expects
|
||||||
while lines.any?
|
while lines.any?
|
||||||
|
|
@ -36,6 +34,10 @@ class SeleniumOnRails::Selenese
|
||||||
return l
|
return l
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def self.call(template)
|
||||||
|
"#{name}.new(self).render(template, local_assigns)"
|
||||||
|
end
|
||||||
|
|
||||||
def extract_comments lines
|
def extract_comments lines
|
||||||
comments = ''
|
comments = ''
|
||||||
|
|
|
||||||
|
|
@ -1,51 +1,56 @@
|
||||||
module SeleniumOnRails::SuiteRenderer
|
require 'selenium_on_rails'
|
||||||
def test_suite_name path
|
|
||||||
return 'All test cases' if [nil, '/'].include? path_to_relative_url(path)
|
module SeleniumOnRails
|
||||||
File.split(path)[-1].humanize
|
module SuiteRenderer
|
||||||
end
|
def test_suite_name path
|
||||||
|
return 'All test cases' if [nil, '/'].include? path_to_relative_url(path)
|
||||||
def test_suites path
|
File.split(path)[-1].humanize
|
||||||
suites = []
|
end
|
||||||
|
|
||||||
parent_path = File.join(File.split(path).slice(0..-2)) #all but last
|
def test_suites path
|
||||||
parent_path = path_to_relative_url parent_path
|
suites = []
|
||||||
suites << ['..', parent_path] unless parent_path.nil?
|
|
||||||
|
parent_path = File.join(File.split(path).slice(0..-2)) #all but last
|
||||||
visit_all_tests path, '', Proc.new {|n, p| suites << [n,path_to_relative_url(p)]}, nil
|
parent_path = path_to_relative_url parent_path
|
||||||
suites
|
suites << ['..', parent_path] unless parent_path.nil?
|
||||||
end
|
|
||||||
|
visit_all_tests path, '', Proc.new {|n, p| suites << [n,path_to_relative_url(p)]}, nil
|
||||||
def test_cases path
|
suites
|
||||||
tests = []
|
end
|
||||||
visit_all_tests path, '', nil, Proc.new {|n, p| tests << [n,p]}
|
|
||||||
tests
|
def test_cases path
|
||||||
end
|
tests = []
|
||||||
|
visit_all_tests path, '', nil, Proc.new {|n, p| tests << [n,p]}
|
||||||
def link_to_test_case suite_name, filename
|
tests
|
||||||
name = suite_name + test_case_name(filename)
|
end
|
||||||
link_to name, :action => :test_file, :testname => path_to_relative_url(filename).sub(/^\//,'')
|
|
||||||
end
|
def link_to_test_case suite_name, filename
|
||||||
|
name = suite_name + test_case_name(filename)
|
||||||
private
|
link_to name, :action => :test_file, :testname => path_to_relative_url(filename).sub(/^\//,'')
|
||||||
def path_to_relative_url path
|
end
|
||||||
slt = @controller.selenium_tests_path
|
|
||||||
return nil unless path.index slt
|
private ###############################################
|
||||||
path.sub slt, ''
|
|
||||||
end
|
def path_to_relative_url path
|
||||||
|
slt = @controller.selenium_tests_path
|
||||||
def visit_all_tests path, suite_name, suite_consumer, test_consumer
|
return nil unless path.index slt
|
||||||
dirs = [] #add dirs to an array in order for files to be processed before dirs
|
path.sub slt, ''
|
||||||
Dir.entries(path).sort.each do |e|
|
end
|
||||||
next if skip_file?(e) or ['.','..'].include?(e)
|
|
||||||
filename = File.join path, e
|
def visit_all_tests path, suite_name, suite_consumer, test_consumer
|
||||||
if File.directory? filename
|
dirs = [] #add dirs to an array in order for files to be processed before dirs
|
||||||
dirs << [filename, "#{suite_name}#{e.humanize}."]
|
Dir.entries(path).sort.each do |e|
|
||||||
suite_consumer.call("#{suite_name}#{e.humanize}", filename) if suite_consumer
|
next if skip_file?(e) or ['.','..'].include?(e)
|
||||||
else
|
filename = File.join path, e
|
||||||
test_consumer.call(suite_name, filename) if test_consumer
|
if File.directory? filename
|
||||||
end
|
dirs << [filename, "#{suite_name}#{e.humanize}."]
|
||||||
end
|
suite_consumer.call("#{suite_name}#{e.humanize}", filename) if suite_consumer
|
||||||
#recurse through dirs
|
else
|
||||||
dirs.each {|p, n| visit_all_tests p, n, suite_consumer, test_consumer }
|
test_consumer.call(suite_name, filename) if test_consumer
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
#recurse through dirs
|
||||||
|
dirs.each {|p, n| visit_all_tests p, n, suite_consumer, test_consumer }
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
|
||||||
|
|
@ -1,92 +1,116 @@
|
||||||
# Builds Selenium test table using a high-level Ruby interface. Normally
|
require 'selenium_on_rails/test_builder_actions'
|
||||||
# invoked through SeleniumOnRails::RSelenese.
|
require 'selenium_on_rails/test_builder_accessors'
|
||||||
#
|
|
||||||
# See SeleniumOnRails::TestBuilderActions for the available actions and
|
# Create test_builder_user_actions.rb to support actions included
|
||||||
# SeleniumOnRails::TestBuilderAccessors for the available checks.
|
# in selenium-core's user-extensions.js
|
||||||
#
|
#
|
||||||
# For more information on the commands supported by TestBuilder, see the
|
# See test_builder_user_actions.rb.example for examples matching
|
||||||
# Selenium Commands Documentation at
|
# selenium-core's user-extensions.js.sample
|
||||||
# http://release.openqa.org/selenium-core/nightly/reference.html.
|
module SeleniumOnRails::TestBuilderUserActions
|
||||||
class SeleniumOnRails::TestBuilder
|
end
|
||||||
include SeleniumOnRails::TestBuilderActions
|
require 'selenium_on_rails/test_builder_user_actions' if File.exist?(File.expand_path(File.join(File.dirname(__FILE__), 'test_builder_user_actions.rb')))
|
||||||
include SeleniumOnRails::TestBuilderAccessors
|
|
||||||
|
|
||||||
# Convert _str_ to a Selenium command name.
|
# Create test_builder_user_accessors.rb to support accessors
|
||||||
def self.selenize str
|
# included in selenium-core's user-extensions.js
|
||||||
str.camelize.gsub(/^[A-Z]/) {|s| s.downcase }
|
#
|
||||||
end
|
# See test_builder_user_accessors.rb.example for examples matching
|
||||||
|
# selenium-core's user-extensions.js.sample
|
||||||
# Prepends _pattern_ with 'exact:' if it would be considered containing
|
module SeleniumOnRails::TestBuilderUserAccessors
|
||||||
# string-match pattern otherwise.
|
end
|
||||||
def exactize pattern
|
require 'selenium_on_rails/test_builder_user_accessors' if File.exist?(File.expand_path(File.join(File.dirname(__FILE__), 'test_builder_user_accessors.rb')))
|
||||||
pattern.include?(':') ? "exact:#{pattern}" : pattern
|
|
||||||
end
|
# Builds Selenium test table using a high-level Ruby interface. Normally
|
||||||
|
# invoked through SeleniumOnRails::RSelenese.
|
||||||
# Create a new TestBuilder for _view_.
|
#
|
||||||
def initialize view
|
# See SeleniumOnRails::TestBuilderActions for the available actions and
|
||||||
@view = view
|
# SeleniumOnRails::TestBuilderAccessors for the available checks.
|
||||||
@output = ''
|
#
|
||||||
@xml = Builder::XmlMarkup.new :indent => 2, :target => @output
|
# For more information on the commands supported by TestBuilder, see the
|
||||||
end
|
# Selenium Commands Documentation at
|
||||||
|
# http://release.openqa.org/selenium-core/nightly/reference.html.
|
||||||
# Add a new table of tests, and return the HTML.
|
class SeleniumOnRails::TestBuilder
|
||||||
def table title
|
include SeleniumOnRails::TestBuilderActions
|
||||||
@xml.table do
|
include SeleniumOnRails::TestBuilderAccessors
|
||||||
@xml.tr do @xml.th(title, :colspan => 3) end
|
include SeleniumOnRails::TestBuilderUserActions
|
||||||
yield self
|
include SeleniumOnRails::TestBuilderUserAccessors
|
||||||
end
|
|
||||||
end
|
# Convert _str_ to a Selenium command name.
|
||||||
|
def self.selenize str
|
||||||
# Add a new test command using _cmd_, _target_ and _value_.
|
str.camelize.gsub(/^[A-Z]/) {|s| s.downcase }
|
||||||
def command cmd, target=nil, value=nil
|
end
|
||||||
@xml.tr do
|
|
||||||
_tdata cmd
|
# Prepends _pattern_ with 'exact:' if it would be considered containing
|
||||||
_tdata target
|
# string-match pattern otherwise.
|
||||||
_tdata value
|
def exactize pattern
|
||||||
end
|
pattern.include?(':') ? "exact:#{pattern}" : pattern
|
||||||
end
|
end
|
||||||
# :nodoc
|
|
||||||
alias_method :command_verbatim, :command
|
# Create a new TestBuilder for _view_.
|
||||||
|
def initialize view
|
||||||
# Same as _command_ but add _AndWait_ to the name of _cmd_.
|
@view = view
|
||||||
def command_and_wait cmd, target=nil, value=nil
|
@output = ''
|
||||||
command_verbatim cmd.to_s + 'AndWait', target, value
|
@xml = Builder::XmlMarkup.new :indent => 2, :target => @output
|
||||||
end
|
end
|
||||||
|
|
||||||
# Re routes commands in the provided block to #command_and_wait instead of
|
# Add a new table of tests, and return the HTML.
|
||||||
# #command.
|
def table title
|
||||||
def make_command_waiting
|
@xml.table do
|
||||||
self.class.send :alias_method, :command, :command_and_wait
|
@xml.tr do @xml.th(title, :colspan => 3) end
|
||||||
yield
|
yield self
|
||||||
self.class.send :alias_method, :command, :command_verbatim
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
protected
|
# Add a new test command using _cmd_, _target_ and _value_.
|
||||||
|
def command cmd, target=nil, value=nil
|
||||||
# If _url_ is a string, return unchanged. Otherwise, pass it to
|
@xml.tr do
|
||||||
# ActionView#UrlHelper#url_for.
|
_tdata cmd
|
||||||
def url_arg url
|
_tdata target
|
||||||
if url.instance_of?(String) then url else exactize(@view.url_for(url)) end
|
_tdata value
|
||||||
end
|
end
|
||||||
|
end
|
||||||
# If _arg_ is an array formats _arg_ to a textual representation.
|
# :nodoc
|
||||||
# Otherwise return unchanged.
|
alias_method :command_verbatim, :command
|
||||||
def collection_arg arg
|
|
||||||
if arg.is_a? Array
|
# Same as _command_ but add _AndWait_ to the name of _cmd_.
|
||||||
arg.collect {|e| e.gsub(/[\\,]/) {|s| "\\#{s}" } }.join(',')
|
def command_and_wait cmd, target=nil, value=nil
|
||||||
else
|
command_verbatim cmd.to_s + 'AndWait', target, value
|
||||||
arg
|
end
|
||||||
end
|
|
||||||
end
|
# Re routes commands in the provided block to #command_and_wait instead of
|
||||||
|
# #command.
|
||||||
private
|
def make_command_waiting
|
||||||
|
self.class.send :alias_method, :command, :command_and_wait
|
||||||
# Output a single TD element.
|
yield
|
||||||
def _tdata value
|
self.class.send :alias_method, :command, :command_verbatim
|
||||||
if value
|
end
|
||||||
@xml.td(value.to_s)
|
|
||||||
else
|
protected
|
||||||
@xml.td do @xml.target! << ' ' end
|
|
||||||
end
|
# If _url_ is a string, return unchanged. Otherwise, pass it to
|
||||||
end
|
# ActionView#UrlHelper#url_for.
|
||||||
end
|
def url_arg url
|
||||||
|
if url.instance_of?(String) then url else exactize(@view.url_for(url)) end
|
||||||
|
end
|
||||||
|
|
||||||
|
# If _arg_ is an array formats _arg_ to a textual representation.
|
||||||
|
# Otherwise return unchanged.
|
||||||
|
def collection_arg arg
|
||||||
|
if arg.is_a? Array
|
||||||
|
arg.collect {|e| e.gsub(/[\\,]/) {|s| "\\#{s}" } }.join(',')
|
||||||
|
else
|
||||||
|
arg
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
private
|
||||||
|
|
||||||
|
# Output a single TD element.
|
||||||
|
def _tdata value
|
||||||
|
if value
|
||||||
|
@xml.td(value.to_s)
|
||||||
|
else
|
||||||
|
@xml.td do @xml.target! << ' ' end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
|
||||||
|
|
@ -1,286 +1,515 @@
|
||||||
# The actions available for SeleniumOnRails::TestBuilder tests.
|
# The actions available for SeleniumOnRails::TestBuilder tests.
|
||||||
#
|
#
|
||||||
# For each action +foo+ there's also an action +foo_and_wait+.
|
# For each action +foo+ there's also an action +foo_and_wait+.
|
||||||
module SeleniumOnRails::TestBuilderActions
|
module SeleniumOnRails::TestBuilderActions
|
||||||
# Tell Selenium on Rails to clear the session and load any fixtures. DO
|
# Tell Selenium on Rails to clear the session and load any fixtures. DO
|
||||||
# NOT CALL THIS AGAINST NON-TEST DATABASES.
|
# NOT CALL THIS AGAINST NON-TEST DATABASES.
|
||||||
# The supported +options+ are <code>:keep_session</code>,
|
# The supported +options+ are <code>:keep_session</code>,
|
||||||
# <code>:fixtures</code> and <code>:clear_tables</code>
|
# <code>:fixtures</code> and <code>:clear_tables</code>
|
||||||
# setup
|
# setup
|
||||||
# setup :keep_session
|
# setup :keep_session
|
||||||
# setup :fixtures => :all
|
# setup :fixtures => :all
|
||||||
# setup :keep_session, :fixtures => [:foo, :bar]
|
# setup :keep_session, :fixtures => [:foo, :bar]
|
||||||
# setup :clear_tables => [:foo, :bar]
|
# setup :clear_tables => [:foo, :bar]
|
||||||
def setup options = {}
|
def setup options = {}
|
||||||
options = {options => nil} unless options.is_a? Hash
|
options = {options => nil} unless options.is_a? Hash
|
||||||
|
|
||||||
opts = {:controller => 'selenium', :action => 'setup'}
|
opts = {:controller => 'selenium', :action => 'setup'}
|
||||||
opts[:keep_session] = true if options.has_key? :keep_session
|
opts[:keep_session] = true if options.has_key? :keep_session
|
||||||
|
|
||||||
[:fixtures, :clear_tables].each do |key|
|
[:fixtures, :clear_tables].each do |key|
|
||||||
if (f = options[key])
|
if (f = options[key])
|
||||||
f = [f] unless f.is_a? Array
|
f = [f] unless f.is_a? Array
|
||||||
opts[key] = f.join ','
|
opts[key] = f.join ','
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
open opts
|
open opts
|
||||||
end
|
end
|
||||||
|
|
||||||
# Includes a partial.
|
# Includes a partial.
|
||||||
# The path is relative to the Selenium tests root. The starting _ and the file
|
# The path is relative to the Selenium tests root. The starting _ and the file
|
||||||
# extension don't have to be specified.
|
# extension don't have to be specified.
|
||||||
# #include test/selenium/_partial.*
|
# #include test/selenium/_partial.*
|
||||||
# include_partial 'partial'
|
# include_partial 'partial'
|
||||||
# #include test/selenium/suite/_partial.*
|
# #include test/selenium/suite/_partial.*
|
||||||
# include_partial 'suite/partial'
|
# include_partial 'suite/partial'
|
||||||
# #include test/selenium/suite/_partial.* and provide local assigns
|
# #include test/selenium/suite/_partial.* and provide local assigns
|
||||||
# include_partial 'suite/partial', :foo => bar
|
# include_partial 'suite/partial', :foo => bar
|
||||||
def include_partial path, local_assigns = {}
|
def include_partial path, local_assigns = {}
|
||||||
partial = @view.render :partial => path, :locals => local_assigns
|
partial = @view.render :partial => path, :locals => local_assigns
|
||||||
@output << partial
|
@output << partial
|
||||||
end
|
end
|
||||||
|
|
||||||
# Clicks on a link, button, checkbox or radio button. If the click action
|
# 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
|
# causes a new page to load (like a link usually does), call
|
||||||
# +wait_for_page_to_load+.
|
# +wait_for_page_to_load+.
|
||||||
def click locator
|
def click locator
|
||||||
command 'click', locator
|
command 'click', locator
|
||||||
end
|
end
|
||||||
|
|
||||||
# Explicitly simulate an event (e.g. <tt>"focus"</tt>, <tt>"blur"</tt>), to
|
# Clicks on a link, button, checkbox or radio button. If the click action causes
|
||||||
# trigger the corresponding <tt>"on_event_"</tt> handler.
|
# a new page to load (like a link usually does), call wait_for_page_to_load.
|
||||||
def fire_event locator, event_name
|
def click_at locator, coord_string
|
||||||
command 'fireEvent', locator, event_name
|
command 'clickAt', locator, coord_string
|
||||||
end
|
end
|
||||||
|
|
||||||
# Simulates a user pressing and releasing a key.
|
# Explicitly simulate an event (e.g. <tt>"focus"</tt>, <tt>"blur"</tt>), to
|
||||||
#
|
# trigger the corresponding <tt>"on_event_"</tt> handler.
|
||||||
# +keycode+ is the numeric keycode of the key to be pressed, normally the
|
def fire_event locator, event_name
|
||||||
# ASCII value of that key.
|
command 'fireEvent', locator, event_name
|
||||||
def key_press locator, keycode
|
end
|
||||||
command 'keyPress', locator, keycode
|
|
||||||
end
|
# Simulates a user pressing and releasing a key.
|
||||||
|
#
|
||||||
# Simulates a user pressing a key (without releasing it yet).
|
# +keycode+ is the numeric keycode of the key to be pressed, normally the
|
||||||
#
|
# ASCII value of that key.
|
||||||
# +keycode+ is the numeric keycode of the key to be pressed, normally the
|
def key_press locator, keycode
|
||||||
# ASCII value of that key.
|
command 'keyPress', locator, keycode
|
||||||
def key_down locator, keycode
|
end
|
||||||
command 'keyDown', locator, keycode
|
|
||||||
end
|
# Simulates a user pressing a key (without releasing it yet).
|
||||||
|
#
|
||||||
# Simulates a user releasing a key.
|
# +keycode+ is the numeric keycode of the key to be pressed, normally the
|
||||||
#
|
# ASCII value of that key.
|
||||||
# +keycode+ is the numeric keycode of the key to be released, normally the
|
def key_down locator, keycode
|
||||||
# ASCII value of that key.
|
command 'keyDown', locator, keycode
|
||||||
def key_up locator, keycode
|
end
|
||||||
command 'keyUp', locator, keycode
|
|
||||||
end
|
# Simulates a user releasing a key.
|
||||||
|
#
|
||||||
# Simulates a user hovering a mouse over the specified element.
|
# +keycode+ is the numeric keycode of the key to be released, normally the
|
||||||
def mouse_over locator
|
# ASCII value of that key.
|
||||||
command 'mouseOver', locator
|
def key_up locator, keycode
|
||||||
end
|
command 'keyUp', locator, keycode
|
||||||
|
end
|
||||||
# Simulates a user pressing the mouse button (without releasing it yet) on the
|
|
||||||
# specified element.
|
# Simulates a user hovering a mouse over the specified element.
|
||||||
def mouse_down locator
|
def mouse_over locator
|
||||||
command 'mouseDown', locator
|
command 'mouseOver', locator
|
||||||
end
|
end
|
||||||
|
|
||||||
# Sets the value of an input field, as though you typed it in.
|
# Simulates a user pressing the mouse button (without releasing it yet) on the
|
||||||
#
|
# specified element.
|
||||||
# Can also be used to set the value of combo boxes, check boxes, etc. In these
|
def mouse_down locator
|
||||||
# cases, +value+ should be the value of the option selected, not the visible
|
command 'mouseDown', locator
|
||||||
# text.
|
end
|
||||||
def type locator, value
|
|
||||||
command 'type', locator, value
|
# Sets the value of an input field, as though you typed it in.
|
||||||
end
|
#
|
||||||
|
# Can also be used to set the value of combo boxes, check boxes, etc. In these
|
||||||
# Check a toggle-button (checkbox/radio).
|
# cases, +value+ should be the value of the option selected, not the visible
|
||||||
def check locator
|
# text.
|
||||||
command 'check', locator
|
def type locator, value
|
||||||
end
|
command 'type', locator, value
|
||||||
|
end
|
||||||
# Uncheck a toggle-button (checkbox/radio).
|
|
||||||
def uncheck locator
|
# Check a toggle-button (checkbox/radio).
|
||||||
command 'uncheck', locator
|
def check locator
|
||||||
end
|
command 'check', locator
|
||||||
|
end
|
||||||
# Select an option from a drop-down using an option locator.
|
|
||||||
#
|
# Uncheck a toggle-button (checkbox/radio).
|
||||||
# Option locators provide different ways of specifying options of an HTML
|
def uncheck locator
|
||||||
# Select element (e.g. for selecting a specific option, or for asserting that
|
command 'uncheck', locator
|
||||||
# the selected option satisfies a specification). There are several forms of
|
end
|
||||||
# Select Option Locator.
|
|
||||||
#
|
# Select an option from a drop-down using an option locator.
|
||||||
# * label=labelPattern
|
#
|
||||||
# matches options based on their labels, i.e. the visible text. (This is the
|
# Option locators provide different ways of specifying options of an HTML
|
||||||
# default.)
|
# Select element (e.g. for selecting a specific option, or for asserting that
|
||||||
# label=regexp:^[Oo]ther
|
# the selected option satisfies a specification). There are several forms of
|
||||||
# * value=valuePattern
|
# Select Option Locator.
|
||||||
# matches options based on their values.
|
#
|
||||||
# value=other
|
# * label=labelPattern
|
||||||
# * id=id
|
# matches options based on their labels, i.e. the visible text. (This is the
|
||||||
# matches options based on their ids.
|
# default.)
|
||||||
# id=option1
|
# label=regexp:^[Oo]ther
|
||||||
# * index=index
|
# * value=valuePattern
|
||||||
# matches an option based on its index (offset from zero).
|
# matches options based on their values.
|
||||||
# index=2
|
# value=other
|
||||||
#
|
# * id=id
|
||||||
# If no option locator prefix is provided, the default behaviour is to match
|
# matches options based on their ids.
|
||||||
# on label.
|
# id=option1
|
||||||
def select locator, option_locator
|
# * index=index
|
||||||
command 'select', locator, option_locator
|
# matches an option based on its index (offset from zero).
|
||||||
end
|
# index=2
|
||||||
|
#
|
||||||
# Add a selection to the set of selected options in a multi-select element
|
# If no option locator prefix is provided, the default behaviour is to match
|
||||||
# using an option locator.
|
# on label.
|
||||||
#
|
def select locator, option_locator
|
||||||
# See the <tt>#select</tt> command for more information about option locators.
|
command 'select', locator, option_locator
|
||||||
def add_selection locator, option_locator
|
end
|
||||||
command 'addSelection', locator, option_locator
|
|
||||||
end
|
# Add a selection to the set of selected options in a multi-select element
|
||||||
|
# using an option locator.
|
||||||
# Remove a selection from the set of selected options in a multi-select
|
#
|
||||||
# element using an option locator.
|
# See the <tt>#select</tt> command for more information about option locators.
|
||||||
#
|
def add_selection locator, option_locator
|
||||||
# See the +select+ command for more information about option locators.
|
command 'addSelection', locator, option_locator
|
||||||
def remove_selection locator, option_locator
|
end
|
||||||
command 'removeSelection', locator, option_locator
|
|
||||||
end
|
# Remove a selection from the set of selected options in a multi-select
|
||||||
|
# element using an option locator.
|
||||||
# Submit the specified form. This is particularly useful for forms without
|
#
|
||||||
# submit buttons, e.g. single-input "Search" forms.
|
# See the +select+ command for more information about option locators.
|
||||||
def submit locator
|
def remove_selection locator, option_locator
|
||||||
command 'submit', locator
|
command 'removeSelection', locator, option_locator
|
||||||
end
|
end
|
||||||
|
|
||||||
# Opens an URL in the test frame. This accepts both relative and absolute
|
# Submit the specified form. This is particularly useful for forms without
|
||||||
# URLs. The <tt>open</tt> command waits for the page to load before
|
# submit buttons, e.g. single-input "Search" forms.
|
||||||
# proceeding, i.e. you don't have to call +wait_for_page_to_load+.
|
def submit locator
|
||||||
#
|
command 'submit', locator
|
||||||
# Note: The URL must be on the same domain as the runner HTML due to security
|
end
|
||||||
# restrictions in the browser (Same Origin Policy).
|
|
||||||
def open url
|
# Opens an URL in the test frame. This accepts both relative and absolute
|
||||||
command 'open', url_arg(url)
|
# URLs. The <tt>open</tt> command waits for the page to load before
|
||||||
end
|
# proceeding, i.e. you don't have to call +wait_for_page_to_load+.
|
||||||
|
#
|
||||||
# Selects a popup window; once a popup window has been selected, all commands
|
# Note: The URL must be on the same domain as the runner HTML due to security
|
||||||
# go to that window. To select the main window again, use +nil+ as the target.
|
# restrictions in the browser (Same Origin Policy).
|
||||||
def select_window window_id
|
def open url
|
||||||
command 'selectWindow', window_id||'null'
|
command 'open', url_arg(url)
|
||||||
end
|
end
|
||||||
|
|
||||||
# Waits for a popup window to appear and load up.
|
# Selects a popup window; once a popup window has been selected, all commands
|
||||||
#
|
# go to that window. To select the main window again, use +nil+ as the target.
|
||||||
# The +timeout+ is specified in milliseconds.
|
def select_window window_id
|
||||||
def wait_for_popup window_id, timeout
|
command 'selectWindow', window_id||'null'
|
||||||
command 'waitForPopUp', window_id||'null', timeout
|
end
|
||||||
end
|
|
||||||
|
# Waits for a popup window to appear and load up.
|
||||||
# By default, Selenium's overridden <tt>window.confirm()</tt> function will return
|
#
|
||||||
# +true+, as if the user had manually clicked OK. After running this command,
|
# The +timeout+ is specified in milliseconds.
|
||||||
# the next call to <tt>confirm()</tt> will return +false+, as if the user had clicked
|
def wait_for_popup window_id, timeout
|
||||||
# Cancel.
|
command 'waitForPopUp', window_id||'null', timeout
|
||||||
def choose_cancel_on_next_confirmation
|
end
|
||||||
command 'chooseCancelOnNextConfirmation'
|
|
||||||
end
|
# By default, Selenium's overridden <tt>window.confirm()</tt> function will return
|
||||||
|
# +true+, as if the user had manually clicked OK. After running this command,
|
||||||
# Instructs Selenium to return the specified answer string in response to the
|
# the next call to <tt>confirm()</tt> will return +false+, as if the user had clicked
|
||||||
# next JavaScript prompt (<tt>window.prompt()</tt>).
|
# Cancel.
|
||||||
def answer_on_next_prompt answer
|
def choose_cancel_on_next_confirmation
|
||||||
command 'answerOnNextPrompt', answer
|
command 'chooseCancelOnNextConfirmation'
|
||||||
end
|
end
|
||||||
|
|
||||||
# Simulates the user clicking the "back" button on their browser.
|
# Instructs Selenium to return the specified answer string in response to the
|
||||||
def go_back
|
# next JavaScript prompt (<tt>window.prompt()</tt>).
|
||||||
command 'goBack'
|
def answer_on_next_prompt answer
|
||||||
end
|
command 'answerOnNextPrompt', answer
|
||||||
|
end
|
||||||
# Simulates the user clicking the "Refresh" button on their browser.
|
|
||||||
def refresh
|
# Simulates the user clicking the "back" button on their browser.
|
||||||
command 'refresh'
|
def go_back
|
||||||
end
|
command 'goBack'
|
||||||
|
end
|
||||||
# Simulates the user clicking the "close" button in the titlebar of a popup
|
|
||||||
# window or tab.
|
# Simulates the user clicking the "Refresh" button on their browser.
|
||||||
def close
|
def refresh
|
||||||
command 'close'
|
command 'refresh'
|
||||||
end
|
end
|
||||||
|
|
||||||
# Writes a message to the status bar and adds a note to the browser-side log.
|
# Simulates the user clicking the "close" button in the titlebar of a popup
|
||||||
#
|
# window or tab.
|
||||||
# +context+ is the message sent to the browser.
|
def close
|
||||||
#
|
command 'close'
|
||||||
# +log_level_threshold+ can be +nil+, <tt>:debug</tt>, <tt>:info</tt>,
|
end
|
||||||
# <tt>:warn</tt> or <tt>:error</tt>.
|
|
||||||
def set_context context, log_level_threshold = nil
|
# Simulates the user pressing the alt key and hold it down until do_alt_up()
|
||||||
if log_level_threshold
|
# is called or a new page is loaded.
|
||||||
command 'setContext', context, log_level_threshold.to_s
|
def alt_key_down
|
||||||
else
|
command 'altKeyDown'
|
||||||
command 'setContext', context
|
end
|
||||||
end
|
|
||||||
end
|
# Simulates the user releasing the alt key.
|
||||||
|
def alt_key_up
|
||||||
# Runs the specified JavaScript snippet repeatedly until it evaluates to
|
command 'altKeyUp'
|
||||||
# +true+. The snippet may have multiple lines, but only the result of the last
|
end
|
||||||
# line will be considered.
|
|
||||||
#
|
# Halt the currently running test, and wait for the user to press the Continue
|
||||||
# Note that, by default, the snippet will be run in the runner's test window,
|
# button. This command is useful for debugging, but be careful when using it,
|
||||||
# not in the window of your application. To get the window of your
|
# because it will force automated tests to hang until a user intervenes manually.
|
||||||
# application, you can use the JavaScript snippet
|
#
|
||||||
# <tt>selenium.browserbot.getCurrentWindow()</tt>, and then run your
|
# NOTE: <tt>break</tt> is a reserved word in Ruby, so we have to simulate
|
||||||
# JavaScript in there.
|
# Selenium core's <tt>break()</tt> with <tt>brake()</tt>
|
||||||
#
|
def brake
|
||||||
# +timeout+ is specified in milliseconds.
|
command 'break'
|
||||||
def wait_for_condition script, timeout
|
end
|
||||||
command 'waitForCondition', script, timeout
|
|
||||||
end
|
# Simulates the user pressing the alt key and hold it down until do_control_up()
|
||||||
|
# is called or a new page is loaded.
|
||||||
# Specifies the amount of time that Selenium will wait for actions to
|
def control_key_down
|
||||||
# complete.
|
command 'controlKeyDown'
|
||||||
#
|
end
|
||||||
# Actions that require waiting include +open+ and the <tt>wait_for*</tt>
|
|
||||||
# actions.
|
# Simulates the user releasing the control key.
|
||||||
#
|
def control_key_up
|
||||||
# The default timeout is 30 seconds.
|
command 'controlKeyUp'
|
||||||
#
|
end
|
||||||
# +timeout+ is specified in milliseconds.
|
|
||||||
def set_timeout timeout
|
# Create a new cookie whose path and domain are same with those of current page
|
||||||
command 'setTimeout', timeout
|
# under test, unless you specified a path for this cookie explicitly.
|
||||||
end
|
#
|
||||||
|
# Arguments:
|
||||||
# Waits for a new page to load.
|
# * <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
|
||||||
# You can use this command instead of the +and_wait+ suffixes,
|
# include 'path' and 'max_age'. The options_string's format is
|
||||||
# +click_and_wait+, +select_and_wait+, +type_and_wait+ etc. (which are only
|
# <tt>"path=/path/, max_age=60"</tt>. The order of options are irrelevant, the
|
||||||
# available in the JS API).
|
# unit of the value of 'max_age' is second.
|
||||||
#
|
def create_cookie name_value_pair, options_string
|
||||||
# Selenium constantly keeps track of new pages loading, and sets a
|
command 'createCookie', name_value_pair, options_string
|
||||||
# +newPageLoaded+ flag when it first notices a page load. Running any other
|
end
|
||||||
# Selenium command after turns the flag to +false+. Hence, if you want to wait
|
|
||||||
# for a page to load, you must wait immediately after a Selenium command that
|
# Delete a named cookie with specified path.
|
||||||
# caused a page-load.
|
def delete_cookie name, path
|
||||||
#
|
command 'deleteCookie', name, path
|
||||||
# +timeout+ is specified in milliseconds.
|
end
|
||||||
def wait_for_page_to_load timeout
|
|
||||||
command 'waitForPageToLoad', timeout
|
# Double clicks on a link, button, checkbox or radio button. If the double click action
|
||||||
end
|
# causes a new page to load (like a link usually does), call <tt>wait_for_page_to_load</tt>.
|
||||||
|
def double_click locator
|
||||||
private
|
command 'doubleClick', locator
|
||||||
# Generates the corresponding +_and_wait+ for each action.
|
end
|
||||||
def self.generate_and_wait_actions
|
|
||||||
public_instance_methods.each do |method|
|
# Doubleclicks on a link, button, checkbox or radio button. If the action causes a new page
|
||||||
define_method method + '_and_wait' do |*args|
|
# to load (like a link usually does), call <tt>wait_for_page_to_load</tt>.
|
||||||
make_command_waiting do
|
def double_click_at locator, coord_string
|
||||||
send method, *args
|
command 'doubleClickAt', locator, coord_string
|
||||||
end
|
end
|
||||||
end
|
|
||||||
end
|
# Drags an element a certain distance and then drops it.
|
||||||
end
|
def drag_and_drop locator, movements_string
|
||||||
|
command 'dragAndDrop', locator, movements_string
|
||||||
generate_and_wait_actions
|
end
|
||||||
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.
|
||||||
|
#
|
||||||
|
# +log_level_threshold+ can be +nil+, <tt>:debug</tt>, <tt>:info</tt>,
|
||||||
|
# <tt>:warn</tt> or <tt>:error</tt>.
|
||||||
|
def set_context context, log_level_threshold = nil
|
||||||
|
if log_level_threshold
|
||||||
|
command 'setContext', context, log_level_threshold.to_s
|
||||||
|
else
|
||||||
|
command 'setContext', context
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
# Runs the specified JavaScript snippet repeatedly until it evaluates to
|
||||||
|
# +true+. The snippet may have multiple lines, but only the result of the last
|
||||||
|
# line will be considered.
|
||||||
|
#
|
||||||
|
# Note that, by default, the snippet will be run in the runner's test window,
|
||||||
|
# not in the window of your application. To get the window of your
|
||||||
|
# application, you can use the JavaScript snippet
|
||||||
|
# <tt>selenium.browserbot.getCurrentWindow()</tt>, and then run your
|
||||||
|
# JavaScript in there.
|
||||||
|
#
|
||||||
|
# +timeout+ is specified in milliseconds.
|
||||||
|
def wait_for_condition script, timeout
|
||||||
|
command 'waitForCondition', script, timeout
|
||||||
|
end
|
||||||
|
|
||||||
|
# Specifies the amount of time that Selenium will wait for actions to
|
||||||
|
# complete.
|
||||||
|
#
|
||||||
|
# Actions that require waiting include +open+ and the <tt>wait_for*</tt>
|
||||||
|
# actions.
|
||||||
|
#
|
||||||
|
# The default timeout is 30 seconds.
|
||||||
|
#
|
||||||
|
# +timeout+ is specified in milliseconds.
|
||||||
|
def set_timeout timeout
|
||||||
|
command 'setTimeout', timeout
|
||||||
|
end
|
||||||
|
|
||||||
|
# Waits for a new page to load.
|
||||||
|
#
|
||||||
|
# You can use this command instead of the +and_wait+ suffixes,
|
||||||
|
# +click_and_wait+, +select_and_wait+, +type_and_wait+ etc. (which are only
|
||||||
|
# available in the JS API).
|
||||||
|
#
|
||||||
|
# Selenium constantly keeps track of new pages loading, and sets a
|
||||||
|
# +newPageLoaded+ flag when it first notices a page load. Running any other
|
||||||
|
# Selenium command after turns the flag to +false+. Hence, if you want to wait
|
||||||
|
# for a page to load, you must wait immediately after a Selenium command that
|
||||||
|
# caused a page-load.
|
||||||
|
#
|
||||||
|
# +timeout+ is specified in milliseconds.
|
||||||
|
def wait_for_page_to_load timeout
|
||||||
|
command 'waitForPageToLoad', timeout
|
||||||
|
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
|
||||||
|
|
||||||
|
|
|
||||||
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'
|
require 'yaml'
|
||||||
|
|
||||||
class SeleniumOnRailsConfig
|
class SeleniumOnRailsConfig
|
||||||
@@defaults = {:environments => ['test']}
|
attr_accessor :configs
|
||||||
def self.get var, default = nil
|
|
||||||
value = configs[var.to_s]
|
def initialize
|
||||||
value ||= @@defaults[var]
|
@defaults = {:environments => ['test']}
|
||||||
value ||= default
|
initialize_configs
|
||||||
value ||= yield if block_given?
|
end
|
||||||
value
|
|
||||||
end
|
def get var, default = nil
|
||||||
|
value = @configs[var.to_s]
|
||||||
private
|
value ||= @defaults[var]
|
||||||
def self.configs
|
value ||= default
|
||||||
unless defined? @@configs
|
value ||= yield if block_given?
|
||||||
file = File.expand_path(File.dirname(__FILE__) + '/../config.yml')
|
value
|
||||||
@@configs = File.exist?(file) ? YAML.load_file(file) : {}
|
end
|
||||||
end
|
|
||||||
@@configs
|
def initialize_configs
|
||||||
end
|
@configs = {}
|
||||||
|
files = [File.expand_path(File.dirname(__FILE__) + '/../config.yml')]
|
||||||
end
|
files << File.join(RAILS_ROOT, 'config', 'selenium.yml')
|
||||||
|
files.each { |file| @configs = YAML.load_file(file) if File.exist?(file) }
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
||||||
|
|
@ -1,18 +1,18 @@
|
||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
||||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<title>Selenium on Rails<%= defined?(@page_title) ? ": #{@page_title}" : '' %></title>
|
<title>Selenium on Rails<%= defined?(@page_title) ? ": #{@page_title}" : '' %></title>
|
||||||
</head>
|
</head>
|
||||||
<style type="text/css">
|
<style type="text/css">
|
||||||
body, html { font-family: Verdana, Arial, sans-serif; }
|
body, html { font-family: Verdana, Arial, sans-serif; }
|
||||||
table { border-collapse: collapse; margin: 10px 0px; }
|
table { border-collapse: collapse; margin: 10px 0px; }
|
||||||
td, th { border: 2px solid black; }
|
td, th { border: 2px solid black; }
|
||||||
#notice { text-align: center; color: darkgreen; background-color: lightgreen; padding: 5px 15px; width: 400px; margin-left: auto; margin-right: auto; }
|
#notice { text-align: center; color: darkgreen; background-color: lightgreen; padding: 5px 15px; width: 400px; margin-left: auto; margin-right: auto; }
|
||||||
#notice * { text-align: left; }
|
#notice * { text-align: left; }
|
||||||
#usagedescription { margin: 15px 30px; }
|
#usagedescription { margin: 15px 30px; }
|
||||||
</style>
|
</style>
|
||||||
<body>
|
<body>
|
||||||
<%= @content_for_layout %>
|
<%= @content_for_layout %>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
<table>
|
<table>
|
||||||
<% @result.each_pair do |key, value| -%>
|
<% @result.each_pair do |key, value| -%>
|
||||||
<tr><td><%= key %></td><td><%= value %></td></tr>
|
<tr><td><%= key %></td><td><%= value %></td></tr>
|
||||||
<% end -%>
|
<% end -%>
|
||||||
</table>
|
</table>
|
||||||
|
|
|
||||||
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
|
||||||
|
|
@ -1,67 +1,67 @@
|
||||||
<% @page_title = 'Setup' -%>
|
<% @page_title = 'Setup' -%>
|
||||||
<% if defined?(@session_wiped) or @cleared_tables.any? or @loaded_fixtures.any? -%>
|
<% if defined?(@session_wiped) or @cleared_tables.any? or @loaded_fixtures.any? -%>
|
||||||
<div id="notice">
|
<div id="notice">
|
||||||
<% if defined?(@session_wiped) -%>
|
<% if defined?(@session_wiped) -%>
|
||||||
<p>The session is wiped clean.</p>
|
<p>The session is wiped clean.</p>
|
||||||
<% end-%>
|
<% end-%>
|
||||||
<% if @cleared_tables.any? -%>
|
<% if @cleared_tables.any? -%>
|
||||||
<p>The following database tables are cleared:</p>
|
<p>The following database tables are cleared:</p>
|
||||||
<ul>
|
<ul>
|
||||||
<% for table in @cleared_tables -%>
|
<% for table in @cleared_tables -%>
|
||||||
<li><%= table %></li>
|
<li><%= table %></li>
|
||||||
<% end-%>
|
<% end-%>
|
||||||
</ul>
|
</ul>
|
||||||
<% end -%>
|
<% end -%>
|
||||||
<% if @loaded_fixtures.any? -%>
|
<% if @loaded_fixtures.any? -%>
|
||||||
<p>The following fixtures are loaded:</p>
|
<p>The following fixtures are loaded:</p>
|
||||||
<ul>
|
<ul>
|
||||||
<% for fixture in @loaded_fixtures -%>
|
<% for fixture in @loaded_fixtures -%>
|
||||||
<li><%= fixture %></li>
|
<li><%= fixture %></li>
|
||||||
<% end-%>
|
<% end-%>
|
||||||
</ul>
|
</ul>
|
||||||
<% end -%>
|
<% end -%>
|
||||||
</div>
|
</div>
|
||||||
<% end -%>
|
<% end -%>
|
||||||
|
|
||||||
<div id="usagedescription">
|
<div id="usagedescription">
|
||||||
<p>This page can be used to setup your Selenium tests. The following options can be used:</p>
|
<p>This page can be used to setup your Selenium tests. The following options can be used:</p>
|
||||||
<dl>
|
<dl>
|
||||||
<dt><tt>keep_session</tt></dt>
|
<dt><tt>keep_session</tt></dt>
|
||||||
<dd>
|
<dd>
|
||||||
Per default the session is reset, so add <tt>keep_session</tt> in order to keep the current session.
|
Per default the session is reset, so add <tt>keep_session</tt> in order to keep the current session.
|
||||||
<table>
|
<table>
|
||||||
<tr><td>open</td><td><%= url_for %>?keep_session</td><td> </td></tr>
|
<tr><td>open</td><td><%= url_for %>?keep_session</td><td> </td></tr>
|
||||||
</table>
|
</table>
|
||||||
</dd>
|
</dd>
|
||||||
<dt><tt>fixtures</tt></dt>
|
<dt><tt>fixtures</tt></dt>
|
||||||
<dd>
|
<dd>
|
||||||
Loads one or many fixtures into the database. <strong>This will destroy the current data you have in your database!</strong> Use <tt>all</tt> as name in order to load all fixtures, or specify which fixtures that should be loaded (delimited by commas).<br />
|
Loads one or many fixtures into the database. <strong>This will destroy the current data you have in your database!</strong> Use <tt>all</tt> as name in order to load all fixtures, or specify which fixtures that should be loaded (delimited by commas).<br />
|
||||||
If a test needs different data than you have in your fixtures, you can add another <em>fixture set</em>. A fixture set is just a sub directory in <tt>/test/fixtures/</tt> where you can add alternate fixtures (e.g. <tt>/test/fixtures/blank/users.yml</tt>).
|
If a test needs different data than you have in your fixtures, you can add another <em>fixture set</em>. A fixture set is just a sub directory in <tt>/test/fixtures/</tt> where you can add alternate fixtures (e.g. <tt>/test/fixtures/blank/users.yml</tt>).
|
||||||
<table>
|
<table>
|
||||||
<tr><td>open</td><td><%= url_for :fixtures => 'all' %></td><td> </td></tr>
|
<tr><td>open</td><td><%= url_for :fixtures => 'all' %></td><td> </td></tr>
|
||||||
<tr><td>open</td><td><%= url_for :fixtures => 'fixture' %></td><td> </td></tr>
|
<tr><td>open</td><td><%= url_for :fixtures => 'fixture' %></td><td> </td></tr>
|
||||||
<tr><td>open</td><td><%= url_for :fixtures => 'fixture_one' %>,fixture_two</td><td> </td></tr>
|
<tr><td>open</td><td><%= url_for :fixtures => 'fixture_one' %>,fixture_two</td><td> </td></tr>
|
||||||
</table>
|
</table>
|
||||||
<b>Available fixtures</b><br />
|
<b>Available fixtures</b><br />
|
||||||
<% fixtures = available_fixtures -%>
|
<% fixtures = available_fixtures -%>
|
||||||
<% for fixture_set in fixtures.keys.sort -%>
|
<% for fixture_set in fixtures.keys.sort -%>
|
||||||
In the <%= fixture_set.blank? ? 'default' : "<tt>#{fixture_set}</tt>" %> fixture set:
|
In the <%= fixture_set.blank? ? 'default' : "<tt>#{fixture_set}</tt>" %> fixture set:
|
||||||
<ul>
|
<ul>
|
||||||
<% fixtures[fixture_set].unshift fixture_set.blank? ? 'all' : "#{fixture_set}/all" -%>
|
<% fixtures[fixture_set].unshift fixture_set.blank? ? 'all' : "#{fixture_set}/all" -%>
|
||||||
<% for fixture in fixtures[fixture_set] -%>
|
<% for fixture in fixtures[fixture_set] -%>
|
||||||
<li><tt><%= fixture %></tt></li>
|
<li><tt><%= fixture %></tt></li>
|
||||||
<% end -%>
|
<% end -%>
|
||||||
</ul>
|
</ul>
|
||||||
<% end -%>
|
<% end -%>
|
||||||
</dd>
|
</dd>
|
||||||
<dt><tt>clear_tables</tt></dt>
|
<dt><tt>clear_tables</tt></dt>
|
||||||
<dd>
|
<dd>
|
||||||
Clears one or many database tables. Another way to do the same thing is to create an empty fixture in a new fixture set (see <tt>fixtures</tt> above).
|
Clears one or many database tables. Another way to do the same thing is to create an empty fixture in a new fixture set (see <tt>fixtures</tt> above).
|
||||||
<table>
|
<table>
|
||||||
<tr><td>open</td><td><%= url_for :clear_tables => 'sessions' %></td><td> </td></tr>
|
<tr><td>open</td><td><%= url_for :clear_tables => 'sessions' %></td><td> </td></tr>
|
||||||
<tr><td>open</td><td><%= url_for :clear_tables => 'sessions' %>,outgoing_messages</td><td> </td></tr>
|
<tr><td>open</td><td><%= url_for :clear_tables => 'sessions' %>,outgoing_messages</td><td> </td></tr>
|
||||||
</table>
|
</table>
|
||||||
</dd>
|
</dd>
|
||||||
</dl>
|
</dl>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -1,26 +1,26 @@
|
||||||
<% @page_title = test_suite_name @suite_path -%>
|
<% @page_title = test_suite_name @suite_path -%>
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
<!--
|
<!--
|
||||||
function openSuite(selector) {
|
function openSuite(selector) {
|
||||||
var suite = selector.options[selector.selectedIndex].value;
|
var suite = selector.options[selector.selectedIndex].value;
|
||||||
if(suite == "header") return;
|
if(suite == "header") return;
|
||||||
if(top.location.href != location.href) //inside a frame
|
if(top.location.href != location.href) //inside a frame
|
||||||
top.location = "<%= url_for :action => :support_file %>/TestRunner.html?test=tests" + suite
|
top.location = "<%= url_for :action => :support_file %>/TestRunner.html?test=tests" + suite
|
||||||
else
|
else
|
||||||
window.location = "<%= url_for :action => :test_file, :testname => '' %>" + suite
|
window.location = "<%= url_for :action => :test_file, :testname => '' %>" + suite
|
||||||
}
|
}
|
||||||
//-->
|
//-->
|
||||||
</script>
|
</script>
|
||||||
<select onchange="openSuite(this)">
|
<select onchange="openSuite(this)">
|
||||||
<option value="header">Suites:</option>
|
<option value="header">Suites:</option>
|
||||||
<% for name, path in test_suites @suite_path -%>
|
<% for name, path in test_suites @suite_path -%>
|
||||||
<option value="<%= path %>"><%= name%></option>
|
<option value="<%= path %>"><%= name%></option>
|
||||||
<% end -%>
|
<% end -%>
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<table>
|
<table>
|
||||||
<tr><th><%= @page_title %></th></tr>
|
<tr><th><%= @page_title %></th></tr>
|
||||||
<% for name, path in test_cases @suite_path -%>
|
<% for name, path in test_cases @suite_path -%>
|
||||||
<tr><td><%= link_to_test_case name, path %></td></tr>
|
<tr><td><%= link_to_test_case name, path %></td></tr>
|
||||||
<% end -%>
|
<% end -%>
|
||||||
</table>
|
</table>
|
||||||
47
vendor/plugins/selenium-on-rails/routes.rb
vendored
|
|
@ -1,23 +1,24 @@
|
||||||
module ActionController
|
module ActionController
|
||||||
module Routing #:nodoc:
|
module Routing #:nodoc:
|
||||||
class RouteSet #:nodoc:
|
class RouteSet #:nodoc:
|
||||||
alias_method :draw_without_selenium_routes, :draw
|
alias_method :draw_without_selenium_routes, :draw
|
||||||
def draw
|
def draw
|
||||||
draw_without_selenium_routes do |map|
|
draw_without_selenium_routes do |map|
|
||||||
map.connect 'selenium/setup',
|
map.connect 'selenium/setup',
|
||||||
:controller => 'selenium', :action => 'setup'
|
:controller => 'selenium', :action => 'setup'
|
||||||
map.connect 'selenium/tests/*testname',
|
map.connect 'selenium/tests/*testname',
|
||||||
:controller => 'selenium', :action => 'test_file'
|
:controller => 'selenium', :action => 'test_file'
|
||||||
map.connect 'selenium/postResults',
|
map.connect 'selenium/postResults',
|
||||||
:controller => 'selenium', :action => 'record'
|
:controller => 'selenium', :action => 'record'
|
||||||
map.connect 'selenium/postResults/:logFile',
|
map.connect 'selenium/postResults/:logFile',
|
||||||
:controller => 'selenium', :action => 'record', :requirements => { :logFile => /.*/ }
|
:controller => 'selenium', :action => 'record', :requirements => { :logFile => /.*/ }
|
||||||
map.connect 'selenium/*filename',
|
map.connect 'selenium/*filename',
|
||||||
:controller => 'selenium', :action => 'support_file'
|
:controller => 'selenium', :action => 'support_file'
|
||||||
|
map.connect 'switch_environment',
|
||||||
yield map
|
:controller => 'switch_environment', :action => 'index'
|
||||||
end
|
yield map if block_given?
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<meta content="text/html; charset=ISO-8859-1" http-equiv="content-type">
|
<meta content="text/html; charset=ISO-8859-1" http-equiv="content-type">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<h3>selenium-rc initial page</h3>
|
<h3>selenium-rc initial page</h3>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<meta content="text/html; charset=ISO-8859-1" http-equiv="content-type">
|
<meta content="text/html; charset=ISO-8859-1" http-equiv="content-type">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<h3>selenium-rc initial page</h3>
|
<h3>selenium-rc initial page</h3>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
@ -1,123 +1,123 @@
|
||||||
<html>
|
<html>
|
||||||
<!--
|
<!--
|
||||||
Copyright 2004 ThoughtWorks, Inc
|
Copyright 2004 ThoughtWorks, Inc
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
you may not use this file except in compliance with the License.
|
you may not use this file except in compliance with the License.
|
||||||
You may obtain a copy of the License at
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
Unless required by applicable law or agreed to in writing, software
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
See the License for the specific language governing permissions and
|
See the License for the specific language governing permissions and
|
||||||
limitations under the License.
|
limitations under the License.
|
||||||
-->
|
-->
|
||||||
|
|
||||||
<head>
|
<head>
|
||||||
<meta content="text/html; charset=ISO-8859-1"
|
<meta content="text/html; charset=ISO-8859-1"
|
||||||
http-equiv="content-type">
|
http-equiv="content-type">
|
||||||
<title>Select a Test Suite</title>
|
<title>Select a Test Suite</title>
|
||||||
<script language="JavaScript" type="text/javascript" src="scripts/selenium-browserdetect.js"></script>
|
<script language="JavaScript" type="text/javascript" src="scripts/selenium-browserdetect.js"></script>
|
||||||
<script>
|
<script>
|
||||||
|
|
||||||
function load() {
|
function load() {
|
||||||
if (browserVersion.isHTA) {
|
if (browserVersion.isHTA) {
|
||||||
document.getElementById("save-div").style.display = "inline";
|
document.getElementById("save-div").style.display = "inline";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function autoCheck() {
|
function autoCheck() {
|
||||||
var auto = document.getElementById("auto");
|
var auto = document.getElementById("auto");
|
||||||
var autoDiv = document.getElementById("auto-div");
|
var autoDiv = document.getElementById("auto-div");
|
||||||
if (auto.checked) {
|
if (auto.checked) {
|
||||||
autoDiv.style.display = "inline";
|
autoDiv.style.display = "inline";
|
||||||
} else {
|
} else {
|
||||||
autoDiv.style.display = "none";
|
autoDiv.style.display = "none";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function saveCheck() {
|
function saveCheck() {
|
||||||
var results = document.getElementById("results");
|
var results = document.getElementById("results");
|
||||||
var check = document.getElementById("save").checked;
|
var check = document.getElementById("save").checked;
|
||||||
if (check) {
|
if (check) {
|
||||||
results.firstChild.nodeValue = "Results file ";
|
results.firstChild.nodeValue = "Results file ";
|
||||||
document.getElementById("resultsUrl").value = "results.html";
|
document.getElementById("resultsUrl").value = "results.html";
|
||||||
} else {
|
} else {
|
||||||
results.firstChild.nodeValue = "Results URL ";
|
results.firstChild.nodeValue = "Results URL ";
|
||||||
document.getElementById("resultsUrl").value = "../postResults";
|
document.getElementById("resultsUrl").value = "../postResults";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function go() {
|
function go() {
|
||||||
if (!browserVersion.isHTA) return true;
|
if (!browserVersion.isHTA) return true;
|
||||||
var inputs = document.getElementsByTagName("input");
|
var inputs = document.getElementsByTagName("input");
|
||||||
var queryString = "";
|
var queryString = "";
|
||||||
for (var i = 0; i < inputs.length; i++) {
|
for (var i = 0; i < inputs.length; i++) {
|
||||||
var elem = inputs[i];
|
var elem = inputs[i];
|
||||||
var name = elem.name;
|
var name = elem.name;
|
||||||
var value = elem.value;
|
var value = elem.value;
|
||||||
if (elem.type == "checkbox") {
|
if (elem.type == "checkbox") {
|
||||||
value = elem.checked;
|
value = elem.checked;
|
||||||
}
|
}
|
||||||
queryString += escape(name) + "=" + escape(value);
|
queryString += escape(name) + "=" + escape(value);
|
||||||
if (i < (inputs.length - 1)) {
|
if (i < (inputs.length - 1)) {
|
||||||
queryString += "&";
|
queryString += "&";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
window.parent.selenium = null;
|
window.parent.selenium = null;
|
||||||
window.parent.htmlTestRunner.controlPanel.queryString = queryString;
|
window.parent.htmlTestRunner.controlPanel.queryString = queryString;
|
||||||
window.parent.htmlTestRunner.loadSuiteFrame();
|
window.parent.htmlTestRunner.loadSuiteFrame();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body onload="load()" style="font-size: x-small">
|
<body onload="load()" style="font-size: x-small">
|
||||||
<form id="prompt" target="_top" method="GET" onsubmit="return go();" action="TestRunner.html">
|
<form id="prompt" target="_top" method="GET" onsubmit="return go();" action="TestRunner.html">
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Test Suite:
|
Test Suite:
|
||||||
<input id="test" name="test" size="30" value="../tests/TestSuite.html"/>
|
<input id="test" name="test" size="30" value="../tests/TestSuite.html"/>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p align="center"><input type="submit" value="Go"/></p>
|
<p align="center"><input type="submit" value="Go"/></p>
|
||||||
|
|
||||||
<fieldset>
|
<fieldset>
|
||||||
<legend>Options</legend>
|
<legend>Options</legend>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
<input id="multiWindow" type="checkbox" name="multiWindow" onclick="autoCheck();"/> <label
|
<input id="multiWindow" type="checkbox" name="multiWindow" onclick="autoCheck();"/> <label
|
||||||
for="multiWindow">AUT in separate window</label>
|
for="multiWindow">AUT in separate window</label>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
<input id="auto" type="checkbox" name="auto" onclick="autoCheck();"/> <label for="auto">Run
|
<input id="auto" type="checkbox" name="auto" onclick="autoCheck();"/> <label for="auto">Run
|
||||||
automatically</label>
|
automatically</label>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<div id="auto-div" style="display: none">
|
<div id="auto-div" style="display: none">
|
||||||
<p>
|
<p>
|
||||||
<input id="close" type="checkbox" name="close"/> <label for="close">Close afterwards </label>
|
<input id="close" type="checkbox" name="close"/> <label for="close">Close afterwards </label>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<div id="save-div" style="display: none">
|
<div id="save-div" style="display: none">
|
||||||
<br/><label for="save">Save to file </label><input id="save" type="checkbox" name="save"
|
<br/><label for="save">Save to file </label><input id="save" type="checkbox" name="save"
|
||||||
onclick="saveCheck();"/>
|
onclick="saveCheck();"/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p id="results">
|
<p id="results">
|
||||||
Results URL:
|
Results URL:
|
||||||
<input id="resultsUrl" name="resultsUrl" value="../postResults"/>
|
<input id="resultsUrl" name="resultsUrl" value="../postResults"/>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
|
|
||||||
|
|
||||||
</form>
|
</form>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
@ -1,55 +1,55 @@
|
||||||
<!--
|
<!--
|
||||||
Copyright 2005 ThoughtWorks, Inc
|
Copyright 2005 ThoughtWorks, Inc
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
you may not use this file except in compliance with the License.
|
you may not use this file except in compliance with the License.
|
||||||
You may obtain a copy of the License at
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
Unless required by applicable law or agreed to in writing, software
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
See the License for the specific language governing permissions and
|
See the License for the specific language governing permissions and
|
||||||
limitations under the License.
|
limitations under the License.
|
||||||
-->
|
-->
|
||||||
|
|
||||||
<html>
|
<html>
|
||||||
<link rel="stylesheet" type="text/css" href="selenium.css" />
|
<link rel="stylesheet" type="text/css" href="selenium.css" />
|
||||||
<body>
|
<body>
|
||||||
<table width="100%">
|
<table width="100%">
|
||||||
|
|
||||||
<tr>
|
<tr>
|
||||||
<th>↑</th>
|
<th>↑</th>
|
||||||
<th>↑</th>
|
<th>↑</th>
|
||||||
<th>↑</th>
|
<th>↑</th>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<th width="25%">Test Suite</th>
|
<th width="25%">Test Suite</th>
|
||||||
<th width="50%">Current Test</th>
|
<th width="50%">Current Test</th>
|
||||||
<th width="25%">Control Panel</th>
|
<th width="25%">Control Panel</th>
|
||||||
</tr>
|
</tr>
|
||||||
<tr><td> </td></tr>
|
<tr><td> </td></tr>
|
||||||
|
|
||||||
<tr>
|
<tr>
|
||||||
<td></td>
|
<td></td>
|
||||||
<td class="selenium splash">
|
<td class="selenium splash">
|
||||||
|
|
||||||
<img src="selenium-logo.png" align="right">
|
<img src="selenium-logo.png" align="right">
|
||||||
|
|
||||||
<h1>Selenium</h1>
|
<h1>Selenium</h1>
|
||||||
<h2>by <a href="http://www.thoughtworks.com">ThoughtWorks</a> and friends</h2>
|
<h2>by <a href="http://www.thoughtworks.com">ThoughtWorks</a> and friends</h2>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
For more information on Selenium, visit
|
For more information on Selenium, visit
|
||||||
|
|
||||||
<pre>
|
<pre>
|
||||||
<a href="http://selenium.openqa.org" target="_blank">http://selenium.openqa.org</a>
|
<a href="http://selenium.openqa.org" target="_blank">http://selenium.openqa.org</a>
|
||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
</td>
|
</td>
|
||||||
<tr>
|
<tr>
|
||||||
|
|
||||||
</table>
|
</table>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
Before Width: | Height: | Size: 843 B After Width: | Height: | Size: 843 B |
|
Before Width: | Height: | Size: 848 B After Width: | Height: | Size: 848 B |
|
|
@ -1,298 +1,298 @@
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
* Defines default styles for site pages. *
|
* Defines default styles for site pages. *
|
||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
.hidden {
|
.hidden {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
img{
|
img{
|
||||||
display: inline;
|
display: inline;
|
||||||
border: none;
|
border: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
.box{
|
.box{
|
||||||
background: #fcfcfc;
|
background: #fcfcfc;
|
||||||
border: 1px solid #000;
|
border: 1px solid #000;
|
||||||
border-color: blue;
|
border-color: blue;
|
||||||
color: #000000;
|
color: #000000;
|
||||||
margin: 10px auto;
|
margin: 10px auto;
|
||||||
padding: 3px;
|
padding: 3px;
|
||||||
vertical-align: bottom;
|
vertical-align: bottom;
|
||||||
}
|
}
|
||||||
a {
|
a {
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
body {
|
body {
|
||||||
background-color: #ffffff;
|
background-color: #ffffff;
|
||||||
color: #000000;
|
color: #000000;
|
||||||
font-family: Arial, Helvetica, sans-serif;
|
font-family: Arial, Helvetica, sans-serif;
|
||||||
font-size: 10pt;
|
font-size: 10pt;
|
||||||
}
|
}
|
||||||
|
|
||||||
h2 {
|
h2 {
|
||||||
font-size: 140%;
|
font-size: 140%;
|
||||||
}
|
}
|
||||||
|
|
||||||
h3 {
|
h3 {
|
||||||
font-size: 120%;
|
font-size: 120%;
|
||||||
}
|
}
|
||||||
|
|
||||||
h4 {
|
h4 {
|
||||||
font-size: 100%;
|
font-size: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
pre {
|
pre {
|
||||||
font-family: Courier New, Courier, monospace;
|
font-family: Courier New, Courier, monospace;
|
||||||
font-size: 80%;
|
font-size: 80%;
|
||||||
}
|
}
|
||||||
|
|
||||||
td, th {
|
td, th {
|
||||||
font-family: Arial, Helvetica, sans-serif;
|
font-family: Arial, Helvetica, sans-serif;
|
||||||
font-size: 10pt;
|
font-size: 10pt;
|
||||||
text-align: left;
|
text-align: left;
|
||||||
vertical-align: top;
|
vertical-align: top;
|
||||||
}
|
}
|
||||||
|
|
||||||
th {
|
th {
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
vertical-align: bottom;
|
vertical-align: bottom;
|
||||||
}
|
}
|
||||||
|
|
||||||
ul {
|
ul {
|
||||||
list-style-type: square;
|
list-style-type: square;
|
||||||
}
|
}
|
||||||
|
|
||||||
#demoBox {
|
#demoBox {
|
||||||
border-color: #000000;
|
border-color: #000000;
|
||||||
border-style: solid;
|
border-style: solid;
|
||||||
border-width: 1px;
|
border-width: 1px;
|
||||||
padding: 8px;
|
padding: 8px;
|
||||||
width: 24em;
|
width: 24em;
|
||||||
}
|
}
|
||||||
|
|
||||||
.footer {
|
.footer {
|
||||||
margin-bottom: 0px;
|
margin-bottom: 0px;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Boxed table styles */
|
/* Boxed table styles */
|
||||||
|
|
||||||
table.boxed {
|
table.boxed {
|
||||||
border-spacing: 2px;
|
border-spacing: 2px;
|
||||||
empty-cells: hide;
|
empty-cells: hide;
|
||||||
}
|
}
|
||||||
|
|
||||||
td.boxed, th.boxed, th.boxedHeader {
|
td.boxed, th.boxed, th.boxedHeader {
|
||||||
background-color: #ffffff;
|
background-color: #ffffff;
|
||||||
border-color: #000000;
|
border-color: #000000;
|
||||||
border-style: solid;
|
border-style: solid;
|
||||||
border-width: 1px;
|
border-width: 1px;
|
||||||
color: #000000;
|
color: #000000;
|
||||||
padding: 2px;
|
padding: 2px;
|
||||||
padding-left: 8px;
|
padding-left: 8px;
|
||||||
padding-right: 8px;
|
padding-right: 8px;
|
||||||
}
|
}
|
||||||
|
|
||||||
th.boxed {
|
th.boxed {
|
||||||
background-color: #c0c0c0;
|
background-color: #c0c0c0;
|
||||||
}
|
}
|
||||||
|
|
||||||
th.boxedHeader {
|
th.boxedHeader {
|
||||||
background-color: #808080;
|
background-color: #808080;
|
||||||
color: #ffffff;
|
color: #ffffff;
|
||||||
}
|
}
|
||||||
|
|
||||||
a.object {
|
a.object {
|
||||||
color: #0000ff;
|
color: #0000ff;
|
||||||
}
|
}
|
||||||
|
|
||||||
li {
|
li {
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
}
|
}
|
||||||
|
|
||||||
ul {
|
ul {
|
||||||
list-style-type: square;
|
list-style-type: square;
|
||||||
margin-left: 0px;
|
margin-left: 0px;
|
||||||
padding-left: 1em;
|
padding-left: 1em;
|
||||||
}
|
}
|
||||||
|
|
||||||
.boxlevel1{
|
.boxlevel1{
|
||||||
background: #FFD700;
|
background: #FFD700;
|
||||||
}
|
}
|
||||||
|
|
||||||
.boxlevel2{
|
.boxlevel2{
|
||||||
background: #D2691E;
|
background: #D2691E;
|
||||||
}
|
}
|
||||||
|
|
||||||
.boxlevel3{
|
.boxlevel3{
|
||||||
background: #DCDCDC;
|
background: #DCDCDC;
|
||||||
}
|
}
|
||||||
|
|
||||||
.boxlevel4{
|
.boxlevel4{
|
||||||
background: #F5F5F5;
|
background: #F5F5F5;
|
||||||
}
|
}
|
||||||
|
|
||||||
.boxlevel5{
|
.boxlevel5{
|
||||||
background: #BEBEBE;
|
background: #BEBEBE;
|
||||||
}
|
}
|
||||||
|
|
||||||
.boxlevel6{
|
.boxlevel6{
|
||||||
background: #D3D3D3;
|
background: #D3D3D3;
|
||||||
}
|
}
|
||||||
|
|
||||||
.boxlevel7{
|
.boxlevel7{
|
||||||
background: #A9A9A9;
|
background: #A9A9A9;
|
||||||
}
|
}
|
||||||
|
|
||||||
.boxlevel8{
|
.boxlevel8{
|
||||||
background: #191970;
|
background: #191970;
|
||||||
}
|
}
|
||||||
|
|
||||||
.boxlevel9{
|
.boxlevel9{
|
||||||
background: #000080;
|
background: #000080;
|
||||||
}
|
}
|
||||||
|
|
||||||
.boxlevel10{
|
.boxlevel10{
|
||||||
background: #6495ED;
|
background: #6495ED;
|
||||||
}
|
}
|
||||||
|
|
||||||
.boxlevel11{
|
.boxlevel11{
|
||||||
background: #483D8B;
|
background: #483D8B;
|
||||||
}
|
}
|
||||||
|
|
||||||
.boxlevel12{
|
.boxlevel12{
|
||||||
background: #6A5ACD;
|
background: #6A5ACD;
|
||||||
}
|
}
|
||||||
|
|
||||||
.boxlevel13{
|
.boxlevel13{
|
||||||
background: #7B68EE;
|
background: #7B68EE;
|
||||||
}
|
}
|
||||||
|
|
||||||
.boxlevel14{
|
.boxlevel14{
|
||||||
background: #8470FF;
|
background: #8470FF;
|
||||||
}
|
}
|
||||||
|
|
||||||
.boxlevel15{
|
.boxlevel15{
|
||||||
background: #0000CD;
|
background: #0000CD;
|
||||||
}
|
}
|
||||||
|
|
||||||
.boxlevel16{
|
.boxlevel16{
|
||||||
background: #4169E1;
|
background: #4169E1;
|
||||||
}
|
}
|
||||||
|
|
||||||
.boxlevel17{
|
.boxlevel17{
|
||||||
background: #0000FF;
|
background: #0000FF;
|
||||||
}
|
}
|
||||||
|
|
||||||
.boxlevel18{
|
.boxlevel18{
|
||||||
background: #1E90FF;
|
background: #1E90FF;
|
||||||
}
|
}
|
||||||
|
|
||||||
.boxlevel19{
|
.boxlevel19{
|
||||||
background: #00BFFF;
|
background: #00BFFF;
|
||||||
}
|
}
|
||||||
|
|
||||||
.boxlevel20{
|
.boxlevel20{
|
||||||
background: #87CEEB;
|
background: #87CEEB;
|
||||||
}
|
}
|
||||||
|
|
||||||
.boxlevel21{
|
.boxlevel21{
|
||||||
background: #B0C4DE;
|
background: #B0C4DE;
|
||||||
}
|
}
|
||||||
|
|
||||||
.boxlevel22{
|
.boxlevel22{
|
||||||
background: #ADD8E6;
|
background: #ADD8E6;
|
||||||
}
|
}
|
||||||
|
|
||||||
.boxlevel23{
|
.boxlevel23{
|
||||||
background: #00CED1;
|
background: #00CED1;
|
||||||
}
|
}
|
||||||
|
|
||||||
.boxlevel24{
|
.boxlevel24{
|
||||||
background: #48D1CC;
|
background: #48D1CC;
|
||||||
}
|
}
|
||||||
|
|
||||||
.boxlevel25{
|
.boxlevel25{
|
||||||
background: #40E0D0;
|
background: #40E0D0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.boxlevel26{
|
.boxlevel26{
|
||||||
background: #008B8B;
|
background: #008B8B;
|
||||||
}
|
}
|
||||||
|
|
||||||
.boxlevel27{
|
.boxlevel27{
|
||||||
background: #00FFFF;
|
background: #00FFFF;
|
||||||
}
|
}
|
||||||
|
|
||||||
.boxlevel28{
|
.boxlevel28{
|
||||||
background: #E0FFFF;
|
background: #E0FFFF;
|
||||||
}
|
}
|
||||||
|
|
||||||
.boxlevel29{
|
.boxlevel29{
|
||||||
background: #5F9EA0;
|
background: #5F9EA0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.boxlevel30{
|
.boxlevel30{
|
||||||
background: #66CDAA;
|
background: #66CDAA;
|
||||||
}
|
}
|
||||||
|
|
||||||
.boxlevel31{
|
.boxlevel31{
|
||||||
background: #7FFFD4;
|
background: #7FFFD4;
|
||||||
}
|
}
|
||||||
|
|
||||||
.boxlevel32{
|
.boxlevel32{
|
||||||
background: #006400;
|
background: #006400;
|
||||||
}
|
}
|
||||||
|
|
||||||
.boxlevel33{
|
.boxlevel33{
|
||||||
background: #556B2F;
|
background: #556B2F;
|
||||||
}
|
}
|
||||||
|
|
||||||
.boxlevel34{
|
.boxlevel34{
|
||||||
background: #8FBC8F;
|
background: #8FBC8F;
|
||||||
}
|
}
|
||||||
|
|
||||||
.boxlevel35{
|
.boxlevel35{
|
||||||
background: #2E8B57;
|
background: #2E8B57;
|
||||||
}
|
}
|
||||||
|
|
||||||
.boxlevel36{
|
.boxlevel36{
|
||||||
background: #3CB371;
|
background: #3CB371;
|
||||||
}
|
}
|
||||||
|
|
||||||
.boxlevel37{
|
.boxlevel37{
|
||||||
background: #20B2AA;
|
background: #20B2AA;
|
||||||
}
|
}
|
||||||
|
|
||||||
.boxlevel38{
|
.boxlevel38{
|
||||||
background: #00FF7F;
|
background: #00FF7F;
|
||||||
}
|
}
|
||||||
|
|
||||||
.boxlevel39{
|
.boxlevel39{
|
||||||
background: #7CFC00;
|
background: #7CFC00;
|
||||||
}
|
}
|
||||||
|
|
||||||
.boxlevel40{
|
.boxlevel40{
|
||||||
background: #90EE90;
|
background: #90EE90;
|
||||||
}
|
}
|
||||||
|
|
||||||
.boxlevel41{
|
.boxlevel41{
|
||||||
background: #00FF00;
|
background: #00FF00;
|
||||||
}
|
}
|
||||||
|
|
||||||
.boxlevel41{
|
.boxlevel41{
|
||||||
background: #7FFF00;
|
background: #7FFF00;
|
||||||
}
|
}
|
||||||
|
|
||||||
.boxlevel42{
|
.boxlevel42{
|
||||||
background: #00FA9A;
|
background: #00FA9A;
|
||||||
}
|
}
|
||||||
|
|
||||||
.boxlevel43{
|
.boxlevel43{
|
||||||
background: #ADFF2F;
|
background: #ADFF2F;
|
||||||
}
|
}
|
||||||
|
|
||||||
.boxlevel44{
|
.boxlevel44{
|
||||||
background: #32CD32;
|
background: #32CD32;
|
||||||
}
|
}
|
||||||
|
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 |
|
|
@ -1,142 +1,142 @@
|
||||||
/*
|
/*
|
||||||
cssQuery, version 2.0.2 (2005-08-19)
|
cssQuery, version 2.0.2 (2005-08-19)
|
||||||
Copyright: 2004-2005, Dean Edwards (http://dean.edwards.name/)
|
Copyright: 2004-2005, Dean Edwards (http://dean.edwards.name/)
|
||||||
License: http://creativecommons.org/licenses/LGPL/2.1/
|
License: http://creativecommons.org/licenses/LGPL/2.1/
|
||||||
*/
|
*/
|
||||||
|
|
||||||
cssQuery.addModule("css-level2", function() {
|
cssQuery.addModule("css-level2", function() {
|
||||||
|
|
||||||
// -----------------------------------------------------------------------
|
// -----------------------------------------------------------------------
|
||||||
// selectors
|
// selectors
|
||||||
// -----------------------------------------------------------------------
|
// -----------------------------------------------------------------------
|
||||||
|
|
||||||
// child selector
|
// child selector
|
||||||
selectors[">"] = function($results, $from, $tagName, $namespace) {
|
selectors[">"] = function($results, $from, $tagName, $namespace) {
|
||||||
var $element, i, j;
|
var $element, i, j;
|
||||||
for (i = 0; i < $from.length; i++) {
|
for (i = 0; i < $from.length; i++) {
|
||||||
var $subset = childElements($from[i]);
|
var $subset = childElements($from[i]);
|
||||||
for (j = 0; ($element = $subset[j]); j++)
|
for (j = 0; ($element = $subset[j]); j++)
|
||||||
if (compareTagName($element, $tagName, $namespace))
|
if (compareTagName($element, $tagName, $namespace))
|
||||||
$results.push($element);
|
$results.push($element);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
// sibling selector
|
// sibling selector
|
||||||
selectors["+"] = function($results, $from, $tagName, $namespace) {
|
selectors["+"] = function($results, $from, $tagName, $namespace) {
|
||||||
for (var i = 0; i < $from.length; i++) {
|
for (var i = 0; i < $from.length; i++) {
|
||||||
var $element = nextElementSibling($from[i]);
|
var $element = nextElementSibling($from[i]);
|
||||||
if ($element && compareTagName($element, $tagName, $namespace))
|
if ($element && compareTagName($element, $tagName, $namespace))
|
||||||
$results.push($element);
|
$results.push($element);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
// attribute selector
|
// attribute selector
|
||||||
selectors["@"] = function($results, $from, $attributeSelectorID) {
|
selectors["@"] = function($results, $from, $attributeSelectorID) {
|
||||||
var $test = attributeSelectors[$attributeSelectorID].test;
|
var $test = attributeSelectors[$attributeSelectorID].test;
|
||||||
var $element, i;
|
var $element, i;
|
||||||
for (i = 0; ($element = $from[i]); i++)
|
for (i = 0; ($element = $from[i]); i++)
|
||||||
if ($test($element)) $results.push($element);
|
if ($test($element)) $results.push($element);
|
||||||
};
|
};
|
||||||
|
|
||||||
// -----------------------------------------------------------------------
|
// -----------------------------------------------------------------------
|
||||||
// pseudo-classes
|
// pseudo-classes
|
||||||
// -----------------------------------------------------------------------
|
// -----------------------------------------------------------------------
|
||||||
|
|
||||||
pseudoClasses["first-child"] = function($element) {
|
pseudoClasses["first-child"] = function($element) {
|
||||||
return !previousElementSibling($element);
|
return !previousElementSibling($element);
|
||||||
};
|
};
|
||||||
|
|
||||||
pseudoClasses["lang"] = function($element, $code) {
|
pseudoClasses["lang"] = function($element, $code) {
|
||||||
$code = new RegExp("^" + $code, "i");
|
$code = new RegExp("^" + $code, "i");
|
||||||
while ($element && !$element.getAttribute("lang")) $element = $element.parentNode;
|
while ($element && !$element.getAttribute("lang")) $element = $element.parentNode;
|
||||||
return $element && $code.test($element.getAttribute("lang"));
|
return $element && $code.test($element.getAttribute("lang"));
|
||||||
};
|
};
|
||||||
|
|
||||||
// -----------------------------------------------------------------------
|
// -----------------------------------------------------------------------
|
||||||
// attribute selectors
|
// attribute selectors
|
||||||
// -----------------------------------------------------------------------
|
// -----------------------------------------------------------------------
|
||||||
|
|
||||||
// constants
|
// constants
|
||||||
AttributeSelector.NS_IE = /\\:/g;
|
AttributeSelector.NS_IE = /\\:/g;
|
||||||
AttributeSelector.PREFIX = "@";
|
AttributeSelector.PREFIX = "@";
|
||||||
// properties
|
// properties
|
||||||
AttributeSelector.tests = {};
|
AttributeSelector.tests = {};
|
||||||
// methods
|
// methods
|
||||||
AttributeSelector.replace = function($match, $attribute, $namespace, $compare, $value) {
|
AttributeSelector.replace = function($match, $attribute, $namespace, $compare, $value) {
|
||||||
var $key = this.PREFIX + $match;
|
var $key = this.PREFIX + $match;
|
||||||
if (!attributeSelectors[$key]) {
|
if (!attributeSelectors[$key]) {
|
||||||
$attribute = this.create($attribute, $compare || "", $value || "");
|
$attribute = this.create($attribute, $compare || "", $value || "");
|
||||||
// store the selector
|
// store the selector
|
||||||
attributeSelectors[$key] = $attribute;
|
attributeSelectors[$key] = $attribute;
|
||||||
attributeSelectors.push($attribute);
|
attributeSelectors.push($attribute);
|
||||||
}
|
}
|
||||||
return attributeSelectors[$key].id;
|
return attributeSelectors[$key].id;
|
||||||
};
|
};
|
||||||
AttributeSelector.parse = function($selector) {
|
AttributeSelector.parse = function($selector) {
|
||||||
$selector = $selector.replace(this.NS_IE, "|");
|
$selector = $selector.replace(this.NS_IE, "|");
|
||||||
var $match;
|
var $match;
|
||||||
while ($match = $selector.match(this.match)) {
|
while ($match = $selector.match(this.match)) {
|
||||||
var $replace = this.replace($match[0], $match[1], $match[2], $match[3], $match[4]);
|
var $replace = this.replace($match[0], $match[1], $match[2], $match[3], $match[4]);
|
||||||
$selector = $selector.replace(this.match, $replace);
|
$selector = $selector.replace(this.match, $replace);
|
||||||
}
|
}
|
||||||
return $selector;
|
return $selector;
|
||||||
};
|
};
|
||||||
AttributeSelector.create = function($propertyName, $test, $value) {
|
AttributeSelector.create = function($propertyName, $test, $value) {
|
||||||
var $attributeSelector = {};
|
var $attributeSelector = {};
|
||||||
$attributeSelector.id = this.PREFIX + attributeSelectors.length;
|
$attributeSelector.id = this.PREFIX + attributeSelectors.length;
|
||||||
$attributeSelector.name = $propertyName;
|
$attributeSelector.name = $propertyName;
|
||||||
$test = this.tests[$test];
|
$test = this.tests[$test];
|
||||||
$test = $test ? $test(this.getAttribute($propertyName), getText($value)) : false;
|
$test = $test ? $test(this.getAttribute($propertyName), getText($value)) : false;
|
||||||
$attributeSelector.test = new Function("e", "return " + $test);
|
$attributeSelector.test = new Function("e", "return " + $test);
|
||||||
return $attributeSelector;
|
return $attributeSelector;
|
||||||
};
|
};
|
||||||
AttributeSelector.getAttribute = function($name) {
|
AttributeSelector.getAttribute = function($name) {
|
||||||
switch ($name.toLowerCase()) {
|
switch ($name.toLowerCase()) {
|
||||||
case "id":
|
case "id":
|
||||||
return "e.id";
|
return "e.id";
|
||||||
case "class":
|
case "class":
|
||||||
return "e.className";
|
return "e.className";
|
||||||
case "for":
|
case "for":
|
||||||
return "e.htmlFor";
|
return "e.htmlFor";
|
||||||
case "href":
|
case "href":
|
||||||
if (isMSIE) {
|
if (isMSIE) {
|
||||||
// IE always returns the full path not the fragment in the href attribute
|
// IE always returns the full path not the fragment in the href attribute
|
||||||
// so we RegExp it out of outerHTML. Opera does the same thing but there
|
// so we RegExp it out of outerHTML. Opera does the same thing but there
|
||||||
// is no way to get the original attribute.
|
// is no way to get the original attribute.
|
||||||
return "String((e.outerHTML.match(/href=\\x22?([^\\s\\x22]*)\\x22?/)||[])[1]||'')";
|
return "String((e.outerHTML.match(/href=\\x22?([^\\s\\x22]*)\\x22?/)||[])[1]||'')";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return "e.getAttribute('" + $name.replace($NAMESPACE, ":") + "')";
|
return "e.getAttribute('" + $name.replace($NAMESPACE, ":") + "')";
|
||||||
};
|
};
|
||||||
|
|
||||||
// -----------------------------------------------------------------------
|
// -----------------------------------------------------------------------
|
||||||
// attribute selector tests
|
// attribute selector tests
|
||||||
// -----------------------------------------------------------------------
|
// -----------------------------------------------------------------------
|
||||||
|
|
||||||
AttributeSelector.tests[""] = function($attribute) {
|
AttributeSelector.tests[""] = function($attribute) {
|
||||||
return $attribute;
|
return $attribute;
|
||||||
};
|
};
|
||||||
|
|
||||||
AttributeSelector.tests["="] = function($attribute, $value) {
|
AttributeSelector.tests["="] = function($attribute, $value) {
|
||||||
return $attribute + "==" + Quote.add($value);
|
return $attribute + "==" + Quote.add($value);
|
||||||
};
|
};
|
||||||
|
|
||||||
AttributeSelector.tests["~="] = function($attribute, $value) {
|
AttributeSelector.tests["~="] = function($attribute, $value) {
|
||||||
return "/(^| )" + regEscape($value) + "( |$)/.test(" + $attribute + ")";
|
return "/(^| )" + regEscape($value) + "( |$)/.test(" + $attribute + ")";
|
||||||
};
|
};
|
||||||
|
|
||||||
AttributeSelector.tests["|="] = function($attribute, $value) {
|
AttributeSelector.tests["|="] = function($attribute, $value) {
|
||||||
return "/^" + regEscape($value) + "(-|$)/.test(" + $attribute + ")";
|
return "/^" + regEscape($value) + "(-|$)/.test(" + $attribute + ")";
|
||||||
};
|
};
|
||||||
|
|
||||||
// -----------------------------------------------------------------------
|
// -----------------------------------------------------------------------
|
||||||
// parsing
|
// parsing
|
||||||
// -----------------------------------------------------------------------
|
// -----------------------------------------------------------------------
|
||||||
|
|
||||||
// override parseSelector to parse out attribute selectors
|
// override parseSelector to parse out attribute selectors
|
||||||
var _parseSelector = parseSelector;
|
var _parseSelector = parseSelector;
|
||||||
parseSelector = function($selector) {
|
parseSelector = function($selector) {
|
||||||
return _parseSelector(AttributeSelector.parse($selector));
|
return _parseSelector(AttributeSelector.parse($selector));
|
||||||
};
|
};
|
||||||
|
|
||||||
}); // addModule
|
}); // addModule
|
||||||
|
|
@ -1,150 +1,150 @@
|
||||||
/*
|
/*
|
||||||
cssQuery, version 2.0.2 (2005-08-19)
|
cssQuery, version 2.0.2 (2005-08-19)
|
||||||
Copyright: 2004-2005, Dean Edwards (http://dean.edwards.name/)
|
Copyright: 2004-2005, Dean Edwards (http://dean.edwards.name/)
|
||||||
License: http://creativecommons.org/licenses/LGPL/2.1/
|
License: http://creativecommons.org/licenses/LGPL/2.1/
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* Thanks to Bill Edney */
|
/* Thanks to Bill Edney */
|
||||||
|
|
||||||
cssQuery.addModule("css-level3", function() {
|
cssQuery.addModule("css-level3", function() {
|
||||||
|
|
||||||
// -----------------------------------------------------------------------
|
// -----------------------------------------------------------------------
|
||||||
// selectors
|
// selectors
|
||||||
// -----------------------------------------------------------------------
|
// -----------------------------------------------------------------------
|
||||||
|
|
||||||
// indirect sibling selector
|
// indirect sibling selector
|
||||||
selectors["~"] = function($results, $from, $tagName, $namespace) {
|
selectors["~"] = function($results, $from, $tagName, $namespace) {
|
||||||
var $element, i;
|
var $element, i;
|
||||||
for (i = 0; ($element = $from[i]); i++) {
|
for (i = 0; ($element = $from[i]); i++) {
|
||||||
while ($element = nextElementSibling($element)) {
|
while ($element = nextElementSibling($element)) {
|
||||||
if (compareTagName($element, $tagName, $namespace))
|
if (compareTagName($element, $tagName, $namespace))
|
||||||
$results.push($element);
|
$results.push($element);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
// -----------------------------------------------------------------------
|
// -----------------------------------------------------------------------
|
||||||
// pseudo-classes
|
// pseudo-classes
|
||||||
// -----------------------------------------------------------------------
|
// -----------------------------------------------------------------------
|
||||||
|
|
||||||
// I'm hoping these pseudo-classes are pretty readable. Let me know if
|
// I'm hoping these pseudo-classes are pretty readable. Let me know if
|
||||||
// any need explanation.
|
// any need explanation.
|
||||||
|
|
||||||
pseudoClasses["contains"] = function($element, $text) {
|
pseudoClasses["contains"] = function($element, $text) {
|
||||||
$text = new RegExp(regEscape(getText($text)));
|
$text = new RegExp(regEscape(getText($text)));
|
||||||
return $text.test(getTextContent($element));
|
return $text.test(getTextContent($element));
|
||||||
};
|
};
|
||||||
|
|
||||||
pseudoClasses["root"] = function($element) {
|
pseudoClasses["root"] = function($element) {
|
||||||
return $element == getDocument($element).documentElement;
|
return $element == getDocument($element).documentElement;
|
||||||
};
|
};
|
||||||
|
|
||||||
pseudoClasses["empty"] = function($element) {
|
pseudoClasses["empty"] = function($element) {
|
||||||
var $node, i;
|
var $node, i;
|
||||||
for (i = 0; ($node = $element.childNodes[i]); i++) {
|
for (i = 0; ($node = $element.childNodes[i]); i++) {
|
||||||
if (thisElement($node) || $node.nodeType == 3) return false;
|
if (thisElement($node) || $node.nodeType == 3) return false;
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
};
|
};
|
||||||
|
|
||||||
pseudoClasses["last-child"] = function($element) {
|
pseudoClasses["last-child"] = function($element) {
|
||||||
return !nextElementSibling($element);
|
return !nextElementSibling($element);
|
||||||
};
|
};
|
||||||
|
|
||||||
pseudoClasses["only-child"] = function($element) {
|
pseudoClasses["only-child"] = function($element) {
|
||||||
$element = $element.parentNode;
|
$element = $element.parentNode;
|
||||||
return firstElementChild($element) == lastElementChild($element);
|
return firstElementChild($element) == lastElementChild($element);
|
||||||
};
|
};
|
||||||
|
|
||||||
pseudoClasses["not"] = function($element, $selector) {
|
pseudoClasses["not"] = function($element, $selector) {
|
||||||
var $negated = cssQuery($selector, getDocument($element));
|
var $negated = cssQuery($selector, getDocument($element));
|
||||||
for (var i = 0; i < $negated.length; i++) {
|
for (var i = 0; i < $negated.length; i++) {
|
||||||
if ($negated[i] == $element) return false;
|
if ($negated[i] == $element) return false;
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
};
|
};
|
||||||
|
|
||||||
pseudoClasses["nth-child"] = function($element, $arguments) {
|
pseudoClasses["nth-child"] = function($element, $arguments) {
|
||||||
return nthChild($element, $arguments, previousElementSibling);
|
return nthChild($element, $arguments, previousElementSibling);
|
||||||
};
|
};
|
||||||
|
|
||||||
pseudoClasses["nth-last-child"] = function($element, $arguments) {
|
pseudoClasses["nth-last-child"] = function($element, $arguments) {
|
||||||
return nthChild($element, $arguments, nextElementSibling);
|
return nthChild($element, $arguments, nextElementSibling);
|
||||||
};
|
};
|
||||||
|
|
||||||
pseudoClasses["target"] = function($element) {
|
pseudoClasses["target"] = function($element) {
|
||||||
return $element.id == location.hash.slice(1);
|
return $element.id == location.hash.slice(1);
|
||||||
};
|
};
|
||||||
|
|
||||||
// UI element states
|
// UI element states
|
||||||
|
|
||||||
pseudoClasses["checked"] = function($element) {
|
pseudoClasses["checked"] = function($element) {
|
||||||
return $element.checked;
|
return $element.checked;
|
||||||
};
|
};
|
||||||
|
|
||||||
pseudoClasses["enabled"] = function($element) {
|
pseudoClasses["enabled"] = function($element) {
|
||||||
return $element.disabled === false;
|
return $element.disabled === false;
|
||||||
};
|
};
|
||||||
|
|
||||||
pseudoClasses["disabled"] = function($element) {
|
pseudoClasses["disabled"] = function($element) {
|
||||||
return $element.disabled;
|
return $element.disabled;
|
||||||
};
|
};
|
||||||
|
|
||||||
pseudoClasses["indeterminate"] = function($element) {
|
pseudoClasses["indeterminate"] = function($element) {
|
||||||
return $element.indeterminate;
|
return $element.indeterminate;
|
||||||
};
|
};
|
||||||
|
|
||||||
// -----------------------------------------------------------------------
|
// -----------------------------------------------------------------------
|
||||||
// attribute selector tests
|
// attribute selector tests
|
||||||
// -----------------------------------------------------------------------
|
// -----------------------------------------------------------------------
|
||||||
|
|
||||||
AttributeSelector.tests["^="] = function($attribute, $value) {
|
AttributeSelector.tests["^="] = function($attribute, $value) {
|
||||||
return "/^" + regEscape($value) + "/.test(" + $attribute + ")";
|
return "/^" + regEscape($value) + "/.test(" + $attribute + ")";
|
||||||
};
|
};
|
||||||
|
|
||||||
AttributeSelector.tests["$="] = function($attribute, $value) {
|
AttributeSelector.tests["$="] = function($attribute, $value) {
|
||||||
return "/" + regEscape($value) + "$/.test(" + $attribute + ")";
|
return "/" + regEscape($value) + "$/.test(" + $attribute + ")";
|
||||||
};
|
};
|
||||||
|
|
||||||
AttributeSelector.tests["*="] = function($attribute, $value) {
|
AttributeSelector.tests["*="] = function($attribute, $value) {
|
||||||
return "/" + regEscape($value) + "/.test(" + $attribute + ")";
|
return "/" + regEscape($value) + "/.test(" + $attribute + ")";
|
||||||
};
|
};
|
||||||
|
|
||||||
// -----------------------------------------------------------------------
|
// -----------------------------------------------------------------------
|
||||||
// nth child support (Bill Edney)
|
// nth child support (Bill Edney)
|
||||||
// -----------------------------------------------------------------------
|
// -----------------------------------------------------------------------
|
||||||
|
|
||||||
function nthChild($element, $arguments, $traverse) {
|
function nthChild($element, $arguments, $traverse) {
|
||||||
switch ($arguments) {
|
switch ($arguments) {
|
||||||
case "n": return true;
|
case "n": return true;
|
||||||
case "even": $arguments = "2n"; break;
|
case "even": $arguments = "2n"; break;
|
||||||
case "odd": $arguments = "2n+1";
|
case "odd": $arguments = "2n+1";
|
||||||
}
|
}
|
||||||
|
|
||||||
var $$children = childElements($element.parentNode);
|
var $$children = childElements($element.parentNode);
|
||||||
function _checkIndex($index) {
|
function _checkIndex($index) {
|
||||||
var $index = ($traverse == nextElementSibling) ? $$children.length - $index : $index - 1;
|
var $index = ($traverse == nextElementSibling) ? $$children.length - $index : $index - 1;
|
||||||
return $$children[$index] == $element;
|
return $$children[$index] == $element;
|
||||||
};
|
};
|
||||||
|
|
||||||
// it was just a number (no "n")
|
// it was just a number (no "n")
|
||||||
if (!isNaN($arguments)) return _checkIndex($arguments);
|
if (!isNaN($arguments)) return _checkIndex($arguments);
|
||||||
|
|
||||||
$arguments = $arguments.split("n");
|
$arguments = $arguments.split("n");
|
||||||
var $multiplier = parseInt($arguments[0]);
|
var $multiplier = parseInt($arguments[0]);
|
||||||
var $step = parseInt($arguments[1]);
|
var $step = parseInt($arguments[1]);
|
||||||
|
|
||||||
if ((isNaN($multiplier) || $multiplier == 1) && $step == 0) return true;
|
if ((isNaN($multiplier) || $multiplier == 1) && $step == 0) return true;
|
||||||
if ($multiplier == 0 && !isNaN($step)) return _checkIndex($step);
|
if ($multiplier == 0 && !isNaN($step)) return _checkIndex($step);
|
||||||
if (isNaN($step)) $step = 0;
|
if (isNaN($step)) $step = 0;
|
||||||
|
|
||||||
var $count = 1;
|
var $count = 1;
|
||||||
while ($element = $traverse($element)) $count++;
|
while ($element = $traverse($element)) $count++;
|
||||||
|
|
||||||
if (isNaN($multiplier) || $multiplier == 1)
|
if (isNaN($multiplier) || $multiplier == 1)
|
||||||
return ($traverse == nextElementSibling) ? ($count <= $step) : ($step >= $count);
|
return ($traverse == nextElementSibling) ? ($count <= $step) : ($step >= $count);
|
||||||
|
|
||||||
return ($count % $multiplier) == $step;
|
return ($count % $multiplier) == $step;
|
||||||
};
|
};
|
||||||
|
|
||||||
}); // addModule
|
}); // addModule
|
||||||
|
|
@ -1,53 +1,53 @@
|
||||||
/*
|
/*
|
||||||
cssQuery, version 2.0.2 (2005-08-19)
|
cssQuery, version 2.0.2 (2005-08-19)
|
||||||
Copyright: 2004-2005, Dean Edwards (http://dean.edwards.name/)
|
Copyright: 2004-2005, Dean Edwards (http://dean.edwards.name/)
|
||||||
License: http://creativecommons.org/licenses/LGPL/2.1/
|
License: http://creativecommons.org/licenses/LGPL/2.1/
|
||||||
*/
|
*/
|
||||||
|
|
||||||
cssQuery.addModule("css-standard", function() { // override IE optimisation
|
cssQuery.addModule("css-standard", function() { // override IE optimisation
|
||||||
|
|
||||||
// cssQuery was originally written as the CSS engine for IE7. It is
|
// cssQuery was originally written as the CSS engine for IE7. It is
|
||||||
// optimised (in terms of size not speed) for IE so this module is
|
// optimised (in terms of size not speed) for IE so this module is
|
||||||
// provided separately to provide cross-browser support.
|
// provided separately to provide cross-browser support.
|
||||||
|
|
||||||
// -----------------------------------------------------------------------
|
// -----------------------------------------------------------------------
|
||||||
// browser compatibility
|
// browser compatibility
|
||||||
// -----------------------------------------------------------------------
|
// -----------------------------------------------------------------------
|
||||||
|
|
||||||
// sniff for Win32 Explorer
|
// sniff for Win32 Explorer
|
||||||
isMSIE = eval("false;/*@cc_on@if(@\x5fwin32)isMSIE=true@end@*/");
|
isMSIE = eval("false;/*@cc_on@if(@\x5fwin32)isMSIE=true@end@*/");
|
||||||
|
|
||||||
if (!isMSIE) {
|
if (!isMSIE) {
|
||||||
getElementsByTagName = function($element, $tagName, $namespace) {
|
getElementsByTagName = function($element, $tagName, $namespace) {
|
||||||
return $namespace ? $element.getElementsByTagNameNS("*", $tagName) :
|
return $namespace ? $element.getElementsByTagNameNS("*", $tagName) :
|
||||||
$element.getElementsByTagName($tagName);
|
$element.getElementsByTagName($tagName);
|
||||||
};
|
};
|
||||||
|
|
||||||
compareNamespace = function($element, $namespace) {
|
compareNamespace = function($element, $namespace) {
|
||||||
return !$namespace || ($namespace == "*") || ($element.prefix == $namespace);
|
return !$namespace || ($namespace == "*") || ($element.prefix == $namespace);
|
||||||
};
|
};
|
||||||
|
|
||||||
isXML = document.contentType ? function($element) {
|
isXML = document.contentType ? function($element) {
|
||||||
return /xml/i.test(getDocument($element).contentType);
|
return /xml/i.test(getDocument($element).contentType);
|
||||||
} : function($element) {
|
} : function($element) {
|
||||||
return getDocument($element).documentElement.tagName != "HTML";
|
return getDocument($element).documentElement.tagName != "HTML";
|
||||||
};
|
};
|
||||||
|
|
||||||
getTextContent = function($element) {
|
getTextContent = function($element) {
|
||||||
// mozilla || opera || other
|
// mozilla || opera || other
|
||||||
return $element.textContent || $element.innerText || _getTextContent($element);
|
return $element.textContent || $element.innerText || _getTextContent($element);
|
||||||
};
|
};
|
||||||
|
|
||||||
function _getTextContent($element) {
|
function _getTextContent($element) {
|
||||||
var $textContent = "", $node, i;
|
var $textContent = "", $node, i;
|
||||||
for (i = 0; ($node = $element.childNodes[i]); i++) {
|
for (i = 0; ($node = $element.childNodes[i]); i++) {
|
||||||
switch ($node.nodeType) {
|
switch ($node.nodeType) {
|
||||||
case 11: // document fragment
|
case 11: // document fragment
|
||||||
case 1: $textContent += _getTextContent($node); break;
|
case 1: $textContent += _getTextContent($node); break;
|
||||||
case 3: $textContent += $node.nodeValue; break;
|
case 3: $textContent += $node.nodeValue; break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return $textContent;
|
return $textContent;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}); // addModule
|
}); // addModule
|
||||||
|
|
@ -1,356 +1,356 @@
|
||||||
/*
|
/*
|
||||||
cssQuery, version 2.0.2 (2005-08-19)
|
cssQuery, version 2.0.2 (2005-08-19)
|
||||||
Copyright: 2004-2005, Dean Edwards (http://dean.edwards.name/)
|
Copyright: 2004-2005, Dean Edwards (http://dean.edwards.name/)
|
||||||
License: http://creativecommons.org/licenses/LGPL/2.1/
|
License: http://creativecommons.org/licenses/LGPL/2.1/
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// the following functions allow querying of the DOM using CSS selectors
|
// the following functions allow querying of the DOM using CSS selectors
|
||||||
var cssQuery = function() {
|
var cssQuery = function() {
|
||||||
var version = "2.0.2";
|
var version = "2.0.2";
|
||||||
|
|
||||||
// -----------------------------------------------------------------------
|
// -----------------------------------------------------------------------
|
||||||
// main query function
|
// main query function
|
||||||
// -----------------------------------------------------------------------
|
// -----------------------------------------------------------------------
|
||||||
|
|
||||||
var $COMMA = /\s*,\s*/;
|
var $COMMA = /\s*,\s*/;
|
||||||
var cssQuery = function($selector, $$from) {
|
var cssQuery = function($selector, $$from) {
|
||||||
try {
|
try {
|
||||||
var $match = [];
|
var $match = [];
|
||||||
var $useCache = arguments.callee.caching && !$$from;
|
var $useCache = arguments.callee.caching && !$$from;
|
||||||
var $base = ($$from) ? ($$from.constructor == Array) ? $$from : [$$from] : [document];
|
var $base = ($$from) ? ($$from.constructor == Array) ? $$from : [$$from] : [document];
|
||||||
// process comma separated selectors
|
// process comma separated selectors
|
||||||
var $$selectors = parseSelector($selector).split($COMMA), i;
|
var $$selectors = parseSelector($selector).split($COMMA), i;
|
||||||
for (i = 0; i < $$selectors.length; i++) {
|
for (i = 0; i < $$selectors.length; i++) {
|
||||||
// convert the selector to a stream
|
// convert the selector to a stream
|
||||||
$selector = _toStream($$selectors[i]);
|
$selector = _toStream($$selectors[i]);
|
||||||
// faster chop if it starts with id (MSIE only)
|
// faster chop if it starts with id (MSIE only)
|
||||||
if (isMSIE && $selector.slice(0, 3).join("") == " *#") {
|
if (isMSIE && $selector.slice(0, 3).join("") == " *#") {
|
||||||
$selector = $selector.slice(2);
|
$selector = $selector.slice(2);
|
||||||
$$from = _msie_selectById([], $base, $selector[1]);
|
$$from = _msie_selectById([], $base, $selector[1]);
|
||||||
} else $$from = $base;
|
} else $$from = $base;
|
||||||
// process the stream
|
// process the stream
|
||||||
var j = 0, $token, $filter, $arguments, $cacheSelector = "";
|
var j = 0, $token, $filter, $arguments, $cacheSelector = "";
|
||||||
while (j < $selector.length) {
|
while (j < $selector.length) {
|
||||||
$token = $selector[j++];
|
$token = $selector[j++];
|
||||||
$filter = $selector[j++];
|
$filter = $selector[j++];
|
||||||
$cacheSelector += $token + $filter;
|
$cacheSelector += $token + $filter;
|
||||||
// some pseudo-classes allow arguments to be passed
|
// some pseudo-classes allow arguments to be passed
|
||||||
// e.g. nth-child(even)
|
// e.g. nth-child(even)
|
||||||
$arguments = "";
|
$arguments = "";
|
||||||
if ($selector[j] == "(") {
|
if ($selector[j] == "(") {
|
||||||
while ($selector[j++] != ")" && j < $selector.length) {
|
while ($selector[j++] != ")" && j < $selector.length) {
|
||||||
$arguments += $selector[j];
|
$arguments += $selector[j];
|
||||||
}
|
}
|
||||||
$arguments = $arguments.slice(0, -1);
|
$arguments = $arguments.slice(0, -1);
|
||||||
$cacheSelector += "(" + $arguments + ")";
|
$cacheSelector += "(" + $arguments + ")";
|
||||||
}
|
}
|
||||||
// process a token/filter pair use cached results if possible
|
// process a token/filter pair use cached results if possible
|
||||||
$$from = ($useCache && cache[$cacheSelector]) ?
|
$$from = ($useCache && cache[$cacheSelector]) ?
|
||||||
cache[$cacheSelector] : select($$from, $token, $filter, $arguments);
|
cache[$cacheSelector] : select($$from, $token, $filter, $arguments);
|
||||||
if ($useCache) cache[$cacheSelector] = $$from;
|
if ($useCache) cache[$cacheSelector] = $$from;
|
||||||
}
|
}
|
||||||
$match = $match.concat($$from);
|
$match = $match.concat($$from);
|
||||||
}
|
}
|
||||||
delete cssQuery.error;
|
delete cssQuery.error;
|
||||||
return $match;
|
return $match;
|
||||||
} catch ($error) {
|
} catch ($error) {
|
||||||
cssQuery.error = $error;
|
cssQuery.error = $error;
|
||||||
return [];
|
return [];
|
||||||
}};
|
}};
|
||||||
|
|
||||||
// -----------------------------------------------------------------------
|
// -----------------------------------------------------------------------
|
||||||
// public interface
|
// public interface
|
||||||
// -----------------------------------------------------------------------
|
// -----------------------------------------------------------------------
|
||||||
|
|
||||||
cssQuery.toString = function() {
|
cssQuery.toString = function() {
|
||||||
return "function cssQuery() {\n [version " + version + "]\n}";
|
return "function cssQuery() {\n [version " + version + "]\n}";
|
||||||
};
|
};
|
||||||
|
|
||||||
// caching
|
// caching
|
||||||
var cache = {};
|
var cache = {};
|
||||||
cssQuery.caching = false;
|
cssQuery.caching = false;
|
||||||
cssQuery.clearCache = function($selector) {
|
cssQuery.clearCache = function($selector) {
|
||||||
if ($selector) {
|
if ($selector) {
|
||||||
$selector = _toStream($selector).join("");
|
$selector = _toStream($selector).join("");
|
||||||
delete cache[$selector];
|
delete cache[$selector];
|
||||||
} else cache = {};
|
} else cache = {};
|
||||||
};
|
};
|
||||||
|
|
||||||
// allow extensions
|
// allow extensions
|
||||||
var modules = {};
|
var modules = {};
|
||||||
var loaded = false;
|
var loaded = false;
|
||||||
cssQuery.addModule = function($name, $script) {
|
cssQuery.addModule = function($name, $script) {
|
||||||
if (loaded) eval("$script=" + String($script));
|
if (loaded) eval("$script=" + String($script));
|
||||||
modules[$name] = new $script();;
|
modules[$name] = new $script();;
|
||||||
};
|
};
|
||||||
|
|
||||||
// hackery
|
// hackery
|
||||||
cssQuery.valueOf = function($code) {
|
cssQuery.valueOf = function($code) {
|
||||||
return $code ? eval($code) : this;
|
return $code ? eval($code) : this;
|
||||||
};
|
};
|
||||||
|
|
||||||
// -----------------------------------------------------------------------
|
// -----------------------------------------------------------------------
|
||||||
// declarations
|
// declarations
|
||||||
// -----------------------------------------------------------------------
|
// -----------------------------------------------------------------------
|
||||||
|
|
||||||
var selectors = {};
|
var selectors = {};
|
||||||
var pseudoClasses = {};
|
var pseudoClasses = {};
|
||||||
// a safari bug means that these have to be declared here
|
// a safari bug means that these have to be declared here
|
||||||
var AttributeSelector = {match: /\[([\w-]+(\|[\w-]+)?)\s*(\W?=)?\s*([^\]]*)\]/};
|
var AttributeSelector = {match: /\[([\w-]+(\|[\w-]+)?)\s*(\W?=)?\s*([^\]]*)\]/};
|
||||||
var attributeSelectors = [];
|
var attributeSelectors = [];
|
||||||
|
|
||||||
// -----------------------------------------------------------------------
|
// -----------------------------------------------------------------------
|
||||||
// selectors
|
// selectors
|
||||||
// -----------------------------------------------------------------------
|
// -----------------------------------------------------------------------
|
||||||
|
|
||||||
// descendant selector
|
// descendant selector
|
||||||
selectors[" "] = function($results, $from, $tagName, $namespace) {
|
selectors[" "] = function($results, $from, $tagName, $namespace) {
|
||||||
// loop through current selection
|
// loop through current selection
|
||||||
var $element, i, j;
|
var $element, i, j;
|
||||||
for (i = 0; i < $from.length; i++) {
|
for (i = 0; i < $from.length; i++) {
|
||||||
// get descendants
|
// get descendants
|
||||||
var $subset = getElementsByTagName($from[i], $tagName, $namespace);
|
var $subset = getElementsByTagName($from[i], $tagName, $namespace);
|
||||||
// loop through descendants and add to results selection
|
// loop through descendants and add to results selection
|
||||||
for (j = 0; ($element = $subset[j]); j++) {
|
for (j = 0; ($element = $subset[j]); j++) {
|
||||||
if (thisElement($element) && compareNamespace($element, $namespace))
|
if (thisElement($element) && compareNamespace($element, $namespace))
|
||||||
$results.push($element);
|
$results.push($element);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
// ID selector
|
// ID selector
|
||||||
selectors["#"] = function($results, $from, $id) {
|
selectors["#"] = function($results, $from, $id) {
|
||||||
// loop through current selection and check ID
|
// loop through current selection and check ID
|
||||||
var $element, j;
|
var $element, j;
|
||||||
for (j = 0; ($element = $from[j]); j++) if ($element.id == $id) $results.push($element);
|
for (j = 0; ($element = $from[j]); j++) if ($element.id == $id) $results.push($element);
|
||||||
};
|
};
|
||||||
|
|
||||||
// class selector
|
// class selector
|
||||||
selectors["."] = function($results, $from, $className) {
|
selectors["."] = function($results, $from, $className) {
|
||||||
// create a RegExp version of the class
|
// create a RegExp version of the class
|
||||||
$className = new RegExp("(^|\\s)" + $className + "(\\s|$)");
|
$className = new RegExp("(^|\\s)" + $className + "(\\s|$)");
|
||||||
// loop through current selection and check class
|
// loop through current selection and check class
|
||||||
var $element, i;
|
var $element, i;
|
||||||
for (i = 0; ($element = $from[i]); i++)
|
for (i = 0; ($element = $from[i]); i++)
|
||||||
if ($className.test($element.className)) $results.push($element);
|
if ($className.test($element.className)) $results.push($element);
|
||||||
};
|
};
|
||||||
|
|
||||||
// pseudo-class selector
|
// pseudo-class selector
|
||||||
selectors[":"] = function($results, $from, $pseudoClass, $arguments) {
|
selectors[":"] = function($results, $from, $pseudoClass, $arguments) {
|
||||||
// retrieve the cssQuery pseudo-class function
|
// retrieve the cssQuery pseudo-class function
|
||||||
var $test = pseudoClasses[$pseudoClass], $element, i;
|
var $test = pseudoClasses[$pseudoClass], $element, i;
|
||||||
// loop through current selection and apply pseudo-class filter
|
// loop through current selection and apply pseudo-class filter
|
||||||
if ($test) for (i = 0; ($element = $from[i]); i++)
|
if ($test) for (i = 0; ($element = $from[i]); i++)
|
||||||
// if the cssQuery pseudo-class function returns "true" add the element
|
// if the cssQuery pseudo-class function returns "true" add the element
|
||||||
if ($test($element, $arguments)) $results.push($element);
|
if ($test($element, $arguments)) $results.push($element);
|
||||||
};
|
};
|
||||||
|
|
||||||
// -----------------------------------------------------------------------
|
// -----------------------------------------------------------------------
|
||||||
// pseudo-classes
|
// pseudo-classes
|
||||||
// -----------------------------------------------------------------------
|
// -----------------------------------------------------------------------
|
||||||
|
|
||||||
pseudoClasses["link"] = function($element) {
|
pseudoClasses["link"] = function($element) {
|
||||||
var $document = getDocument($element);
|
var $document = getDocument($element);
|
||||||
if ($document.links) for (var i = 0; i < $document.links.length; i++) {
|
if ($document.links) for (var i = 0; i < $document.links.length; i++) {
|
||||||
if ($document.links[i] == $element) return true;
|
if ($document.links[i] == $element) return true;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
pseudoClasses["visited"] = function($element) {
|
pseudoClasses["visited"] = function($element) {
|
||||||
// can't do this without jiggery-pokery
|
// can't do this without jiggery-pokery
|
||||||
};
|
};
|
||||||
|
|
||||||
// -----------------------------------------------------------------------
|
// -----------------------------------------------------------------------
|
||||||
// DOM traversal
|
// DOM traversal
|
||||||
// -----------------------------------------------------------------------
|
// -----------------------------------------------------------------------
|
||||||
|
|
||||||
// IE5/6 includes comments (LOL) in it's elements collections.
|
// IE5/6 includes comments (LOL) in it's elements collections.
|
||||||
// so we have to check for this. the test is tagName != "!". LOL (again).
|
// so we have to check for this. the test is tagName != "!". LOL (again).
|
||||||
var thisElement = function($element) {
|
var thisElement = function($element) {
|
||||||
return ($element && $element.nodeType == 1 && $element.tagName != "!") ? $element : null;
|
return ($element && $element.nodeType == 1 && $element.tagName != "!") ? $element : null;
|
||||||
};
|
};
|
||||||
|
|
||||||
// return the previous element to the supplied element
|
// return the previous element to the supplied element
|
||||||
// previousSibling is not good enough as it might return a text or comment node
|
// previousSibling is not good enough as it might return a text or comment node
|
||||||
var previousElementSibling = function($element) {
|
var previousElementSibling = function($element) {
|
||||||
while ($element && ($element = $element.previousSibling) && !thisElement($element)) continue;
|
while ($element && ($element = $element.previousSibling) && !thisElement($element)) continue;
|
||||||
return $element;
|
return $element;
|
||||||
};
|
};
|
||||||
|
|
||||||
// return the next element to the supplied element
|
// return the next element to the supplied element
|
||||||
var nextElementSibling = function($element) {
|
var nextElementSibling = function($element) {
|
||||||
while ($element && ($element = $element.nextSibling) && !thisElement($element)) continue;
|
while ($element && ($element = $element.nextSibling) && !thisElement($element)) continue;
|
||||||
return $element;
|
return $element;
|
||||||
};
|
};
|
||||||
|
|
||||||
// return the first child ELEMENT of an element
|
// return the first child ELEMENT of an element
|
||||||
// NOT the first child node (though they may be the same thing)
|
// NOT the first child node (though they may be the same thing)
|
||||||
var firstElementChild = function($element) {
|
var firstElementChild = function($element) {
|
||||||
return thisElement($element.firstChild) || nextElementSibling($element.firstChild);
|
return thisElement($element.firstChild) || nextElementSibling($element.firstChild);
|
||||||
};
|
};
|
||||||
|
|
||||||
var lastElementChild = function($element) {
|
var lastElementChild = function($element) {
|
||||||
return thisElement($element.lastChild) || previousElementSibling($element.lastChild);
|
return thisElement($element.lastChild) || previousElementSibling($element.lastChild);
|
||||||
};
|
};
|
||||||
|
|
||||||
// return child elements of an element (not child nodes)
|
// return child elements of an element (not child nodes)
|
||||||
var childElements = function($element) {
|
var childElements = function($element) {
|
||||||
var $childElements = [];
|
var $childElements = [];
|
||||||
$element = firstElementChild($element);
|
$element = firstElementChild($element);
|
||||||
while ($element) {
|
while ($element) {
|
||||||
$childElements.push($element);
|
$childElements.push($element);
|
||||||
$element = nextElementSibling($element);
|
$element = nextElementSibling($element);
|
||||||
}
|
}
|
||||||
return $childElements;
|
return $childElements;
|
||||||
};
|
};
|
||||||
|
|
||||||
// -----------------------------------------------------------------------
|
// -----------------------------------------------------------------------
|
||||||
// browser compatibility
|
// browser compatibility
|
||||||
// -----------------------------------------------------------------------
|
// -----------------------------------------------------------------------
|
||||||
|
|
||||||
// all of the functions in this section can be overwritten. the default
|
// all of the functions in this section can be overwritten. the default
|
||||||
// configuration is for IE. The functions below reflect this. standard
|
// configuration is for IE. The functions below reflect this. standard
|
||||||
// methods are included in a separate module. It would probably be better
|
// methods are included in a separate module. It would probably be better
|
||||||
// the other way round of course but this makes it easier to keep IE7 trim.
|
// the other way round of course but this makes it easier to keep IE7 trim.
|
||||||
|
|
||||||
var isMSIE = true;
|
var isMSIE = true;
|
||||||
|
|
||||||
var isXML = function($element) {
|
var isXML = function($element) {
|
||||||
var $document = getDocument($element);
|
var $document = getDocument($element);
|
||||||
return (typeof $document.mimeType == "unknown") ?
|
return (typeof $document.mimeType == "unknown") ?
|
||||||
/\.xml$/i.test($document.URL) :
|
/\.xml$/i.test($document.URL) :
|
||||||
Boolean($document.mimeType == "XML Document");
|
Boolean($document.mimeType == "XML Document");
|
||||||
};
|
};
|
||||||
|
|
||||||
// return the element's containing document
|
// return the element's containing document
|
||||||
var getDocument = function($element) {
|
var getDocument = function($element) {
|
||||||
return $element.ownerDocument || $element.document;
|
return $element.ownerDocument || $element.document;
|
||||||
};
|
};
|
||||||
|
|
||||||
var getElementsByTagName = function($element, $tagName) {
|
var getElementsByTagName = function($element, $tagName) {
|
||||||
return ($tagName == "*" && $element.all) ? $element.all : $element.getElementsByTagName($tagName);
|
return ($tagName == "*" && $element.all) ? $element.all : $element.getElementsByTagName($tagName);
|
||||||
};
|
};
|
||||||
|
|
||||||
var compareTagName = function($element, $tagName, $namespace) {
|
var compareTagName = function($element, $tagName, $namespace) {
|
||||||
if ($tagName == "*") return thisElement($element);
|
if ($tagName == "*") return thisElement($element);
|
||||||
if (!compareNamespace($element, $namespace)) return false;
|
if (!compareNamespace($element, $namespace)) return false;
|
||||||
if (!isXML($element)) $tagName = $tagName.toUpperCase();
|
if (!isXML($element)) $tagName = $tagName.toUpperCase();
|
||||||
return $element.tagName == $tagName;
|
return $element.tagName == $tagName;
|
||||||
};
|
};
|
||||||
|
|
||||||
var compareNamespace = function($element, $namespace) {
|
var compareNamespace = function($element, $namespace) {
|
||||||
return !$namespace || ($namespace == "*") || ($element.scopeName == $namespace);
|
return !$namespace || ($namespace == "*") || ($element.scopeName == $namespace);
|
||||||
};
|
};
|
||||||
|
|
||||||
var getTextContent = function($element) {
|
var getTextContent = function($element) {
|
||||||
return $element.innerText;
|
return $element.innerText;
|
||||||
};
|
};
|
||||||
|
|
||||||
function _msie_selectById($results, $from, id) {
|
function _msie_selectById($results, $from, id) {
|
||||||
var $match, i, j;
|
var $match, i, j;
|
||||||
for (i = 0; i < $from.length; i++) {
|
for (i = 0; i < $from.length; i++) {
|
||||||
if ($match = $from[i].all.item(id)) {
|
if ($match = $from[i].all.item(id)) {
|
||||||
if ($match.id == id) $results.push($match);
|
if ($match.id == id) $results.push($match);
|
||||||
else if ($match.length != null) {
|
else if ($match.length != null) {
|
||||||
for (j = 0; j < $match.length; j++) {
|
for (j = 0; j < $match.length; j++) {
|
||||||
if ($match[j].id == id) $results.push($match[j]);
|
if ($match[j].id == id) $results.push($match[j]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return $results;
|
return $results;
|
||||||
};
|
};
|
||||||
|
|
||||||
// for IE5.0
|
// for IE5.0
|
||||||
if (![].push) Array.prototype.push = function() {
|
if (![].push) Array.prototype.push = function() {
|
||||||
for (var i = 0; i < arguments.length; i++) {
|
for (var i = 0; i < arguments.length; i++) {
|
||||||
this[this.length] = arguments[i];
|
this[this.length] = arguments[i];
|
||||||
}
|
}
|
||||||
return this.length;
|
return this.length;
|
||||||
};
|
};
|
||||||
|
|
||||||
// -----------------------------------------------------------------------
|
// -----------------------------------------------------------------------
|
||||||
// query support
|
// query support
|
||||||
// -----------------------------------------------------------------------
|
// -----------------------------------------------------------------------
|
||||||
|
|
||||||
// select a set of matching elements.
|
// select a set of matching elements.
|
||||||
// "from" is an array of elements.
|
// "from" is an array of elements.
|
||||||
// "token" is a character representing the type of filter
|
// "token" is a character representing the type of filter
|
||||||
// e.g. ">" means child selector
|
// e.g. ">" means child selector
|
||||||
// "filter" represents the tag name, id or class name that is being selected
|
// "filter" represents the tag name, id or class name that is being selected
|
||||||
// the function returns an array of matching elements
|
// the function returns an array of matching elements
|
||||||
var $NAMESPACE = /\|/;
|
var $NAMESPACE = /\|/;
|
||||||
function select($$from, $token, $filter, $arguments) {
|
function select($$from, $token, $filter, $arguments) {
|
||||||
if ($NAMESPACE.test($filter)) {
|
if ($NAMESPACE.test($filter)) {
|
||||||
$filter = $filter.split($NAMESPACE);
|
$filter = $filter.split($NAMESPACE);
|
||||||
$arguments = $filter[0];
|
$arguments = $filter[0];
|
||||||
$filter = $filter[1];
|
$filter = $filter[1];
|
||||||
}
|
}
|
||||||
var $results = [];
|
var $results = [];
|
||||||
if (selectors[$token]) {
|
if (selectors[$token]) {
|
||||||
selectors[$token]($results, $$from, $filter, $arguments);
|
selectors[$token]($results, $$from, $filter, $arguments);
|
||||||
}
|
}
|
||||||
return $results;
|
return $results;
|
||||||
};
|
};
|
||||||
|
|
||||||
// -----------------------------------------------------------------------
|
// -----------------------------------------------------------------------
|
||||||
// parsing
|
// parsing
|
||||||
// -----------------------------------------------------------------------
|
// -----------------------------------------------------------------------
|
||||||
|
|
||||||
// convert css selectors to a stream of tokens and filters
|
// convert css selectors to a stream of tokens and filters
|
||||||
// it's not a real stream. it's just an array of strings.
|
// it's not a real stream. it's just an array of strings.
|
||||||
var $STANDARD_SELECT = /^[^\s>+~]/;
|
var $STANDARD_SELECT = /^[^\s>+~]/;
|
||||||
var $$STREAM = /[\s#.:>+~()@]|[^\s#.:>+~()@]+/g;
|
var $$STREAM = /[\s#.:>+~()@]|[^\s#.:>+~()@]+/g;
|
||||||
function _toStream($selector) {
|
function _toStream($selector) {
|
||||||
if ($STANDARD_SELECT.test($selector)) $selector = " " + $selector;
|
if ($STANDARD_SELECT.test($selector)) $selector = " " + $selector;
|
||||||
return $selector.match($$STREAM) || [];
|
return $selector.match($$STREAM) || [];
|
||||||
};
|
};
|
||||||
|
|
||||||
var $WHITESPACE = /\s*([\s>+~(),]|^|$)\s*/g;
|
var $WHITESPACE = /\s*([\s>+~(),]|^|$)\s*/g;
|
||||||
var $IMPLIED_ALL = /([\s>+~,]|[^(]\+|^)([#.:@])/g;
|
var $IMPLIED_ALL = /([\s>+~,]|[^(]\+|^)([#.:@])/g;
|
||||||
var parseSelector = function($selector) {
|
var parseSelector = function($selector) {
|
||||||
return $selector
|
return $selector
|
||||||
// trim whitespace
|
// trim whitespace
|
||||||
.replace($WHITESPACE, "$1")
|
.replace($WHITESPACE, "$1")
|
||||||
// e.g. ".class1" --> "*.class1"
|
// e.g. ".class1" --> "*.class1"
|
||||||
.replace($IMPLIED_ALL, "$1*$2");
|
.replace($IMPLIED_ALL, "$1*$2");
|
||||||
};
|
};
|
||||||
|
|
||||||
var Quote = {
|
var Quote = {
|
||||||
toString: function() {return "'"},
|
toString: function() {return "'"},
|
||||||
match: /^('[^']*')|("[^"]*")$/,
|
match: /^('[^']*')|("[^"]*")$/,
|
||||||
test: function($string) {
|
test: function($string) {
|
||||||
return this.match.test($string);
|
return this.match.test($string);
|
||||||
},
|
},
|
||||||
add: function($string) {
|
add: function($string) {
|
||||||
return this.test($string) ? $string : this + $string + this;
|
return this.test($string) ? $string : this + $string + this;
|
||||||
},
|
},
|
||||||
remove: function($string) {
|
remove: function($string) {
|
||||||
return this.test($string) ? $string.slice(1, -1) : $string;
|
return this.test($string) ? $string.slice(1, -1) : $string;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
var getText = function($text) {
|
var getText = function($text) {
|
||||||
return Quote.remove($text);
|
return Quote.remove($text);
|
||||||
};
|
};
|
||||||
|
|
||||||
var $ESCAPE = /([\/()[\]?{}|*+-])/g;
|
var $ESCAPE = /([\/()[\]?{}|*+-])/g;
|
||||||
function regEscape($string) {
|
function regEscape($string) {
|
||||||
return $string.replace($ESCAPE, "\\$1");
|
return $string.replace($ESCAPE, "\\$1");
|
||||||
};
|
};
|
||||||
|
|
||||||
// -----------------------------------------------------------------------
|
// -----------------------------------------------------------------------
|
||||||
// modules
|
// modules
|
||||||
// -----------------------------------------------------------------------
|
// -----------------------------------------------------------------------
|
||||||
|
|
||||||
// -------- >> insert modules here for packaging << -------- \\
|
// -------- >> insert modules here for packaging << -------- \\
|
||||||
|
|
||||||
loaded = true;
|
loaded = true;
|
||||||
|
|
||||||
// -----------------------------------------------------------------------
|
// -----------------------------------------------------------------------
|
||||||
// return the query function
|
// return the query function
|
||||||
// -----------------------------------------------------------------------
|
// -----------------------------------------------------------------------
|
||||||
|
|
||||||
return cssQuery;
|
return cssQuery;
|
||||||
|
|
||||||
}(); // cssQuery
|
}(); // cssQuery
|
||||||