davidtrogers-webrat 0.4.4.2 → 0.7.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (145) hide show
  1. data/.gitignore +3 -1
  2. data/Gemfile +19 -0
  3. data/History.txt +99 -9
  4. data/Rakefile +141 -207
  5. data/Thorfile +118 -0
  6. data/lib/webrat.rb +10 -23
  7. data/lib/webrat/{mechanize.rb → adapters/mechanize.rb} +6 -2
  8. data/lib/webrat/adapters/merb.rb +11 -0
  9. data/lib/webrat/adapters/rack.rb +25 -0
  10. data/lib/webrat/{rails.rb → adapters/rails.rb} +5 -37
  11. data/lib/webrat/adapters/sinatra.rb +9 -0
  12. data/lib/webrat/core.rb +0 -1
  13. data/lib/webrat/core/configuration.rb +22 -18
  14. data/lib/webrat/core/elements/area.rb +2 -2
  15. data/lib/webrat/core/elements/element.rb +3 -3
  16. data/lib/webrat/core/elements/field.rb +113 -31
  17. data/lib/webrat/core/elements/form.rb +4 -4
  18. data/lib/webrat/core/elements/label.rb +4 -4
  19. data/lib/webrat/core/elements/link.rb +8 -7
  20. data/lib/webrat/core/elements/select_option.rb +15 -2
  21. data/lib/webrat/core/locators.rb +1 -1
  22. data/lib/webrat/core/locators/area_locator.rb +3 -3
  23. data/lib/webrat/core/locators/button_locator.rb +6 -6
  24. data/lib/webrat/core/locators/field_by_id_locator.rb +3 -3
  25. data/lib/webrat/core/locators/field_labeled_locator.rb +2 -2
  26. data/lib/webrat/core/locators/field_named_locator.rb +3 -3
  27. data/lib/webrat/core/locators/form_locator.rb +1 -1
  28. data/lib/webrat/core/locators/label_locator.rb +2 -2
  29. data/lib/webrat/core/locators/link_locator.rb +16 -8
  30. data/lib/webrat/core/locators/select_option_locator.rb +5 -5
  31. data/lib/webrat/core/logging.rb +4 -5
  32. data/lib/webrat/core/matchers/have_content.rb +3 -8
  33. data/lib/webrat/core/matchers/have_xpath.rb +3 -28
  34. data/lib/webrat/core/methods.rb +5 -4
  35. data/lib/webrat/core/mime.rb +11 -22
  36. data/lib/webrat/core/save_and_open_page.rb +7 -29
  37. data/lib/webrat/core/scope.rb +17 -2
  38. data/lib/webrat/core/session.rb +31 -19
  39. data/lib/webrat/core/xml.rb +41 -84
  40. data/lib/webrat/integrations/merb.rb +10 -0
  41. data/lib/webrat/integrations/rails.rb +25 -0
  42. data/lib/webrat/integrations/rspec-rails.rb +11 -0
  43. data/lib/webrat/integrations/selenium.rb +11 -0
  44. data/lib/webrat/rspec-rails.rb +2 -13
  45. data/lib/webrat/selenium.rb +0 -11
  46. data/lib/webrat/selenium/application_server_factory.rb +40 -0
  47. data/lib/webrat/selenium/application_servers.rb +5 -0
  48. data/lib/webrat/selenium/application_servers/base.rb +46 -0
  49. data/lib/webrat/selenium/application_servers/external.rb +26 -0
  50. data/lib/webrat/selenium/application_servers/merb.rb +50 -0
  51. data/lib/webrat/selenium/application_servers/rails.rb +44 -0
  52. data/lib/webrat/selenium/application_servers/sinatra.rb +37 -0
  53. data/lib/webrat/selenium/location_strategy_javascript/label.js +30 -3
  54. data/lib/webrat/selenium/location_strategy_javascript/webrat.js +1 -0
  55. data/lib/webrat/selenium/location_strategy_javascript/webratlink.js +24 -4
  56. data/lib/webrat/selenium/matchers/have_content.rb +22 -10
  57. data/lib/webrat/selenium/matchers/have_selector.rb +8 -0
  58. data/lib/webrat/selenium/matchers/have_xpath.rb +8 -0
  59. data/lib/webrat/selenium/selenium_rc_server.rb +8 -6
  60. data/lib/webrat/selenium/selenium_session.rb +43 -14
  61. data/lib/webrat/selenium/silence_stream.rb +2 -2
  62. data/spec/fakes/{test_session.rb → test_adapter.rb} +4 -5
  63. data/spec/integration/mechanize/Rakefile +7 -0
  64. data/spec/integration/mechanize/config.ru +2 -0
  65. data/spec/integration/mechanize/sample_app.rb +20 -0
  66. data/spec/integration/mechanize/spec/mechanize_spec.rb +22 -0
  67. data/spec/integration/mechanize/spec/spec_helper.rb +29 -0
  68. data/spec/integration/merb/app/controllers/testing.rb +9 -0
  69. data/spec/integration/merb/app/views/testing/upload.html.erb +9 -0
  70. data/spec/integration/merb/config/router.rb +1 -0
  71. data/spec/integration/merb/spec/spec_helper.rb +2 -0
  72. data/spec/integration/merb/spec/webrat_spec.rb +7 -0
  73. data/spec/integration/rack/app.rb +89 -0
  74. data/spec/integration/rack/test/helper.rb +21 -0
  75. data/spec/integration/rack/test/webrat_rack_test.rb +57 -51
  76. data/spec/integration/rails/app/controllers/{application.rb → application_controller.rb} +0 -0
  77. data/spec/integration/rails/app/controllers/webrat_controller.rb +16 -9
  78. data/spec/integration/rails/app/views/buttons/show.html.erb +0 -2
  79. data/spec/integration/rails/app/views/links/show.html.erb +2 -1
  80. data/spec/integration/rails/app/views/webrat/buttons.html.erb +0 -2
  81. data/spec/integration/rails/app/views/webrat/within.html.erb +3 -0
  82. data/spec/integration/rails/config/environment.rb +1 -1
  83. data/spec/integration/rails/config/routes.rb +2 -0
  84. data/spec/integration/rails/test/integration/button_click_test.rb +12 -26
  85. data/spec/integration/rails/test/integration/fill_in_test.rb +1 -1
  86. data/spec/integration/rails/test/integration/link_click_test.rb +8 -2
  87. data/spec/integration/rails/test/integration/webrat_test.rb +53 -5
  88. data/spec/integration/rails/test/test_helper.rb +7 -5
  89. data/spec/integration/sinatra/test/test_helper.rb +3 -2
  90. data/spec/private/core/configuration_spec.rb +8 -27
  91. data/spec/private/core/field_spec.rb +14 -16
  92. data/spec/private/core/link_spec.rb +1 -1
  93. data/spec/private/core/session_spec.rb +23 -26
  94. data/spec/private/mechanize/{mechanize_session_spec.rb → mechanize_adapter_spec.rb} +4 -12
  95. data/spec/private/nokogiri_spec.rb +2 -2
  96. data/spec/private/rails/{rails_session_spec.rb → rails_adapter_spec.rb} +11 -42
  97. data/spec/private/selenium/application_servers/rails_spec.rb +26 -0
  98. data/spec/public/basic_auth_spec.rb +13 -2
  99. data/spec/public/click_button_spec.rb +10 -12
  100. data/spec/public/click_link_spec.rb +21 -0
  101. data/spec/public/fill_in_spec.rb +15 -0
  102. data/spec/public/matchers/contain_spec.rb +12 -19
  103. data/spec/public/matchers/have_selector_spec.rb +6 -2
  104. data/spec/public/matchers/have_xpath_spec.rb +3 -3
  105. data/spec/public/save_and_open_spec.rb +15 -17
  106. data/spec/public/select_spec.rb +232 -26
  107. data/spec/public/selenium/application_server_factory_spec.rb +49 -0
  108. data/spec/public/selenium/application_servers/external_spec.rb +12 -0
  109. data/spec/public/selenium/selenium_session_spec.rb +37 -0
  110. data/spec/spec_helper.rb +5 -1
  111. data/vendor/selenium-server.jar +0 -0
  112. metadata +119 -69
  113. data/.dotest/0001 +0 -34
  114. data/.dotest/0002 +0 -34
  115. data/.dotest/binary +0 -1
  116. data/.dotest/final-commit +0 -1
  117. data/.dotest/head-name +0 -1
  118. data/.dotest/info +0 -5
  119. data/.dotest/keep +0 -1
  120. data/.dotest/last +0 -1
  121. data/.dotest/msg +0 -0
  122. data/.dotest/msg-clean +0 -0
  123. data/.dotest/next +0 -1
  124. data/.dotest/onto +0 -1
  125. data/.dotest/orig-head +0 -1
  126. data/.dotest/patch +0 -29
  127. data/.dotest/sign +0 -1
  128. data/.dotest/utf8 +0 -1
  129. data/.dotest/whitespace +0 -1
  130. data/VERSION +0 -1
  131. data/lib/webrat/core/xml/hpricot.rb +0 -19
  132. data/lib/webrat/core/xml/nokogiri.rb +0 -76
  133. data/lib/webrat/core/xml/rexml.rb +0 -24
  134. data/lib/webrat/merb_session.rb +0 -65
  135. data/lib/webrat/rack.rb +0 -24
  136. data/lib/webrat/rack_test.rb +0 -32
  137. data/lib/webrat/selenium/application_server.rb +0 -73
  138. data/lib/webrat/selenium/merb_application_server.rb +0 -48
  139. data/lib/webrat/selenium/rails_application_server.rb +0 -42
  140. data/lib/webrat/selenium/sinatra_application_server.rb +0 -35
  141. data/lib/webrat/sinatra.rb +0 -44
  142. data/spec/integration/rack/rack_app.rb +0 -16
  143. data/spec/integration/rack/test/test_helper.rb +0 -20
  144. data/spec/private/core/logging_spec.rb +0 -10
  145. data/spec/private/merb/merb_session_spec.rb +0 -42
