honkster-webrat 0.6.0 → 0.6.0.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/.gitignore CHANGED
@@ -13,4 +13,7 @@ results
13
13
  test_apps
14
14
  *.tmproj
15
15
  *.log
16
- .idea
16
+ .idea
17
+ *.pid
18
+ bin
19
+ vendor/gems
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,4 +1,4 @@
1
- == 0.6.rc1 / 2009-09-22
1
+ == 0.6.0 / 2009-11-28
2
2
 
3
3
  REMOVED: Support for Hpricot + REXML as an alternative to Nokogiri.
4
4
 
@@ -12,6 +12,7 @@ CHANGED: Due to a reorganization, if you're currently requiring "webrat/rspec-ra
12
12
 
13
13
  * Minor enhancements
14
14
 
15
+ * Support Rails 2.3.4 JavaScript form authenticity tokens in simulated mode (Jonathan Weiss)
15
16
  * When a timeout occurs in wait_for, include the HTML from Selenium in the exception
16
17
  * Update the Merb support to be based directly on Rack (Simon Rozet)
17
18
  * Support multiple select fields (Kieran P)
@@ -19,6 +20,8 @@ CHANGED: Due to a reorganization, if you're currently requiring "webrat/rspec-ra
19
20
 
20
21
  * Bug fixes
21
22
 
23
+ * Remove newlines from HTTP Basic authentication credentials (Michael Klett)
24
+ * Require nokogiri form rspec-rails.rb (David Chelimsky)
22
25
  * Fix logger issue when running inside Cucumber (Damian Janowski)
23
26
  * Fix various issues related to submitting values with HTML entities (Kieran P)
24
27
  * Call #to_i on the :count option in matchers (Michael Christenson II)
data/Rakefile CHANGED
@@ -1,43 +1,5 @@
1
1
  require "rubygems"
2
2
 
3
- begin
4
- require 'jeweler'
5
- rescue LoadError
6
- desc "Install gem using sudo"
7
- task(:install) do
8
- $stderr.puts "Jeweler not available. `gem install jeweler` to install this gem"
9
- end
10
- else
11
- Jeweler::Tasks.new do |s|
12
- s.name = "honkster-webrat"
13
- s.author = "Bryan Helmkamp"
14
- s.email = "bryan" + "@" + "brynary.com"
15
- s.homepage = "http://github.com/brynary/webrat"
16
- s.summary = "Ruby Acceptance Testing for Web applications"
17
- s.description = <<-EOS.strip
18
- Webrat lets you quickly write expressive and robust acceptance tests
19
- for a Ruby web application. It supports simulating a browser inside
20
- a Ruby process to avoid the performance hit and browser dependency of
21
- Selenium or Watir, but the same API can also be used to drive real
22
- Selenium tests when necessary (eg. for testing AJAX interactions).
23
- Most Ruby web frameworks and testing frameworks are supported.
24
- EOS
25
-
26
- s.rubyforge_project = "honkster-webrat"
27
- s.extra_rdoc_files = %w[README.rdoc MIT-LICENSE.txt History.txt]
28
-
29
- # Dependencies
30
- s.add_dependency "nokogiri", ">= 1.2.0"
31
- s.add_dependency "rack", ">= 1.0"
32
-
33
- s.add_development_dependency "rails", ">= 2.3"
34
- s.add_development_dependency "merb-core", ">= 1.0"
35
- s.add_development_dependency "launchy"
36
- end
37
-
38
- Jeweler::RubyforgeTasks.new
39
- end
40
-
41
3
  begin
42
4
  require 'spec/rake/spectask'
43
5
  rescue LoadError
@@ -179,10 +141,4 @@ desc 'Removes trailing whitespace'
179
141
  task :whitespace do
180
142
  sh %{find . -name '*.rb' -exec sed -i '' 's/ *$//g' {} \\;}
181
143
  end
182
-
183
- if defined?(Jeweler)
184
- task :spec => :check_dependencies
185
- task :build => :gemspec
186
- end
187
-
188
144
  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 = "honkster-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("honkster-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 honkster-webrat.gemspec"
