Merge branch 'master' of git://github.com/brynary/webrat

This commit is contained in:
Thomas Jack 2009-05-11 00:29:49 -05:00
commit 8bedf2235d
37 changed files with 440 additions and 227 deletions

1
.gitignore vendored
View File

@ -12,3 +12,4 @@ log
results results
test_apps test_apps
*.tmproj *.tmproj
webrat.log

View File

@ -1,10 +1,15 @@
== 0.4.5 / ? == brynary/master (in git)
* Major enhancements
* Improve performance (~2x) on JRuby by supporting Nokogiri
* Minor enhancements * Minor enhancements
* Added support for field_labeled_locators ending in non word characters * Added support for field_labeled_locators ending in non word characters
lh 148 (Zach Dennis) lh 148 (Zach Dennis)
* Filled in tests on click link lh 195 (diabolo) * Filled in tests on click link lh 195 (diabolo)
* Canonicalize all URLs (Shalon Wood)
== 0.4.4 / 2009-04-06 == 0.4.4 / 2009-04-06

View File

@ -106,7 +106,7 @@ end
namespace :spec do namespace :spec do
desc "Run the integration specs" desc "Run the integration specs"
task :integration => ["integration:rails", "integration:merb", "integration:sinatra"] task :integration => ["integration:rails", "integration:merb", "integration:sinatra", "integration:rack"]
namespace :integration do namespace :integration do
desc "Run the Rails integration specs" desc "Run the Rails integration specs"
@ -140,7 +140,15 @@ namespace :spec do
task :sinatra do task :sinatra do
Dir.chdir "spec/integration/sinatra" do Dir.chdir "spec/integration/sinatra" do
result = system "rake test" result = system "rake test"
raise "Sinatra tntegration tests failed" unless result raise "Sinatra integration tests failed" unless result
end
end
desc "Run the Sinatra integration specs"
task :rack do
Dir.chdir "spec/integration/rack" do
result = system "rake test"
raise "Rack integration tests failed" unless result
end end
end end
end end

View File

@ -10,18 +10,15 @@ module Webrat
VERSION = '0.4.4' VERSION = '0.4.4'
def self.require_xml def self.require_xml
gem "nokogiri", ">= 1.0.6"
if on_java? if on_java?
# We need Nokogiri's CSS to XPath support, even if using REXML and Hpricot for parsing and searching gem "nokogiri", ">= 1.2.4"
require "nokogiri/css"
require "hpricot"
require "rexml/document"
else else
gem "nokogiri", ">= 1.0.6"
end
require "nokogiri" require "nokogiri"
require "webrat/core/xml/nokogiri" require "webrat/core/xml/nokogiri"
end end
end
def self.on_java? def self.on_java?
RUBY_PLATFORM =~ /java/ RUBY_PLATFORM =~ /java/

View File

@ -60,7 +60,7 @@ module Webrat
def initialize # :nodoc: def initialize # :nodoc:
self.open_error_files = true self.open_error_files = true
self.parse_with_nokogiri = !Webrat.on_java? self.parse_with_nokogiri = true
self.application_environment = :test self.application_environment = :test
self.application_port = 3001 self.application_port = 3001
self.application_address = 'localhost' self.application_address = 'localhost'

View File

