webrat 0.5.3 → 0.6.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +4 -1
- data/Gemfile +19 -0
- data/History.txt +29 -0
- data/Rakefile +27 -63
- data/Thorfile +117 -0
- data/lib/webrat.rb +11 -3
- data/lib/webrat/{mechanize.rb → adapters/mechanize.rb} +0 -0
- data/lib/webrat/adapters/merb.rb +11 -0
- data/lib/webrat/{rack.rb → adapters/rack.rb} +0 -0
- data/lib/webrat/{rails.rb → adapters/rails.rb} +2 -23
- data/lib/webrat/{sinatra.rb → adapters/sinatra.rb} +0 -2
- data/lib/webrat/core.rb +0 -1
- data/lib/webrat/core/configuration.rb +6 -16
- data/lib/webrat/core/elements/area.rb +2 -2
- data/lib/webrat/core/elements/element.rb +3 -3
- data/lib/webrat/core/elements/field.rb +106 -30
- data/lib/webrat/core/elements/form.rb +4 -4
- data/lib/webrat/core/elements/label.rb +4 -4
- data/lib/webrat/core/elements/link.rb +6 -6
- data/lib/webrat/core/elements/select_option.rb +15 -2
- data/lib/webrat/core/locators.rb +1 -1
- data/lib/webrat/core/locators/area_locator.rb +3 -3
- data/lib/webrat/core/locators/button_locator.rb +6 -6
- data/lib/webrat/core/locators/field_by_id_locator.rb +3 -3
- data/lib/webrat/core/locators/field_labeled_locator.rb +2 -2
- data/lib/webrat/core/locators/field_named_locator.rb +3 -3
- data/lib/webrat/core/locators/form_locator.rb +1 -1
- data/lib/webrat/core/locators/label_locator.rb +2 -2
- data/lib/webrat/core/locators/link_locator.rb +7 -7
- data/lib/webrat/core/locators/select_option_locator.rb +5 -5
- data/lib/webrat/core/logging.rb +4 -5
- data/lib/webrat/core/matchers/have_content.rb +2 -7
- data/lib/webrat/core/matchers/have_xpath.rb +3 -28
- data/lib/webrat/core/methods.rb +1 -0
- data/lib/webrat/core/scope.rb +17 -2
- data/lib/webrat/core/session.rb +2 -1
- data/lib/webrat/core/xml.rb +41 -84
- data/lib/webrat/integrations/merb.rb +10 -0
- data/lib/webrat/integrations/rails.rb +25 -0
- data/lib/webrat/integrations/rspec-rails.rb +11 -0
- data/lib/webrat/integrations/selenium.rb +11 -0
- data/lib/webrat/rspec-rails.rb +2 -10
- data/lib/webrat/selenium.rb +0 -10
- data/lib/webrat/selenium/application_servers.rb +1 -1
- data/lib/webrat/selenium/application_servers/external.rb +1 -1
- data/lib/webrat/selenium/location_strategy_javascript/label.js +29 -3
- data/lib/webrat/selenium/location_strategy_javascript/webrat.js +1 -0
- data/lib/webrat/selenium/location_strategy_javascript/webratlink.js +24 -4
- data/lib/webrat/selenium/selenium_rc_server.rb +2 -2
- data/lib/webrat/selenium/selenium_session.rb +21 -2
- data/lib/webrat/selenium/silence_stream.rb +1 -1
- data/spec/integration/mechanize/spec/spec_helper.rb +3 -1
- data/spec/integration/rails/app/controllers/{application.rb → application_controller.rb} +0 -0
- data/spec/integration/rails/app/controllers/webrat_controller.rb +3 -0
- data/spec/integration/rails/app/views/buttons/show.html.erb +0 -2
- data/spec/integration/rails/app/views/webrat/buttons.html.erb +0 -2
- data/spec/integration/rails/app/views/webrat/within.html.erb +3 -0
- data/spec/integration/rails/config/environment.rb +1 -1
- data/spec/integration/rails/config/routes.rb +1 -0
- data/spec/integration/rails/test/integration/button_click_test.rb +12 -26
- data/spec/integration/rails/test/integration/fill_in_test.rb +1 -1
- data/spec/integration/rails/test/integration/link_click_test.rb +1 -1
- data/spec/integration/rails/test/integration/webrat_test.rb +35 -9
- data/spec/integration/rails/test/test_helper.rb +1 -0
- data/spec/private/core/configuration_spec.rb +2 -31
- data/spec/private/core/field_spec.rb +14 -16
- data/spec/private/mechanize/mechanize_adapter_spec.rb +0 -2
- data/spec/private/nokogiri_spec.rb +2 -2
- data/spec/private/rails/rails_adapter_spec.rb +0 -27
- data/spec/public/basic_auth_spec.rb +13 -2
- data/spec/public/click_button_spec.rb +10 -12
- data/spec/public/click_link_spec.rb +21 -0
- data/spec/public/fill_in_spec.rb +15 -0
- data/spec/public/matchers/have_selector_spec.rb +4 -0
- data/spec/public/select_spec.rb +232 -26
- data/spec/spec_helper.rb +2 -0
- data/webrat.gemspec +305 -313
- metadata +21 -25
- data/VERSION +0 -1
- data/lib/webrat/core/xml/hpricot.rb +0 -19
- data/lib/webrat/core/xml/nokogiri.rb +0 -76
- data/lib/webrat/core/xml/rexml.rb +0 -24
- data/lib/webrat/merb_adapter.rb +0 -82
- data/lib/webrat/merb_multipart_support.rb +0 -27
- data/spec/private/core/logging_spec.rb +0 -10
- data/spec/private/merb/attaches_file_spec.rb +0 -93
- data/spec/private/merb/merb_adapter_spec.rb +0 -61
data/.gitignore
CHANGED
data/Gemfile
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
clear_sources
|
2
|
+
source 'http://gemcutter.org'
|
3
|
+
|
4
|
+
disable_system_gems
|
5
|
+
|
6
|
+
gem "git", "1.2.5"
|
7
|
+
gem "rake", "0.8.7"
|
8
|
+
gem "rspec", "1.2.9"
|
9
|
+
gem "diff-lcs", "1.1.2"
|
10
|
+
gem "rack", "1.0.1"
|
11
|
+
gem "nokogiri", "1.4.0"
|
12
|
+
gem "merb-core", "1.0.15"
|
13
|
+
gem "selenium-client", "1.2.17"
|
14
|
+
gem "mechanize", "0.9.3"
|
15
|
+
gem "rails", "2.3.4"
|
16
|
+
gem "launchy", "0.3.3"
|
17
|
+
gem "rack-test", "0.5.2"
|
18
|
+
gem "sinatra", "0.9.4"
|
19
|
+
gem "mongrel", "1.1.5"
|
data/History.txt
CHANGED
@@ -1,3 +1,32 @@
|
|
1
|
+
== 0.6.0 / 2009-11-28
|
2
|
+
|
3
|
+
REMOVED: Support for Hpricot + REXML as an alternative to Nokogiri.
|
4
|
+
|
5
|
+
Hpricot and REXML were difficult to work with, REXML is terribly slow,
|
6
|
+
and Nokogiri is recommended even by the author of Hpricot (_why). Now
|
7
|
+
that Nokogiri works on JRuby, Webrat is going to use it as its sole
|
8
|
+
XML backend.
|
9
|
+
|
10
|
+
CHANGED: Due to a reorganization, if you're currently requiring "webrat/rspec-rails",
|
11
|
+
please change your code to require "webrat/integrations/rspec-rails"
|
12
|
+
|
13
|
+
* Minor enhancements
|
14
|
+
|
15
|
+
* Support Rails 2.3.4 JavaScript form authenticity tokens in simulated mode (Jonathan Weiss)
|
16
|
+
* When a timeout occurs in wait_for, include the HTML from Selenium in the exception
|
17
|
+
* Update the Merb support to be based directly on Rack (Simon Rozet)
|
18
|
+
* Support multiple select fields (Kieran P)
|
19
|
+
* When locating select options, always match against text, not HTML
|
20
|
+
|
21
|
+
* Bug fixes
|
22
|
+
|
23
|
+
* Remove newlines from HTTP Basic authentication credentials (Michael Klett)
|
24
|
+
* Require nokogiri form rspec-rails.rb (David Chelimsky)
|
25
|
+
* Fix logger issue when running inside Cucumber (Damian Janowski)
|
26
|
+
* Fix various issues related to submitting values with HTML entities (Kieran P)
|
27
|
+
* Call #to_i on the :count option in matchers (Michael Christenson II)
|
28
|
+
* Fix bug where multiline param values were getting truncated
|
29
|
+
|
1
30
|
== 0.5.3 / 2009-08-27
|
2
31
|
|
3
32
|
* Minor enhancements
|
data/Rakefile
CHANGED
@@ -1,58 +1,26 @@
|
|
1
|
-
|
2
|
-
require 'jeweler'
|
3
|
-
|
4
|
-
Jeweler::Tasks.new do |s|
|
5
|
-
s.name = "webrat"
|
6
|
-
s.author = "Bryan Helmkamp"
|
7
|
-
s.email = "bryan" + "@" + "brynary.com"
|
8
|
-
s.homepage = "http://github.com/brynary/webrat"
|
9
|
-
s.summary = "Ruby Acceptance Testing for Web applications"
|
10
|
-
s.description = <<-EOS.strip
|
11
|
-
Webrat lets you quickly write expressive and robust acceptance tests
|
12
|
-
for a Ruby web application. It supports simulating a browser inside
|
13
|
-
a Ruby process to avoid the performance hit and browser dependency of
|
14
|
-
Selenium or Watir, but the same API can also be used to drive real
|
15
|
-
Selenium tests when necessary (eg. for testing AJAX interactions).
|
16
|
-
Most Ruby web frameworks and testing frameworks are supported.
|
17
|
-
EOS
|
18
|
-
|
19
|
-
s.rubyforge_project = "webrat"
|
20
|
-
s.extra_rdoc_files = %w[README.rdoc MIT-LICENSE.txt History.txt]
|
21
|
-
|
22
|
-
# Dependencies
|
23
|
-
s.add_dependency "nokogiri", ">= 1.2.0"
|
24
|
-
s.add_dependency "rack", ">= 1.0"
|
25
|
-
|
26
|
-
# TODO: Add development dependencies
|
27
|
-
end
|
1
|
+
require "rubygems"
|
28
2
|
|
29
|
-
|
3
|
+
begin
|
4
|
+
require 'spec/rake/spectask'
|
30
5
|
rescue LoadError
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
desc "Run API and Core specs"
|
39
|
-
Spec::Rake::SpecTask.new do |t|
|
40
|
-
t.spec_opts = ['--options', "\"#{File.dirname(__FILE__)}/spec/spec.opts\""]
|
41
|
-
t.spec_files = FileList['spec/public/**/*_spec.rb'] + FileList['spec/private/**/*_spec.rb']
|
42
|
-
end
|
43
|
-
|
44
|
-
desc "Run all specs in spec directory with RCov"
|
45
|
-
Spec::Rake::SpecTask.new(:rcov) do |t|
|
46
|
-
t.spec_opts = ['--options', "\"#{File.dirname(__FILE__)}/spec/spec.opts\""]
|
47
|
-
t.spec_files = FileList['spec/public/**/*_spec.rb'] + FileList['spec/private/**/*_spec.rb']
|
48
|
-
t.rcov = true
|
49
|
-
t.rcov_opts = lambda do
|
50
|
-
IO.readlines(File.dirname(__FILE__) + "/spec/rcov.opts").map {|l| l.chomp.split " "}.flatten
|
6
|
+
desc "Run specs"
|
7
|
+
task(:spec) { $stderr.puts '`gem install rspec` to run specs' }
|
8
|
+
else
|
9
|
+
desc "Run API and Core specs"
|
10
|
+
Spec::Rake::SpecTask.new do |t|
|
11
|
+
t.spec_opts = ['--options', "\"#{File.dirname(__FILE__)}/spec/spec.opts\""]
|
12
|
+
t.spec_files = FileList['spec/public/**/*_spec.rb'] + FileList['spec/private/**/*_spec.rb']
|
51
13
|
end
|
52
|
-
end
|
53
14
|
|
54
|
-
|
55
|
-
|
15
|
+
desc "Run all specs in spec directory with RCov"
|
16
|
+
Spec::Rake::SpecTask.new(:rcov) do |t|
|
17
|
+
t.spec_opts = ['--options', "\"#{File.dirname(__FILE__)}/spec/spec.opts\""]
|
18
|
+
t.spec_files = FileList['spec/public/**/*_spec.rb'] + FileList['spec/private/**/*_spec.rb']
|
19
|
+
t.rcov = true
|
20
|
+
t.rcov_opts = lambda do
|
21
|
+
IO.readlines(File.dirname(__FILE__) + "/spec/rcov.opts").map {|l| l.chomp.split " "}.flatten
|
22
|
+
end
|
23
|
+
end
|
56
24
|
end
|
57
25
|
|
58
26
|
desc "Run everything against multiruby"
|
@@ -107,18 +75,18 @@ task :spec_deps do
|
|
107
75
|
end
|
108
76
|
end
|
109
77
|
|
110
|
-
task :prepare do
|
111
|
-
system "ln -s ../../../../.. ./spec/integration/rails/vendor/plugins/webrat"
|
112
|
-
end
|
113
|
-
|
114
78
|
namespace :spec do
|
115
79
|
desc "Run the integration specs"
|
116
|
-
task :integration => [
|
80
|
+
task :integration => [
|
81
|
+
"integration:rack",
|
82
|
+
"integration:sinatra",
|
83
|
+
"integration:merb",
|
84
|
+
"integration:mechanize",
|
85
|
+
"integration:rails:webrat",
|
86
|
+
"integration:rails:selenium",
|
87
|
+
]
|
117
88
|
|
118
89
|
namespace :integration do
|
119
|
-
desc "Run the Rails integration specs"
|
120
|
-
task :rails => ['rails:webrat'] #,'rails:selenium'] currently not running selenium as it doesn't pass.
|
121
|
-
|
122
90
|
namespace :rails do
|
123
91
|
task :selenium do
|
124
92
|
Dir.chdir "spec/integration/rails" do
|
@@ -174,8 +142,4 @@ task :whitespace do
|
|
174
142
|
sh %{find . -name '*.rb' -exec sed -i '' 's/ *$//g' {} \\;}
|
175
143
|
end
|
176
144
|
|
177
|
-
if defined?(Jeweler)
|
178
|
-
task :spec => :check_dependencies
|
179
|
-
end
|
180
|
-
|
181
145
|
task :default => :spec
|
data/Thorfile
ADDED
@@ -0,0 +1,117 @@
|
|
1
|
+
module GemHelpers
|
2
|
+
|
3
|
+
def generate_gemspec
|
4
|
+
$LOAD_PATH.unshift(File.expand_path(File.join(File.dirname(__FILE__), "lib")))
|
5
|
+
require "webrat"
|
6
|
+
|
7
|
+
Gem::Specification.new do |s|
|
8
|
+
s.name = "webrat"
|
9
|
+
s.version = Webrat::VERSION
|
10
|
+
s.author = "Bryan Helmkamp"
|
11
|
+
s.email = "bryan@brynary.com"
|
12
|
+
s.homepage = "http://github.com/brynary/webrat"
|
13
|
+
s.summary = "Ruby Acceptance Testing for Web applications"
|
14
|
+
s.description = <<-EOS.strip
|
15
|
+
Webrat lets you quickly write expressive and robust acceptance tests
|
16
|
+
for a Ruby web application. It supports simulating a browser inside
|
17
|
+
a Ruby process to avoid the performance hit and browser dependency of
|
18
|
+
Selenium or Watir, but the same API can also be used to drive real
|
19
|
+
Selenium tests when necessary (eg. for testing AJAX interactions).
|
20
|
+
Most Ruby web frameworks and testing frameworks are supported.
|
21
|
+
EOS
|
22
|
+
s.rubyforge_project = "webrat"
|
23
|
+
|
24
|
+
require "git"
|
25
|
+
repo = Git.open(".")
|
26
|
+
|
27
|
+
s.files = normalize_files(repo.ls_files.keys - repo.lib.ignored_files)
|
28
|
+
s.test_files = normalize_files(Dir['spec/**/*.rb'] - repo.lib.ignored_files)
|
29
|
+
|
30
|
+
s.has_rdoc = true
|
31
|
+
s.extra_rdoc_files = %w[README.rdoc MIT-LICENSE.txt History.txt]
|
32
|
+
|
33
|
+
s.add_dependency "nokogiri", ">= 1.2.0"
|
34
|
+
s.add_dependency "rack", ">= 1.0"
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
def normalize_files(array)
|
39
|
+
# only keep files, no directories, and sort
|
40
|
+
array.select do |path|
|
41
|
+
File.file?(path)
|
42
|
+
end.sort
|
43
|
+
end
|
44
|
+
|
45
|
+
# Adds extra space when outputting an array. This helps create better version
|
46
|
+
# control diffs, because otherwise it is all on the same line.
|
47
|
+
def prettyify_array(gemspec_ruby, array_name)
|
48
|
+
gemspec_ruby.gsub(/s\.#{array_name.to_s} = \[.+?\]/) do |match|
|
49
|
+
leadin, files = match[0..-2].split("[")
|
50
|
+
leadin + "[\n #{files.split(",").join(",\n ")}\n ]"
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
def read_gemspec
|
55
|
+
@read_gemspec ||= eval(File.read("webrat.gemspec"))
|
56
|
+
end
|
57
|
+
|
58
|
+
def sh(command)
|
59
|
+
puts command
|
60
|
+
system command
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
class Default < Thor
|
65
|
+
include GemHelpers
|
66
|
+
|
67
|
+
desc "gemspec", "Regenerate webrat.gemspec"
|
68
|
+
def gemspec
|
69
|
+
File.open("webrat.gemspec", "w") do |file|
|
70
|
+
gemspec_ruby = generate_gemspec.to_ruby
|
71
|
+
gemspec_ruby = prettyify_array(gemspec_ruby, :files)
|
72
|
+
gemspec_ruby = prettyify_array(gemspec_ruby, :test_files)
|
73
|
+
gemspec_ruby = prettyify_array(gemspec_ruby, :extra_rdoc_files)
|
74
|
+
|
75
|
+
file.write gemspec_ruby
|
76
|
+
end
|
77
|
+
|
78
|
+
puts "Wrote gemspec to webrat.gemspec"
|
79
|
+
read_gemspec.validate
|
80
|
+
end
|
81
|
+
|
82
|
+
desc "build", "Build a webrat gem"
|
83
|
+
def build
|
84
|
+
sh "gem build webrat.gemspec"
|
85
|
+
FileUtils.mkdir_p "pkg"
|
86
|
+
FileUtils.mv read_gemspec.file_name, "pkg"
|
87
|
+
end
|
88
|
+
|
89
|
+
desc "install", "Install the latest built gem"
|
90
|
+
def install
|
91
|
+
sh "gem install --local pkg/#{read_gemspec.file_name}"
|
92
|
+
end
|
93
|
+
|
94
|
+
desc "release", "Release the current branch to GitHub and Gemcutter"
|
95
|
+
def release
|
96
|
+
gemspec
|
97
|
+
build
|
98
|
+
Release.new.tag
|
99
|
+
Release.new.gem
|
100
|
+
end
|
101
|
+
end
|
102
|
+
|
103
|
+
class Release < Thor
|
104
|
+
include GemHelpers
|
105
|
+
|
106
|
+
desc "tag", "Tag the gem on the origin server"
|
107
|
+
def tag
|
108
|
+
release_tag = "v#{read_gemspec.version}"
|
109
|
+
sh "git tag -a #{release_tag} -m 'Tagging #{release_tag}'"
|
110
|
+
sh "git push origin #{release_tag}"
|
111
|
+
end
|
112
|
+
|
113
|
+
desc "gem", "Push the gem to Gemcutter"
|
114
|
+
def gem
|
115
|
+
sh "gem push pkg/#{read_gemspec.file_name}"
|
116
|
+
end
|
117
|
+
end
|
data/lib/webrat.rb
CHANGED
@@ -1,10 +1,18 @@
|
|
1
|
+
require "rack"
|
2
|
+
require "nokogiri"
|
3
|
+
|
1
4
|
module Webrat
|
5
|
+
VERSION = "0.6.0"
|
6
|
+
|
7
|
+
autoload :MechanizeAdapter, "webrat/adapters/mechanize"
|
8
|
+
autoload :MerbAdapter, "webrat/adapters/merb"
|
9
|
+
autoload :RackAdapter, "webrat/adapters/rack"
|
10
|
+
autoload :RailsAdapter, "webrat/adapters/rails"
|
11
|
+
autoload :SinatraAdapter, "webrat/adapters/sinatra"
|
12
|
+
|
2
13
|
# The common base class for all exceptions raised by Webrat.
|
3
14
|
class WebratError < StandardError
|
4
15
|
end
|
5
16
|
end
|
6
17
|
|
7
|
-
require "rack"
|
8
|
-
require "nokogiri"
|
9
|
-
require "webrat/core/xml/nokogiri"
|
10
18
|
require "webrat/core"
|
File without changes
|
@@ -0,0 +1,11 @@
|
|
1
|
+
require "webrat/integrations/merb"
|
2
|
+
|
3
|
+
module Webrat
|
4
|
+
class MerbAdapter < RackAdapter #:nodoc:
|
5
|
+
def initialize(context=nil)
|
6
|
+
app = context.respond_to?(:app) ?
|
7
|
+
context.app : Merb::Rack::Application.new
|
8
|
+
super(Rack::Test::Session.new(Rack::MockSession.new(app, "www.example.com")))
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
File without changes
|
@@ -1,4 +1,5 @@
|
|
1
|
-
require "webrat"
|
1
|
+
require "webrat/integrations/rails"
|
2
|
+
require "action_controller/record_identifier"
|
2
3
|
|
3
4
|
module Webrat
|
4
5
|
class RailsAdapter #:nodoc:
|
@@ -10,21 +11,6 @@ module Webrat
|
|
10
11
|
@integration_session = session
|
11
12
|
end
|
12
13
|
|
13
|
-
# The Rails version of within supports passing in a model and Webrat
|
14
|
-
# will apply a scope based on Rails' dom_id for that model.
|
15
|
-
#
|
16
|
-
# Example:
|
17
|
-
# within User.last do
|
18
|
-
# click_link "Delete"
|
19
|
-
# end
|
20
|
-
def within(selector_or_object, &block)
|
21
|
-
if selector_or_object.is_a?(String)
|
22
|
-
super
|
23
|
-
else
|
24
|
-
super('#' + dom_id(selector_or_object), &block)
|
25
|
-
end
|
26
|
-
end
|
27
|
-
|
28
14
|
def doc_root
|
29
15
|
File.expand_path(File.join(RAILS_ROOT, 'public'))
|
30
16
|
end
|
@@ -93,10 +79,3 @@ module Webrat
|
|
93
79
|
end
|
94
80
|
end
|
95
81
|
end
|
96
|
-
|
97
|
-
module ActionController #:nodoc:
|
98
|
-
IntegrationTest.class_eval do
|
99
|
-
include Webrat::Methods
|
100
|
-
include Webrat::Matchers
|
101
|
-
end
|
102
|
-
end
|
data/lib/webrat/core.rb
CHANGED
@@ -16,13 +16,10 @@ module Webrat
|
|
16
16
|
# Webrat can be configured using the Webrat.configure method. For example:
|
17
17
|
#
|
18
18
|
# Webrat.configure do |config|
|
19
|
-
# config.
|
19
|
+
# config.mode = :sinatra
|
20
20
|
# end
|
21
21
|
class Configuration
|
22
22
|
|
23
|
-
# Should XHTML be parsed with Nokogiri? Defaults to true, except on JRuby. When false, Hpricot and REXML are used
|
24
|
-
attr_writer :parse_with_nokogiri
|
25
|
-
|
26
23
|
# Webrat's mode, set automatically when requiring webrat/rails, webrat/merb, etc.
|
27
24
|
attr_reader :mode # :nodoc:
|
28
25
|
|
@@ -63,7 +60,6 @@ module Webrat
|
|
63
60
|
|
64
61
|
def initialize # :nodoc:
|
65
62
|
self.open_error_files = true
|
66
|
-
self.parse_with_nokogiri = true
|
67
63
|
self.application_environment = :test
|
68
64
|
self.application_port = 3001
|
69
65
|
self.application_address = 'localhost'
|
@@ -74,10 +70,6 @@ module Webrat
|
|
74
70
|
self.selenium_browser_startup_timeout = 5
|
75
71
|
end
|
76
72
|
|
77
|
-
def parse_with_nokogiri? #:nodoc:
|
78
|
-
@parse_with_nokogiri ? true : false
|
79
|
-
end
|
80
|
-
|
81
73
|
def open_error_files? #:nodoc:
|
82
74
|
@open_error_files ? true : false
|
83
75
|
end
|
@@ -87,13 +79,11 @@ module Webrat
|
|
87
79
|
def mode=(mode)
|
88
80
|
@mode = mode.to_sym
|
89
81
|
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
else
|
96
|
-
require("webrat/#{mode}")
|
82
|
+
begin
|
83
|
+
require("webrat/integrations/#{mode}")
|
84
|
+
rescue LoadError
|
85
|
+
# Only some modes have integration code that needs to
|
86
|
+
# be loaded, so this is OK
|
97
87
|
end
|
98
88
|
end
|
99
89
|
|
@@ -4,7 +4,7 @@ module Webrat
|
|
4
4
|
class Area < Element #:nodoc:
|
5
5
|
|
6
6
|
def self.xpath_search
|
7
|
-
".//area"
|
7
|
+
[".//area"]
|
8
8
|
end
|
9
9
|
|
10
10
|
def click(method = nil, options = {})
|
@@ -14,7 +14,7 @@ module Webrat
|
|
14
14
|
protected
|
15
15
|
|
16
16
|
def href
|
17
|
-
|
17
|
+
@element["href"]
|
18
18
|
end
|
19
19
|
|
20
20
|
def absolute_href
|