rocketio 0.1.0 → 0.2.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.
Files changed (50) hide show
  1. checksums.yaml +4 -4
  2. data/lib/rocketio.rb +6 -3
  3. data/lib/rocketio/application.rb +3 -7
  4. data/lib/rocketio/controller.rb +62 -90
  5. data/lib/rocketio/controller/authentication.rb +38 -44
  6. data/lib/rocketio/controller/authorization.rb +8 -4
  7. data/lib/rocketio/controller/error_handlers.rb +12 -8
  8. data/lib/rocketio/controller/filters.rb +14 -19
  9. data/lib/rocketio/controller/helpers.rb +1 -1
  10. data/lib/rocketio/controller/middleware.rb +1 -1
  11. data/lib/rocketio/controller/render/engine.rb +3 -3
  12. data/lib/rocketio/controller/render/layout.rb +1 -1
  13. data/lib/rocketio/controller/render/layouts.rb +6 -6
  14. data/lib/rocketio/controller/render/template_vars.rb +3 -3
  15. data/lib/rocketio/controller/render/templates.rb +6 -6
  16. data/lib/rocketio/controller/sessions.rb +1 -1
  17. data/lib/rocketio/error_templates/409.html +11 -7
  18. data/lib/rocketio/error_templates/501.html +4 -4
  19. data/lib/rocketio/router.rb +35 -21
  20. data/lib/rocketio/version.rb +1 -1
  21. data/rocketio.gemspec +2 -0
  22. data/test/aliases_test.rb +2 -2
  23. data/test/api_test.rb +24 -117
  24. data/test/authentication_test.rb +96 -60
  25. data/test/authorization_test.rb +28 -17
  26. data/test/cache_control_test.rb +12 -12
  27. data/test/content_type_test.rb +7 -7
  28. data/test/cookies_test.rb +4 -4
  29. data/test/error_handlers_test.rb +14 -12
  30. data/test/etag_test.rb +32 -32
  31. data/test/filters_test.rb +96 -79
  32. data/test/halt_test.rb +1 -1
  33. data/test/helpers_test.rb +6 -6
  34. data/test/middleware_test.rb +4 -4
  35. data/test/redirect_test.rb +6 -7
  36. data/test/render/{post.erb → b.erb} +0 -0
  37. data/test/render/{put.erb → c.erb} +0 -0
  38. data/test/render/engine_test.rb +5 -5
  39. data/test/render/{get.erb → index.erb} +0 -0
  40. data/test/render/layout_test.rb +21 -17
  41. data/test/render/layouts_test.rb +14 -14
  42. data/test/render/render_test.rb +17 -14
  43. data/test/render/template_vars_test.rb +9 -9
  44. data/test/render/templates_test.rb +16 -16
  45. data/test/response_test.rb +4 -4
  46. data/test/routes_test.rb +21 -42
  47. data/test/sendfile_test.rb +8 -8
  48. data/test/sessions_test.rb +27 -27
  49. data/test/setup.rb +2 -0
  50. metadata +34 -6
@@ -6,13 +6,15 @@ spec :AuthorizationTest do
6
6
  a = mock_controller {
7
7
  token_auth {|t| t == 'x'}
8
8
  }
9
- b = mock_controller(a)
9
+ b = mock_controller(a) {
10
+ def index; end
11
+ }
10
12
  app(b)
11
13
  get
12
14
  assert(last_response.status) == 401
13
15
  token_authorize 'x'
14
16
  get
15
- assert(last_response.status) == 501
17
+ assert(last_response.status) == 200
16
18
  end
17
19
 
18
20
  it 'directly overrides token auth inherited from superclass' do
@@ -21,16 +23,17 @@ spec :AuthorizationTest do
21
23
  }
22
24
  b = mock_controller(a) {
23
25
  token_auth {|t| t == 'y'}
26
+ def index; end
24
27
  }
25
28
  app(b)
26
29
  get
27
30
  assert(last_response.status) == 401
28
31
  token_authorize 'y'
29
32
  get
30
- assert(last_response.status) == 501
33
+ assert(last_response.status) == 200
31
34
  end
32
35
 