@ -8,7 +8,7 @@ module Webrat
end end
def click(method = nil, options = {}) def click(method = nil, options = {})
@session.request_page(absolute_href, :get, {}) @session.request_page(href, :get, {})
end end
protected protected
@ -16,16 +16,5 @@ module Webrat
def href def href
Webrat::XML.attribute(@element, "href") Webrat::XML.attribute(@element, "href")
end end
def absolute_href
if href =~ /^\?/
"#{@session.current_url}#{href}"
elsif href !~ %r{^https?://[\w|.]+(/.*)} && (href !~ /^\//)
"#{@session.current_url}/#{href}"
else
href
end
end
end end
end end

View File

@ -16,9 +16,9 @@ module Webrat
options[:javascript] = true if options[:javascript].nil? options[:javascript] = true if options[:javascript].nil?
if options[:javascript] if options[:javascript]
@session.request_page(absolute_href, method, data) @session.request_page(href, method, data)
else else
@session.request_page(absolute_href, :get, {}) @session.request_page(href, :get, {})
end end
end end
@ -40,16 +40,6 @@ module Webrat
Webrat::XML.attribute(@element, "href") Webrat::XML.attribute(@element, "href")
end end
def absolute_href
if href =~ /^\?/
"#{@session.current_url}#{href}"
elsif href !~ %r{^https?://} && (href !~ /^\//)
"#{@session.current_url}/#{href}"
else
href
end
end
def authenticity_token def authenticity_token
return unless onclick && onclick.include?("s.setAttribute('name', 'authenticity_token');") && return unless onclick && onclick.include?("s.setAttribute('name', 'authenticity_token');") &&
onclick =~ /s\.setAttribute\('value', '([a-f0-9]{40})'\);/ onclick =~ /s\.setAttribute\('value', '([a-f0-9]{40})'\);/

View File

@ -13,7 +13,10 @@ module Webrat
when :merb when :merb
Merb.logger Merb.logger
else else
nil @logger ||= begin
require "logger"
::Logger.new("webrat.log")
end
end end
end end

View File

@ -16,8 +16,12 @@ module Webrat
end end
def webrat_session def webrat_session
if Webrat.configuration.mode == :rack_test
@_webrat_session ||= ::Webrat::RackTestSession.new(rack_test_session)
else
@_webrat_session ||= ::Webrat.session_class.new(self) @_webrat_session ||= ::Webrat.session_class.new(self)
end end
end
# all of these methods delegate to the @session, which should # all of these methods delegate to the @session, which should
# be created transparently. # be created transparently.

View File

@ -209,8 +209,8 @@ module Webrat
# along with the form. An optional <tt>content_type</tt> may be given. # along with the form. An optional <tt>content_type</tt> may be given.
# #
# Example: # Example:
# attaches_file "Resume", "/path/to/the/resume.txt" # attach_file "Resume", "/path/to/the/resume.txt"
# attaches_file "Photo", "/path/to/the/image.png", "image/png" # attach_file "Photo", "/path/to/the/image.png", "image/png"
def attach_file(field_locator, path, content_type = nil) def attach_file(field_locator, path, content_type = nil)
locate_field(field_locator, FileField).set(path, content_type) locate_field(field_locator, FileField).set(path, content_type)
end end

View File

@ -26,6 +26,8 @@ module Webrat
SinatraSession SinatraSession
when :mechanize when :mechanize
MechanizeSession MechanizeSession
when :rack_test
RackTestSession
else else
raise WebratError.new(<<-STR) raise WebratError.new(<<-STR)
Unknown Webrat mode: #{Webrat.configuration.mode.inspect} Unknown Webrat mode: #{Webrat.configuration.mode.inspect}
@ -95,16 +97,35 @@ For example:
@default_headers.dup.merge(@custom_headers.dup) @default_headers.dup.merge(@custom_headers.dup)
end end
def canonicalize_url(href_url)
@current_url ||= "http://www.example.com/" # @current_url can't be blank, or things break
# Case one: relative url
if href_url !~ %r{^https?://} && (href_url !~ /^\//)
# If the relative url starts with # or ?, we need append it as is _if_ there are three slashes in the current url;
# otherwise, ensure there's a slash between it and the current
# url
if (href_url =~ /^\?/ or href_url =~ /^#/) && current_url.scan('/').length > 2
"#{current_url}#{href_url}"
else
"#{current_url.chomp('/')}/#{href_url}"
end
# Case two: absolute url without host
elsif href_url =~ /^\//
"http://#{current_host}#{href_url}"
# Case three: absolute url with scheme and host.
else
href_url
end
end
def request_page(url, http_method, data) #:nodoc: def request_page(url, http_method, data) #:nodoc:
h = headers h = headers
h['HTTP_REFERER'] = @current_url if @current_url h['HTTP_REFERER'] = @current_url if @current_url
url = canonicalize_url(url)
debug_log "REQUESTING PAGE: #{http_method.to_s.upcase} #{url} with #{data.inspect} and HTTP headers #{h.inspect}" debug_log "REQUESTING PAGE: #{http_method.to_s.upcase} #{url} with #{data.inspect} and HTTP headers #{h.inspect}"
if h.empty?
send "#{http_method}", url, data || {} process_request(http_method, url, data, h)
else
send "#{http_method}", url, data || {}, h
end
save_and_open_page if exception_caught? && Webrat.configuration.open_error_files? save_and_open_page if exception_caught? && Webrat.configuration.open_error_files?
raise PageLoadError.new("Page load was not successful (Code: #{response_code.inspect}):\n#{formatted_error}") unless success_code? raise PageLoadError.new("Page load was not successful (Code: #{response_code.inspect}):\n#{formatted_error}") unless success_code?
@ -259,8 +280,16 @@ For example:
private private
def process_request(http_method, url, data, headers)
if headers.empty?
send "#{http_method}", url, data || {}
else
send "#{http_method}", url, data || {}, headers
end
end
def response_location def response_location
response.headers["Location"] canonicalize_url(response.headers["Location"])
end end
def current_host def current_host

32
lib/webrat/rack_test.rb Normal file
View File

@ -0,0 +1,32 @@
module Webrat
class RackTestSession < Session
def initialize(rack_test_session) #:nodoc:
super()
@rack_test_session = rack_test_session
end
def response_body
response.body
end
def response_code
response.status
end
def response
@rack_test_session.last_response
end
protected
def process_request(http_method, url, data = {}, headers = {})
headers ||= {}
data ||= {}
env = headers.merge(:params => data, :method => http_method.to_s.upcase)
@rack_test_session.request(url, env)
end
end
end

View File

@ -0,0 +1,5 @@
require "rake/testtask"
Rake::TestTask.new do |t|
t.test_files = FileList["test/*_test.rb"]
end

View File

@ -0,0 +1,16 @@
require "rubygems"
require "sinatra/base"
class RackApp < Sinatra::Default
get "/" do
"Hello World"
end
get "/redirect_absolute_url" do
redirect URI.join(request.url, "foo").to_s
end
get "/foo" do
"spam"
end
end

View File

@ -0,0 +1,20 @@
require "rubygems"
require "test/unit"
require "rack/test"
require "redgreen"
require File.dirname(__FILE__) + "/../../../../lib/webrat"
Webrat.configure do |config|
config.mode = :rack_test
end
class Test::Unit::TestCase
include Rack::Test::Methods
include Webrat::Methods
include Webrat::Matchers
def app
RackApp.new
end
end

View File

@ -0,0 +1,67 @@
require File.dirname(__FILE__) + "/test_helper"
require File.dirname(__FILE__) + "/../rack_app"
class WebratRackTest < Test::Unit::TestCase
def test_visit_returns_response
response = visit "/"
assert response.ok?
end
def test_last_response_is_available
visit "/"
assert last_response.ok?
end
def test_last_request_is_available
visit "/"
assert_equal "/", last_request.env["PATH_INFO"]
end
def test_redirects
visit "/redirect_absolute_url"
assert_equal "spam", response_body
end
def test_assertions_after_visit
visit "/"
assert_contain "Hello World"
end
def test_assertions_after_visit
get "/"
assert_contain "Hello World"
end
# def test_visits_pages
# visit "/"
# assert response_body.include?("visit")
#
# click_link "there"
# assert response_body.include?('<form method="post" action="/go">')
# end
#
# def test_submits_form
# visit "/go"
# fill_in "Name", :with => "World"
# fill_in "Email", :with => "world@example.org"
# click_button "Submit"
#
# assert response_body.include?("Hello, World")
# assert response_body.include?("Your email is: world@example.org")
# end
#
# def test_check_value_of_field
# visit "/"
# assert field_labeled("Prefilled").value, "text"
# end
#
# def test_follows_internal_redirects
# visit "/internal_redirect"
# assert response_body.include?("visit")
# end
#
# def test_does_not_follow_external_redirects
# visit "/external_redirect"
# assert response_code == 302
# end
end

View File

@ -16,13 +16,13 @@ namespace :test_unit do
desc "runs the test::unit based tests in webrat mode" desc "runs the test::unit based tests in webrat mode"
task :rails do task :rails do
ENV['WEBRAT_INTEGRATION_MODE'] = 'rails' ENV['WEBRAT_INTEGRATION_MODE'] = 'rails'
Rake::Task['test:integration'].execute Rake::Task['test:integration'].execute nil
end end
desc "runs the test::unit based tests in selenium mode" desc "runs the test::unit based tests in selenium mode"
task :selenium do task :selenium do
ENV['WEBRAT_INTEGRATION_MODE'] = 'selenium' ENV['WEBRAT_INTEGRATION_MODE'] = 'selenium'
Rake::Task['test:integration'].execute Rake::Task['test:integration'].execute nil
end end
desc "run both selenium and rails mode Test::Unit suites" desc "run both selenium and rails mode Test::Unit suites"

View File

@ -9,17 +9,10 @@ describe Webrat::Configuration do
end end
it "should use Nokogiri as the parser by default" do it "should use Nokogiri as the parser by default" do
Webrat.stub!(:on_java? => false)
config = Webrat::Configuration.new config = Webrat::Configuration.new
config.should parse_with_nokogiri config.should parse_with_nokogiri
end end
it "should not use Nokogiri as the parser when on JRuby" do
Webrat.stub!(:on_java? => true)
config = Webrat::Configuration.new
config.should_not parse_with_nokogiri
end
it "should open error files by default" do it "should open error files by default" do
config = Webrat::Configuration.new config = Webrat::Configuration.new
config.should open_error_files config.should open_error_files

View File

@ -2,6 +2,7 @@ require File.expand_path(File.dirname(__FILE__) + "/../../spec_helper")
module Webrat module Webrat
describe Field do describe Field do
unless Webrat.on_java?
it "should have nice inspect output" do it "should have nice inspect output" do
html = <<-HTML html = <<-HTML
<html> <html>
@ -14,6 +15,7 @@ module Webrat
checkbox.inspect.should =~ /#<Webrat::CheckboxField @element=<input type=['"]checkbox['"] checked(=['"]checked['"])?\/?>>/ checkbox.inspect.should =~ /#<Webrat::CheckboxField @element=<input type=['"]checkbox['"] checked(=['"]checked['"])?\/?>>/
end end
end end
end
describe CheckboxField do describe CheckboxField do
it "should say it is checked if it is" do it "should say it is checked if it is" do

View File

@ -118,7 +118,7 @@ describe Webrat::Session do
webrat_session.request_page("/oldurl", :get, {}) webrat_session.request_page("/oldurl", :get, {})
webrat_session.current_url.should == "/oldurl" webrat_session.current_url.should == "http://www.example.com/oldurl"
end end
end end
@ -195,4 +195,73 @@ describe Webrat::Session do
end end
describe "#canonicalize_url"do
it "should turn 'http://www.example.com/' into 'http://www.example.com/'" do
webrat_session.stub!(:current_url => "http://www.example.com")
webrat_session.canonicalize_url("http://www.example.com/").should == "http://www.example.com/"
end
it "should turn '/login' into 'http://www.example.com/login' if current_url is 'http://www.example.com/'" do
webrat_session.stub!(:current_url => "http://www.example.com/")
webrat_session.canonicalize_url("/login").should == "http://www.example.com/login"
end
it "should turn '/login' into 'http://www.example.com/login' if current_url is 'http://www.example.com'" do
webrat_session.stub!(:current_url => "http://www.example.com")
webrat_session.canonicalize_url("/login").should == "http://www.example.com/login"
end
it "should turn 'login' into 'http://www.example.com/login' if current_url is 'http://www.example.com'" do
webrat_session.stub!(:current_url => "http://www.example.com")
webrat_session.canonicalize_url("login").should == "http://www.example.com/login"
end
it "should turn 'login' into 'http://www.example.com/login' if current_url is 'http://www.example.com/'" do
webrat_session.stub!(:current_url => "http://www.example.com/")
webrat_session.canonicalize_url("login").should == "http://www.example.com/login"
end
it "should turn '?login' into 'http://www.example.com/?login' if current_url is 'http://www.example.com'" do
webrat_session.stub!(:current_url => "http://www.example.com")
webrat_session.canonicalize_url("?login").should == "http://www.example.com/?login"
end
it "should turn '?login' into 'http://www.example.com/?login' if current_url is 'http://www.example.com/'" do
webrat_session.stub!(:current_url => "http://www.example.com/")
webrat_session.canonicalize_url("?login").should == "http://www.example.com/?login"
end
it "should turn '?login' into 'http://www.example.com/page?login' if current_url is 'http://www.example.com/page'" do
webrat_session.stub!(:current_url => "http://www.example.com/page")
webrat_session.canonicalize_url("?login").should == "http://www.example.com/page?login"
end
it "should turn '?login' into 'http://www.example.com/page/?login' if current_url is 'http://www.example.com/page/'" do
webrat_session.stub!(:current_url => "http://www.example.com/page/")
webrat_session.canonicalize_url("?login").should == "http://www.example.com/page/?login"
end
it "should turn '#anchor' into 'http://www.example.com/#anchor' if current_url is 'http://www.example.com'" do
webrat_session.stub!(:current_url => "http://www.example.com")
webrat_session.canonicalize_url("#anchor").should == "http://www.example.com/#anchor"
end
it "should turn '#anchor' into 'http://www.example.com/#anchor' if current_url is 'http://www.example.com/'" do
webrat_session.stub!(:current_url => "http://www.example.com/")
webrat_session.canonicalize_url("#anchor").should == "http://www.example.com/#anchor"
end
it "should turn '#anchor' into 'http://www.example.com/page#anchor' if current_url is 'http://www.example.com/page'" do
webrat_session.stub!(:current_url => "http://www.example.com/page")
webrat_session.canonicalize_url("#anchor").should == "http://www.example.com/page#anchor"
end
it "should turn '#anchor' into 'http://www.example.com/page/#anchor' if current_url is 'http://www.example.com/page/'" do
webrat_session.stub!(:current_url => "http://www.example.com/page/")
webrat_session.canonicalize_url("#anchor").should == "http://www.example.com/page/#anchor"
end
end
end end

View File

@ -27,7 +27,7 @@ describe "attach_file" do
</form> </form>
</html> </html>
HTML HTML
webrat_session.should_receive(:post).with("/widgets", { "widget" => { "file" => "" } }) webrat_session.should_receive(:post).with("http://www.example.com/widgets", { "widget" => { "file" => "" } })
click_button click_button
end end
@ -41,7 +41,7 @@ describe "attach_file" do
</form> </form>
</html> </html>
HTML HTML
webrat_session.should_receive(:post).with("/widgets", { "widget" => { "file" => @uploaded_file } }) webrat_session.should_receive(:post).with("http://www.example.com/widgets", { "widget" => { "file" => @uploaded_file } })
attach_file "Document", @filename attach_file "Document", @filename
click_button click_button
end end
@ -58,7 +58,7 @@ describe "attach_file" do
</form> </form>
</html> </html>
HTML HTML
webrat_session.should_receive(:post).with("/widgets", { "widget" => { "files" => [@uploaded_file, @uploaded_file] } }) webrat_session.should_receive(:post).with("http://www.example.com/widgets", { "widget" => { "files" => [@uploaded_file, @uploaded_file] } })
attach_file "Document", @filename attach_file "Document", @filename
attach_file "Spreadsheet", @filename attach_file "Spreadsheet", @filename
click_button click_button

View File

@ -96,7 +96,8 @@ describe Webrat::RailsSession do
response = mock("response", :body => body, :headers => {}, :code => 200) response = mock("response", :body => body, :headers => {}, :code => 200)
@integration_session.stub!(:response => response) @integration_session.stub!(:response => response)
@integration_session.should_receive(:get).with("/page2", {}, nil) @integration_session.stub!(:https!)
@integration_session.should_receive(:get).with("http://www.example.com/page2", {}, nil)
rails_session = Webrat::RailsSession.new(@integration_session) rails_session = Webrat::RailsSession.new(@integration_session)

View File

@ -6,7 +6,7 @@ describe "Basic Auth HTTP headers" do
end end
it "should be present in visit" do it "should be present in visit" do
webrat_session.should_receive(:get).with("/", {}, {'HTTP_AUTHORIZATION' => "Basic dXNlcjpzZWNyZXQ=\n"}) webrat_session.should_receive(:get).with("http://www.example.com/", {}, {'HTTP_AUTHORIZATION' => "Basic dXNlcjpzZWNyZXQ=\n"})
visit("/") visit("/")
end end
@ -18,7 +18,7 @@ describe "Basic Auth HTTP headers" do
</form> </form>
</html> </html>
HTML HTML
webrat_session.should_receive(:post).with("/form1", {}, {'HTTP_AUTHORIZATION' => "Basic dXNlcjpzZWNyZXQ=\n"}) webrat_session.should_receive(:post).with("http://www.example.com/form1", {}, {'HTTP_AUTHORIZATION' => "Basic dXNlcjpzZWNyZXQ=\n"})
click_button click_button
end end
end end

View File

@ -36,7 +36,7 @@ describe "check" do
</html> </html>
HTML HTML
webrat_session.should_receive(:get).with("/login", "user" => {"tos" => "1"}) webrat_session.should_receive(:get).with("http://www.example.com/login", "user" => {"tos" => "1"})
check "TOS" check "TOS"
click_button click_button
end end
@ -51,7 +51,7 @@ describe "check" do
</html> </html>
HTML HTML
webrat_session.should_receive(:post).with("/login", "remember_me" => "on") webrat_session.should_receive(:post).with("http://www.example.com/login", "remember_me" => "on")
check "remember_me" check "remember_me"
click_button click_button
end end
@ -79,7 +79,7 @@ describe "check" do
</html> </html>
HTML HTML
webrat_session.should_receive(:post).with("/login", "remember_me" => "yes") webrat_session.should_receive(:post).with("http://www.example.com/login", "remember_me" => "yes")
check "remember_me" check "remember_me"
click_button click_button
end end
@ -132,7 +132,7 @@ describe "uncheck" do
</form> </form>
</html> </html>
HTML HTML
webrat_session.should_receive(:get).with("/login", "user" => {"tos" => "0"}) webrat_session.should_receive(:get).with("http://www.example.com/login", "user" => {"tos" => "0"})
check "TOS" check "TOS"
uncheck "TOS" uncheck "TOS"
click_button click_button
@ -147,7 +147,7 @@ describe "uncheck" do
</form> </form>
</html> </html>
HTML HTML
webrat_session.should_receive(:post).with("/login", {}) webrat_session.should_receive(:post).with("http://www.example.com/login", {})
uncheck "remember_me" uncheck "remember_me"
click_button click_button
end end
@ -164,7 +164,7 @@ describe "uncheck" do
</form> </form>
</html> </html>
HTML HTML
webrat_session.should_receive(:post).with("/login", {"options" => ["1", "2"]}) webrat_session.should_receive(:post).with("http://www.example.com/login", {"options" => ["1", "2"]})
check 'Option 1' check 'Option 1'
check 'Option 2' check 'Option 2'
click_button click_button
@ -183,7 +183,7 @@ describe "uncheck" do
</form> </form>
</html> </html>
HTML HTML
webrat_session.should_receive(:get).with("/login", "user" => {"tos" => "0"}) webrat_session.should_receive(:get).with("http://www.example.com/login", "user" => {"tos" => "0"})
uncheck "TOS" uncheck "TOS"
click_button click_button
end end

View File

@ -36,7 +36,7 @@ describe "choose" do
</form> </form>
</html> </html>
HTML HTML
webrat_session.should_receive(:get).with("/login", "user" => {"gender" => "M"}) webrat_session.should_receive(:get).with("http://www.example.com/login", "user" => {"gender" => "M"})
choose "Male" choose "Male"
click_button click_button
end end
@ -53,7 +53,7 @@ describe "choose" do
</form> </form>
</html> </html>
HTML HTML
webrat_session.should_receive(:get).with("/login", "user" => {"gender" => "M"}) webrat_session.should_receive(:get).with("http://www.example.com/login", "user" => {"gender" => "M"})
choose "Female" choose "Female"
choose "Male" choose "Male"
click_button click_button
@ -81,7 +81,7 @@ describe "choose" do
</form> </form>
</html> </html>
HTML HTML
webrat_session.should_receive(:post).with("/login", "first_option" => "on") webrat_session.should_receive(:post).with("http://www.example.com/login", "first_option" => "on")
choose "first_option" choose "first_option"
click_button click_button
end end
@ -95,7 +95,7 @@ describe "choose" do
</form> </form>
</html> </html>
HTML HTML
webrat_session.should_receive(:post).with("/login", "first_option" => "on") webrat_session.should_receive(:post).with("http://www.example.com/login", "first_option" => "on")
click_button click_button
end end
@ -111,7 +111,7 @@ describe "choose" do
</form> </form>
</html> </html>
HTML HTML
webrat_session.should_receive(:post).with("/login", "user" => {"gender" => "M"}) webrat_session.should_receive(:post).with("http://www.example.com/login", "user" => {"gender" => "M"})
choose "Male" choose "Male"
click_button click_button
end end

View File

@ -9,7 +9,7 @@ describe "click_area" do
</map> </map>
</html> </html>
HTML HTML
webrat_session.should_receive(:get).with("/page", {}) webrat_session.should_receive(:get).with("http://www.example.com/page", {})
click_area "Berlin" click_area "Berlin"
end end
@ -62,13 +62,13 @@ describe "click_area" do
</map> </map>
</html> </html>
HTML HTML
webrat_session.should_receive(:get).with("/page", {}) webrat_session.should_receive(:get).with("http://www.example.com/page", {})
click_area "berlin" click_area "berlin"
end end
it "should follow relative links" do it "should follow relative links" do
webrat_session.stub!(:current_url => "/page") webrat_session.stub!(:current_url => "http://www.example.com/page")
with_html <<-HTML with_html <<-HTML
<html> <html>
<map name="map_de" id="map_de"> <map name="map_de" id="map_de">
@ -76,7 +76,7 @@ describe "click_area" do
</map> </map>
</html> </html>
HTML HTML
webrat_session.should_receive(:get).with("/page/sub", {}) webrat_session.should_receive(:get).with("http://www.example.com/page/sub", {})
click_area "Berlin" click_area "Berlin"
end end
@ -100,7 +100,7 @@ describe "click_area" do
</map> </map>
</html> </html>
HTML HTML
webrat_session.should_receive(:get).with("/page?foo=bar", {}) webrat_session.should_receive(:get).with("http://www.example.com/page?foo=bar", {})
click_area "Berlin" click_area "Berlin"
end end
end end

View File

@ -86,7 +86,7 @@ describe "click_button" do
</form> </form>
</html> </html>
HTML HTML
webrat_session.should_receive(:get).with("/form1", {}) webrat_session.should_receive(:get).with("http://www.example.com/form1", {})
click_button click_button
end end
@ -113,7 +113,7 @@ describe "click_button" do
</form> </form>
</html> </html>
HTML HTML
webrat_session.should_receive(:get).with("/form2", {}) webrat_session.should_receive(:get).with("http://www.example.com/form2", {})
click_button "Form2" click_button "Form2"
end end
@ -125,7 +125,7 @@ describe "click_button" do
</form> </form>
</html> </html>
HTML HTML
webrat_session.should_receive(:get).with("/login", {}) webrat_session.should_receive(:get).with("http://www.example.com/login", {})
click_button click_button
end end
@ -150,7 +150,7 @@ describe "click_button" do
</form> </form>
</html> </html>
HTML HTML
webrat_session.should_receive(:post).with("/login", "login" => "Login") webrat_session.should_receive(:post).with("http://www.example.com/login", "login" => "Login")
click_button("Login") click_button("Login")
end end
@ -163,7 +163,7 @@ describe "click_button" do
</form> </form>
</html> </html>
HTML HTML
webrat_session.should_receive(:post).with("/login", {}) webrat_session.should_receive(:post).with("http://www.example.com/login", {})
click_button("Login") click_button("Login")
end end
@ -176,7 +176,7 @@ describe "click_button" do
</form> </form>
</html> </html>
HTML HTML
webrat_session.should_receive(:get).with("/login", "user" => {"password" => "mypass"}) webrat_session.should_receive(:get).with("http://www.example.com/login", "user" => {"password" => "mypass"})
click_button click_button
end end
@ -189,7 +189,7 @@ describe "click_button" do
</form> </form>
</html> </html>
HTML HTML
webrat_session.should_receive(:get).with("/login", "user" => {"email" => "test@example.com"}) webrat_session.should_receive(:get).with("http://www.example.com/login", "user" => {"email" => "test@example.com"})
click_button click_button
end end
@ -202,7 +202,7 @@ describe "click_button" do
</form> </form>
</html> </html>
HTML HTML
webrat_session.should_receive(:get).with("/login", "user" => {"email" => "test@example.com"}) webrat_session.should_receive(:get).with("http://www.example.com/login", "user" => {"email" => "test@example.com"})
click_button click_button
end end
@ -219,7 +219,7 @@ describe "click_button" do
</form> </form>
</html> </html>
HTML HTML
webrat_session.should_receive(:get).with("/login", {}) webrat_session.should_receive(:get).with("http://www.example.com/login", {})
click_button click_button
end end
@ -232,7 +232,7 @@ describe "click_button" do
</form> </form>
</html> </html>
HTML HTML
webrat_session.should_receive(:get).with("/login", "user" => {"tos" => "1"}) webrat_session.should_receive(:get).with("http://www.example.com/login", "user" => {"tos" => "1"})
click_button click_button
end end
@ -248,7 +248,7 @@ describe "click_button" do
</form> </form>
</html> </html>
HTML HTML
webrat_session.should_receive(:get).with("/login", "user" => {"gender" => "F"}) webrat_session.should_receive(:get).with("http://www.example.com/login", "user" => {"gender" => "F"})
click_button click_button
end end
@ -262,7 +262,7 @@ describe "click_button" do
</form> </form>
</html> </html>
HTML HTML
webrat_session.should_receive(:get).with("/login", "user" => {"tos" => "0"}) webrat_session.should_receive(:get).with("http://www.example.com/login", "user" => {"tos" => "0"})
click_button click_button
end end
@ -276,7 +276,7 @@ describe "click_button" do
</form> </form>
</html> </html>
HTML HTML
webrat_session.should_receive(:get).with("/login", "user" => {"tos" => "1"}) webrat_session.should_receive(:get).with("http://www.example.com/login", "user" => {"tos" => "1"})
click_button click_button
end end
@ -298,7 +298,7 @@ describe "click_button" do
</form> </form>
</html> </html>
HTML HTML
webrat_session.should_receive(:post).with("/login", webrat_session.should_receive(:post).with("http://www.example.com/login",
"options" => ["burger", "fries", "soda", "soda", "dessert"], "options" => ["burger", "fries", "soda", "soda", "dessert"],
"response" => { "choices" => [{"selected" => "one"}, {"selected" => "two"}, {"selected" => "two"}]}) "response" => { "choices" => [{"selected" => "one"}, {"selected" => "two"}, {"selected" => "two"}]})
click_button click_button
@ -313,7 +313,7 @@ describe "click_button" do
</form> </form>
</html> </html>
HTML HTML
webrat_session.should_receive(:get).with("/login", {}) webrat_session.should_receive(:get).with("http://www.example.com/login", {})
click_button click_button
end end
@ -326,12 +326,12 @@ describe "click_button" do
</form> </form>
</html> </html>
HTML HTML
webrat_session.should_receive(:post).with("/posts", "post" => {"body" => "Post body here!"}) webrat_session.should_receive(:post).with("http://www.example.com/posts", "post" => {"body" => "Post body here!"})
click_button click_button
end end
it "should properly handle HTML entities in textarea default values" do it "should properly handle HTML entities in textarea default values" do
spec = lambda do pending "needs bug fix" do
with_html <<-HTML with_html <<-HTML
<html> <html>
<form method="post" action="/posts"> <form method="post" action="/posts">
@ -340,15 +340,9 @@ describe "click_button" do
</form> </form>
</html> </html>
HTML HTML
webrat_session.should_receive(:post).with("/posts", "post" => {"body" => "Peanut butter & jelly"}) webrat_session.should_receive(:post).with("http://www.example.com/posts", "post" => {"body" => "Peanut butter & jelly"})
click_button click_button
end end
if Webrat.on_java?
spec.call
else
pending("needs bug fix", &spec)
end
end end
it "should send default selected option value from select" do it "should send default selected option value from select" do
@ -363,7 +357,7 @@ describe "click_button" do
</form> </form>
</html> </html>
HTML HTML
webrat_session.should_receive(:get).with("/login", "month" => "2") webrat_session.should_receive(:get).with("http://www.example.com/login", "month" => "2")
click_button click_button
end end
@ -379,7 +373,7 @@ describe "click_button" do
</form> </form>
</html> </html>
HTML HTML
webrat_session.should_receive(:get).with("/login", "month" => "February") webrat_session.should_receive(:get).with("http://www.example.com/login", "month" => "February")
click_button click_button
end end
@ -395,7 +389,7 @@ describe "click_button" do
</form> </form>
</html> </html>
HTML HTML
webrat_session.should_receive(:get).with("/login", "month" => "1") webrat_session.should_receive(:get).with("http://www.example.com/login", "month" => "1")
click_button click_button
end end
@ -409,7 +403,7 @@ describe "click_button" do
</form> </form>
</html> </html>
HTML HTML
webrat_session.should_receive(:post).with("/login", "contestant" => {"scores" => {'1' => '2', '3' => '4'}}) webrat_session.should_receive(:post).with("http://www.example.com/login", "contestant" => {"scores" => {'1' => '2', '3' => '4'}})
click_button click_button
end end
@ -422,7 +416,7 @@ describe "click_button" do
</form> </form>
</html> </html>
HTML HTML
webrat_session.should_receive(:get).with("/login", "user" => {"email" => ""}) webrat_session.should_receive(:get).with("http://www.example.com/login", "user" => {"email" => ""})
click_button click_button
end end
@ -435,7 +429,7 @@ describe "click_button" do
</form> </form>
</html> </html>
HTML HTML
webrat_session.should_receive(:get).with("/login", "user" => {"email" => ""}) webrat_session.should_receive(:get).with("http://www.example.com/login", "user" => {"email" => ""})
click_button click_button
end end
@ -496,7 +490,7 @@ describe "click_button" do
</form> </form>
</html> </html>
HTML HTML
webrat_session.should_receive(:get).with("/login", "user" => {"email" => ""}) webrat_session.should_receive(:get).with("http://www.example.com/login", "user" => {"email" => ""})
click_button "Login" click_button "Login"
end end
end end

View File

@ -7,7 +7,7 @@ describe "click_link" do
<a href="/page">Save &amp; go back</a> <a href="/page">Save &amp; go back</a>
</html> </html>
HTML HTML
webrat_session.should_receive(:get).with("/page", {}) webrat_session.should_receive(:get).with("http://www.example.com/page", {})
click_link "Save & go back" click_link "Save & go back"
end end
@ -17,7 +17,7 @@ describe "click_link" do
<a href="/page">Link text</a> <a href="/page">Link text</a>
</html> </html>
HTML HTML
webrat_session.should_receive(:get).with("/page", {}) webrat_session.should_receive(:get).with("http://www.example.com/page", {})
click_link "Link text" click_link "Link text"
end end
@ -27,7 +27,7 @@ describe "click_link" do
<a href="/page">Link text</a> <a href="/page">Link text</a>
</html> </html>
HTML HTML
webrat_session.should_receive(:get).with("/page", {}) webrat_session.should_receive(:get).with("http://www.example.com/page", {})
click_link "Link text", :method => :get click_link "Link text", :method => :get
end end
@ -37,7 +37,7 @@ describe "click_link" do
<a href="/page">Link text</a> <a href="/page">Link text</a>
</html> </html>
HTML HTML
webrat_session.should_receive(:get).with("/page", {}) webrat_session.should_receive(:get).with("http://www.example.com/page", {})
click_link "ink tex", :method => :get click_link "ink tex", :method => :get
end end
@ -47,7 +47,7 @@ describe "click_link" do
<a href="/page">Link text</a> <a href="/page">Link text</a>
</html> </html>
HTML HTML
webrat_session.should_receive(:delete).with("/page", {}) webrat_session.should_receive(:delete).with("http://www.example.com/page", {})
click_link "Link text", :method => :delete click_link "Link text", :method => :delete
end end
@ -58,7 +58,7 @@ describe "click_link" do
<a href="/page">Link text</a> <a href="/page">Link text</a>
</html> </html>
HTML HTML
webrat_session.should_receive(:post).with("/page", {}) webrat_session.should_receive(:post).with("http://www.example.com/page", {})
click_link "Link text", :method => :post click_link "Link text", :method => :post
end end
@ -68,7 +68,7 @@ describe "click_link" do
<a href="/page">Link text</a> <a href="/page">Link text</a>
</html> </html>
HTML HTML
webrat_session.should_receive(:put).with("/page", {}) webrat_session.should_receive(:put).with("http://www.example.com/page", {})
click_link "Link text", :method => :put click_link "Link text", :method => :put
end end
@ -78,7 +78,7 @@ describe "click_link" do
<a href="/page">Link text</a> <a href="/page">Link text</a>
</html> </html>
HTML HTML
webrat_session.should_receive(:get).with("/page", {}) webrat_session.should_receive(:get).with("http://www.example.com/page", {})
click_link /link [a-z]/i click_link /link [a-z]/i
end end
@ -88,7 +88,7 @@ describe "click_link" do
<a id="link_text_link" href="/page">Link text</a> <a id="link_text_link" href="/page">Link text</a>
</html> </html>
HTML HTML
webrat_session.should_receive(:get).with("/page", {}) webrat_session.should_receive(:get).with("http://www.example.com/page", {})
click_link "link_text_link" click_link "link_text_link"
end end
@ -98,7 +98,7 @@ describe "click_link" do
<a id="link_text_link" href="/page">Link text</a> <a id="link_text_link" href="/page">Link text</a>
</html> </html>
HTML HTML
webrat_session.should_receive(:get).with("/page", {}) webrat_session.should_receive(:get).with("http://www.example.com/page", {})
click_link /_text_/ click_link /_text_/
end end
@ -108,7 +108,7 @@ describe "click_link" do
<a title="piddle" href="/page">Link text</a> <a title="piddle" href="/page">Link text</a>
</html> </html>
HTML HTML
webrat_session.should_receive(:get).with("/page", {}) webrat_session.should_receive(:get).with("http://www.example.com/page", {})
click_link 'piddle' click_link 'piddle'
end end
@ -118,7 +118,7 @@ describe "click_link" do
<a title="piddlediddle" href="/page">Link text</a> <a title="piddlediddle" href="/page">Link text</a>
</html> </html>
HTML HTML
webrat_session.should_receive(:get).with("/page", {}) webrat_session.should_receive(:get).with("http://www.example.com/page", {})
click_link /iddle/ click_link /iddle/
end end
@ -140,7 +140,7 @@ describe "click_link" do
return false;">Posts</a> return false;">Posts</a>
</html> </html>
HTML HTML
webrat_session.should_receive(:post).with("/posts", "authenticity_token" => "aa79cb354597a60a3786e7e291ed4f74d77d3a62") webrat_session.should_receive(:post).with("http://www.example.com/posts", "authenticity_token" => "aa79cb354597a60a3786e7e291ed4f74d77d3a62")
click_link "Posts" click_link "Posts"
end end
@ -161,7 +161,7 @@ describe "click_link" do
return false;">Delete</a> return false;">Delete</a>
</html> </html>
HTML HTML
webrat_session.should_receive(:delete).with("/posts/1", {}) webrat_session.should_receive(:delete).with("http://www.example.com/posts/1", {})
click_link "Delete" click_link "Delete"
end end
@ -177,7 +177,7 @@ describe "click_link" do
return false;">Posts</a> return false;">Posts</a>
</html> </html>
HTML HTML
webrat_session.should_receive(:post).with("/posts", {}) webrat_session.should_receive(:post).with("http://www.example.com/posts", {})
click_link "Posts" click_link "Posts"
end end
@ -193,7 +193,7 @@ describe "click_link" do
return false;">Posts</a> return false;">Posts</a>
</html> </html>
HTML HTML
webrat_session.should_receive(:get).with("/posts", {}) webrat_session.should_receive(:get).with("http://www.example.com/posts", {})
click_link "Posts", :javascript => false click_link "Posts", :javascript => false
end end
@ -214,7 +214,7 @@ describe "click_link" do
return false;">Post</a></h2> return false;">Post</a></h2>
</html> </html>
HTML HTML
webrat_session.should_receive(:post).with("/posts", {}) webrat_session.should_receive(:post).with("http://www.example.com/posts", {})
click_link "Post" click_link "Post"
end end
@ -235,7 +235,7 @@ describe "click_link" do
return false;">Put</a></h2> return false;">Put</a></h2>
</html> </html>
HTML HTML
webrat_session.should_receive(:put).with("/posts", {}) webrat_session.should_receive(:put).with("http://www.example.com/posts", {})
click_link "Put" click_link "Put"
end end
@ -302,7 +302,7 @@ describe "click_link" do
<a href="/page">Link text</a> <a href="/page">Link text</a>
</html> </html>
HTML HTML
webrat_session.should_receive(:get).with("/page", {}) webrat_session.should_receive(:get).with("http://www.example.com/page", {})
click_link "LINK TEXT" click_link "LINK TEXT"
end end
@ -312,7 +312,7 @@ describe "click_link" do
<a href="/page">This is some cool link text, isn't it?</a> <a href="/page">This is some cool link text, isn't it?</a>
</html> </html>
HTML HTML
webrat_session.should_receive(:get).with("/page", {}) webrat_session.should_receive(:get).with("http://www.example.com/page", {})
click_link "Link text" click_link "Link text"
end end
@ -322,7 +322,7 @@ describe "click_link" do
<a href="/page"><span>Link text</span></a> <a href="/page"><span>Link text</span></a>
</html> </html>
HTML HTML
webrat_session.should_receive(:get).with("/page", {}) webrat_session.should_receive(:get).with("http://www.example.com/page", {})
click_link "Link text" click_link "Link text"
end end
@ -333,7 +333,7 @@ describe "click_link" do
<a href="/page2">Link text</a> <a href="/page2">Link text</a>
</html> </html>
HTML HTML
webrat_session.should_receive(:get).with("/page1", {}) webrat_session.should_receive(:get).with("http://www.example.com/page1", {})
click_link "Link text" click_link "Link text"
end end
@ -345,7 +345,7 @@ describe "click_link" do
</html> </html>
HTML HTML
webrat_session.should_receive(:get).with("/page2", {}) webrat_session.should_receive(:get).with("http://www.example.com/page2", {})
click_link "Link" click_link "Link"
end end
@ -356,7 +356,7 @@ describe "click_link" do
</html> </html>
HTML HTML
webrat_session.should_receive(:get).with("/page1", {}) webrat_session.should_receive(:get).with("http://www.example.com/page1", {})
click_link "This is a link" click_link "This is a link"
end end
@ -369,7 +369,7 @@ describe "click_link" do
</html> </html>
HTML HTML
webrat_session.should_receive(:get).with("/page2", {}) webrat_session.should_receive(:get).with("http://www.example.com/page2", {})
click_link "Location" click_link "Location"
end end
end end
@ -384,7 +384,7 @@ describe "click_link" do
</html> </html>
HTML HTML
webrat_session.should_receive(:get).with("/page2", {}) webrat_session.should_receive(:get).with("http://www.example.com/page2", {})
click_link_within "#container", "Link" click_link_within "#container", "Link"
end end
@ -400,18 +400,18 @@ describe "click_link" do
end end
it "should follow relative links" do it "should follow relative links" do
webrat_session.stub!(:current_url => "/page") webrat_session.stub!(:current_url => "http://www.example.com/page")
with_html <<-HTML with_html <<-HTML
<html> <html>
<a href="sub">Jump to sub page</a> <a href="sub">Jump to sub page</a>
</html> </html>
HTML HTML
webrat_session.should_receive(:get).with("/page/sub", {}) webrat_session.should_receive(:get).with("http://www.example.com/page/sub", {})
click_link "Jump to sub page" click_link "Jump to sub page"
end end
it "should follow fully qualified local links" do it "should follow fully qualified local links" do
webrat_session.stub!(:current_url => "/page") webrat_session.stub!(:current_url => "http://www.example.com/page")
with_html <<-HTML with_html <<-HTML
<html> <html>
<a href="http://subdomain.example.com/page/sub">Jump to sub page</a> <a href="http://subdomain.example.com/page/sub">Jump to sub page</a>
@ -432,13 +432,13 @@ describe "click_link" do
end end
it "should follow query parameters" do it "should follow query parameters" do
webrat_session.stub!(:current_url => "/page") webrat_session.stub!(:current_url => "http://www.example.com/page")
with_html <<-HTML with_html <<-HTML
<html> <html>
<a href="?foo=bar">Jump to foo bar</a> <a href="?foo=bar">Jump to foo bar</a>
</html> </html>
HTML HTML
webrat_session.should_receive(:get).with("/page?foo=bar", {}) webrat_session.should_receive(:get).with("http://www.example.com/page?foo=bar", {})
click_link "Jump to foo bar" click_link "Jump to foo bar"
end end

View File

@ -11,7 +11,7 @@ describe "fill_in" do
</form> </form>
</html> </html>
HTML HTML
webrat_session.should_receive(:post).with("/login", "user" => {"text" => "filling text area"}) webrat_session.should_receive(:post).with("http://www.example.com/login", "user" => {"text" => "filling text area"})
fill_in "User Text", :with => "filling text area" fill_in "User Text", :with => "filling text area"
click_button click_button
end end
@ -25,7 +25,7 @@ describe "fill_in" do
</form> </form>
</html> </html>
HTML HTML
webrat_session.should_receive(:post).with("/login", "user" => {"text" => "pass"}) webrat_session.should_receive(:post).with("http://www.example.com/login", "user" => {"text" => "pass"})
fill_in "user_text", :with => "pass" fill_in "user_text", :with => "pass"
click_button click_button
end end
@ -65,7 +65,7 @@ describe "fill_in" do
</form> </form>
</html> </html>
HTML HTML
webrat_session.should_receive(:post).with("/login", "user" => {"email" => "foo@example.com"}) webrat_session.should_receive(:post).with("http://www.example.com/login", "user" => {"email" => "foo@example.com"})
fill_in "user[email]", :with => "foo@example.com" fill_in "user[email]", :with => "foo@example.com"
click_button click_button
end end
@ -83,7 +83,7 @@ describe "fill_in" do
</html> </html>
HTML HTML
webrat_session.should_receive(:post).with("/login", "user" => {"mail1" => "", "mail2" => "value"}) webrat_session.should_receive(:post).with("http://www.example.com/login", "user" => {"mail1" => "", "mail2" => "value"})
fill_in "Some", :with => "value" fill_in "Some", :with => "value"
click_button click_button
end end
@ -101,7 +101,7 @@ describe "fill_in" do
</html> </html>
HTML HTML
webrat_session.should_receive(:post).with("/login", "user" => {"mail1" => "value", "mail2" => ""}) webrat_session.should_receive(:post).with("http://www.example.com/login", "user" => {"mail1" => "value", "mail2" => ""})
fill_in "Some mail", :with => "value" fill_in "Some mail", :with => "value"
click_button click_button
end end
@ -144,7 +144,7 @@ describe "fill_in" do
</form> </form>
</html> </html>
HTML HTML
webrat_session.should_receive(:post).with("/login", "user" => {"email" => "foo@example.com"}) webrat_session.should_receive(:post).with("http://www.example.com/login", "user" => {"email" => "foo@example.com"})
fill_in "Email", :with => "foo@example.com" fill_in "Email", :with => "foo@example.com"
click_button click_button
end end
@ -158,7 +158,7 @@ describe "fill_in" do
</form> </form>
</html> </html>
HTML HTML
webrat_session.should_receive(:post).with("/login", "user" => {"email" => "foo@example.com"}) webrat_session.should_receive(:post).with("http://www.example.com/login", "user" => {"email" => "foo@example.com"})
fill_in "user[email]", :with => "foo@example.com" fill_in "user[email]", :with => "foo@example.com"
click_button click_button
end end
@ -172,7 +172,7 @@ describe "fill_in" do
</form> </form>
</html> </html>
HTML HTML
webrat_session.should_receive(:post).with("/login", "user" => {"email" => "foo@example.com"}) webrat_session.should_receive(:post).with("http://www.example.com/login", "user" => {"email" => "foo@example.com"})
fill_in "user[email]", :with => "foo@example.com" fill_in "user[email]", :with => "foo@example.com"
click_button click_button
end end
@ -187,7 +187,7 @@ describe "fill_in" do
</form> </form>
</html> </html>
HTML HTML
webrat_session.should_receive(:post).with("/login", "user" => {"email" => "foo@example.com"}) webrat_session.should_receive(:post).with("http://www.example.com/login", "user" => {"email" => "foo@example.com"})
fill_in :email, :with => "foo@example.com" fill_in :email, :with => "foo@example.com"
click_button click_button
end end
@ -202,7 +202,7 @@ describe "fill_in" do
</form> </form>
</html> </html>
HTML HTML
webrat_session.should_receive(:post).with("/users", "user" => {"phone" => "+1 22 33"}) webrat_session.should_receive(:post).with("http://www.example.com/users", "user" => {"phone" => "+1 22 33"})
fill_in 'Phone', :with => "+1 22 33" fill_in 'Phone', :with => "+1 22 33"
click_button click_button
end end

View File

@ -2,9 +2,9 @@ require File.expand_path(File.dirname(__FILE__) + "/../spec_helper")
describe "reloads" do describe "reloads" do
it "should reload the page with http referer" do it "should reload the page with http referer" do
webrat_session.should_receive(:get).with("/", {}) webrat_session.should_receive(:get).with("http://www.example.com/", {})
webrat_session.should_receive(:get).with("/", {}, {"HTTP_REFERER"=>"/"})
visit("/") visit("/")
webrat_session.should_receive(:get).with("http://www.example.com/", {}, {"HTTP_REFERER"=>"http://www.example.com/"})
reload reload
end end
end end

View File

@ -19,7 +19,7 @@ describe "select_date" do
</form> </form>
</html> </html>
HTML HTML
webrat_session.should_receive(:post).with("/appointments", webrat_session.should_receive(:post).with("http://www.example.com/appointments",
"appointment" => {"date(1i)" => '2003', "date(2i)" => "12", "date(3i)" => "25"}) "appointment" => {"date(1i)" => '2003', "date(2i)" => "12", "date(3i)" => "25"})
select_date "December 25, 2003", :from => "Date" select_date "December 25, 2003", :from => "Date"
click_button click_button
@ -43,7 +43,7 @@ describe "select_date" do
</form> </form>
</html> </html>
HTML HTML
webrat_session.should_receive(:post).with("/appointments", webrat_session.should_receive(:post).with("http://www.example.com/appointments",
"appointment" => {"date(1i)" => '2003', "date(2i)" => "12", "date(3i)" => "25"}) "appointment" => {"date(1i)" => '2003', "date(2i)" => "12", "date(3i)" => "25"})
select_date Date.parse("December 25, 2003"), :from => "date" select_date Date.parse("December 25, 2003"), :from => "date"
click_button click_button
@ -66,7 +66,7 @@ describe "select_date" do
</form> </form>
</html> </html>
HTML HTML
webrat_session.should_receive(:post).with("/appointments", webrat_session.should_receive(:post).with("http://www.example.com/appointments",
"appointment" => {"date(1i)" => '2003', "date(2i)" => "12", "date(3i)" => "25"}) "appointment" => {"date(1i)" => '2003', "date(2i)" => "12", "date(3i)" => "25"})
select_date "December 25, 2003" select_date "December 25, 2003"
click_button click_button
@ -90,7 +90,7 @@ describe "select_date" do
</form> </form>
</html> </html>
HTML HTML
webrat_session.should_receive(:post).with("/appointments", webrat_session.should_receive(:post).with("http://www.example.com/appointments",
"appointment" => {"date(1i)" => '2003', "date(2i)" => "12", "date(3i)" => "25"}) "appointment" => {"date(1i)" => '2003', "date(2i)" => "12", "date(3i)" => "25"})
select_date Date.parse("December 25, 2003"), :from => "date ?" select_date Date.parse("December 25, 2003"), :from => "date ?"
click_button click_button

View File

@ -25,7 +25,7 @@ describe "select_datetime" do
</form> </form>
</html> </html>
HTML HTML
webrat_session.should_receive(:post).with("/appointments", webrat_session.should_receive(:post).with("http://www.example.com/appointments",
"appointment" => {"time(1i)" => '2003', "time(2i)" => "12", "time(3i)" => "25", "time(4i)" => "09", "time(5i)" => "30"}) "appointment" => {"time(1i)" => '2003', "time(2i)" => "12", "time(3i)" => "25", "time(4i)" => "09", "time(5i)" => "30"})
select_datetime "December 25, 2003 9:30", :from => "Time" select_datetime "December 25, 2003 9:30", :from => "Time"
click_button click_button
@ -55,7 +55,7 @@ describe "select_datetime" do
</form> </form>
</html> </html>
HTML HTML
webrat_session.should_receive(:post).with("/appointments", webrat_session.should_receive(:post).with("http://www.example.com/appointments",
"appointment" => {"time(1i)" => '2003', "time(2i)" => "12", "time(3i)" => "25", "time(4i)" => "09", "time(5i)" => "30"}) "appointment" => {"time(1i)" => '2003', "time(2i)" => "12", "time(3i)" => "25", "time(4i)" => "09", "time(5i)" => "30"})
select_datetime Time.parse("December 25, 2003 9:30"), :from => "Time" select_datetime Time.parse("December 25, 2003 9:30"), :from => "Time"
click_button click_button
@ -85,7 +85,7 @@ describe "select_datetime" do
</form> </form>
</html> </html>
HTML HTML
webrat_session.should_receive(:post).with("/appointments", webrat_session.should_receive(:post).with("http://www.example.com/appointments",
"appointment" => {"time(1i)" => '2003', "time(2i)" => "12", "time(3i)" => "25", "time(4i)" => "09", "time(5i)" => "30"}) "appointment" => {"time(1i)" => '2003', "time(2i)" => "12", "time(3i)" => "25", "time(4i)" => "09", "time(5i)" => "30"})
select_datetime "December 25, 2003 9:30", :from => "Time ?" select_datetime "December 25, 2003 9:30", :from => "Time ?"
click_button click_button
@ -115,7 +115,7 @@ describe "select_datetime" do
</form> </form>
</html> </html>
HTML HTML
webrat_session.should_receive(:post).with("/appointments", webrat_session.should_receive(:post).with("http://www.example.com/appointments",
"appointment" => {"time(1i)" => '2003', "time(2i)" => "12", "time(3i)" => "25", "time(4i)" => "09", "time(5i)" => "30"}) "appointment" => {"time(1i)" => '2003', "time(2i)" => "12", "time(3i)" => "25", "time(4i)" => "09", "time(5i)" => "30"})
select_datetime "December 25, 2003 9:30" select_datetime "December 25, 2003 9:30"
click_button click_button

View File

@ -62,7 +62,7 @@ describe "select" do
</form> </form>
</html> </html>
HTML HTML
webrat_session.should_receive(:post).with("/login", "month" => "1") webrat_session.should_receive(:post).with("http://www.example.com/login", "month" => "1")
select "January", :from => "month" select "January", :from => "month"
click_button click_button
end end
@ -76,7 +76,7 @@ describe "select" do
</form> </form>
</html> </html>
HTML HTML
webrat_session.should_receive(:post).with("/login", "encoded" => "A & B") webrat_session.should_receive(:post).with("http://www.example.com/login", "encoded" => "A & B")
select "Encoded", :from => "encoded" select "Encoded", :from => "encoded"
click_button click_button
end end
@ -90,7 +90,7 @@ describe "select" do
</form> </form>
</html> </html>
HTML HTML
webrat_session.should_receive(:post).with("/login", 'month' => '') webrat_session.should_receive(:post).with("http://www.example.com/login", 'month' => '')
click_button click_button
end end
@ -103,7 +103,7 @@ describe "select" do
</form> </form>
</html> </html>
HTML HTML
webrat_session.should_receive(:post).with("/login", "month" => "1") webrat_session.should_receive(:post).with("http://www.example.com/login", "month" => "1")
select "January" select "January"
click_button click_button
end end
@ -118,7 +118,7 @@ describe "select" do
</form> </form>
</html> </html>
HTML HTML
webrat_session.should_receive(:post).with("/login", "start_month" => "s1", "end_month" => "e1") webrat_session.should_receive(:post).with("http://www.example.com/login", "start_month" => "s1", "end_month" => "e1")
select "January", :from => "end_month" select "January", :from => "end_month"
click_button click_button
end end
@ -135,7 +135,7 @@ describe "select" do
</form> </form>
</html> </html>
HTML HTML
webrat_session.should_receive(:post).with("/login", "start_month" => "s1", "end_month" => "e1") webrat_session.should_receive(:post).with("http://www.example.com/login", "start_month" => "s1", "end_month" => "e1")
select "January", :from => "End Month" select "January", :from => "End Month"
click_button click_button
end end
@ -149,7 +149,7 @@ describe "select" do
</form> </form>
</html> </html>
HTML HTML
webrat_session.should_receive(:post).with("/login", "month" => "January") webrat_session.should_receive(:post).with("http://www.example.com/login", "month" => "January")
select "January", :from => "month" select "January", :from => "month"
click_button click_button
end end
@ -163,7 +163,7 @@ describe "select" do
</form> </form>
</html> </html>
HTML HTML
webrat_session.should_receive(:post).with("/login", "month" => "January") webrat_session.should_receive(:post).with("http://www.example.com/login", "month" => "January")
select /jan/i select /jan/i
click_button click_button
end end
@ -195,13 +195,13 @@ describe "select" do
</form> </form>
</html> </html>
HTML HTML
webrat_session.should_receive(:post).with("/login", "start_month" => "s1", "end_month" => "e1") webrat_session.should_receive(:post).with("http://www.example.com/login", "start_month" => "s1", "end_month" => "e1")
select /jan/i, :from => "End Month" select /jan/i, :from => "End Month"
click_button click_button
end end
it "should properly handle submitting HTML entities in select values" do it "should properly handle submitting HTML entities in select values" do
spec = lambda do pending "needs bug fix" do
with_html <<-HTML with_html <<-HTML
<html> <html>
<form method="post" action="/login"> <form method="post" action="/login">
@ -210,19 +210,13 @@ describe "select" do
</form> </form>
</html> </html>
HTML HTML
webrat_session.should_receive(:post).with("/login", "month" => "Peanut butter & jelly") webrat_session.should_receive(:post).with("http://www.example.com/login", "month" => "Peanut butter & jelly")
click_button click_button
end end
if Webrat.on_java?
spec.call
else
pending("needs bug fix", &spec)
end
end end
it "should properly handle locating with HTML entities in select values" do it "should properly handle locating with HTML entities in select values" do
spec = lambda do pending "needs bug fix" do
with_html <<-HTML with_html <<-HTML
<html> <html>
<form method="post" action="/login"> <form method="post" action="/login">
@ -236,12 +230,6 @@ describe "select" do
select "Peanut butter & jelly" select "Peanut butter & jelly"
}.should_not raise_error(Webrat::NotFoundError) }.should_not raise_error(Webrat::NotFoundError)
end end
if Webrat.on_java?
spec.call
else
pending("needs bug fix", &spec)
end
end end
it "should submit duplicates selected options as a single value" do it "should submit duplicates selected options as a single value" do
@ -254,7 +242,7 @@ describe "select" do
</html> </html>
HTML HTML
webrat_session.should_receive(:post).with("/login", "clothes" => "pants") webrat_session.should_receive(:post).with("http://www.example.com/login", "clothes" => "pants")
click_button click_button
end end

View File

@ -16,7 +16,7 @@ describe "select_time" do
</form> </form>
</html> </html>
HTML HTML
webrat_session.should_receive(:post).with("/appointments", webrat_session.should_receive(:post).with("http://www.example.com/appointments",
"appointment" => {"time(4i)" => "09", "time(5i)" => "30"}) "appointment" => {"time(4i)" => "09", "time(5i)" => "30"})
select_time "9:30AM", :from => "Time" select_time "9:30AM", :from => "Time"
click_button click_button
@ -37,7 +37,7 @@ describe "select_time" do
</form> </form>
</html> </html>
HTML HTML
webrat_session.should_receive(:post).with("/appointments", webrat_session.should_receive(:post).with("http://www.example.com/appointments",
"appointment" => {"time(4i)" => "09", "time(5i)" => "30"}) "appointment" => {"time(4i)" => "09", "time(5i)" => "30"})
select_time Time.parse("9:30AM"), :from => "Time" select_time Time.parse("9:30AM"), :from => "Time"
click_button click_button
@ -58,7 +58,7 @@ describe "select_time" do
</form> </form>
</html> </html>
HTML HTML
webrat_session.should_receive(:post).with("/appointments", webrat_session.should_receive(:post).with("http://www.example.com/appointments",
"appointment" => {"time(4i)" => "09", "time(5i)" => "30"}) "appointment" => {"time(4i)" => "09", "time(5i)" => "30"})
select_time "9:30AM", :from => "Time #" select_time "9:30AM", :from => "Time #"
click_button click_button
@ -78,7 +78,7 @@ describe "select_time" do
</form> </form>
</html> </html>
HTML HTML
webrat_session.should_receive(:post).with("/appointments", webrat_session.should_receive(:post).with("http://www.example.com/appointments",
"appointment" => {"time(4i)" => "09", "time(5i)" => "30"}) "appointment" => {"time(4i)" => "09", "time(5i)" => "30"})
select_time "9:30" select_time "9:30"
click_button click_button

View File

@ -10,7 +10,7 @@ describe "visit" do
end end
it "should use get" do it "should use get" do
webrat_session.should_receive(:get).with("/", {}) webrat_session.should_receive(:get).with("http://www.example.com/", {})
visit("/") visit("/")
end end
@ -36,7 +36,7 @@ describe "visit" do
visit("/oldurl") visit("/oldurl")
current_url.should == "/oldurl" current_url.should == "http://www.example.com/oldurl"
end end
end end
@ -51,7 +51,7 @@ describe "visit with referer" do
end end
it "should use get with referer header" do it "should use get with referer header" do
webrat_session.should_receive(:get).with("/", {}, {"HTTP_REFERER" => "/old_url"}) webrat_session.should_receive(:get).with("http://www.example.com/", {}, {"HTTP_REFERER" => "/old_url"})
visit("/") visit("/")
end end

View File

@ -13,7 +13,7 @@ describe "within" do
</html> </html>
HTML HTML
webrat_session.should_receive(:get).with("/page2", {}) webrat_session.should_receive(:get).with("http://www.example.com/page2", {})
within "#container" do within "#container" do
within "div" do within "div" do
click_link "Link" click_link "Link"
@ -31,7 +31,7 @@ describe "within" do
</html> </html>
HTML HTML
webrat_session.should_receive(:get).with("/page2", {}) webrat_session.should_receive(:get).with("http://www.example.com/page2", {})
within "#container" do within "#container" do
click_link "Link" click_link "Link"
end end
@ -51,7 +51,7 @@ describe "within" do
</html> </html>
HTML HTML
webrat_session.should_receive(:get).with("/form2", "email" => "test@example.com") webrat_session.should_receive(:get).with("http://www.example.com/form2", "email" => "test@example.com")
within "#form2" do within "#form2" do
fill_in "Email", :with => "test@example.com" fill_in "Email", :with => "test@example.com"
click_button click_button
@ -70,7 +70,7 @@ describe "within" do
</html> </html>
HTML HTML
webrat_session.should_receive(:get).with("/form2", "email" => "test@example.com") webrat_session.should_receive(:get).with("http://www.example.com/form2", "email" => "test@example.com")
within ".important" do within ".important" do
fill_in "Email", :with => "test@example.com" fill_in "Email", :with => "test@example.com"
end end
@ -92,7 +92,7 @@ describe "within" do
</html> </html>
HTML HTML
webrat_session.should_receive(:get).with("/form2", "email" => "test@example.com") webrat_session.should_receive(:get).with("http://www.example.com/form2", "email" => "test@example.com")
within "form[@action='/form2']" do within "form[@action='/form2']" do
fill_in "Email", :with => "test@example.com" fill_in "Email", :with => "test@example.com"
click_button "Add" click_button "Add"
@ -117,7 +117,7 @@ describe "within" do
</html> </html>
HTML HTML
webrat_session.should_receive(:get).with("/form2", "email2" => "test@example.com") webrat_session.should_receive(:get).with("http://www.example.com/form2", "email2" => "test@example.com")
within "form[@action='/form2']" do within "form[@action='/form2']" do
fill_in "Email", :with => "test@example.com" fill_in "Email", :with => "test@example.com"
click_button "Add" click_button "Add"
@ -138,7 +138,7 @@ describe "within" do
</html> </html>
HTML HTML
webrat_session.should_receive(:get).with("/form2", "email" => "test@example.com") webrat_session.should_receive(:get).with("http://www.example.com/form2", "email" => "test@example.com")
within "#form2" do within "#form2" do
fill_in "Email", :with => "test@example.com" fill_in "Email", :with => "test@example.com"
click_button "Add" click_button "Add"