68
+ def gemspec
69
+ File.open("honkster-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 honkster-webrat.gemspec"
79
+ read_gemspec.validate
80
+ end
81
+
82
+ desc "build", "Build a webrat gem"
83
+ def build
84
+ sh "gem build honkster-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
@@ -0,0 +1,348 @@
1
+ # -*- encoding: utf-8 -*-
2
+
3
+ Gem::Specification.new do |s|
4
+ s.name = %q{honkster-webrat}
5
+ s.version = "0.6.0.9"
6
+
7
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
8
+ s.authors = ["Bryan Helmkamp"]
9
+ s.date = %q{2009-12-21}
10
+ s.description = %q{Webrat lets you quickly write expressive and robust acceptance tests
11
+ for a Ruby web application. It supports simulating a browser inside
12
+ a Ruby process to avoid the performance hit and browser dependency of
13
+ Selenium or Watir, but the same API can also be used to drive real
14
+ Selenium tests when necessary (eg. for testing AJAX interactions).
15
+ Most Ruby web frameworks and testing frameworks are supported.}
16
+ s.email = %q{bryan@brynary.com}
17
+ s.extra_rdoc_files = [
18
+ "README.rdoc",
19
+ "MIT-LICENSE.txt",
20
+ "History.txt"
21
+ ]
22
+ s.files = [
23
+ ".document",
24
+ ".gitignore",
25
+ "Gemfile",
26
+ "History.txt",
27
+ "MIT-LICENSE.txt",
28
+ "README.rdoc",
29
+ "Rakefile",
30
+ "Thorfile",
31
+ "honkster-webrat.gemspec",
32
+ "install.rb",
33
+ "lib/webrat.rb",
34
+ "lib/webrat/adapters/mechanize.rb",
35
+ "lib/webrat/adapters/merb.rb",
36
+ "lib/webrat/adapters/rack.rb",
37
+ "lib/webrat/adapters/rails.rb",
38
+ "lib/webrat/adapters/sinatra.rb",
39
+ "lib/webrat/core.rb",
40
+ "lib/webrat/core/configuration.rb",
41
+ "lib/webrat/core/elements/area.rb",
42
+ "lib/webrat/core/elements/element.rb",
43
+ "lib/webrat/core/elements/field.rb",
44
+ "lib/webrat/core/elements/form.rb",
45
+ "lib/webrat/core/elements/label.rb",
46
+ "lib/webrat/core/elements/link.rb",
47
+ "lib/webrat/core/elements/select_option.rb",
48
+ "lib/webrat/core/locators.rb",
49
+ "lib/webrat/core/locators/area_locator.rb",
50
+ "lib/webrat/core/locators/button_locator.rb",
51
+ "lib/webrat/core/locators/field_by_id_locator.rb",
52
+ "lib/webrat/core/locators/field_labeled_locator.rb",
53
+ "lib/webrat/core/locators/field_locator.rb",
54
+ "lib/webrat/core/locators/field_named_locator.rb",
55
+ "lib/webrat/core/locators/form_locator.rb",
56
+ "lib/webrat/core/locators/label_locator.rb",
57
+ "lib/webrat/core/locators/link_locator.rb",
58
+ "lib/webrat/core/locators/locator.rb",
59
+ "lib/webrat/core/locators/select_option_locator.rb",
60
+ "lib/webrat/core/logging.rb",
61
+ "lib/webrat/core/matchers.rb",
62
+ "lib/webrat/core/matchers/have_content.rb",
63
+ "lib/webrat/core/matchers/have_selector.rb",
64
+ "lib/webrat/core/matchers/have_tag.rb",
65
+ "lib/webrat/core/matchers/have_xpath.rb",
66
+ "lib/webrat/core/methods.rb",
67
+ "lib/webrat/core/mime.rb",
68
+ "lib/webrat/core/save_and_open_page.rb",
69
+ "lib/webrat/core/scope.rb",
70
+ "lib/webrat/core/session.rb",
71
+ "lib/webrat/core/xml.rb",
72
+ "lib/webrat/core_extensions/blank.rb",
73
+ "lib/webrat/core_extensions/deprecate.rb",
74
+ "lib/webrat/core_extensions/detect_mapped.rb",
75
+ "lib/webrat/core_extensions/meta_class.rb",
76
+ "lib/webrat/core_extensions/nil_to_param.rb",
77
+ "lib/webrat/core_extensions/tcp_socket.rb",
78
+ "lib/webrat/integrations/merb.rb",
79
+ "lib/webrat/integrations/rails.rb",
80
+ "lib/webrat/integrations/rspec-rails.rb",
81
+ "lib/webrat/integrations/selenium.rb",
82
+ "lib/webrat/merb.rb",
83
+ "lib/webrat/rspec-rails.rb",
84
+ "lib/webrat/selenium.rb",
85
+ "lib/webrat/selenium/application_server_factory.rb",
86
+ "lib/webrat/selenium/application_servers.rb",
87
+ "lib/webrat/selenium/application_servers/base.rb",
88
+ "lib/webrat/selenium/application_servers/external.rb",
89
+ "lib/webrat/selenium/application_servers/merb.rb",
90
+ "lib/webrat/selenium/application_servers/rails.rb",
91
+ "lib/webrat/selenium/application_servers/sinatra.rb",
92
+ "lib/webrat/selenium/location_strategy_javascript/button.js",
93
+ "lib/webrat/selenium/location_strategy_javascript/label.js",
94
+ "lib/webrat/selenium/location_strategy_javascript/webrat.js",
95
+ "lib/webrat/selenium/location_strategy_javascript/webratlink.js",
96
+ "lib/webrat/selenium/location_strategy_javascript/webratlinkwithin.js",
97
+ "lib/webrat/selenium/location_strategy_javascript/webratselectwithoption.js",
98
+ "lib/webrat/selenium/matchers.rb",
99
+ "lib/webrat/selenium/matchers/have_content.rb",
100
+ "lib/webrat/selenium/matchers/have_selector.rb",
101
+ "lib/webrat/selenium/matchers/have_tag.rb",
102
+ "lib/webrat/selenium/matchers/have_xpath.rb",
103
+ "lib/webrat/selenium/selenium_extensions.js",
104
+ "lib/webrat/selenium/selenium_rc_server.rb",
105
+ "lib/webrat/selenium/selenium_session.rb",
106
+ "lib/webrat/selenium/silence_stream.rb",
107
+ "spec/fakes/test_adapter.rb",
108
+ "spec/integration/mechanize/Rakefile",
109
+ "spec/integration/mechanize/config.ru",
110
+ "spec/integration/mechanize/sample_app.rb",
111
+ "spec/integration/mechanize/spec/mechanize_spec.rb",
112
+ "spec/integration/mechanize/spec/spec_helper.rb",
113
+ "spec/integration/merb/.gitignore",
114
+ "spec/integration/merb/Rakefile",
115
+ "spec/integration/merb/app/controllers/application.rb",
116
+ "spec/integration/merb/app/controllers/exceptions.rb",
117
+ "spec/integration/merb/app/controllers/testing.rb",
118
+ "spec/integration/merb/app/views/exceptions/not_acceptable.html.erb",
119
+ "spec/integration/merb/app/views/exceptions/not_found.html.erb",
120
+ "spec/integration/merb/app/views/layout/application.html.erb",
121
+ "spec/integration/merb/app/views/testing/show_form.html.erb",
122
+ "spec/integration/merb/app/views/testing/upload.html.erb",
123
+ "spec/integration/merb/config/environments/development.rb",
124
+ "spec/integration/merb/config/environments/rake.rb",
125
+ "spec/integration/merb/config/environments/test.rb",
126
+ "spec/integration/merb/config/init.rb",
127
+ "spec/integration/merb/config/rack.rb",
128
+ "spec/integration/merb/config/router.rb",
129
+ "spec/integration/merb/spec/spec.opts",
130
+ "spec/integration/merb/spec/spec_helper.rb",
131
+ "spec/integration/merb/spec/webrat_spec.rb",
132
+ "spec/integration/merb/tasks/merb.thor/app_script.rb",
133
+ "spec/integration/merb/tasks/merb.thor/common.rb",
134
+ "spec/integration/merb/tasks/merb.thor/gem_ext.rb",
135
+ "spec/integration/merb/tasks/merb.thor/main.thor",
136
+ "spec/integration/merb/tasks/merb.thor/ops.rb",
137
+ "spec/integration/merb/tasks/merb.thor/utils.rb",
138
+ "spec/integration/rack/Rakefile",
139
+ "spec/integration/rack/app.rb",
140
+ "spec/integration/rack/test/helper.rb",
141
+ "spec/integration/rack/test/webrat_rack_test.rb",
142
+ "spec/integration/rails/.gitignore",
143
+ "spec/integration/rails/Rakefile",
144
+ "spec/integration/rails/app/controllers/application_controller.rb",
145
+ "spec/integration/rails/app/controllers/buttons_controller.rb",
146
+ "spec/integration/rails/app/controllers/fields_controller.rb",
147
+ "spec/integration/rails/app/controllers/links_controller.rb",
148
+ "spec/integration/rails/app/controllers/webrat_controller.rb",
149
+ "spec/integration/rails/app/helpers/buttons_helper.rb",
150
+ "spec/integration/rails/app/helpers/fields_helper.rb",
151
+ "spec/integration/rails/app/helpers/links_helper.rb",
152
+ "spec/integration/rails/app/views/buttons/show.html.erb",
153
+ "spec/integration/rails/app/views/fields/show.html.erb",
154
+ "spec/integration/rails/app/views/links/show.html.erb",
155
+ "spec/integration/rails/app/views/webrat/before_redirect_form.html.erb",
156
+ "spec/integration/rails/app/views/webrat/buttons.html.erb",
157
+ "spec/integration/rails/app/views/webrat/form.html.erb",
158
+ "spec/integration/rails/app/views/webrat/within.html.erb",
159
+ "spec/integration/rails/config/boot.rb",
160
+ "spec/integration/rails/config/environment.rb",
161
+ "spec/integration/rails/config/environments/development.rb",
162
+ "spec/integration/rails/config/environments/selenium.rb",
163
+ "spec/integration/rails/config/environments/test.rb",
164
+ "spec/integration/rails/config/initializers/inflections.rb",
165
+ "spec/integration/rails/config/initializers/mime_types.rb",
166
+ "spec/integration/rails/config/initializers/new_rails_defaults.rb",
167
+ "spec/integration/rails/config/locales/en.yml",
168
+ "spec/integration/rails/config/routes.rb",
169
+ "spec/integration/rails/public/404.html",
170
+ "spec/integration/rails/public/422.html",
171
+ "spec/integration/rails/public/500.html",
172
+ "spec/integration/rails/script/about",
173
+ "spec/integration/rails/script/console",
174
+ "spec/integration/rails/script/dbconsole",
175
+ "spec/integration/rails/script/destroy",
176
+ "spec/integration/rails/script/generate",
177
+ "spec/integration/rails/script/performance/benchmarker",
178
+ "spec/integration/rails/script/performance/profiler",
179
+ "spec/integration/rails/script/performance/request",
180
+ "spec/integration/rails/script/plugin",
181
+ "spec/integration/rails/script/process/inspector",
182
+ "spec/integration/rails/script/process/reaper",
183
+ "spec/integration/rails/script/process/spawner",
184
+ "spec/integration/rails/script/runner",
185
+ "spec/integration/rails/script/server",
186
+ "spec/integration/rails/test/integration/button_click_test.rb",
187
+ "spec/integration/rails/test/integration/fill_in_test.rb",
188
+ "spec/integration/rails/test/integration/link_click_test.rb",
189
+ "spec/integration/rails/test/integration/webrat_test.rb",
190
+ "spec/integration/rails/test/test_helper.rb",
191
+ "spec/integration/sinatra/Rakefile",
192
+ "spec/integration/sinatra/classic_app.rb",
193
+ "spec/integration/sinatra/modular_app.rb",
194
+ "spec/integration/sinatra/test/classic_app_test.rb",
195
+ "spec/integration/sinatra/test/modular_app_test.rb",
196
+ "spec/integration/sinatra/test/test_helper.rb",
197
+ "spec/private/core/configuration_spec.rb",
198
+ "spec/private/core/field_spec.rb",
199
+ "spec/private/core/link_spec.rb",
200
+ "spec/private/core/session_spec.rb",
201
+ "spec/private/mechanize/mechanize_adapter_spec.rb",
202
+ "spec/private/nokogiri_spec.rb",
203
+ "spec/private/rails/attaches_file_spec.rb",
204
+ "spec/private/rails/rails_adapter_spec.rb",
205
+ "spec/private/selenium/application_servers/rails_spec.rb",
206
+ "spec/public/basic_auth_spec.rb",
207
+ "spec/public/check_spec.rb",
208
+ "spec/public/choose_spec.rb",
209
+ "spec/public/click_area_spec.rb",
210
+ "spec/public/click_button_spec.rb",
211
+ "spec/public/click_link_spec.rb",
212
+ "spec/public/fill_in_spec.rb",
213
+ "spec/public/locators/field_by_xpath_spec.rb",
214
+ "spec/public/locators/field_labeled_spec.rb",
215
+ "spec/public/locators/field_with_id_spec.rb",
216
+ "spec/public/matchers/contain_spec.rb",
217
+ "spec/public/matchers/have_selector_spec.rb",
218
+ "spec/public/matchers/have_tag_spec.rb",
219
+ "spec/public/matchers/have_xpath_spec.rb",
220
+ "spec/public/reload_spec.rb",
221
+ "spec/public/save_and_open_spec.rb",
222
+ "spec/public/select_date_spec.rb",
223
+ "spec/public/select_datetime_spec.rb",
224
+ "spec/public/select_spec.rb",
225
+ "spec/public/select_time_spec.rb",
226
+ "spec/public/selenium/application_server_factory_spec.rb",
227
+ "spec/public/selenium/application_servers/external_spec.rb",
228
+ "spec/public/selenium/selenium_session_spec.rb",
229
+ "spec/public/set_hidden_field_spec.rb",
230
+ "spec/public/submit_form_spec.rb",
231
+ "spec/public/visit_spec.rb",
232
+ "spec/public/within_spec.rb",
233
+ "spec/rcov.opts",
234
+ "spec/spec.opts",
235
+ "spec/spec_helper.rb",
236
+ "vendor/selenium-server.jar"
237
+ ]
238
+ s.homepage = %q{http://github.com/brynary/webrat}
239
+ s.require_paths = ["lib"]
240
+ s.rubyforge_project = %q{webrat}
241
+ s.rubygems_version = %q{1.3.5}
242
+ s.summary = %q{Ruby Acceptance Testing for Web applications}
243
+ s.test_files = [
244
+ "spec/fakes/test_adapter.rb",
245
+ "spec/integration/mechanize/sample_app.rb",
246
+ "spec/integration/mechanize/spec/mechanize_spec.rb",
247
+ "spec/integration/mechanize/spec/spec_helper.rb",
248
+ "spec/integration/merb/app/controllers/application.rb",
249
+ "spec/integration/merb/app/controllers/exceptions.rb",
250
+ "spec/integration/merb/app/controllers/testing.rb",
251
+ "spec/integration/merb/config/environments/development.rb",
252
+ "spec/integration/merb/config/environments/rake.rb",
253
+ "spec/integration/merb/config/environments/test.rb",
254
+ "spec/integration/merb/config/init.rb",
255
+ "spec/integration/merb/config/rack.rb",
256
+ "spec/integration/merb/config/router.rb",
257
+ "spec/integration/merb/spec/spec_helper.rb",
258
+ "spec/integration/merb/spec/webrat_spec.rb",
259
+ "spec/integration/merb/tasks/merb.thor/app_script.rb",
260
+ "spec/integration/merb/tasks/merb.thor/common.rb",
261
+ "spec/integration/merb/tasks/merb.thor/gem_ext.rb",
262
+ "spec/integration/merb/tasks/merb.thor/ops.rb",
263
+ "spec/integration/merb/tasks/merb.thor/utils.rb",
264
+ "spec/integration/rack/app.rb",
265
+ "spec/integration/rack/test/helper.rb",
266
+ "spec/integration/rack/test/webrat_rack_test.rb",
267
+ "spec/integration/rails/app/controllers/application_controller.rb",
268
+ "spec/integration/rails/app/controllers/buttons_controller.rb",
269
+ "spec/integration/rails/app/controllers/fields_controller.rb",
270
+ "spec/integration/rails/app/controllers/links_controller.rb",
271
+ "spec/integration/rails/app/controllers/webrat_controller.rb",
272
+ "spec/integration/rails/app/helpers/buttons_helper.rb",
273
+ "spec/integration/rails/app/helpers/fields_helper.rb",
274
+ "spec/integration/rails/app/helpers/links_helper.rb",
275
+ "spec/integration/rails/config/boot.rb",
276
+ "spec/integration/rails/config/environment.rb",
277
+ "spec/integration/rails/config/environments/development.rb",
278
+ "spec/integration/rails/config/environments/selenium.rb",
279
+ "spec/integration/rails/config/environments/test.rb",
280
+ "spec/integration/rails/config/initializers/inflections.rb",
281
+ "spec/integration/rails/config/initializers/mime_types.rb",
282
+ "spec/integration/rails/config/initializers/new_rails_defaults.rb",
283
+ "spec/integration/rails/config/routes.rb",
284
+ "spec/integration/rails/test/integration/button_click_test.rb",
285
+ "spec/integration/rails/test/integration/fill_in_test.rb",
286
+ "spec/integration/rails/test/integration/link_click_test.rb",
287
+ "spec/integration/rails/test/integration/webrat_test.rb",
288
+ "spec/integration/rails/test/test_helper.rb",
289
+ "spec/integration/sinatra/classic_app.rb",
290
+ "spec/integration/sinatra/modular_app.rb",
291
+ "spec/integration/sinatra/test/classic_app_test.rb",
292
+ "spec/integration/sinatra/test/modular_app_test.rb",
293
+ "spec/integration/sinatra/test/test_helper.rb",
294
+ "spec/private/core/configuration_spec.rb",
295
+ "spec/private/core/field_spec.rb",
296
+ "spec/private/core/link_spec.rb",
297
+ "spec/private/core/session_spec.rb",
298
+ "spec/private/mechanize/mechanize_adapter_spec.rb",
299
+ "spec/private/nokogiri_spec.rb",
300
+ "spec/private/rails/attaches_file_spec.rb",
301
+ "spec/private/rails/rails_adapter_spec.rb",
302
+ "spec/private/selenium/application_servers/rails_spec.rb",
303
+ "spec/public/basic_auth_spec.rb",
304
+ "spec/public/check_spec.rb",
305
+ "spec/public/choose_spec.rb",
306
+ "spec/public/click_area_spec.rb",
307
+ "spec/public/click_button_spec.rb",
308
+ "spec/public/click_link_spec.rb",
309
+ "spec/public/fill_in_spec.rb",
310
+ "spec/public/locators/field_by_xpath_spec.rb",
311
+ "spec/public/locators/field_labeled_spec.rb",
312
+ "spec/public/locators/field_with_id_spec.rb",
313
+ "spec/public/matchers/contain_spec.rb",
314
+ "spec/public/matchers/have_selector_spec.rb",
315
+ "spec/public/matchers/have_tag_spec.rb",
316
+ "spec/public/matchers/have_xpath_spec.rb",
317
+ "spec/public/reload_spec.rb",
318
+ "spec/public/save_and_open_spec.rb",
319
+ "spec/public/select_date_spec.rb",
320
+ "spec/public/select_datetime_spec.rb",
321
+ "spec/public/select_spec.rb",
322
+ "spec/public/select_time_spec.rb",
323
+ "spec/public/selenium/application_server_factory_spec.rb",
324
+ "spec/public/selenium/application_servers/external_spec.rb",
325
+ "spec/public/selenium/selenium_session_spec.rb",
326
+ "spec/public/set_hidden_field_spec.rb",
327
+ "spec/public/submit_form_spec.rb",
328
+ "spec/public/visit_spec.rb",
329
+ "spec/public/within_spec.rb",
330
+ "spec/spec_helper.rb"
331
+ ]
332
+
333
+ if s.respond_to? :specification_version then
334
+ current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
335
+ s.specification_version = 3
336
+
337
+ if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
338
+ s.add_runtime_dependency(%q<nokogiri>, [">= 1.2.0"])
339
+ s.add_runtime_dependency(%q<rack>, [">= 1.0"])
340
+ else
341
+ s.add_dependency(%q<nokogiri>, [">= 1.2.0"])
342
+ s.add_dependency(%q<rack>, [">= 1.0"])
343
+ end
344
+ else
345
+ s.add_dependency(%q<nokogiri>, [">= 1.2.0"])
346
+ s.add_dependency(%q<rack>, [">= 1.0"])
347
+ end
348
+ end
@@ -58,6 +58,9 @@ module Webrat
58
58
  # loop? Defaults to 10
59
59
  attr_accessor :infinite_redirect_limit
60
60
 
61
+ # How long to wait for Selenium actions unless overridden. Defaults to 10 seconds.
62
+ attr_accessor :default_timeout_in_seconds
63
+
61
64
  def initialize # :nodoc:
62
65
  self.open_error_files = true
63
66
  self.application_environment = :test
@@ -66,6 +69,7 @@ module Webrat
66
69
  self.application_framework = :rails
67
70
  self.selenium_server_port = 4444
68
71
  self.infinite_redirect_limit = 10
72
+ self.default_timeout_in_seconds = 10
69
73
  self.selenium_browser_key = '*firefox'
70
74
  self.selenium_browser_startup_timeout = 5
71
75
  end
@@ -53,7 +53,7 @@ module Webrat
53
53
 
54
54
  def authenticity_token
55
55
  return unless onclick && onclick.include?("s.setAttribute('name', 'authenticity_token');") &&
56
- onclick =~ /s\.setAttribute\('value', '([a-f0-9]{40})'\);/
56
+ ( onclick =~ /s\.setAttribute\('value', '([a-f0-9]{40})'\);/ || onclick =~ /s\.setAttribute\('value', '(.{44})'\);/ )
57
57
  $LAST_MATCH_INFO.captures.first
58
58
  end
59
59
 
@@ -16,7 +16,21 @@ module Webrat
16
16
  def matching_links
17
17
  @matching_links ||= link_elements.select do |link_element|
18
18
  matches_text?(link_element) ||
19
- matches_id?(link_element)
19
+ matches_id?(link_element) ||
20
+ matches_img?(link_element)
21
+ end
22
+ end
23
+
24
+ def matches_img?(link)
25
+ if @value.is_a?(Regexp)
26
+ matcher = @value
27
+ else
28
+ matcher = /#{Regexp.escape(@value.to_s)}/i
29
+ end
30
+
31
+ link.css("img").any? do |img|
32
+ img["title"] =~ matcher ||
33
+ img["src"] =~ matcher
20
34
  end
21
35
  end
22
36
 
@@ -28,7 +42,6 @@ module Webrat
28
42
  end
29
43
 
30
44
  replace_nbsp(link.inner_text) =~ matcher ||
31
- replace_nbsp_ref(link.inner_html) =~ matcher ||
32
45
  link["title"] =~ matcher
33
46
  end
34
47
 
@@ -105,7 +105,7 @@ For example:
105
105
  end
106
106
 
107
107
  def basic_auth(user, pass)
108
- encoded_login = ["#{user}:#{pass}"].pack("m*")
108
+ encoded_login = ["#{user}:#{pass}"].pack("m*").gsub(/\n/, '')
109
109
  header('HTTP_AUTHORIZATION', "Basic #{encoded_login}")
110
110
  end
111
111
 
@@ -1,8 +1,9 @@
1
1
  # Supports using the matchers in controller, helper, and view specs if you're
2
2
  # using rspec-rails. Just add a require statement to spec/spec_helper.rb or env.rb:
3
3
  #
4
- # require 'webrat/rspec-rails'
4
+ # require 'webrat/integrations/rspec-rails'
5
5
  #
6
+ require "nokogiri"
6
7
  require "webrat/core/matchers"
7
8
 
8
9
  Spec::Runner.configure do |config|