sinatra-contrib 1.4.7 → 2.0.0.beta1

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.
@@ -22,11 +22,11 @@ describe Sinatra::Extension do
22
22
 
23
23
  before { mock_app { register ExampleExtension }}
24
24
 
25
- it('allows using set') { settings.foo.should == :bar }
26
- it('implements configure') { settings.reload_stuff.should be false }
25
+ it('allows using set') { expect(settings.foo).to eq(:bar) }
26
+ it('implements configure') { expect(settings.reload_stuff).to be false }
27
27
 
28
28
  it 'allows defing routes' do
29
- get('/').should be_ok
30
- body.should == "from extension, yay"
29
+ expect(get('/')).to be_ok
30
+ expect(body).to eq("from extension, yay")
31
31
  end
32
32
  end
@@ -9,7 +9,7 @@ shared_examples_for "a json encoder" do |lib, const|
9
9
  require lib if lib
10
10
  @encoder = eval(const)
11
11
  rescue LoadError
12
- pending "unable to load #{lib}"
12
+ skip "unable to load #{lib}"
13
13
  end
14
14
  end
15
15
 
@@ -37,7 +37,7 @@ describe Sinatra::JSON do
37
37
  end
38
38
 
39
39
  def results_in(obj)
40
- OkJson.decode(get('/').body).should == obj
40
+ expect(OkJson.decode(get('/').body)).to eq(obj)
41
41
  end
42
42
 
43
43
  it "encodes objects to json out of the box" do
@@ -47,36 +47,36 @@ describe Sinatra::JSON do
47
47
 
48
48
  it "sets the content type to 'application/json'" do
49
49
  mock_app { get('/') { json({}) } }
50
- get('/')["Content-Type"].should include("application/json")
50
+ expect(get('/')["Content-Type"]).to include("application/json")
51
51
  end
52
52
 
53
53
  it "allows overriding content type with :content_type" do
54
54
  mock_app { get('/') { json({}, :content_type => "foo/bar") } }
55
- get('/')["Content-Type"].should == "foo/bar"
55
+ expect(get('/')["Content-Type"]).to eq("foo/bar")
56
56
  end
57
57
 
58
58
  it "accepts shorthands for :content_type" do
59
59
  mock_app { get('/') { json({}, :content_type => :js) } }
60
- get('/')["Content-Type"].should == "application/javascript;charset=utf-8"
60
+ expect(get('/')["Content-Type"]).to eq("application/javascript;charset=utf-8")
61
61
  end
62
62
 
63
63
  it 'calls generate on :encoder if available' do
64
64
  enc = Object.new
65
65
  def enc.generate(obj) obj.inspect end
66
66
  mock_app { get('/') { json(42, :encoder => enc) }}
67
- get('/').body.should == '42'
67
+ expect(get('/').body).to eq('42')
68
68
  end
69
69
 
70
70
  it 'calls encode on :encoder if available' do
71
71
  enc = Object.new
72
72
  def enc.encode(obj) obj.inspect end
73
73
  mock_app { get('/') { json(42, :encoder => enc) }}
74
- get('/').body.should == '42'
74
+ expect(get('/').body).to eq('42')
75
75
  end
76
76
 
77
77
  it 'sends :encoder as method call if it is a Symbol' do
78
78
  mock_app { get('/') { json(42, :encoder => :inspect) }}
79
- get('/').body.should == '42'
79
+ expect(get('/').body).to eq('42')
80
80
  end
81
81
 
82
82
  it 'calls generate on settings.json_encoder if available' do
@@ -86,7 +86,7 @@ describe Sinatra::JSON do
86
86
  set :json_encoder, enc
87
87
  get('/') { json 42 }
88
88
  end
89
- get('/').body.should == '42'
89
+ expect(get('/').body).to eq('42')
90
90
  end
91
91
 
92
92
  it 'calls encode on settings.json_encode if available' do
@@ -96,7 +96,7 @@ describe Sinatra::JSON do
96
96
  set :json_encoder, enc
97
97
  get('/') { json 42 }
98
98
  end
99
- get('/').body.should == '42'
99
+ expect(get('/').body).to eq('42')
100
100
  end
101
101
 
102
102
  it 'sends settings.json_encode as method call if it is a Symbol' do
@@ -104,7 +104,7 @@ describe Sinatra::JSON do
104
104
  set :json_encoder, :inspect
105
105
  get('/') { json 42 }
106
106
  end
107
- get('/').body.should == '42'
107
+ expect(get('/').body).to eq('42')
108
108
  end
109
109
 
110
110
  describe('Yajl') { it_should_behave_like "a json encoder", "yajl", "Yajl::Encoder" } unless defined? JRUBY_VERSION
@@ -30,70 +30,70 @@ describe Sinatra::LinkHeader do
30
30
  describe :link do
31
31
  it "sets link headers" do
32
32
  get '/'
33
- headers['Link'].lines.should include('<booyah>; rel="something"')
33
+ expect(headers['Link'].lines).to include('<booyah>; rel="something"')
34
34
  end
35
35
 
36
36
  it "returns link html tags" do
37
37
  get '/'
38
- body.should == '<link href="booyah" rel="something" />'
38
+ expect(body).to eq('<link href="booyah" rel="something" />')
39
39
  end
40
40
 
41
41
  it "takes an options hash" do
42
42
  get '/'
43
43
  elements = ["<something>", "foo=\"bar\"", "rel=\"from-filter\""]
