From 0fb3ed6b11cde656bedef5530deaf63261448cfd Mon Sep 17 00:00:00 2001 From: Bryan Helmkamp Date: Tue, 2 Dec 2008 19:57:10 -0500 Subject: [PATCH] Add docs for Webrat::Selenium --- README.rdoc | 2 +- lib/webrat/selenium.rb | 39 ++++++++++++++++++++++++++++++++++++++- 2 files changed, 39 insertions(+), 2 deletions(-) diff --git a/README.rdoc b/README.rdoc index 3c23afa..dc1c390 100644 --- a/README.rdoc +++ b/README.rdoc @@ -16,7 +16,7 @@ web application. * Browser Simulator for expressive, high level acceptance testing without the performance hit and browser dependency of Selenium or Watir (See Webrat::Session) * Use the same API for Browser Simulator and real Selenium tests using - Webrat::SeleniumSession when necessary (eg. for testing AJAX interactions) + Webrat::Selenium when necessary (eg. for testing AJAX interactions) * Supports multiple Ruby web frameworks: Rails, Merb and Sinatra * Supports popular test frameworks: RSpec, Cucumber, Test::Unit and Shoulda * Webrat::Matchers API for verifying rendered HTML using CSS, XPath, etc. diff --git a/lib/webrat/selenium.rb b/lib/webrat/selenium.rb index 389f453..0bb9da2 100644 --- a/lib/webrat/selenium.rb +++ b/lib/webrat/selenium.rb @@ -36,7 +36,44 @@ module Webrat system "mongrel_rails stop -c #{RAILS_ROOT} --pid #{pid_file}" end - module Selenium #:nodoc: + # To use Webrat's Selenium support, you'll need the selenium-client gem installed. + # Activate it with (for example, in your env.rb): + # + # require "webrat/selenium" + # + # Then, if you're using Cucumber, configure it to use a + # Webrat::Selenium::Rails::World as the scenario context by adding + # the following to env.rb: + # + # World do + # Webrat::Selenium::Rails::World.new + # end + # + # == Dropping down to the selenium-client API + # + # If you ever need to do something with Selenium not provided in the Webrat API, + # you can always drop down to the selenium-client API using the selenium method. + # For example: + # + # When "I drag the photo to the left" do + # selenium.dragdrop("id=photo_123", "+350, 0") + # end + # + # == Auto-starting of the mongrel and java server + # + # Webrat will automatically start the Selenium Java server process and an instance + # of Mongrel when a test is run. The Mongrel will run in the "selenium" environment + # instead of "test", so ensure you've got that defined, and will run on port 3001. + # + # == Waiting + # + # In order to make writing Selenium tests as easy as possible, Webrat will automatically + # wait for the correct elements to exist on the page when trying to manipulate them + # with methods like fill_in, etc. In general, this means you should be able to write + # your Webrat::Selenium tests ignoring the concurrency issues that can plague in-browser + # testing, so long as you're using the Webrat API. + module Selenium + module Rails #:nodoc: class World < ::ActionController::IntegrationTest