Class: Camping::FunctionalTest
- Inherits:
-
Test
- Object
- Test::Unit::TestCase
- Test
- Camping::FunctionalTest
show all
- Defined in:
- lib/mosquito.rb
Instance Method Summary
collapse
-
#assert_cookie(name, pat, message = nil) ⇒ Object
-
#assert_match_body(regex, message = nil) ⇒ Object
-
#assert_no_match_body(regex, message = nil) ⇒ Object
-
#assert_redirected_to(url, message = nil) ⇒ Object
-
#assert_response(status_code) ⇒ Object
-
#delete(url, vars = {}) ⇒ Object
-
#get(url = '/', vars = {}) ⇒ Object
-
#post(url, post_vars = {}) ⇒ Object
-
#put(url, vars = {}) ⇒ Object
-
#send_request(url, post_vars, method) ⇒ Object
-
#setup ⇒ Object
-
#test_dummy ⇒ Object
Methods inherited from Test
#assert_difference, #assert_no_difference, #deny
Instance Method Details
#assert_cookie(name, pat, message = nil) ⇒ Object
207
208
209
|
# File 'lib/mosquito.rb', line 207
def assert_cookie(name, pat, message=nil)
assert_match pat, @cookies[name], message
end
|
#assert_match_body(regex, message = nil) ⇒ Object
196
197
198
|
# File 'lib/mosquito.rb', line 196
def assert_match_body(regex, message=nil)
assert_match regex, @response.body, message
end
|
#assert_no_match_body(regex, message = nil) ⇒ Object
199
200
201
|
# File 'lib/mosquito.rb', line 199
def assert_no_match_body(regex, message=nil)
assert_no_match regex, @response.body, message
end
|
#assert_redirected_to(url, message = nil) ⇒ Object
203
204
205
|
# File 'lib/mosquito.rb', line 203
def assert_redirected_to(url, message=nil)
assert_equal url, @response.['Location'].path.gsub(%r!/#{@class_name_abbr.downcase}!, ''), message
end
|
#assert_response(status_code) ⇒ Object
183
184
185
186
187
188
189
190
191
192
193
194
|
# File 'lib/mosquito.rb', line 183
def assert_response(status_code)
case status_code
when :success
assert_equal 200, @response.status
when :redirect
assert_equal 302, @response.status
when :error
assert @response.status >= 500
else
assert_equal status_code, @response.status
end
end
|
#delete(url, vars = {}) ⇒ Object
147
148
149
|
# File 'lib/mosquito.rb', line 147
def delete(url, vars={})
send_request url, vars, 'DELETE'
end
|
#get(url = '/', vars = {}) ⇒ Object
139
140
141
|
# File 'lib/mosquito.rb', line 139
def get(url='/', vars={})
send_request url, vars, 'GET'
end
|
#post(url, post_vars = {}) ⇒ Object
143
144
145
|
# File 'lib/mosquito.rb', line 143
def post(url, post_vars={})
send_request url, post_vars, 'POST'
end
|
#put(url, vars = {}) ⇒ Object
151
152
153
|
# File 'lib/mosquito.rb', line 151
def put(url, vars={})
send_request url, vars, 'PUT'
end
|
#send_request(url, post_vars, method) ⇒ Object
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
|
# File 'lib/mosquito.rb', line 155
def send_request(url, post_vars, method)
@request['REQUEST_METHOD'] = method
@request['SCRIPT_NAME'] = '/' + @class_name_abbr.downcase
@request['PATH_INFO'] = '/' + url
@request['REQUEST_URI'] = [@request.SCRIPT_NAME, @request.PATH_INFO].join('')
@request['HTTP_COOKIE'] = @cookies.map {|k,v| "#{k}=#{v}" }.join('; ') if @cookies
@response = eval("#{@class_name_abbr}.run StringIO.new('#{qs_build(post_vars)}'), @request")
@cookies = @response.['Set-Cookie'].inject(@cookies||{}) do |res,|
data = .split(';').first
name, value = data.split('=')
res[name] = value
res
end
@cookies = H[@cookies]
session = Camping::Models::Session.persist @cookies
app = @class_name_abbr.gsub(/^(\w+)::.+$/, '\1')
@state = (session[app] ||= Camping::H[])
if @response.['X-Sendfile']
@response.body = File.read(@response.['X-Sendfile'])
end
end
|
#setup ⇒ Object
133
134
135
136
137
|
# File 'lib/mosquito.rb', line 133
def setup
@class_name_abbr = self.class.name.gsub(/^Test/, '')
@request = MockRequest.new
@cookies = @response = {}
end
|
#test_dummy ⇒ Object
211
|
# File 'lib/mosquito.rb', line 211
def test_dummy; end
|