44
- headers['Link'].lines.first.strip.split('; ').sort.should == elements
44
+ expect(headers['Link'].split(",\n").first.strip.split('; ').sort).to eq(elements)
45
45
  end
46
46
  end
47
47
 
48
48
  describe :stylesheet do
49
49
  it 'sets link headers' do
50
50
  get '/style'
51
- headers['Link'].should match(%r{^</style\.css>;})
51
+ expect(headers['Link']).to match(%r{^</style\.css>;})
52
52
  end
53
53
 
54
54
  it 'sets type to text/css' do
55
55
  get '/style'
56
- headers['Link'].should include('type="text/css"')
56
+ expect(headers['Link']).to include('type="text/css"')
57
57
  end
58
58
 
59
59
  it 'sets rel to stylesheet' do
60
60
  get '/style'
61
- headers['Link'].should include('rel="stylesheet"')
61
+ expect(headers['Link']).to include('rel="stylesheet"')
62
62
  end
63
63
 
64
64
  it 'returns html tag' do
65
65
  get '/style'
66
- body.should match(%r{^<link href="/style\.css"})
66
+ expect(body).to match(%r{^<link href="/style\.css"})
67
67
  end
68
68
  end
69
69
 
70
70
  describe :prefetch do
71
71
  it 'sets link headers' do
72
72
  get '/prefetch'
73
- headers['Link'].should match(%r{^</foo>;})
73
+ expect(headers['Link']).to match(%r{^</foo>;})
74
74
  end
75
75
 
76
76
  it 'sets rel to prefetch' do
77
77
  get '/prefetch'
78
- headers['Link'].should include('rel="prefetch"')
78
+ expect(headers['Link']).to include('rel="prefetch"')
79
79
  end
80
80
 
81
81
  it 'returns html tag' do
82
82
  get '/prefetch'
83
- body.should == '<link href="/foo" rel="prefetch" />'
83
+ expect(body).to eq('<link href="/foo" rel="prefetch" />')
84
84
  end
85
85
  end
86
86
 
87
87
  describe :link_headers do
88
88
  it 'generates html for all link headers' do
89
89
  get '/link_headers'
90
- body.should include('<link href="/foo" rel="prefetch" />')
91
- body.should include('<link href="/style.css" ')
90
+ expect(body).to include('<link href="/foo" rel="prefetch" />')
91
+ expect(body).to include('<link href="/style.css" ')
92
92
  end
93
93
 
94
94
  it "respects Link headers not generated on its own" do
95
95
  get '/link_headers'
96
- body.should include('<link href="foo" bar="baz" />')
96
+ expect(body).to include('<link href="foo" bar="baz" />')
97
97
  end
98
98
  end
99
99
  end
@@ -8,8 +8,8 @@ describe Sinatra::MultiRoute do
8
8
  get('/') { 'normal' }
9
9
  end
10
10
 
11
- get('/').should be_ok
12
- body.should be == 'normal'
11
+ expect(get('/')).to be_ok
12
+ expect(body).to eq('normal')
13
13
  end
14
14
 
15
15
  it 'supports multiple routes' do
@@ -18,10 +18,10 @@ describe Sinatra::MultiRoute do
18
18
  get('/foo', '/bar') { 'paths' }
19
19
  end
20
20
 
21
- get('/foo').should be_ok
22
- body.should be == 'paths'
23
- get('/bar').should be_ok
24
- body.should be == 'paths'
21
+ expect(get('/foo')).to be_ok
22
+ expect(body).to eq('paths')
23
+ expect(get('/bar')).to be_ok
24
+ expect(body).to eq('paths')
25
25
  end
26
26
 
27
27
  it 'triggers conditions' do
@@ -32,7 +32,7 @@ describe Sinatra::MultiRoute do
32
32
  get('/foo', '/bar', :some_condition => true) { 'paths' }
33
33
  end
34
34
 
35
- count.should be == 4
35
+ expect(count).to eq(4)
36
36
  end
37
37
 
38
38
  it 'supports multiple verbs' do
@@ -41,10 +41,10 @@ describe Sinatra::MultiRoute do
41
41
  route('PUT', 'POST', '/') { 'verb' }
42
42
  end
43
43
 
44
- post('/').should be_ok
45
- body.should be == 'verb'
46
- put('/').should be_ok
47
- body.should be == 'verb'
44
+ expect(post('/')).to be_ok
45
+ expect(body).to eq('verb')
46
+ expect(put('/')).to be_ok
47
+ expect(body).to eq('verb')
48
48
  end
49
49
 
50
50
  it 'takes symbols as verbs' do
@@ -53,7 +53,7 @@ describe Sinatra::MultiRoute do
53
53
  route(:get, '/baz') { 'symbol as verb' }
54
54
  end
55
55
 
56
- get('/baz').should be_ok
57
- body.should be == 'symbol as verb'
56
+ expect(get('/baz')).to be_ok
57
+ expect(body).to eq('symbol as verb')
58
58
  end
59
59
  end
@@ -1,8 +1,7 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe Sinatra::Namespace do
4
- verbs = [:get, :head, :post, :put, :delete, :options]
5
- verbs << :patch if Sinatra::VERSION >= '1.3'
4
+ verbs = [:get, :head, :post, :put, :delete, :options, :patch]
6
5
 
7
6
  def mock_app(&block)
8
7
  super do