data/.gitignore CHANGED
@@ -1,5 +1,4 @@
1
1
  coverage
2
- *.gem
3
2
  .DS_Store
4
3
  pkg
5
4
  doc
@@ -14,3 +13,6 @@ results
14
13
  test_apps
15
14
  *.tmproj
16
15
  *.log
16
+ *.pid
17
+ bin
18
+ 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,11 +1,95 @@
1
- == 0.4.5 / ?
1
+ * Minor enhancements
2
+
3
+ * Added application_port_for_selenium to webrat configuration. The use case is when you want to test through a web server sitting in front of your application server. (Luke Melia)
4
+
5
+ == 0.7.0 / 2010-01-17
2
6
 
3
7
  * Major enhancements
4
8
 
9
+ * Upgrade bundled Selenium server JAR to 2.0a1 (Henry Poydar and Jake Scruggs)
10
+
11
+ * Minor enhancements
12
+
13
+ * Save and open page directory specified via configuration, defaults to tmp dir otherwise current dir (Noah Davis)
14
+
15
+ * Bug fixes
16
+
17
+ * Added missing dependency "rack-test" to gemspec (LH #339) (Noah Davis)
18
+ * Removed save_and_open_page's rewriting of static asset paths before saving (was not actually working) (Noah Davis)
19
+ * Make "should contain" ignore extra whitespace when doing string comparisons (Noah Davis)
20
+ * Make selenium matchers handle negative match more consistently with positive match (Luke Melia)
21
+
22
+ == 0.6.0 / 2009-11-28
23
+
24
+ REMOVED: Support for Hpricot + REXML as an alternative to Nokogiri.
25
+
26
+ Hpricot and REXML were difficult to work with, REXML is terribly slow,
27
+ and Nokogiri is recommended even by the author of Hpricot (_why). Now
28
+ that Nokogiri works on JRuby, Webrat is going to use it as its sole
29
+ XML backend.
30
+
31
+ CHANGED: Due to a reorganization, if you're currently requiring "webrat/rspec-rails",
32
+ please change your code to require "webrat/integrations/rspec-rails"
33
+
34
+ * Minor enhancements
35
+
36
+ * Support Rails 2.3.4 JavaScript form authenticity tokens in simulated mode (Jonathan Weiss)
37
+ * When a timeout occurs in wait_for, include the HTML from Selenium in the exception
38
+ * Update the Merb support to be based directly on Rack (Simon Rozet)
39
+ * Support multiple select fields (Kieran P)
40
+ * When locating select options, always match against text, not HTML
41
+
42
+ * Bug fixes
43
+
44
+ * Remove newlines from HTTP Basic authentication credentials (Michael Klett)
45
+ * Require nokogiri form rspec-rails.rb (David Chelimsky)
46
+ * Fix logger issue when running inside Cucumber (Damian Janowski)
47
+ * Fix various issues related to submitting values with HTML entities (Kieran P)
48
+ * Call #to_i on the :count option in matchers (Michael Christenson II)
49
+ * Fix bug where multiline param values were getting truncated
50
+
51
+ == 0.5.3 / 2009-08-27
52
+
53
+ * Minor enhancements
54
+
55
+ * Remove unnecessary requires which are to the wrong paths on Edge Rails
56
+
57
+ == 0.5.1 / 2009-08-18
58
+
59
+ * Minor enhancements
60
+
61
+ * Base Webrat::MIME on Rack::Mime (Simon Rozet)
62
+ * Support file uploads in Rack mode (Simon Rozet)
63
+
64
+ * Bug fixes
65
+
66
+ * Fix bug in Webrat::Methods preventing Selenium mode from working [#277]
67
+
68
+ == 0.5.0 / 2009-08-12
69
+
70
+ * Major enhancements
71
+
72
+ * Depreacate :rack_test and :sinatra in favor of :rack, which uses Rack::Test (Simon Rozet)
73
+
74
+ * Minor enhancements
75
+
76
+ * Don't require rubygems at runtime (Simon Rozet)
77
+
78
+ == 0.4.5 / 2009-08-10
79
+
80
+ * Major enhancements
81
+
82
+ * Ruby 1.9 compatibility (Michael Fellinger, Jakub Kuźma)
5
83
  * Improve performance (~2x) on JRuby by supporting Nokogiri
84
+ * Added support for external app servers in selenium mode (basically don't start one) (Mike Gaffney)
85
+ * Added support for uploading files for Merb (Ryan Carver)
6
86
 
7
87
  * Minor enhancements
8
88
 
89
+ * Upgrade to selenium-client to 1.2.16 (Brian Landau)
90
+ * Upgrade selenium-server.jar to 1.0.1 (Brian Landau)
91
+ * Make redirect detection work in the face of rational maths (like when ruby-units is active) (Piers Cawley)
92
+ * Use Launchy to handle opening pages in the browser with cross-platform compatibility (Bryan Helmkamp)
9
93
  * Added support for field_labeled_locators ending in non word characters
10
94
  lh 148 (Zach Dennis)
11
95
  * Filled in tests on click link lh 195 (diabolo)
@@ -19,15 +103,21 @@
19
103
  * Adding fix for have_selector and have_xpath in descendent blocks lh234 (Thomas Jack)
20
104
  * Adding fix for fields with labels with special characters (Thomas Jack, Mike Gaffney, Bryan Hemlkamp)
21
105
  * Deprecated current_page lh50 (Mike Gaffney)
106
+ * Fixed issue with redirects and multiple hosts lh168 (Mutwin Kraus)
107
+
108
+ * Bug fixes
109
+
110
+ * Wait for application servers socket on 0.0.0.0 instead of the application_address
111
+ * Translate CSS and image paths with single quotes in save_and_open_page (Erin Staniland)
22
112
 
23
113
  == 0.4.4 / 2009-04-06
24
114
 
25
115
  * Major enhancements
26
116
 
27
117
  * Make selenium process management code more robust and informative
28
-
118
+
29
119
  * Minor enhancements
30
-
120
+
31
121
  * Add support for Rails javascript post links (Mark Menard)
32
122
  * Upgrade selenium-client dependency to 1.2.14, and update for new waiting
33
123
  API (Balint Erdi)
@@ -38,7 +128,7 @@
38
128
  * Don't create a new instance of WWW::Mechanize for each request
39
129
  (Mark Menard)
40
130
  * Select fields with duplicate selected options sent an incorrect value (Noah Davis)
41
-
131
+
42
132
  == 0.4.3 / 2009-03-17
43
133
 
44
134
  * Minor enhancements
@@ -48,7 +138,7 @@
48
138
  * Initial Merb and Sinatra compatibility for Selenium mode (Corey Donohoe)
49
139
  * When faced with a label with no for attribute, that contains a hidden field
50
140
  and another field, as can be the case in Rails 2.3's checkbox view,
51
- webrat now locates the non-hidden field. (Luke Melia)
141
+ webrat now locates the non-hidden field. (Luke Melia)
52
142
  * Add application_framework config for Selenium mode to determine how to
53
143
  start and stop the app server (Corey Donohoe)
54
144
 
@@ -64,7 +154,7 @@
64
154
  attributes in a hash and :count and :content options. See
65
155
  have_selector_spec.rb for more.
66
156
  * Add the same functionality mentioned above to have_xpath
67
-
157
+
68
158
  * Minor enhancements
69
159
 
70
160
  * Squeeze extra whitespace out of failures messages from contain
@@ -91,7 +181,7 @@
91
181
  redirected to (Adam Greene)
92
182
  * Recognize input tags with type button (Lena Herrmann)
93
183
  * Add uncheck method to Selenium mode (Lee Bankewitz)
94
-
184
+
95
185
  * Bug fixes
96
186
 
97
187
  * Make requests to a Rails app using a full URL instead of a relative path. This change
@@ -102,7 +192,7 @@
102
192
  to behave correctly (Noah Davis)
103
193
  * Switch to using selenium.click instead of .check when checking a checkbox
104
194
  (Noah Davis)
105
- * Create tmp/pids directory if directory does not exist. (Amos King and Mike Gaffney)
195
+ * Create tmp/pids directory if directory does not exist. (Amos King and Mike Gaffney)
106
196
  * Setup deprecated writers for the selenium_environment= and selenium_port= config
107
197
  * Ensure the previous pages params aren't passed through redirect (Daniel Lucraft and
108
198
  Bryan Helmkamp)
@@ -178,7 +268,7 @@
178
268
  * Added save_and_open_screengrab for Selenium mode (Luke Melia)
179
269
 
180
270
  * Bug fixes
181
-
271
+
182
272
  * field_labeled should disregard labels without matching fields (Kyle Hargraves)
183
273
  * Fixed bug where Scope was creating a new DOM rather than re-using the existing DOM.
184
274
  [#105] (Zach Dennis)
data/Rakefile CHANGED
@@ -1,211 +1,145 @@
1
- require 'rubygems'
2
- require 'rake'
3
-
1
+ require "rubygems"
2
+
4
3
  begin
5
- require 'jeweler'
6
- Jeweler::Tasks.new do |gem|
7
- gem.name = "webrat"
8
- #gem.executables = "steamer"
9
- gem.summary = %Q{modified version of webrat}
10
- gem.email = "david.t.rogers@gmail.com"
11
- gem.homepage = "http://github.com/davidtrogers/webrat"
12
- gem.authors = ["brynary"]
13
- # gem.version = "#{version}.#{Time.now.to_i}"
14
- gem.rdoc_options = ["--inline-source", "--charset=UTF-8"]
15
- gem.require_paths = ["lib"]
16
- gem.rubygems_version = %q{1.3.3}
17
- gem.add_dependency "activerecord"
18
- # puts "version: #{version}.#{Time.now.to_i}"
19
- # gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
20
- # if s.respond_to? :specification_version then
21
- # current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
22
- # s.specification_version = 2
23
- # if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
24
- # else
25
- # end
26
- # else
27
- # end
28
- end
29
-
4
+ require 'spec/rake/spectask'
30
5
  rescue LoadError
31
- puts "Jeweler (or a dependency) not available. Install it with: sudo gem install jeweler"
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']
13
+ end
14
+
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
24
+ end
25
+
26
+ desc "Run everything against multiruby"
27
+ task :multiruby do
28
+ result = system "multiruby -S rake spec"
29
+ raise "Multiruby tests failed" unless result
30
+ result = system "jruby -S rake spec"
31
+ raise "JRuby tests failed" unless result
32
+
33
+ Dir.chdir "spec/integration/rails" do
34
+ result = system "multiruby -S rake test_unit:rails"
35
+ raise "Rails integration tests failed" unless result
36
+
37
+ result = system "jruby -S rake test_unit:rails"
38
+ raise "Rails integration tests failed" unless result
39
+ end
40
+
41
+ Dir.chdir "spec/integration/merb" do
42
+ result = system "multiruby -S rake spec"
43
+ raise "Merb integration tests failed" unless result
44
+
45
+ result = system "jruby -S rake spec"
46
+ raise "Rails integration tests failed" unless result
47
+ end
48
+
49
+ Dir.chdir "spec/integration/sinatra" do
50
+ result = system "multiruby -S rake test"
51
+ raise "Sinatra integration tests failed" unless result
52
+
53
+ result = system "jruby -S rake test"
54
+ raise "Sinatra integration tests failed" unless result
55
+ end
56
+
57
+ Dir.chdir "spec/integration/rack" do
58
+ result = system "multiruby -S rake test"
59
+ raise "Rack integration tests failed" unless result
60
+
61
+ result = system "jruby -S rake test"
62
+ raise "Rack integration tests failed" unless result
63
+ end
64
+
65
+ puts
66
+ puts "Multiruby OK!"
67
+ end
68
+
69
+ desc "Run each spec in isolation to test for dependency issues"
70
+ task :spec_deps do
71
+ Dir["spec/**/*_spec.rb"].each do |test|
72
+ if !system("spec #{test} &> /dev/null")
73
+ puts "Dependency Issues: #{test}"
74
+ end
75
+ end
76
+ end
77
+
78
+ namespace :spec do
79
+ desc "Run the integration specs"
80
+ task :integration => [
81
+ "integration:rack",
82
+ "integration:sinatra",
83
+ "integration:merb",
84
+ "integration:mechanize",
85
+ "integration:rails:webrat",
86
+ "integration:rails:selenium",
87
+ ]
88
+
89
+ namespace :integration do
90
+ namespace :rails do
91
+ task :selenium do
92
+ Dir.chdir "spec/integration/rails" do
93
+ result = system "rake test_unit:selenium"
94
+ raise "Rails integration tests failed" unless result
95
+ end
96
+ end
97
+
98
+ task :webrat do
99
+ Dir.chdir "spec/integration/rails" do
100
+ result = system "rake test_unit:rails"
101
+ raise "Rails integration tests failed" unless result
102
+ end
103
+ end
104
+ end
105
+
106
+ desc "Run the Merb integration specs"
107
+ task :merb do
108
+ Dir.chdir "spec/integration/merb" do
109
+ result = system "rake spec"
110
+ raise "Merb integration tests failed" unless result
111
+ end
112
+ end
113
+
114
+ desc "Run the Sinatra integration specs"
115
+ task :sinatra do
116
+ Dir.chdir "spec/integration/sinatra" do
117
+ result = system "rake test"
118
+ raise "Sinatra integration tests failed" unless result
119
+ end
120
+ end
121
+
122
+ desc "Run the Sinatra integration specs"
123
+ task :rack do
124
+ Dir.chdir "spec/integration/rack" do
125
+ result = system "rake test"
126
+ raise "Rack integration tests failed" unless result
127
+ end
128
+ end
129
+
130
+ desc "Run the Mechanize integration specs"
131
+ task :mechanize do
132
+ Dir.chdir "spec/integration/mechanize" do
133
+ result = system "rake spec"
134
+ raise "Mechanize integration tests failed" unless result
135
+ end
136
+ end
137
+ end
138
+ end
139
+
140
+ desc 'Removes trailing whitespace'
141
+ task :whitespace do
142
+ sh %{find . -name '*.rb' -exec sed -i '' 's/ *$//g' {} \\;}
32
143
  end
33
144
 
34
- # require 'rubygems'
35
- # require "rake/gempackagetask"
36
- # require 'rake/rdoctask'
37
- # require "rake/clean"
38
- # require 'spec'
39
- # require 'spec/rake/spectask'
40
- # require 'spec/rake/verify_rcov'
41
- # require File.expand_path('./lib/webrat.rb')
42
-
43
- ##############################################################################
44
- # Package && release
45
- ##############################################################################
46
- # spec = Gem::Specification.new do |s|
47
- # s.name = "webrat"
48
- # s.version = "#{Webrat::VERSION}.0.#{Time.now.to_i}"
49
- # s.platform = Gem::Platform::RUBY
50
- # s.author = "Bryan Helmkamp"
51
- # s.email = "bryan" + "@" + "brynary.com"
52
- # s.homepage = "http://github.com/brynary/webrat"
53
- # s.summary = "Webrat. Ruby Acceptance Testing for Web applications"
54
- # s.bindir = "bin"
55
- # s.description = s.summary
56
- # s.require_path = "lib"
57
- # s.files = %w(History.txt install.rb MIT-LICENSE.txt README.rdoc Rakefile) + Dir["lib/**/*"] + Dir["vendor/**/*"]
58
- #
59
- # # rdoc
60
- # s.has_rdoc = true
61
- # s.extra_rdoc_files = %w(README.rdoc MIT-LICENSE.txt)
62
- #
63
- # # Dependencies
64
- # s.add_dependency "nokogiri", ">= 1.2.0"
65
- #
66
- # s.rubyforge_project = "webrat"
67
- # end
68
- # #
69
- #
70
- # begin
71
- # require 'jeweler'
72
- # Jeweler::Tasks.new do |gemspec|
73
- # gemspec.name = "webrat"
74
- # gemspec.summary = "webrat rocks the house"
75
- # gemspec.email = "david.t.rogers@gmail.com"
76
- # gemspec.homepage = "http://github.com/davidtrogers/webrat"
77
- # gemspec.description = "TODO"
78
- # gemspec.authors = ["Dave Rogers"]
79
- # gemspec.add_dependency "nokogiri", ">= 1.2.0"
80
- # #
81
- # # s.rubyforge_project = "webrat"
82
- # end
83
- # rescue LoadError
84
- # puts "Webrat not available."
85
- # end
86
- #
87
- #
88
- # desc "Generate a gemspec file"
89
- # task :gemspec do
90
- # File.open("#{spec.name}.gemspec", 'w') do |f|
91
- # f.write spec.to_yaml
92
- # end
93
- # end
94
- #
95
- # Rake::GemPackageTask.new(spec) do |package|
96
- # package.gem_spec = spec
97
- # end
98
- #
99
- # desc 'Show information about the gem.'
100
- # task :debug_gem do
101
- # puts spec.to_ruby
102
- # end
103
- #
104
- # CLEAN.include ["pkg", "*.gem", "doc", "ri", "coverage"]
105
- #
106
- # desc "Upload rdoc to brynary.com"
107
- # task :publish_rdoc => :docs do
108
- # sh "scp -r doc/ brynary.com:/apps/uploads/webrat"
109
- # end
110
- #
111
- # desc "Run API and Core specs"
112
- # Spec::Rake::SpecTask.new do |t|
113
- # t.spec_opts = ['--options', "\"#{File.dirname(__FILE__)}/spec/spec.opts\""]
114
- # t.spec_files = FileList['spec/public/**/*_spec.rb'] + FileList['spec/private/**/*_spec.rb']
115
- # end
116
- #
117
- # desc "Run all specs in spec directory with RCov"
118
- # Spec::Rake::SpecTask.new(:rcov) do |t|
119
- # t.spec_opts = ['--options', "\"#{File.dirname(__FILE__)}/spec/spec.opts\""]
120
- # t.spec_files = FileList['spec/public/**/*_spec.rb'] + FileList['spec/private/**/*_spec.rb']
121
- # t.rcov = true
122
- # t.rcov_opts = lambda do
123
- # IO.readlines(File.dirname(__FILE__) + "/spec/rcov.opts").map {|l| l.chomp.split " "}.flatten
124
- # end
125
- # end
126
- #
127
- # RCov::VerifyTask.new(:verify_rcov => :rcov) do |t|
128
- # t.threshold = 96.2 # Make sure you have rcov 0.7 or higher!
129
- # end
130
- #
131
- # desc 'Install the package as a gem.'
132
- # task :install_gem => [:clean, :package] do
133
- # gem_filename = Dir['pkg/*.gem'].first
134
- # sh "sudo gem install --no-rdoc --no-ri --local #{gem_filename}"
135
- # end
136
- #
137
- # desc "Delete generated RDoc"
138
- # task :clobber_docs do
139
- # FileUtils.rm_rf("doc")
140
- # end
141
- #
142
- # desc "Generate RDoc"
143
- # task :docs => :clobber_docs do
144
- # system "hanna --title 'Webrat #{Webrat::VERSION} API Documentation'"
145
- # end
146
- #
147
- # desc "Run specs using jruby"
148
- # task "spec:jruby" do
149
- # result = system "jruby -S rake spec"
150
- # raise "JRuby tests failed" unless result
151
- # end
152
- #
153
- # desc "Run each spec in isolation to test for dependency issues"
154
- # task :spec_deps do
155
- # Dir["spec/**/*_spec.rb"].each do |test|
156
- # if !system("spec #{test} &> /dev/null")
157
- # puts "Dependency Issues: #{test}"
158
- # end
159
- # end
160
- # end
161
- #
162
- # task :prepare do
163
- # system "ln -s ../../../../.. ./spec/integration/rails/vendor/plugins/webrat"
164
- # end
165
- #
166
- # namespace :spec do
167
- # desc "Run the integration specs"
168
- # task :integration => ["integration:rails", "integration:merb", "integration:sinatra"]
169
- #
170
- # namespace :integration do
171
- # desc "Run the Rails integration specs"
172
- # task :rails => ['rails:webrat'] #,'rails:selenium'] currently not running selenium as it doesn't pass.
173
- #
174
- # namespace :rails do
175
- # task :selenium do
176
- # Dir.chdir "spec/integration/rails" do
177
- # result = system "rake test_unit:selenium"
178
- # raise "Rails integration tests failed" unless result
179
- # end
180
- # end
181
- #
182
- # task :webrat do
183
- # Dir.chdir "spec/integration/rails" do
184
- # result = system "rake test_unit:rails"
185
- # raise "Rails integration tests failed" unless result
186
- # end
187
- # end
188
- # end
189
- #
190
- # desc "Run the Merb integration specs"
191
- # task :merb do
192
- # Dir.chdir "spec/integration/merb" do
193
- # result = system "rake spec"
194
- # raise "Merb integration tests failed" unless result
195
- # end
196
- # end
197
- #
198
- # desc "Run the Sinatra integration specs"
199
- # task :sinatra do
200
- # Dir.chdir "spec/integration/sinatra" do
201
- # result = system "rake test"
202
- # raise "Sinatra tntegration tests failed" unless result
203
- # end
204
- # end
205
- # end
206
- # end
207
- #
208
- # task :default => :spec
209
- #
210
- # task :precommit => ["spec", "spec:jruby", "spec:integration"]
211
- #
145
+ task :default => :spec