33
- it 'uses `inherit` to override token auth inherited from superclass' do
36
+ it 'uses `import` to override token auth inherited from superclass' do
34
37
  a = mock_controller {
35
38
  token_auth {|t| t == 'x'}
36
39
  }
@@ -39,53 +42,61 @@ spec :AuthorizationTest do
39
42
  }
40
43
  c = mock_controller(a) {
41
44
  import :token_auth, from: b
45
+ def index; end
42
46
  }
43
47
  app(c)
44
48
  get
45
49
  assert(last_response.status) == 401
46
50
  token_authorize 'y'
47
51
  get
48
- assert(last_response.status) == 501
52
+ assert(last_response.status) == 200
49
53
  end
50
54
 
51
- it 'inherits token auth procedures via `inherit`' do
55
+ it 'inherits token auth procedures via `import`' do
52
56
  a = mock_controller {
53
57
  token_auth {|t| t == 'x'}
54
58
  }
55
59
  b = mock_controller {
56
60
  import :token_auth, from: a
61
+ def index; end
57
62
  }
58
63
  app(b)
59
64
  get
60
65
  assert(last_response.status) == 401
61
66
  token_authorize 'x'
62
67
  get
63
- assert(last_response.status) == 501
68
+ assert(last_response.status) == 200
64
69
  end
65
70
  end
66
71
 
67
- context 'protect all request methods' do
72
+ context 'protect all methods on any request method' do
68
73
  before do
69
74
  app mock_controller {
70
- token_auth {|t| t == 'st'}
71
- define_method(:get) {}
75
+ token_auth {|t| t == 'x'}
76
+ def index; end
72
77
  }
73
78
  end
74
79
 
75
80
  it 'return "401 Unauthorized" if token missing' do
76
- get
77
- assert(last_response.status) == 401
81
+ RocketIO::REQUEST_METHODS.each_value do |rqm|
82
+ send(rqm)
83
+ assert(last_response.status) == 401
84
+ end
78
85
  end
79
86
 
80
87
  it 'return "401 Unauthorized" if token is wrong' do
81
- get
82
- assert(last_response.status) == 401
88
+ RocketIO::REQUEST_METHODS.each_value do |rqm|
89
+ send(rqm)
90
+ assert(last_response.status) == 401
91
+ end
83
92
  end
84
93
 
85
94
  it 'return "200 Ok" when correct token provided' do
86
- token_auth 'st'
87
- get
88
- assert(last_response.status) == 200
95
+ token_auth 'x'
96
+ RocketIO::REQUEST_METHODS.each_value do |rqm|
97
+ send(rqm)
98
+ assert(last_response.status) == 200
99
+ end
89
100
  end
90
101
  end
91
102
  end
@@ -28,13 +28,13 @@ require 'setup'
28
28
  spec 'cache_control' do
29
29
  before do
30
30
  a = mock_controller('/foo') {
31
- def get
31
+ def index
32
32
  cache_control :public, :no_cache, :max_age => 60.0
33
33
  'Hello World'
34
34
  end
35
35
  }