@@ -20,96 +19,147 @@ describe Sinatra::Namespace do
20
19
 
21
20
  it 'prefixes the path with the namespace' do
22
21
  namespace('/foo') { send(verb, '/bar') { 'baz' }}
23
- send(verb, '/foo/bar').should be_ok
24
- body.should == 'baz' unless verb == :head
25
- send(verb, '/foo/baz').should_not be_ok
22
+ expect(send(verb, '/foo/bar')).to be_ok
23
+ expect(body).to eq('baz') unless verb == :head
24
+ expect(send(verb, '/foo/baz')).not_to be_ok
25
+ end
26
+
27
+ describe 'redirect_to' do
28
+ it 'redirect within namespace' do
29
+ namespace('/foo') { send(verb, '/bar') { redirect_to '/foo_bar' }}
30
+ expect(send(verb, '/foo/bar')).to be_redirect
31
+ expect(send(verb, '/foo/bar').location).to include("/foo/foo_bar")
32
+ end
26
33
  end
27
34
 
28
35
  context 'when namespace is a string' do
29
36
  it 'accepts routes with no path' do
30
37
  namespace('/foo') { send(verb) { 'bar' } }
31
- send(verb, '/foo').should be_ok
32
- body.should == 'bar' unless verb == :head
38
+ expect(send(verb, '/foo')).to be_ok
39
+ expect(body).to eq('bar') unless verb == :head
33
40
  end
34
41
 
35
42
  it 'accepts the path as a named parameter' do
36
43
  namespace('/foo') { send(verb, '/:bar') { params[:bar] }}
37
- send(verb, '/foo/bar').should be_ok
38
- body.should == 'bar' unless verb == :head
39
- send(verb, '/foo/baz').should be_ok
40
- body.should == 'baz' unless verb == :head
44
+ expect(send(verb, '/foo/bar')).to be_ok
45
+ expect(body).to eq('bar') unless verb == :head
46
+ expect(send(verb, '/foo/baz')).to be_ok
47
+ expect(body).to eq('baz') unless verb == :head
41
48
  end
42
49
 
43
50
  it 'accepts the path as a regular expression' do
44
51
  namespace('/foo') { send(verb, /\/\d\d/) { 'bar' }}
45
- send(verb, '/foo/12').should be_ok
46
- body.should eq 'bar' unless verb == :head
47
- send(verb, '/foo/123').should_not be_ok
52
+ expect(send(verb, '/foo/12')).to be_ok
53
+ expect(body).to eq 'bar' unless verb == :head
54
+ expect(send(verb, '/foo/123')).not_to be_ok
48
55
  end
49
56
  end
50
57
 
51
58
  context 'when namespace is a named parameter' do
52
59
  it 'accepts routes with no path' do
53
60
  namespace('/:foo') { send(verb) { 'bar' } }
54
- send(verb, '/foo').should be_ok
55
- body.should == 'bar' unless verb == :head
61
+ expect(send(verb, '/foo')).to be_ok
62
+ expect(body).to eq('bar') unless verb == :head
56
63
  end
57
64
 
58
65
  it 'sets the parameter correctly' do
59
66
  namespace('/:foo') { send(verb, '/bar') { params[:foo] }}
60
- send(verb, '/foo/bar').should be_ok
61
- body.should == 'foo' unless verb == :head
62
- send(verb, '/fox/bar').should be_ok
63
- body.should == 'fox' unless verb == :head
64
- send(verb, '/foo/baz').should_not be_ok
67
+ expect(send(verb, '/foo/bar')).to be_ok
68
+ expect(body).to eq('foo') unless verb == :head
69
+ expect(send(verb, '/fox/bar')).to be_ok
70
+ expect(body).to eq('fox') unless verb == :head
71
+ expect(send(verb, '/foo/baz')).not_to be_ok
65
72
  end
66
73
 
67
74
  it 'accepts the path as a named parameter' do
68
75
  namespace('/:foo') { send(verb, '/:bar') { params[:bar] }}
69
- send(verb, '/foo/bar').should be_ok
70
- body.should == 'bar' unless verb == :head
71
- send(verb, '/foo/baz').should be_ok
72
- body.should == 'baz' unless verb == :head
76
+ expect(send(verb, '/foo/bar')).to be_ok
77
+ expect(body).to eq('bar') unless verb == :head
78
+ expect(send(verb, '/foo/baz')).to be_ok
79
+ expect(body).to eq('baz') unless verb == :head
73
80
  end
74
81
 
75
82
  it 'accepts the path as regular expression' do
76
83
  namespace('/:foo') { send(verb, %r{/bar}) { params[:foo] }}
77
- send(verb, '/foo/bar').should be_ok
78
- body.should == 'foo' unless verb == :head
79
- send(verb, '/fox/bar').should be_ok
80
- body.should == 'fox' unless verb == :head
81
- send(verb, '/foo/baz').should_not be_ok
84
+ expect(send(verb, '/foo/bar')).to be_ok
85
+ expect(body).to eq('foo') unless verb == :head
86
+ expect(send(verb, '/fox/bar')).to be_ok
87
+ expect(body).to eq('fox') unless verb == :head
88
+ expect(send(verb, '/foo/baz')).not_to be_ok
82
89
  end
83
90
  end
84
91
 
85
92
  context 'when namespace is a regular expression' do
86
93
  it 'accepts routes with no path' do
