Class: Camping::FunctionalTest

Inherits:
Test
  • Object
show all
Defined in:
lib/mosquito.rb

Instance Method Summary collapse

Methods inherited from Test

#assert_difference, #assert_no_difference, #deny

Instance Method Details



199
200
201
# File 'lib/mosquito.rb', line 199

def assert_cookie(name, pat, message=nil)
  assert_match pat, @cookies[name], message
end

#assert_match_body(regex, message = nil) ⇒ Object



188
189
190
# File 'lib/mosquito.rb', line 188

def assert_match_body(regex, message=nil)
  assert_match regex, @response.body, message
end

#assert_no_match_body(regex, message = nil) ⇒ Object



191
192
193
# File 'lib/mosquito.rb', line 191

def assert_no_match_body(regex, message=nil)
  assert_no_match regex, @response.body, message
end

#assert_redirected_to(url, message = nil) ⇒ Object



195
196
197
# File 'lib/mosquito.rb', line 195

def assert_redirected_to(url, message=nil)
  assert_equal url, @response.headers['Location'].path.gsub(%r!/#{@class_name_abbr.downcase}!, ''), message
end

#assert_response(status_code) ⇒ Object



175
176
177
178
179
180
181
182
183
184
185
186
# File 'lib/mosquito.rb', line 175

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



145
146
147
# File 'lib/mosquito.rb', line 145

def delete(url, vars={})
  send_request url, vars, 'DELETE'
end

#get(url = '/', vars = {}) ⇒ Object



137
138
139
# File 'lib/mosquito.rb', line 137

def get(url='/', vars={})
  send_request url, vars, 'GET'
end

#post(url, post_vars = {}) ⇒ Object



141
142
143
# File 'lib/mosquito.rb', line 141

def post(url, post_vars={})
  send_request url, post_vars, 'POST'
end

#put(url, vars = {}) ⇒ Object



149
150
151
# File 'lib/mosquito.rb', line 149

def put(url, vars={})
  send_request url, vars, 'PUT'
end

#send_request(url, post_vars, method) ⇒ Object



153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
# File 'lib/mosquito.rb', line 153

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.headers['Set-Cookie'].inject(@cookies||{}) do |res,header|
    data = header.split(';').first
    name, value = data.split('=')
    res[name] = value
    res
  end

  if @response.headers['X-Sendfile']
    @response.body = File.read(@response.headers['X-Sendfile'])
  end
end

#setupObject



131
132
133
134
135
# File 'lib/mosquito.rb', line 131

def setup
  @class_name_abbr = self.class.name.gsub(/^Test/, '')
  @request = MockRequest.new
  @cookies = @response = {}
end

#test_dummyObject



203
# File 'lib/mosquito.rb', line 203

def test_dummy; end