36
36
  b = mock_controller('/bar') {
37
- def get
37
+ def index
38
38
  cache_control :public, :no_cache
39
39
  'Hello World'
40
40
  end
@@ -56,19 +56,19 @@ end
56
56
  spec 'expires' do
57
57
  before do
58
58
  foo = mock_controller('/foo') {
59
- def get
59
+ def index
60
60
  expires 60, :public, :no_cache
61
61
  'Hello World'
62
62
  end
63
63
  }
64
64
  bar = mock_controller('/bar') {
65
- def get; expires Time.now end
65
+ def index; expires Time.now end
66
66
  }
67
67
  baz = mock_controller('/baz') {
68
- def get; expires Time.at(0) end
68
+ def index; expires Time.at(0) end
69
69
  }
70
70
  blah = mock_controller('/blah') {
71
- def get
71
+ def index
72
72
  obj = Object.new
73
73
  def obj.method_missing(*a, &b) 60.send(*a, &b) end
74
74
  def obj.is_a?(thing) 60.is_a?(thing) end
@@ -77,7 +77,7 @@ spec 'expires' do
77
77
  end
78
78
  }
79
79
  boom = mock_controller('/boom') {
80
- def get; expires '9999' end
80
+ def index; expires '9999' end
81
81
  }
82
82
  app mock_app(foo, bar, baz, blah, boom)
83
83
  end
@@ -115,7 +115,7 @@ end
115
115
  spec 'last_modified' do
116
116
  it 'ignores nil' do
117
117
  app mock_controller {
118
- def get; last_modified nil; ''; end
118
+ def index; last_modified nil; ''; end
119
119
  }
120
120
 
121
121
  get
@@ -124,7 +124,7 @@ spec 'last_modified' do
124
124
 
125
125
  it 'does not change a status other than 200' do
126
126
  app mock_controller {
127
- def get
127
+ def index
128
128
  response.status = 299
129
129
  last_modified Time.at(0)
130
130
  'ok'
@@ -147,12 +147,12 @@ spec 'last_modified' do
147
147
  context "with #{last_modified_time.class.name}" do
148
148
  before do
149
149
  app mock_controller {
150
- define_method :get do
150
+ define_method :index do
151
151
  last_modified(last_modified_time)
152
152
  'Boo!'
153
153
  end
154
154
  }
155
- @last_modified_time = mock_controller.initialize_controller.time_for(last_modified_time)
155
+ @last_modified_time = mock_controller.new.time_for(last_modified_time)
156
156
  end
157
157
 
158
158
  context "when there's no If-Modified-Since header" do
@@ -199,7 +199,7 @@ spec 'last_modified' do
199
199
 
200
200
  it 'does not rely on string comparison' do
201
201
  app mock_controller {
202
- def get
202
+ def index
203
203
  last_modified "Mon, 18 Oct 2010 20:57:11 GMT"
204
204
  "foo"
205
205
  end
@@ -29,7 +29,7 @@ spec :ContentType do
29
29
 
30
30
  it 'sets the Content-Type header' do
31
31
  app mock_controller {
32
- define_method :get do
32
+ def index
33
33
  content_type 'text/plain'
34
34
  'Hello World'
35
35
  end
@@ -42,7 +42,7 @@ spec :ContentType do
42
42
 
43
43
  it 'takes media type parameters (like charset=)' do
44
44
  app mock_controller {
45
- define_method :get do
45
+ def index
46
46
  content_type 'text/html', charset: 'latin1'
47
47
  "<h1>Hello, World</h1>"
48
48
  end
@@ -56,7 +56,7 @@ spec :ContentType do
56
56
 
57
57
  it 'updates charset for default content type' do
58
58
  app mock_controller {
59
- def get
59
+ def index
60
60
  charset('latin1')
61
61
  "<h1>Hello, World</h1>"
62
62
  end
@@ -70,7 +70,7 @@ spec :ContentType do
70
70
 
71
71
  it 'updates charset without alter actual mimetype nor params' do
72
72
  app mock_controller {
73
- def get
73
+ def index
74
74
  content_type('.json', level: 1)
75
75
  charset('utf-8')
76
76
  'ok'
@@ -85,7 +85,7 @@ spec :ContentType do
85
85
  it "looks up symbols in Rack's mime types dictionary" do
86
86
  Rack::Mime::MIME_TYPES['.foo'] = 'application/foo'
87
87
  app mock_controller('/foo.xml') {
88
- define_method :get do
88
+ def index
89
89
  content_type :foo
90
90
  "I AM FOO"
91
91
  end
@@ -99,7 +99,7 @@ spec :ContentType do
99
99
 
100
100
  it 'fails when no mime type is registered for the argument provided' do
101
101
  app mock_controller {
102
- def get
102
+ def index
103
103
  content_type :bizzle
104
104
  "I AM FOO"
105
105
  end
@@ -110,7 +110,7 @@ spec :ContentType do
110
110
 
111
111
  it 'handles already present params' do
112
112
  app mock_controller {
113
- def get
113
+ def index
114
114
  content_type 'foo/bar;level=1', :charset => 'utf-8'
115
115
  'ok'
116
116
  end
data/test/cookies_test.rb CHANGED
@@ -3,7 +3,7 @@ require 'setup'
3
3
  spec :Cookies do
4
4
  it 'reads cookies' do
5
5
  app mock_controller {
6
- def get; cookies[:x] end
6
+ def index; cookies[:x] end
7
7
  }
8
8
  cookies['x'] = 'y'
9
9
  get
@@ -12,7 +12,7 @@ spec :Cookies do
12
12
 
13
13
  it 'sets cookies' do
14
14
  app mock_controller {
15
- def get; cookies[:x] = 'y' end
15
+ def index; cookies[:x] = 'y' end
16
16
  }
17
17
  get
18
18
  assert(cookies['x']) == 'y'
@@ -20,7 +20,7 @@ spec :Cookies do
20
20
 
21
21
  it 'deletes cookies' do
22
22
  app mock_controller {
23
- def get; cookies.delete(:x) end
23
+ def index; cookies.delete(:x) end
24
24
  }
25
25
  cookies['x'] = 'y'
26
26
  assert(cookies['x']) == 'y'
@@ -31,7 +31,7 @@ spec :Cookies do
31
31
  it 'accepts a Hash with various options' do
32
32
  expires = Time.now
33
33
  app mock_controller {
34
- define_method :get do
34
+ define_method :index do
35
35
  cookies[:x] = {
36
36
  value: 'y',
37
37
  path: '/',
@@ -2,6 +2,7 @@ require 'setup'
2
2
 
3
3
  spec :ErrorHandlers do
4
4
  context '501: Not Implemented' do
5
+
5
6
  it 'uses default handler' do
6
7
  app mock_controller
7
8
  get
@@ -23,7 +24,7 @@ spec :ErrorHandlers do
23
24
  it 'can be triggered manually' do
24
25
  called = false
25
26
  app mock_controller {
26
- define_method(:get) {called = true; error(501)}
27
+ define_method(:index) {called = true; error(501)}
27
28
  }
28
29
  get
29
30
  assert(called) == true
@@ -32,18 +33,19 @@ spec :ErrorHandlers do
32
33
  end
33
34
 
34
35
  context 'Parameters Error' do
36
+
35
37
  it 'uses default handler' do
36
38
  app mock_app(mock_controller {
37
- def get; end
39
+ def index; end
38
40
  })
39
41
  get :x
40
42
  assert(last_response.status) == 409
41
- assert(last_response.body) =~ /wrong number of arguments/i
43
+ assert(last_response.body) =~ /wrong arguments/i
42
44
  end
43
45
 
44
46
  it 'uses custom handler' do
45
47
  app mock_app(mock_controller {
46
- def get; end
48
+ def index; end
47
49
  error 409 do
48
50
  'noway'
49
51
  end
@@ -56,7 +58,7 @@ spec :ErrorHandlers do
56
58
  it 'can be triggered manually' do
57
59
  called = false
58
60
  app mock_app(mock_controller {
59
- define_method(:get) {called = true; error(409)}
61
+ define_method(:index) {called = true; error(409)}
60
62
  })
61
63
  get
62
64
  assert(called) == true
@@ -65,16 +67,17 @@ spec :ErrorHandlers do
65
67
  end
66
68
 
67
69
  context '500: Fatal Error' do
70
+
68
71
  it 'raises when no handler defined' do
69
72
  app mock_controller {
70
- def get; raise end
73
+ def index; raise end
71
74
  }
72
75
  assert {get}.raise RuntimeError
73
76
  end
74
77
 
75
78
  it 'uses custom handler' do
76
79
  app mock_controller {
77
- def get; raise('badboy') end
80
+ def index; raise('badboy') end
78
81
  error 500 do |e|
79
82
  e.message
80
83
  end
@@ -87,7 +90,7 @@ spec :ErrorHandlers do
87
90
  it 'can be triggered manually' do
88
91
  called = false
89
92
  app mock_controller {
90
- define_method(:get) {called = true; error(500, 'badgirl')}
93
+ define_method(:index) {called = true; error(500, 'badgirl')}
91
94
  }
92
95
  get
93
96
  assert(called) == true
@@ -97,10 +100,9 @@ spec :ErrorHandlers do
97
100
  end
98
101
 
99
102
  context '404: Not Found' do
103
+
100
104
  it 'uses default handler' do
101
- app mock_app(mock_controller(:x) {
102
- def get; end
103
- })
105
+ app mock_app(mock_controller(:x))
104
106
  get '/y'
105
107
  assert(last_response.status) == 404
106
108
  assert(last_response.body) =~ /404/
@@ -109,7 +111,7 @@ spec :ErrorHandlers do
109
111
  it 'can be triggered manually and use custom handler' do
110
112
  called = false
111
113
  app mock_controller {
112
- define_method(:get) {called = true; error(404)}
114
+ define_method(:index) {called = true; error(404)}
113
115
  error 404 do
114
116
  'trymore'
115
117
  end
data/test/etag_test.rb CHANGED
@@ -28,9 +28,9 @@ require 'setup'
28
28
  spec :etag do
29
29
 
30
30
  def run_with *args, &block
31
- request_method = args.shift || :get
31
+ method = args.shift || :index
32
32
  app mock_controller {
33
- define_method request_method do
33
+ define_method method do
34
34
  instance_exec(&block) if block
35
35
  args.shift || 'ok'
36
36
  end
@@ -191,7 +191,7 @@ spec :etag do
191
191
 
192
192
  context "idempotent requests" do
193
193
  it 'returns 200 for normal requests' do
194
- run_with(:put) {etag 'foo'}
194
+ run_with {etag 'foo'}
195
195
 
196
196
  put
197
197
  assert(last_response).is_ok_with_body('ok')
@@ -199,7 +199,7 @@ spec :etag do
199
199
 
200
200
  context "If-None-Match" do
201
201
  it 'returns 412 when If-None-Match is *' do
202
- run_with(:put) {etag 'foo'}
202
+ run_with {etag 'foo'}
203
203
 
204
204
  env['HTTP_IF_NONE_MATCH'] = '*'
205
205
  put
@@ -207,7 +207,7 @@ spec :etag do
207
207
  end
208
208
 
209
209
  it 'returns 200 when If-None-Match is * for new resources' do
210
- run_with(:put) {etag 'foo', :new_resource => true}
210
+ run_with {etag 'foo', :new_resource => true}
211
211
 
212
212
  env['HTTP_IF_NONE_MATCH'] = '*'
213
213
  put
@@ -215,7 +215,7 @@ spec :etag do
215
215
  end
216
216
 
217
217
  it 'returns 412 when If-None-Match is * for existing resources' do
218
- run_with(:put) {etag 'foo', :new_resource => false}
218
+ run_with {etag 'foo', :new_resource => false}
219
219
 
220
220
  env['HTTP_IF_NONE_MATCH'] = '*'
221
221
  put
@@ -223,7 +223,7 @@ spec :etag do
223
223
  end
224
224
 
225
225
  it 'returns 412 when If-None-Match is the etag' do
226
- run_with(:put) {etag 'foo'}
226
+ run_with {etag 'foo'}
227
227
 
228
228
  env['HTTP_IF_NONE_MATCH'] = '"foo"'
229
229
  put
@@ -231,7 +231,7 @@ spec :etag do
231
231
  end
232
232
 
233
233
  it 'returns 412 when If-None-Match includes the etag' do
234
- run_with(:put) {etag 'foo'}
234
+ run_with {etag 'foo'}
235
235
 
236
236
  env['HTTP_IF_NONE_MATCH'] = '"bar", "foo"'
237
237
  put
@@ -239,7 +239,7 @@ spec :etag do
239
239
  end
240
240
 
241
241
  it 'returns 200 when If-None-Match does not include the etag' do
242
- run_with(:put) {etag 'foo'}
242
+ run_with {etag 'foo'}
243
243
 
244
244
  env['HTTP_IF_NONE_MATCH'] = '"bar"'
245
245
  put
@@ -247,7 +247,7 @@ spec :etag do
247
247
  end
248
248
 
249
249
  it 'ignores If-Modified-Since if If-None-Match does not match' do
250
- run_with(:put) {
250
+ run_with {
251
251
  etag 'foo'
252
252
  last_modified Time.at(0)
253
253
  }
@@ -260,7 +260,7 @@ spec :etag do
260
260
 
261
261
  context "If-Match" do
262
262
  it 'returns 200 when If-Match is the etag' do
263
- run_with(:put) {etag 'foo'}
263
+ run_with {etag 'foo'}
264
264
 
265
265
  env['HTTP_IF_MATCH'] = '"foo"'
266
266
  put
@@ -268,7 +268,7 @@ spec :etag do
268
268
  end
269
269
 
270
270
  it 'returns 200 when If-Match includes the etag' do
271
- run_with(:put) {etag 'foo'}
271
+ run_with {etag 'foo'}
272
272
 
273
273
  env['HTTP_IF_MATCH'] = '"foo", "bar"'
274
274
  put
@@ -276,7 +276,7 @@ spec :etag do
276
276
  end
277
277
 
278
278
  it 'returns 200 when If-Match is *' do
279
- run_with(:put) {etag 'foo'}
279
+ run_with {etag 'foo'}
280
280
 
281
281
  env['HTTP_IF_MATCH'] = '*'
282
282
  put
@@ -284,7 +284,7 @@ spec :etag do
284
284
  end
285
285
 
286
286
  it 'returns 412 when If-Match is * for new resources' do
287
- run_with(:put) {etag 'foo', :new_resource => true}
287
+ run_with {etag 'foo', :new_resource => true}
288
288
 
289
289
  env['HTTP_IF_MATCH'] = '*'
290
290
  put
@@ -292,7 +292,7 @@ spec :etag do
292
292
  end
293
293
 
294
294
  it 'returns 200 when If-Match is * for existing resources' do
295
- run_with(:put) {etag 'foo', :new_resource => false}
295
+ run_with {etag 'foo', :new_resource => false}
296
296
 
297
297
  env['HTTP_IF_MATCH'] = '*'
298
298
  put
@@ -300,7 +300,7 @@ spec :etag do
300
300
  end
301
301
 
302
302
  it 'returns 412 when If-Match does not include the etag' do
303
- run_with(:put) {etag 'foo'}
303
+ run_with {etag 'foo'}
304
304
 
305
305
  env['HTTP_IF_MATCH'] = '"bar"'
306
306
  put
@@ -311,7 +311,7 @@ spec :etag do
311
311
 
312
312
  context "post requests" do
313
313
  it 'returns 200 for normal requests' do
314
- run_with(:post) {etag 'foo'}
314
+ run_with {etag 'foo'}
315
315
 
316
316
  post
317
317
  assert(last_response).is_ok_with_body('ok')
@@ -319,7 +319,7 @@ spec :etag do
319
319
 
320
320
  context "If-None-Match" do
321
321
  it 'returns 200 when If-None-Match is *' do
322
- run_with(:post) {etag 'foo'}
322
+ run_with {etag 'foo'}
323
323
 
324
324
  env['HTTP_IF_NONE_MATCH'] = '*'
325
325
  post
@@ -327,7 +327,7 @@ spec :etag do
327
327
  end
328
328
 
329
329
  it 'returns 200 when If-None-Match is * for new resources' do
330
- run_with(:post) {etag 'foo', :new_resource => true}
330
+ run_with {etag 'foo', :new_resource => true}
331
331
 
332
332
  env['HTTP_IF_NONE_MATCH'] = '*'
333
333
  post
@@ -335,7 +335,7 @@ spec :etag do
335
335
  end
336
336
 
337
337
  it 'returns 412 when If-None-Match is * for existing resources' do
338
- run_with(:post) {etag 'foo', :new_resource => false}
338
+ run_with {etag 'foo', :new_resource => false}
339
339
 
340
340
  env['HTTP_IF_NONE_MATCH'] = '*'
341
341
  post
@@ -343,7 +343,7 @@ spec :etag do
343
343
  end
344
344
 
345
345
  it 'returns 412 when If-None-Match is the etag' do
346
- run_with(:post) {etag 'foo'}
346
+ run_with {etag 'foo'}
347
347
 
348
348
  env['HTTP_IF_NONE_MATCH'] = '"foo"'
349
349
  post
@@ -351,7 +351,7 @@ spec :etag do
351
351
  end
352
352
 
353
353
  it 'returns 412 when If-None-Match includes the etag' do
354
- run_with(:post) {etag 'foo'}
354
+ run_with {etag 'foo'}
355
355
 
356
356
  env['HTTP_IF_NONE_MATCH'] = '"bar", "foo"'
357
357
  post
@@ -359,7 +359,7 @@ spec :etag do
359
359
  end
360
360
 
361
361
  it 'returns 200 when If-None-Match does not include the etag' do
362
- run_with(:post) {etag 'foo'}
362
+ run_with {etag 'foo'}
363
363
 
364
364
  env['HTTP_IF_NONE_MATCH'] = '"bar"'
365
365
  post
@@ -367,7 +367,7 @@ spec :etag do
367
367
  end
368
368
 
369
369
  it 'ignores If-Modified-Since if If-None-Match does not match' do
370
- run_with(:post) {
370
+ run_with {
371
371
  etag 'foo'
372
372
  last_modified Time.at(0)
373
373
  }
@@ -380,7 +380,7 @@ spec :etag do
380
380
 
381
381
  context "If-Match" do
382
382
  it 'returns 200 when If-Match is the etag' do
383
- run_with(:post) {etag 'foo'}
383
+ run_with {etag 'foo'}
384
384
 
385
385
  env['HTTP_IF_MATCH'] = '"foo"'
386
386
  post
@@ -388,7 +388,7 @@ spec :etag do
388
388
  end
389
389
 
390
390
  it 'returns 200 when If-Match includes the etag' do
391
- run_with(:post) {etag 'foo'}
391
+ run_with {etag 'foo'}
392
392
 
393
393
  env['HTTP_IF_MATCH'] = '"foo", "bar"'
394
394
  post
@@ -396,7 +396,7 @@ spec :etag do
396
396
  end
397
397
 
398
398
  it 'returns 412 when If-Match is *' do
399
- run_with(:post) {etag 'foo'}
399
+ run_with {etag 'foo'}
400
400
 
401
401
  env['HTTP_IF_MATCH'] = '*'
402
402
  post
@@ -404,7 +404,7 @@ spec :etag do
404
404
  end
405
405
 
406
406
  it 'returns 412 when If-Match is * for new resources' do
407
- run_with(:post) {etag 'foo', :new_resource => true}
407
+ run_with {etag 'foo', :new_resource => true}
408
408
 
409
409
  env['HTTP_IF_MATCH'] = '*'
410
410
  post
@@ -412,7 +412,7 @@ spec :etag do
412
412
  end
413
413
 
414
414
  it 'returns 200 when If-Match is * for existing resources' do
415
- run_with(:post) {etag 'foo', :new_resource => false}
415
+ run_with {etag 'foo', :new_resource => false}
416
416
 
417
417
  env['HTTP_IF_MATCH'] = '*'
418
418
  post
@@ -420,7 +420,7 @@ spec :etag do
420
420
  end
421
421
 
422
422
  it 'returns 412 when If-Match does not include the etag' do
423
- run_with(:post) {etag 'foo'}
423
+ run_with {etag 'foo'}
424
424
 
425
425
  env['HTTP_IF_MATCH'] = '"bar"'
426
426
  post
@@ -430,14 +430,14 @@ spec :etag do
430
430
  end
431
431
 
432
432
  it 'uses a weak etag with the :weak option' do
433
- run_with(:get, "that's weak, dude.") {etag 'FOO', :weak}
433
+ run_with(:index, "that's weak, dude.") {etag 'FOO', :weak}
434
434
 
435
435
  get
436
436
  assert(last_response['ETag']) == 'W/"FOO"'
437
437
  end
438
438
 
439
439
  it 'raises an ArgumentError for an invalid strength' do
440
- run_with(:get, "that's weak, dude.") {etag 'FOO', :w00t}
440
+ run_with(:index, "that's weak, dude.") {etag 'FOO', :w00t}
441
441
  assert {get}.raise ArgumentError, /:strong or :weak expected/
442
442
  end
443
443
  end