87
94
  namespace(%r{/foo}) { send(verb) { 'bar' } }
88
- send(verb, '/foo').should be_ok
89
- body.should == 'bar' unless verb == :head
95
+ expect(send(verb, '/foo')).to be_ok
96
+ expect(body).to eq('bar') unless verb == :head
90
97
  end
91
98
 
92
99
  it 'accepts the path as a named parameter' do
93
100
  namespace(%r{/foo}) { send(verb, '/:bar') { params[:bar] }}
94
- send(verb, '/foo/bar').should be_ok
95
- body.should == 'bar' unless verb == :head
96
- send(verb, '/foo/baz').should be_ok
97
- body.should == 'baz' unless verb == :head
101
+ expect(send(verb, '/foo/bar')).to be_ok
102
+ expect(body).to eq('bar') unless verb == :head
103
+ expect(send(verb, '/foo/baz')).to be_ok
104
+ expect(body).to eq('baz') unless verb == :head
98
105
  end
99
106
 
100
107
  it 'accepts the path as a regular expression' do
101
108
  namespace(/\/\d\d/) { send(verb, /\/\d\d/) { 'foo' }}
102
- send(verb, '/23/12').should be_ok
103
- body.should == 'foo' unless verb == :head
104
- send(verb, '/123/12').should_not be_ok
109
+ expect(send(verb, '/23/12')).to be_ok
110
+ expect(body).to eq('foo') unless verb == :head
111
+ expect(send(verb, '/123/12')).not_to be_ok
112
+ end
113
+
114
+ describe "before/after filters" do
115
+ it 'trigger before filter' do
116
+ ran = false
117
+ namespace(/\/foo\/([^\/&?]+)\/bar\/([^\/&?]+)\//) { before { ran = true };}
118
+
119
+ send(verb, '/bar/')
120
+ expect(ran).to eq(false)
121
+
122
+ send(verb, '/foo/1/bar/1/')
123
+ expect(ran).to eq(true)
124
+ end
125
+
126
+ it 'trigger after filter' do
127
+ ran = false
128
+ namespace(/\/foo\/([^\/&?]+)\/bar\/([^\/&?]+)\//) { after { ran = true };}
129
+
130
+ send(verb, '/bar/')
131
+ expect(ran).to eq(false)
132
+
133
+ send(verb, '/foo/1/bar/1/')
134
+ expect(ran).to eq(true)
135
+ end
136
+ end
137
+
138
+ describe 'helpers' do
139
+ it 'are defined using the helpers method' do
140
+ namespace /\/foo\/([^\/&?]+)\/bar\/([^\/&?]+)\// do
141
+ helpers do
142
+ def foo
143
+ 'foo'
144
+ end
145
+ end
146
+
147
+ send verb, '' do
148
+ foo.to_s
149
+ end
150
+ end
151
+
152
+ expect(send(verb, '/foo/1/bar/1/')).to be_ok
153
+ expect(body).to eq('foo') unless verb == :head
154
+ end
105
155
  end
106
156
  end
107
157
 
108
158
  context 'when namespace is a splat' do
109
159
  it 'accepts the path as a splat' do
110
160
  namespace('/*') { send(verb, '/*') { params[:splat].join ' - ' }}
111
- send(verb, '/foo/bar').should be_ok
112
- body.should == 'foo - bar' unless verb == :head
161
+ expect(send(verb, '/foo/bar')).to be_ok
162
+ expect(body).to eq('foo - bar') unless verb == :head
113
163
  end
114
164
  end
115
165
 
@@ -118,14 +168,14 @@ describe Sinatra::Namespace do
118
168
  ran = false
119
169
  namespace('/foo') { before { ran = true }}
120
170
  send(verb, '/foo')
121
- ran.should be true
171
+ expect(ran).to be true
122
172
  end
123
173
 
124
174
  specify 'are not triggered for a different namespace' do
125
175
  ran = false
126
176
  namespace('/foo') { before { ran = true }}
127
177
  send(verb, '/fox')
128
- ran.should be false
178
+ expect(ran).to be false
129
179
  end
130
180
  end
131
181
 
@@ -134,14 +184,14 @@ describe Sinatra::Namespace do
134
184
  ran = false
135
185
  namespace('/foo') { after { ran = true }}
136
186
  send(verb, '/foo')
137
- ran.should be true
187
+ expect(ran).to be true
138
188
  end
139
189
 
140
190
  specify 'are not triggered for a different namespace' do
141
191
  ran = false
142
192
  namespace('/foo') { after { ran = true }}
143
193
  send(verb, '/fox')
144
- ran.should be false
194
+ expect(ran).to be false
145
195
  end
146
196
  end
147
197
 
@@ -153,20 +203,20 @@ describe Sinatra::Namespace do
153
203
  send(verb, '/') { 'no' }
154
204
  end
155
205
  send(verb, '/', {}, 'HTTP_HOST' => 'example.com')
156
- last_response.should be_ok
157
- body.should == 'yes' unless verb == :head
206
+ expect(last_response).to be_ok
207
+ expect(body).to eq('yes') unless verb == :head
158
208
  send(verb, '/', {}, 'HTTP_HOST' => 'example.org')
159
- last_response.should be_ok
160
- body.should == 'no' unless verb == :head
209
+ expect(last_response).to be_ok
210
+ expect(body).to eq('no') unless verb == :head
161
211
  end
162
212
 
163
213
  specify 'are accepted in the route definition' do
164
214
  namespace :host_name => 'example.com' do
165
215
  send(verb, '/foo', :provides => :txt) { 'ok' }
166
216
  end
167
- send(verb, '/foo', {}, 'HTTP_HOST' => 'example.com', 'HTTP_ACCEPT' => 'text/plain').should be_ok
168
- send(verb, '/foo', {}, 'HTTP_HOST' => 'example.com', 'HTTP_ACCEPT' => 'text/html').should_not be_ok
169
- send(verb, '/foo', {}, 'HTTP_HOST' => 'example.org', 'HTTP_ACCEPT' => 'text/plain').should_not be_ok
217
+ expect(send(verb, '/foo', {}, 'HTTP_HOST' => 'example.com', 'HTTP_ACCEPT' => 'text/plain')).to be_ok
218
+ expect(send(verb, '/foo', {}, 'HTTP_HOST' => 'example.com', 'HTTP_ACCEPT' => 'text/html')).not_to be_ok
219
+ expect(send(verb, '/foo', {}, 'HTTP_HOST' => 'example.org', 'HTTP_ACCEPT' => 'text/plain')).not_to be_ok
170
220
  end
171
221
 
172
222
  specify 'are accepted in the before-filter' do
@@ -176,13 +226,13 @@ describe Sinatra::Namespace do
176
226
  send(verb, '/*') { 'ok' }
177
227
  end
178
228
  send(verb, '/foo', {}, 'HTTP_HOST' => 'example.org', 'HTTP_ACCEPT' => 'text/plain')
179
- ran.should be false
229
+ expect(ran).to be false
180
230
  send(verb, '/foo', {}, 'HTTP_HOST' => 'example.com', 'HTTP_ACCEPT' => 'text/html')
181
- ran.should be false
231
+ expect(ran).to be false
182
232
  send(verb, '/bar', {}, 'HTTP_HOST' => 'example.com', 'HTTP_ACCEPT' => 'text/plain')
183
- ran.should be false
233
+ expect(ran).to be false
184
234
  send(verb, '/foo', {}, 'HTTP_HOST' => 'example.com', 'HTTP_ACCEPT' => 'text/plain')
185
- ran.should be true
235
+ expect(ran).to be true
186
236
  end
187
237
 
188
238
  specify 'are accepted in the after-filter' do
@@ -192,13 +242,13 @@ describe Sinatra::Namespace do
192
242
  send(verb, '/*') { 'ok' }
193
243
  end
194
244
  send(verb, '/foo', {}, 'HTTP_HOST' => 'example.org', 'HTTP_ACCEPT' => 'text/plain')
195
- ran.should be false
245
+ expect(ran).to be false
196
246
  send(verb, '/foo', {}, 'HTTP_HOST' => 'example.com', 'HTTP_ACCEPT' => 'text/html')
197
- ran.should be false
247
+ expect(ran).to be false
198
248
  send(verb, '/bar', {}, 'HTTP_HOST' => 'example.com', 'HTTP_ACCEPT' => 'text/plain')
199
- ran.should be false
249
+ expect(ran).to be false
200
250
  send(verb, '/foo', {}, 'HTTP_HOST' => 'example.com', 'HTTP_ACCEPT' => 'text/plain')
201
- ran.should be true
251
+ expect(ran).to be true
202
252
  end
203
253
  end
204
254
 
@@ -207,8 +257,8 @@ describe Sinatra::Namespace do
207
257
  namespace '/foo', :host_name => 'example.com' do
208
258
  send(verb) { 'ok' }
209
259
  end
210
- send(verb, '/foo', {}, 'HTTP_HOST' => 'example.com').should be_ok
211
- send(verb, '/foo', {}, 'HTTP_HOST' => 'example.org').should_not be_ok
260
+ expect(send(verb, '/foo', {}, 'HTTP_HOST' => 'example.com')).to be_ok
261
+ expect(send(verb, '/foo', {}, 'HTTP_HOST' => 'example.org')).not_to be_ok
212
262
  end
213
263
 
214
264
  specify 'are accepted in the before-filter' do
@@ -217,11 +267,11 @@ describe Sinatra::Namespace do
217
267
  send(verb) { @yes || 'no' }
218
268
  end
219
269
  send(verb, '/foo', {}, 'HTTP_HOST' => 'example.com')
220
- last_response.should be_ok
221
- body.should == 'yes' unless verb == :head
270
+ expect(last_response).to be_ok
271
+ expect(body).to eq('yes') unless verb == :head
222
272
  send(verb, '/foo', {}, 'HTTP_HOST' => 'example.org')
223
- last_response.should be_ok
224
- body.should == 'no' unless verb == :head
273
+ expect(last_response).to be_ok
274
+ expect(body).to eq('no') unless verb == :head
225
275
  end
226
276
 
227
277
  specify 'are accepted in the after-filter' do
@@ -231,17 +281,17 @@ describe Sinatra::Namespace do
231
281
  send(verb) { 'ok' }
232
282
  end
233
283
  send(verb, '/foo', {}, 'HTTP_HOST' => 'example.org')
234
- ran.should be false
284
+ expect(ran).to be false
235
285
  send(verb, '/foo', {}, 'HTTP_HOST' => 'example.com')
236
- ran.should be true
286
+ expect(ran).to be true
237
287
  end
238
288
 
239
289
  specify 'are accepted in the route definition' do
240
290
  namespace '/foo' do
241
291
  send(verb, :host_name => 'example.com') { 'ok' }
242
292
  end
243
- send(verb, '/foo', {}, 'HTTP_HOST' => 'example.com').should be_ok
244
- send(verb, '/foo', {}, 'HTTP_HOST' => 'example.org').should_not be_ok
293
+ expect(send(verb, '/foo', {}, 'HTTP_HOST' => 'example.com')).to be_ok
294
+ expect(send(verb, '/foo', {}, 'HTTP_HOST' => 'example.org')).not_to be_ok
245
295
  end
246
296
 
247
297
  context 'when the namespace has a condition' do
@@ -252,11 +302,11 @@ describe Sinatra::Namespace do
252
302
  send(verb) { 'ok' }
253
303
  end
254
304
  send(verb, '/', {}, 'HTTP_HOST' => 'example.org', 'HTTP_ACCEPT' => 'text/plain')
255
- ran.should be false
305
+ expect(ran).to be false
256
306
  send(verb, '/', {}, 'HTTP_HOST' => 'example.com', 'HTTP_ACCEPT' => 'text/html')
257
- ran.should be false
307
+ expect(ran).to be false
258
308
  send(verb, '/', {}, 'HTTP_HOST' => 'example.com', 'HTTP_ACCEPT' => 'text/plain')
259
- ran.should be true
309
+ expect(ran).to be true
260
310
  end
261
311
 
262
312
  specify 'are accepted in the filters' do
@@ -266,13 +316,13 @@ describe Sinatra::Namespace do
266
316
  send(verb, '/*') { 'ok' }
267
317
  end
268
318
  send(verb, '/foo', {}, 'HTTP_HOST' => 'example.org', 'HTTP_ACCEPT' => 'text/plain')
269
- ran.should be false
319
+ expect(ran).to be false
270
320
  send(verb, '/foo', {}, 'HTTP_HOST' => 'example.com', 'HTTP_ACCEPT' => 'text/html')
271
- ran.should be false
321
+ expect(ran).to be false
272
322
  send(verb, '/far', {}, 'HTTP_HOST' => 'example.com', 'HTTP_ACCEPT' => 'text/plain')
273
- ran.should be false
323
+ expect(ran).to be false
274
324
  send(verb, '/foo', {}, 'HTTP_HOST' => 'example.com', 'HTTP_ACCEPT' => 'text/plain')
275
- ran.should be true
325
+ expect(ran).to be true
276
326
  end
277
327
  end
278
328
  end
@@ -292,8 +342,8 @@ describe Sinatra::Namespace do
292
342
  end
293
343
  end
294
344
 
295
- send(verb, '/foo/bar').should be_ok
296
- body.should == '42' unless verb == :head
345
+ expect(send(verb, '/foo/bar')).to be_ok
346
+ expect(body).to eq('42') unless verb == :head
297
347
  end
298
348
 
299
349
  it 'can be defined as normal methods' do
@@ -307,8 +357,8 @@ describe Sinatra::Namespace do
307
357
  end
308
358
  end
309
359
 
310
- send(verb, '/foo/bar').should be_ok
311
- body.should == '42' unless verb == :head
360
+ expect(send(verb, '/foo/bar')).to be_ok
361
+ expect(body).to eq('42') unless verb == :head
312
362
  end
313
363
 
314
364
  it 'can be defined using module mixins' do
@@ -325,8 +375,8 @@ describe Sinatra::Namespace do
325
375
  end
326
376
  end
327
377
 
328
- send(verb, '/foo/bar').should be_ok
329
- body.should == '42' unless verb == :head
378
+ expect(send(verb, '/foo/bar')).to be_ok
379
+ expect(body).to eq('42') unless verb == :head
330
380
  end
331
381
 
332
382
  specify 'are unavailable outside the namespace where they are defined' do
@@ -346,7 +396,7 @@ describe Sinatra::Namespace do
346
396
  end
347
397
  end
348
398
 
349
- proc { send verb, '/' }.should raise_error(NameError)
399
+ expect { send verb, '/' }.to raise_error(NameError)
350
400
  end
351
401
 
352
402
  specify 'are unavailable outside the namespace that they are mixed into' do
@@ -369,7 +419,7 @@ describe Sinatra::Namespace do
369
419
  end
370
420
  end
371
421
 
372
- proc { send verb, '/' }.should raise_error(NameError)
422
+ expect { send verb, '/' }.to raise_error(NameError)
373
423
  end
374
424
 
375
425
  specify 'are available to nested namespaces' do
@@ -387,8 +437,8 @@ describe Sinatra::Namespace do
387
437
  end
388
438
  end
389
439
 
390
- send(verb, '/foo/bar').should be_ok
391
- body.should == '42' unless verb == :head
440
+ expect(send(verb, '/foo/bar')).to be_ok
441
+ expect(body).to eq('42') unless verb == :head
392
442
  end
393
443
 
394
444
  specify 'can call super from nested definitions' do
@@ -410,8 +460,8 @@ describe Sinatra::Namespace do
410
460
  end
411
461
  end
412
462
 
413
- send(verb, '/foo/bar').should be_ok
414
- body.should == '23' unless verb == :head
463
+ expect(send(verb, '/foo/bar')).to be_ok
464
+ expect(body).to eq('23') unless verb == :head
415
465
  end
416
466
  end
417
467
 
@@ -423,8 +473,8 @@ describe Sinatra::Namespace do
423
473
  end
424
474
  end
425
475
 
426
- send(verb, '/foo/bar/baz').should be_ok
427
- body.should == 'OKAY!!11!' unless verb == :head
476
+ expect(send(verb, '/foo/bar/baz')).to be_ok
477
+ expect(body).to eq('OKAY!!11!') unless verb == :head
428
478
  end
429
479
 
430
480
  it 'exposes helpers to nested namespaces' do
@@ -442,8 +492,8 @@ describe Sinatra::Namespace do
442
492
  end
443
493
  end
444
494
 
445
- send(verb, '/foo/bar/baz').should be_ok
446
- body.should == '42' unless verb == :head
495
+ expect(send(verb, '/foo/bar/baz')).to be_ok
496
+ expect(body).to eq('42') unless verb == :head
447
497
  end
448
498
 
449
499
  specify 'does not provide access to nested helper methods' do
@@ -463,13 +513,13 @@ describe Sinatra::Namespace do
463
513
  end
464
514
  end
465
515
 
466
- proc { send verb, '/foo' }.should raise_error(NameError)
516
+ expect { send verb, '/foo' }.to raise_error(NameError)
467
517
  end
468
518
 
469
519
  it 'accepts a nested namespace as a named parameter' do
470
520
  namespace('/:a') { namespace('/:b') { send(verb) { params[:a] }}}
471
- send(verb, '/foo/bar').should be_ok
472
- body.should == 'foo' unless verb == :head
521
+ expect(send(verb, '/foo/bar')).to be_ok
522
+ expect(body).to eq('foo') unless verb == :head
473
523
  end
474
524
  end
475
525
 
@@ -478,24 +528,24 @@ describe Sinatra::Namespace do
478
528
  namespace('/de') do
479
529
  not_found { 'nicht gefunden' }
480
530
  end
481
- send(verb, '/foo').status.should eq 404
482
- last_response.body.should_not eq 'nicht gefunden' unless verb == :head
483
- get('/en/foo').status.should eq 404
484
- last_response.body.should_not eq 'nicht gefunden' unless verb == :head
485
- get('/de/foo').status.should eq 404
486
- last_response.body.should eq 'nicht gefunden' unless verb == :head
531
+ expect(send(verb, '/foo').status).to eq 404
532
+ expect(last_response.body).not_to eq 'nicht gefunden' unless verb == :head
533
+ expect(get('/en/foo').status).to eq 404
534
+ expect(last_response.body).not_to eq 'nicht gefunden' unless verb == :head
535
+ expect(get('/de/foo').status).to eq 404
536
+ expect(last_response.body).to eq 'nicht gefunden' unless verb == :head
487
537
  end
488
538
 
489
539
  it 'can be customized for specific error codes' do
490
540
  namespace('/de') do
491
541
  error(404) { 'nicht gefunden' }
492
542
  end
493
- send(verb, '/foo').status.should eq 404
494
- last_response.body.should_not eq 'nicht gefunden' unless verb == :head
495
- get('/en/foo').status.should eq 404
496
- last_response.body.should_not eq 'nicht gefunden' unless verb == :head
497
- get('/de/foo').status.should eq 404
498
- last_response.body.should eq 'nicht gefunden' unless verb == :head
543
+ expect(send(verb, '/foo').status).to eq 404
544
+ expect(last_response.body).not_to eq 'nicht gefunden' unless verb == :head
545
+ expect(get('/en/foo').status).to eq 404
546
+ expect(last_response.body).not_to eq 'nicht gefunden' unless verb == :head
547
+ expect(get('/de/foo').status).to eq 404
548
+ expect(last_response.body).to eq 'nicht gefunden' unless verb == :head
499
549
  end
500
550
 
501
551
  it 'falls back to the handler defined in the base app' do
@@ -507,12 +557,12 @@ describe Sinatra::Namespace do
507
557
  error(404) { 'nicht gefunden' }
508
558
  end
509
559
  end
510
- send(verb, '/foo').status.should eq 404
511
- last_response.body.should eq 'not found...' unless verb == :head
512
- get('/en/foo').status.should eq 404
513
- last_response.body.should eq 'not found...' unless verb == :head
514
- get('/de/foo').status.should eq 404
515
- last_response.body.should eq 'nicht gefunden' unless verb == :head
560
+ expect(send(verb, '/foo').status).to eq 404
561
+ expect(last_response.body).to eq 'not found...' unless verb == :head
562
+ expect(get('/en/foo').status).to eq 404
563
+ expect(last_response.body).to eq 'not found...' unless verb == :head
564
+ expect(get('/de/foo').status).to eq 404
565
+ expect(last_response.body).to eq 'nicht gefunden' unless verb == :head
516
566
  end
517
567
 
518
568
  it 'can be customized for specific Exception classes' do
@@ -542,10 +592,10 @@ describe Sinatra::Namespace do
542
592
  end
543
593
  end
544
594
  end
545
- get('/en/foo').status.should eq 401
546
- last_response.body.should eq 'auth failed' unless verb == :head
547
- get('/de/foo').status.should eq 406
548
- last_response.body.should eq 'methode nicht erlaubt' unless verb == :head
595
+ expect(get('/en/foo').status).to eq 401
596
+ expect(last_response.body).to eq 'auth failed' unless verb == :head
597
+ expect(get('/de/foo').status).to eq 406
598
+ expect(last_response.body).to eq 'methode nicht erlaubt' unless verb == :head
549
599
  end
550
600
 
551
601
  it "allows custom error handlers when namespace is declared as /en/:id. Issue #119" do
@@ -563,7 +613,7 @@ describe Sinatra::Namespace do
563
613
  end
564
614
  }
565
615
 
566
- get('/en/1').status.should == 201
616
+ expect(get('/en/1').status).to eq(201)
567
617
  end
568
618
  end
569
619
 
@@ -578,8 +628,8 @@ describe Sinatra::Namespace do
578
628
  end
579
629
  end
580
630
 
581
- send(verb, '/').body.should eq 'hi'
582
- send(verb, '/foo').body.should eq 'hi'
631
+ expect(send(verb, '/').body).to eq 'hi'
632
+ expect(send(verb, '/foo').body).to eq 'hi'
583
633
  end
584
634
 
585
635
  specify 'can be nested' do
@@ -592,8 +642,8 @@ describe Sinatra::Namespace do
592
642
  end
593
643
  end
594
644
 
595
- send(verb, '/').body.should eq 'hi'
596
- send(verb, '/foo').body.should eq 'ho'
645
+ expect(send(verb, '/').body).to eq 'hi'
646
+ expect(send(verb, '/foo').body).to eq 'ho'
597
647
  end
598
648
 
599
649
  specify 'can use a custom views directory' do
@@ -606,8 +656,8 @@ describe Sinatra::Namespace do
606
656
  end
607
657
  end
608
658
 
609
- send(verb, '/').body.should eq "hi\n"
610
- send(verb, '/foo').body.should eq "ho\n"
659
+ expect(send(verb, '/').body).to eq "hi\n"
660
+ expect(send(verb, '/foo').body).to eq "ho\n"
611
661
  end
612
662
 
613
663
  specify 'default to the base app\'s layout' do
@@ -621,8 +671,8 @@ describe Sinatra::Namespace do
621
671
  end
622
672
  end
623
673
 
624
- send(verb, '/').body.should eq 'he said: hi'
625
- send(verb, '/foo').body.should eq 'he said: ho'
674
+ expect(send(verb, '/').body).to eq 'he said: hi'
675
+ expect(send(verb, '/foo').body).to eq 'he said: ho'
626
676
  end
627
677
 
628
678
  specify 'can define nested layouts' do
@@ -636,8 +686,8 @@ describe Sinatra::Namespace do
636
686
  end
637
687
  end
638
688
 
639
- send(verb, '/').body.should eq 'Hello World!'
640
- send(verb, '/foo').body.should eq 'Hi World!'
689
+ expect(send(verb, '/').body).to eq 'Hello World!'
690
+ expect(send(verb, '/foo').body).to eq 'Hi World!'
641
691
  end
642
692
  end
643
693
  end
@@ -651,7 +701,7 @@ describe Sinatra::Namespace do
651
701
  value = foo
652
702
  end
653
703
  end
654
- value.should eq 42
704
+ expect(value).to eq 42
655
705
  end
656
706
 
657
707
  specify 'can be registered within a namespace' do
@@ -664,8 +714,8 @@ describe Sinatra::Namespace do
664
714
  end
665
715
  b = views
666
716
  end
667
- a.should eq 'CUSTOM!!!'
668
- b.should_not eq 'CUSTOM!!!'
717
+ expect(a).to eq 'CUSTOM!!!'
718
+ expect(b).not_to eq 'CUSTOM!!!'
669
719
  end
670
720
 
671
721
  specify 'trigger the route_added hook' do
@@ -681,11 +731,11 @@ describe Sinatra::Namespace do
681
731
  end
682
732
  get('/bar') { }
683
733
  end
684
- route[1].should eq '/foo'
734
+ expect(route[1]).to eq(Mustermann.new '/foo')
685
735
  end
686
736
 
687
737
  specify 'prevent app-global settings from being changed' do
688
- proc { namespace('/') { set :foo, :bar }}.should raise_error
738
+ expect { namespace('/') { set :foo, :bar }}.to raise_error(ArgumentError)
689
739
  end
690
740
  end
691
741
  end
@@ -703,8 +753,8 @@ describe Sinatra::Namespace do
703
753
  end
704
754
  end
705
755
 
706
- get('/foo/bar').status.should == 200
707
- last_response.body.should == 'ok'
756
+ expect(get('/foo/bar').status).to eq(200)
757
+ expect(last_response.body).to eq('ok')
708
758
  end
709
759
 
710
760
  it 'uses some repro' do
@@ -719,8 +769,8 @@ describe Sinatra::Namespace do
719
769
  end
720
770
  end
721
771
 
722
- get('/foo/bar').status.should == 200
723
- last_response.body.should == '42'
772
+ expect(get('/foo/bar').status).to eq(200)
773
+ expect(last_response.body).to eq('42')
724
774
  end
725
775
 
726
776
  it 'allows checking setting existence with respond_to?' do
@@ -734,8 +784,8 @@ describe Sinatra::Namespace do
734
784
  end
735
785
  end
736
786
 
737
- get('/foo/bar').status.should == 200
738
- last_response.body.should == 'true'
787
+ expect(get('/foo/bar').status).to eq(200)
788
+ expect(last_response.body).to eq('true')
739
789
  end
740
790
  end
741
791
  end