webrat 0.4.5 → 0.5.0
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/History.txt +10 -0
- data/VERSION +1 -1
- data/lib/webrat.rb +2 -22
- data/lib/webrat/core/elements/field.rb +1 -3
- data/lib/webrat/core/methods.rb +5 -5
- data/lib/webrat/core/session.rb +15 -6
- data/lib/webrat/merb_session.rb +3 -1
- data/lib/webrat/rack.rb +15 -14
- data/lib/webrat/rails.rb +7 -6
- data/lib/webrat/selenium.rb +0 -1
- data/lib/webrat/sinatra.rb +2 -35
- data/spec/integration/rack/app.rb +73 -0
- data/spec/integration/rack/test/{test_helper.rb → helper.rb} +6 -6
- data/spec/integration/rack/test/webrat_rack_test.rb +47 -52
- data/spec/private/core/field_spec.rb +1 -1
- data/spec/private/rails/rails_session_spec.rb +2 -0
- data/spec/public/matchers/contain_spec.rb +4 -4
- data/spec/public/matchers/have_selector_spec.rb +2 -2
- data/spec/public/matchers/have_xpath_spec.rb +2 -2
- data/spec/spec_helper.rb +2 -0
- data/webrat.gemspec +6 -7
- metadata +6 -7
- data/lib/webrat/rack_test.rb +0 -32
- data/spec/integration/rack/rack_app.rb +0 -16
data/History.txt
CHANGED
@@ -1,3 +1,13 @@
|
|
1
|
+
== 0.5.0 / 2009-08-12
|
2
|
+
|
3
|
+
* Major enhancements
|
4
|
+
|
5
|
+
* Depreacate :rack_test and :sinatra in favor of :rack, which uses Rack::Test (Simon Rozet)
|
6
|
+
|
7
|
+
* Minor enhancements
|
8
|
+
|
9
|
+
* Don't require rubygems at runtime (Simon Rozet)
|
10
|
+
|
1
11
|
== 0.4.5 / 2009-08-10
|
2
12
|
|
3
13
|
* Major enhancements
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.5.0
|
data/lib/webrat.rb
CHANGED
@@ -1,29 +1,9 @@
|
|
1
|
-
require "rubygems"
|
2
|
-
|
3
|
-
$LOAD_PATH.unshift(File.expand_path(File.dirname(__FILE__))) unless $LOAD_PATH.include?(File.expand_path(File.dirname(__FILE__)))
|
4
|
-
|
5
1
|
module Webrat
|
6
2
|
# The common base class for all exceptions raised by Webrat.
|
7
3
|
class WebratError < StandardError
|
8
4
|
end
|
9
|
-
|
10
|
-
def self.require_xml
|
11
|
-
if on_java?
|
12
|
-
gem "nokogiri", ">= 1.2.4"
|
13
|
-
else
|
14
|
-
gem "nokogiri", ">= 1.0.6"
|
15
|
-
end
|
16
|
-
|
17
|
-
require "nokogiri"
|
18
|
-
require "webrat/core/xml/nokogiri"
|
19
|
-
end
|
20
|
-
|
21
|
-
def self.on_java?
|
22
|
-
RUBY_PLATFORM =~ /java/
|
23
|
-
end
|
24
|
-
|
25
5
|
end
|
26
6
|
|
27
|
-
|
28
|
-
|
7
|
+
require "nokogiri"
|
8
|
+
require "webrat/core/xml/nokogiri"
|
29
9
|
require "webrat/core"
|
data/lib/webrat/core/methods.rb
CHANGED
@@ -16,11 +16,11 @@ module Webrat
|
|
16
16
|
end
|
17
17
|
|
18
18
|
def webrat_session
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
19
|
+
@_webrat_session ||= ::Webrat::Session.new(webrat_adapter)
|
20
|
+
end
|
21
|
+
|
22
|
+
def webrat_adapter
|
23
|
+
@_webrat_adapter ||= Webrat.session_class.new(self)
|
24
24
|
end
|
25
25
|
|
26
26
|
# all of these methods delegate to the @session, which should
|
data/lib/webrat/core/session.rb
CHANGED
@@ -18,16 +18,21 @@ module Webrat
|
|
18
18
|
RailsSession
|
19
19
|
when :merb
|
20
20
|
MerbSession
|
21
|
-
when :selenium
|
22
|
-
SeleniumSession
|
23
21
|
when :rack
|
24
22
|
RackSession
|
23
|
+
when :rack_test
|
24
|
+
warn("The :rack_test mode is deprecated. Please use :rack instead")
|
25
|
+
require "webrat/rack"
|
26
|
+
RackSession
|
27
|
+
when :sinatra
|
28
|
+
warn("The :sinatra mode is deprecated. Please use :rack instead")
|
29
|
+
SinatraSession
|
30
|
+
when :selenium
|
31
|
+
SeleniumSession
|
25
32
|
when :sinatra
|
26
33
|
SinatraSession
|
27
34
|
when :mechanize
|
28
35
|
MechanizeSession
|
29
|
-
when :rack_test
|
30
|
-
RackTestSession
|
31
36
|
else
|
32
37
|
raise WebratError.new(<<-STR)
|
33
38
|
Unknown Webrat mode: #{Webrat.configuration.mode.inspect}
|
@@ -53,12 +58,16 @@ For example:
|
|
53
58
|
attr_reader :current_url
|
54
59
|
attr_reader :elements
|
55
60
|
|
56
|
-
|
61
|
+
def_delegators :@adapter, :response, :response_code, :response_body,
|
62
|
+
:response_body=, :response_code=,
|
63
|
+
:get, :post, :put, :delete
|
64
|
+
|
65
|
+
def initialize(adapter=nil)
|
57
66
|
@http_method = :get
|
58
67
|
@data = {}
|
59
68
|
@default_headers = {}
|
60
69
|
@custom_headers = {}
|
61
|
-
@
|
70
|
+
@adapter = adapter
|
62
71
|
|
63
72
|
reset
|
64
73
|
end
|
data/lib/webrat/merb_session.rb
CHANGED
@@ -3,7 +3,7 @@ require "merb-core"
|
|
3
3
|
require "webrat/merb_multipart_support"
|
4
4
|
|
5
5
|
module Webrat
|
6
|
-
class MerbSession
|
6
|
+
class MerbSession #:nodoc:
|
7
7
|
include Merb::Test::MakeRequest
|
8
8
|
|
9
9
|
# Include Webrat's own version of multipart_post/put because the officially
|
@@ -12,6 +12,8 @@ module Webrat
|
|
12
12
|
|
13
13
|
attr_accessor :response
|
14
14
|
|
15
|
+
def initialize(context=nil); end
|
16
|
+
|
15
17
|
def get(url, data, headers = nil)
|
16
18
|
do_request(url, data, headers, "GET")
|
17
19
|
end
|
data/lib/webrat/rack.rb
CHANGED
@@ -1,24 +1,25 @@
|
|
1
|
-
require
|
1
|
+
require "rack/test"
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
3
|
+
module Webrat
|
4
|
+
class RackSession
|
5
|
+
extend Forwardable
|
6
|
+
|
7
|
+
def_delegators :@session, :get, :post, :put, :delete
|
8
|
+
|
9
|
+
def initialize(session) #:nodoc:
|
10
|
+
@session = session
|
9
11
|
end
|
10
|
-
hash
|
11
|
-
end
|
12
|
-
end
|
13
12
|
|
14
|
-
module Webrat
|
15
|
-
class RackSession < Session #:nodoc:
|
16
13
|
def response_body
|
17
|
-
|
14
|
+
response.body
|
18
15
|
end
|
19
16
|
|
20
17
|
def response_code
|
21
|
-
|
18
|
+
response.status
|
19
|
+
end
|
20
|
+
|
21
|
+
def response
|
22
|
+
@session.last_response
|
22
23
|
end
|
23
24
|
end
|
24
25
|
end
|
data/lib/webrat/rails.rb
CHANGED
@@ -5,9 +5,15 @@ require "action_controller/integration"
|
|
5
5
|
require "action_controller/record_identifier"
|
6
6
|
|
7
7
|
module Webrat
|
8
|
-
class RailsSession
|
8
|
+
class RailsSession #:nodoc:
|
9
9
|
include ActionController::RecordIdentifier
|
10
10
|
|
11
|
+
attr_reader :integration_session
|
12
|
+
|
13
|
+
def initialize(session)
|
14
|
+
@integration_session = session
|
15
|
+
end
|
16
|
+
|
11
17
|
# The Rails version of within supports passing in a model and Webrat
|
12
18
|
# will apply a scope based on Rails' dom_id for that model.
|
13
19
|
#
|
@@ -61,10 +67,6 @@ module Webrat
|
|
61
67
|
|
62
68
|
protected
|
63
69
|
|
64
|
-
def integration_session
|
65
|
-
@context
|
66
|
-
end
|
67
|
-
|
68
70
|
def do_request(http_method, url, data, headers) #:nodoc:
|
69
71
|
update_protocol(url)
|
70
72
|
integration_session.send(http_method, normalize_url(url), data, headers)
|
@@ -93,7 +95,6 @@ module Webrat
|
|
93
95
|
def response #:nodoc:
|
94
96
|
integration_session.response
|
95
97
|
end
|
96
|
-
|
97
98
|
end
|
98
99
|
end
|
99
100
|
|
data/lib/webrat/selenium.rb
CHANGED
data/lib/webrat/sinatra.rb
CHANGED
@@ -1,44 +1,11 @@
|
|
1
1
|
require "webrat/rack"
|
2
|
-
require "sinatra/test"
|
3
2
|
|
4
3
|
module Webrat
|
5
4
|
class SinatraSession < RackSession
|
6
|
-
|
7
|
-
|
8
|
-
attr_reader :request, :response
|
9
|
-
|
10
|
-
def initialize(context = nil)
|
11
|
-
super(context)
|
12
|
-
|
5
|
+
def initialize(context)
|
13
6
|
app = context.respond_to?(:app) ? context.app : Sinatra::Application
|
14
|
-
@browser = Sinatra::TestHarness.new(app)
|
15
|
-
end
|
16
|
-
|
17
|
-
%w(get head post put delete).each do |verb|
|
18
|
-
class_eval <<-RUBY
|
19
|
-
def #{verb}(path, data, headers = {})
|
20
|
-
params = data.inject({}) do |data, (key,value)|
|
21
|
-
data[key] = Rack::Utils.unescape(value)
|
22
|
-
data
|
23
|
-
end
|
24
|
-
headers["HTTP_HOST"] = "www.example.com"
|
25
|
-
@browser.#{verb}(path, params, headers)
|
26
|
-
end
|
27
|
-
RUBY
|
28
|
-
end
|
29
|
-
|
30
|
-
def response_body
|
31
|
-
@browser.body
|
32
|
-
end
|
33
7
|
|
34
|
-
|
35
|
-
@browser.status
|
8
|
+
super(Rack::Test::Session.new(Rack::MockSession.new(app, "www.example.com")))
|
36
9
|
end
|
37
|
-
|
38
|
-
private
|
39
|
-
|
40
|
-
def response
|
41
|
-
@browser.response
|
42
|
-
end
|
43
10
|
end
|
44
11
|
end
|
@@ -0,0 +1,73 @@
|
|
1
|
+
require "rubygems"
|
2
|
+
require "sinatra/base"
|
3
|
+
|
4
|
+
class RackApp < Sinatra::Base
|
5
|
+
use_in_file_templates!
|
6
|
+
|
7
|
+
get "/" do
|
8
|
+
erb :home
|
9
|
+
end
|
10
|
+
|
11
|
+
get "/go" do
|
12
|
+
erb :go
|
13
|
+
end
|
14
|
+
|
15
|
+
get "/internal_redirect" do
|
16
|
+
redirect "/"
|
17
|
+
end
|
18
|
+
|
19
|
+
get "/external_redirect" do
|
20
|
+
redirect "http://google.com"
|
21
|
+
end
|
22
|
+
|
23
|
+
get "/absolute_redirect" do
|
24
|
+
redirect URI.join(request.url, "foo").to_s
|
25
|
+
end
|
26
|
+
|
27
|
+
get "/foo" do
|
28
|
+
"spam"
|
29
|
+
end
|
30
|
+
|
31
|
+
post "/go" do
|
32
|
+
@user = params[:name]
|
33
|
+
@email = params[:email]
|
34
|
+
erb :hello
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
__END__
|
39
|
+
@@ layout
|
40
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
|
41
|
+
<html>
|
42
|
+
<title>sinatra testing with webrat</title>
|
43
|
+
<body>
|
44
|
+
<%= yield %>
|
45
|
+
</body>
|
46
|
+
</html>
|
47
|
+
|
48
|
+
@@ home
|
49
|
+
<p> visit <a href="/go">there</a></p>
|
50
|
+
|
51
|
+
<form>
|
52
|
+
<label>
|
53
|
+
Prefilled
|
54
|
+
<input type="text" name="prefilled" value="text" />
|
55
|
+
</label>
|
56
|
+
</form>
|
57
|
+
|
58
|
+
@@ go
|
59
|
+
<form method="post" action="/go">
|
60
|
+
<div>
|
61
|
+
<label for="name">Name</label>
|
62
|
+
<input type="text" name="name" id="name">
|
63
|
+
</div>
|
64
|
+
<div>
|
65
|
+
<label for="email">Email</label>
|
66
|
+
<input type="text" name="email" id="email">
|
67
|
+
</div>
|
68
|
+
<input type="submit" value="Submit" />
|
69
|
+
</form>
|
70
|
+
|
71
|
+
@@ hello
|
72
|
+
<p>Hello, <%= @user %></p>
|
73
|
+
<p>Your email is: <%= @email %></p>
|
@@ -4,17 +4,17 @@ require "rack/test"
|
|
4
4
|
# require "redgreen"
|
5
5
|
|
6
6
|
require File.dirname(__FILE__) + "/../../../../lib/webrat"
|
7
|
+
require File.dirname(__FILE__) + "/../app"
|
7
8
|
|
8
9
|
Webrat.configure do |config|
|
9
|
-
config.mode = :
|
10
|
+
config.mode = :rack
|
10
11
|
end
|
11
12
|
|
12
13
|
class Test::Unit::TestCase
|
13
|
-
include Rack::Test::Methods
|
14
|
-
include Webrat::Methods
|
15
|
-
include Webrat::Matchers
|
16
|
-
|
17
14
|
def app
|
18
|
-
|
15
|
+
Rack::Builder.new {
|
16
|
+
use Rack::Lint
|
17
|
+
run RackApp.new
|
18
|
+
}
|
19
19
|
end
|
20
20
|
end
|
@@ -1,67 +1,62 @@
|
|
1
|
-
require File.dirname(__FILE__) + "/
|
2
|
-
require File.dirname(__FILE__) + "/../rack_app"
|
1
|
+
require File.dirname(__FILE__) + "/helper"
|
3
2
|
|
4
3
|
class WebratRackTest < Test::Unit::TestCase
|
5
|
-
|
6
|
-
|
7
|
-
|
4
|
+
include Rack::Test::Methods
|
5
|
+
include Webrat::Methods
|
6
|
+
include Webrat::Matchers
|
7
|
+
include Webrat::HaveTagMatcher
|
8
|
+
|
9
|
+
def build_rack_mock_session
|
10
|
+
Rack::MockSession.new(app, "www.example.com")
|
8
11
|
end
|
9
12
|
|
10
|
-
def
|
11
|
-
|
12
|
-
|
13
|
+
def test_visits_pages
|
14
|
+
visit "/"
|
15
|
+
click_link "there"
|
16
|
+
|
17
|
+
assert_have_tag("form[@method='post'][@action='/go']")
|
18
|
+
end
|
19
|
+
|
20
|
+
def test_submits_form
|
21
|
+
visit "/go"
|
22
|
+
fill_in "Name", :with => "World"
|
23
|
+
fill_in "Email", :with => "world@example.org"
|
24
|
+
click_button "Submit"
|
25
|
+
|
26
|
+
assert_contain "Hello, World"
|
27
|
+
assert_contain "Your email is: world@example.org"
|
13
28
|
end
|
14
29
|
|
15
|
-
def
|
30
|
+
def test_check_value_of_field
|
16
31
|
visit "/"
|
17
|
-
assert_equal "
|
32
|
+
assert_equal field_labeled("Prefilled").value, "text"
|
18
33
|
end
|
19
34
|
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
35
|
+
def test_follows_internal_redirects
|
36
|
+
visit "/internal_redirect"
|
37
|
+
assert_contain "visit"
|
38
|
+
end
|
24
39
|
|
25
|
-
def
|
26
|
-
visit "/"
|
27
|
-
|
40
|
+
def test_does_not_follow_external_redirects
|
41
|
+
visit "/external_redirect"
|
42
|
+
assert last_response.redirect?
|
28
43
|
end
|
29
44
|
|
30
|
-
def
|
31
|
-
|
32
|
-
assert_contain "
|
45
|
+
def test_absolute_url_redirect
|
46
|
+
visit "/absolute_redirect"
|
47
|
+
assert_contain "spam"
|
33
48
|
end
|
49
|
+
end
|
34
50
|
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
# fill_in "Email", :with => "world@example.org"
|
47
|
-
# click_button "Submit"
|
48
|
-
#
|
49
|
-
# assert response_body.include?("Hello, World")
|
50
|
-
# assert response_body.include?("Your email is: world@example.org")
|
51
|
-
# end
|
52
|
-
#
|
53
|
-
# def test_check_value_of_field
|
54
|
-
# visit "/"
|
55
|
-
# assert field_labeled("Prefilled").value, "text"
|
56
|
-
# end
|
57
|
-
#
|
58
|
-
# def test_follows_internal_redirects
|
59
|
-
# visit "/internal_redirect"
|
60
|
-
# assert response_body.include?("visit")
|
61
|
-
# end
|
62
|
-
#
|
63
|
-
# def test_does_not_follow_external_redirects
|
64
|
-
# visit "/external_redirect"
|
65
|
-
# assert response_code == 302
|
66
|
-
# end
|
51
|
+
class WebratRackSetupTest < Test::Unit::TestCase
|
52
|
+
def test_usable_without_mixin
|
53
|
+
rack_test_session = Rack::Test::Session.new(Rack::MockSession.new(app))
|
54
|
+
adapter = Webrat::RackSession.new(rack_test_session)
|
55
|
+
session = Webrat::Session.new(adapter)
|
56
|
+
|
57
|
+
session.visit "/foo"
|
58
|
+
|
59
|
+
assert_equal "spam", session.response_body
|
60
|
+
assert_equal "spam", rack_test_session.last_response.body
|
61
|
+
end
|
67
62
|
end
|
@@ -87,6 +87,8 @@ describe Webrat::RailsSession do
|
|
87
87
|
end
|
88
88
|
|
89
89
|
it "should accept an ActiveRecord argument to #within and translate to a selector using dom_id" do
|
90
|
+
pending "Move this to spec/public/within_spec.rb"
|
91
|
+
|
90
92
|
body = <<-HTML
|
91
93
|
<a href="/page1">Edit</a>
|
92
94
|
<div id="new_object">
|
@@ -56,13 +56,13 @@ describe "contain" do
|
|
56
56
|
it "should throw an exception when the body doesnt contain the text" do
|
57
57
|
lambda {
|
58
58
|
assert_contain("monkeys")
|
59
|
-
}.should raise_error(
|
59
|
+
}.should raise_error(AssertionFailedError)
|
60
60
|
end
|
61
61
|
|
62
62
|
it "should throw an exception when the body doesnt contain the regexp" do
|
63
63
|
lambda {
|
64
64
|
assert_contain(/monkeys/)
|
65
|
-
}.should raise_error(
|
65
|
+
}.should raise_error(AssertionFailedError)
|
66
66
|
end
|
67
67
|
end
|
68
68
|
|
@@ -78,13 +78,13 @@ describe "contain" do
|
|
78
78
|
it "should throw an exception when the body does contain the text" do
|
79
79
|
lambda {
|
80
80
|
assert_not_contain("hello, world")
|
81
|
-
}.should raise_error(
|
81
|
+
}.should raise_error(AssertionFailedError)
|
82
82
|
end
|
83
83
|
|
84
84
|
it "should throw an exception when the body does contain the regexp" do
|
85
85
|
lambda {
|
86
86
|
assert_not_contain(/hello, world/)
|
87
|
-
}.should raise_error(
|
87
|
+
}.should raise_error(AssertionFailedError)
|
88
88
|
end
|
89
89
|
end
|
90
90
|
end
|
@@ -122,7 +122,7 @@ describe "have_selector" do
|
|
122
122
|
it "should throw an exception when the body doesnt have matching selection" do
|
123
123
|
lambda {
|
124
124
|
assert_have_selector("p")
|
125
|
-
}.should raise_error(
|
125
|
+
}.should raise_error(AssertionFailedError)
|
126
126
|
end
|
127
127
|
end
|
128
128
|
|
@@ -134,7 +134,7 @@ describe "have_selector" do
|
|
134
134
|
it "should throw an exception when the body does contain the selection" do
|
135
135
|
lambda {
|
136
136
|
assert_have_no_selector("div")
|
137
|
-
}.should raise_error(
|
137
|
+
}.should raise_error(AssertionFailedError)
|
138
138
|
end
|
139
139
|
end
|
140
140
|
end
|
@@ -117,7 +117,7 @@ describe "have_xpath" do
|
|
117
117
|
it "should throw an exception when the body doesnt have matching xpath" do
|
118
118
|
lambda {
|
119
119
|
assert_have_xpath("//p")
|
120
|
-
}.should raise_error(
|
120
|
+
}.should raise_error(AssertionFailedError)
|
121
121
|
end
|
122
122
|
end
|
123
123
|
|
@@ -129,7 +129,7 @@ describe "have_xpath" do
|
|
129
129
|
it "should throw an exception when the body does contain the xpath" do
|
130
130
|
lambda {
|
131
131
|
assert_have_no_xpath("//div")
|
132
|
-
}.should raise_error(
|
132
|
+
}.should raise_error(AssertionFailedError)
|
133
133
|
end
|
134
134
|
end
|
135
135
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -8,6 +8,8 @@ begin require "redgreen" unless ENV['TM_CURRENT_LINE']; rescue LoadError; end
|
|
8
8
|
webrat_path = File.expand_path(File.dirname(__FILE__) + "/../lib/")
|
9
9
|
$LOAD_PATH.unshift(webrat_path) unless $LOAD_PATH.include?(webrat_path)
|
10
10
|
|
11
|
+
AssertionFailedError = Test::Unit::AssertionFailedError rescue MiniTest::Assertion # ruby1.9 compat
|
12
|
+
|
11
13
|
require "webrat"
|
12
14
|
require File.expand_path(File.dirname(__FILE__) + "/fakes/test_session")
|
13
15
|
|
data/webrat.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{webrat}
|
8
|
-
s.version = "0.
|
8
|
+
s.version = "0.5.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Bryan Helmkamp"]
|
12
|
-
s.date = %q{2009-08-
|
12
|
+
s.date = %q{2009-08-12}
|
13
13
|
s.email = %q{bryan@brynary.com}
|
14
14
|
s.extra_rdoc_files = [
|
15
15
|
"History.txt",
|
@@ -73,7 +73,6 @@ Gem::Specification.new do |s|
|
|
73
73
|
"lib/webrat/merb_multipart_support.rb",
|
74
74
|
"lib/webrat/merb_session.rb",
|
75
75
|
"lib/webrat/rack.rb",
|
76
|
-
"lib/webrat/rack_test.rb",
|
77
76
|
"lib/webrat/rails.rb",
|
78
77
|
"lib/webrat/rspec-rails.rb",
|
79
78
|
"lib/webrat/selenium.rb",
|
@@ -127,8 +126,8 @@ Gem::Specification.new do |s|
|
|
127
126
|
"spec/integration/merb/tasks/merb.thor/ops.rb",
|
128
127
|
"spec/integration/merb/tasks/merb.thor/utils.rb",
|
129
128
|
"spec/integration/rack/Rakefile",
|
130
|
-
"spec/integration/rack/
|
131
|
-
"spec/integration/rack/test/
|
129
|
+
"spec/integration/rack/app.rb",
|
130
|
+
"spec/integration/rack/test/helper.rb",
|
132
131
|
"spec/integration/rack/test/webrat_rack_test.rb",
|
133
132
|
"spec/integration/rails/.gitignore",
|
134
133
|
"spec/integration/rails/Rakefile",
|
@@ -253,8 +252,8 @@ Gem::Specification.new do |s|
|
|
253
252
|
"spec/integration/merb/tasks/merb.thor/gem_ext.rb",
|
254
253
|
"spec/integration/merb/tasks/merb.thor/ops.rb",
|
255
254
|
"spec/integration/merb/tasks/merb.thor/utils.rb",
|
256
|
-
"spec/integration/rack/
|
257
|
-
"spec/integration/rack/test/
|
255
|
+
"spec/integration/rack/app.rb",
|
256
|
+
"spec/integration/rack/test/helper.rb",
|
258
257
|
"spec/integration/rack/test/webrat_rack_test.rb",
|
259
258
|
"spec/integration/rails/app/controllers/application.rb",
|
260
259
|
"spec/integration/rails/app/controllers/buttons_controller.rb",
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: webrat
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Bryan Helmkamp
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-08-
|
12
|
+
date: 2009-08-12 00:00:00 -04:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -89,7 +89,6 @@ files:
|
|
89
89
|
- lib/webrat/merb_multipart_support.rb
|
90
90
|
- lib/webrat/merb_session.rb
|
91
91
|
- lib/webrat/rack.rb
|
92
|
-
- lib/webrat/rack_test.rb
|
93
92
|
- lib/webrat/rails.rb
|
94
93
|
- lib/webrat/rspec-rails.rb
|
95
94
|
- lib/webrat/selenium.rb
|
@@ -143,8 +142,8 @@ files:
|
|
143
142
|
- spec/integration/merb/tasks/merb.thor/ops.rb
|
144
143
|
- spec/integration/merb/tasks/merb.thor/utils.rb
|
145
144
|
- spec/integration/rack/Rakefile
|
146
|
-
- spec/integration/rack/
|
147
|
-
- spec/integration/rack/test/
|
145
|
+
- spec/integration/rack/app.rb
|
146
|
+
- spec/integration/rack/test/helper.rb
|
148
147
|
- spec/integration/rack/test/webrat_rack_test.rb
|
149
148
|
- spec/integration/rails/.gitignore
|
150
149
|
- spec/integration/rails/Rakefile
|
@@ -290,8 +289,8 @@ test_files:
|
|
290
289
|
- spec/integration/merb/tasks/merb.thor/gem_ext.rb
|
291
290
|
- spec/integration/merb/tasks/merb.thor/ops.rb
|
292
291
|
- spec/integration/merb/tasks/merb.thor/utils.rb
|
293
|
-
- spec/integration/rack/
|
294
|
-
- spec/integration/rack/test/
|
292
|
+
- spec/integration/rack/app.rb
|
293
|
+
- spec/integration/rack/test/helper.rb
|
295
294
|
- spec/integration/rack/test/webrat_rack_test.rb
|
296
295
|
- spec/integration/rails/app/controllers/application.rb
|
297
296
|
- spec/integration/rails/app/controllers/buttons_controller.rb
|
data/lib/webrat/rack_test.rb
DELETED
@@ -1,32 +0,0 @@
|
|
1
|
-
module Webrat
|
2
|
-
class RackTestSession < Session
|
3
|
-
|
4
|
-
def initialize(rack_test_session) #:nodoc:
|
5
|
-
super()
|
6
|
-
@rack_test_session = rack_test_session
|
7
|
-
end
|
8
|
-
|
9
|
-
def response_body
|
10
|
-
response.body
|
11
|
-
end
|
12
|
-
|
13
|
-
def response_code
|
14
|
-
response.status
|
15
|
-
end
|
16
|
-
|
17
|
-
def response
|
18
|
-
@rack_test_session.last_response
|
19
|
-
end
|
20
|
-
|
21
|
-
protected
|
22
|
-
|
23
|
-
def process_request(http_method, url, data = {}, headers = {})
|
24
|
-
headers ||= {}
|
25
|
-
data ||= {}
|
26
|
-
|
27
|
-
env = headers.merge(:params => data, :method => http_method.to_s.upcase)
|
28
|
-
@rack_test_session.request(url, env)
|
29
|
-
end
|
30
|
-
|
31
|
-
end
|
32
|
-
end
|