padrino-core 0.12.0 → 0.12.1
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.
- checksums.yaml +4 -4
- data/lib/padrino-core.rb +4 -4
- data/lib/padrino-core/application.rb +6 -195
- data/lib/padrino-core/application/application_setup.rb +199 -0
- data/lib/padrino-core/application/routing.rb +66 -25
- data/lib/padrino-core/cli/base.rb +8 -5
- data/lib/padrino-core/cli/rake.rb +12 -9
- data/lib/padrino-core/loader.rb +1 -1
- data/lib/padrino-core/logger.rb +25 -0
- data/lib/padrino-core/mounter.rb +8 -3
- data/lib/padrino-core/reloader.rb +2 -2
- data/lib/padrino-core/server.rb +50 -17
- data/lib/padrino-core/version.rb +1 -1
- data/padrino-core.gemspec +2 -10
- data/test/fixtures/apps/demo_app.rb +7 -0
- data/test/fixtures/apps/demo_demo.rb +7 -0
- data/test/helper.rb +6 -37
- data/test/test_application.rb +12 -13
- data/test/test_core.rb +12 -13
- data/test/test_csrf_protection.rb +49 -23
- data/test/test_dependencies.rb +7 -7
- data/test/test_filters.rb +41 -17
- data/test/test_flash.rb +24 -24
- data/test/test_locale.rb +1 -1
- data/test/test_logger.rb +39 -27
- data/test/test_mounter.rb +34 -20
- data/test/test_reloader_complex.rb +5 -6
- data/test/test_reloader_simple.rb +23 -20
- data/test/test_reloader_system.rb +10 -7
- data/test/test_restful_routing.rb +1 -1
- data/test/test_router.rb +7 -7
- data/test/test_routing.rb +177 -141
- metadata +14 -53
- data/lib/padrino-core/application/rendering.rb +0 -325
- data/lib/padrino-core/application/rendering/extensions/erubis.rb +0 -68
- data/lib/padrino-core/application/rendering/extensions/haml.rb +0 -29
- data/lib/padrino-core/application/rendering/extensions/slim.rb +0 -21
- data/lib/padrino-core/locale/cs.yml +0 -33
- data/lib/padrino-core/locale/da.yml +0 -33
- data/lib/padrino-core/locale/de.yml +0 -33
- data/lib/padrino-core/locale/en.yml +0 -33
- data/lib/padrino-core/locale/es.yml +0 -33
- data/lib/padrino-core/locale/fr.yml +0 -33
- data/lib/padrino-core/locale/hu.yml +0 -33
- data/lib/padrino-core/locale/it.yml +0 -39
- data/lib/padrino-core/locale/ja.yml +0 -33
- data/lib/padrino-core/locale/lv.yml +0 -33
- data/lib/padrino-core/locale/nl.yml +0 -33
- data/lib/padrino-core/locale/no.yml +0 -33
- data/lib/padrino-core/locale/pl.yml +0 -33
- data/lib/padrino-core/locale/pt_br.yml +0 -39
- data/lib/padrino-core/locale/ro.yml +0 -33
- data/lib/padrino-core/locale/ru.yml +0 -34
- data/lib/padrino-core/locale/sv.yml +0 -33
- data/lib/padrino-core/locale/tr.yml +0 -33
- data/lib/padrino-core/locale/uk.yml +0 -33
- data/lib/padrino-core/locale/zh_cn.yml +0 -33
- data/lib/padrino-core/locale/zh_tw.yml +0 -33
- data/lib/padrino-core/support_lite.rb +0 -259
- data/test/fixtures/apps/.components +0 -6
- data/test/fixtures/apps/.gitignore +0 -7
- data/test/fixtures/apps/render.rb +0 -13
- data/test/fixtures/apps/views/blog/post.erb +0 -1
- data/test/fixtures/layouts/layout.erb +0 -1
- data/test/mini_shoulda.rb +0 -45
- data/test/test_rendering.rb +0 -606
- data/test/test_rendering_extensions.rb +0 -14
- data/test/test_support_lite.rb +0 -56
@@ -1 +0,0 @@
|
|
1
|
-
okay
|
@@ -1 +0,0 @@
|
|
1
|
-
<%= yield %> absolute layout
|
data/test/mini_shoulda.rb
DELETED
@@ -1,45 +0,0 @@
|
|
1
|
-
gem 'minitest'
|
2
|
-
require 'minitest/autorun'
|
3
|
-
require 'minitest/spec'
|
4
|
-
require 'mocha/setup'
|
5
|
-
|
6
|
-
begin
|
7
|
-
require 'ruby-debug'
|
8
|
-
rescue LoadError; end
|
9
|
-
|
10
|
-
class MiniTest::Spec
|
11
|
-
class << self
|
12
|
-
alias :setup :before unless defined?(Rails)
|
13
|
-
alias :teardown :after unless defined?(Rails)
|
14
|
-
alias :should :it
|
15
|
-
alias :context :describe
|
16
|
-
def should_eventually(desc)
|
17
|
-
it("should eventually #{desc}") { skip("Should eventually #{desc}") }
|
18
|
-
end
|
19
|
-
end
|
20
|
-
alias :assert_no_match :refute_match
|
21
|
-
alias :assert_not_nil :refute_nil
|
22
|
-
alias :assert_not_equal :refute_equal
|
23
|
-
end
|
24
|
-
|
25
|
-
class ColoredIO
|
26
|
-
def initialize(io)
|
27
|
-
@io = io
|
28
|
-
end
|
29
|
-
|
30
|
-
def print(o)
|
31
|
-
case o
|
32
|
-
when "." then @io.send(:print, o.colorize(:green))
|
33
|
-
when "E" then @io.send(:print, o.colorize(:red))
|
34
|
-
when "F" then @io.send(:print, o.colorize(:yellow))
|
35
|
-
when "S" then @io.send(:print, o.colorize(:magenta))
|
36
|
-
else @io.send(:print, o)
|
37
|
-
end
|
38
|
-
end
|
39
|
-
|
40
|
-
def puts(*o)
|
41
|
-
super
|
42
|
-
end
|
43
|
-
end
|
44
|
-
|
45
|
-
MiniTest::Unit.output = ColoredIO.new(MiniTest::Unit.output)
|
data/test/test_rendering.rb
DELETED
@@ -1,606 +0,0 @@
|
|
1
|
-
require File.expand_path(File.dirname(__FILE__) + '/helper')
|
2
|
-
require 'i18n'
|
3
|
-
require 'slim'
|
4
|
-
|
5
|
-
describe "Rendering" do
|
6
|
-
def setup
|
7
|
-
Padrino::Application.send(:register, Padrino::Rendering)
|
8
|
-
Padrino::Rendering::DEFAULT_RENDERING_OPTIONS[:strict_format] = false
|
9
|
-
end
|
10
|
-
|
11
|
-
def teardown
|
12
|
-
remove_views
|
13
|
-
end
|
14
|
-
|
15
|
-
context 'for application layout functionality' do
|
16
|
-
|
17
|
-
should 'get no layout' do
|
18
|
-
mock_app do
|
19
|
-
get("/"){ "no layout" }
|
20
|
-
end
|
21
|
-
|
22
|
-
get "/"
|
23
|
-
assert_equal "no layout", body
|
24
|
-
end
|
25
|
-
|
26
|
-
should 'be compatible with sinatra layout' do
|
27
|
-
mock_app do
|
28
|
-
layout do
|
29
|
-
"this is a <%= yield %>"
|
30
|
-
end
|
31
|
-
|
32
|
-
get("/"){ render :erb, "sinatra layout", :layout => true }
|
33
|
-
end
|
34
|
-
|
35
|
-
get "/"
|
36
|
-
assert_equal "this is a sinatra layout", body
|
37
|
-
end
|
38
|
-
|
39
|
-
should 'use rails way layout' do
|
40
|
-
with_layout :application, "this is a <%= yield %>" do
|
41
|
-
mock_app do
|
42
|
-
get("/"){ render :erb, "rails way layout" }
|
43
|
-
end
|
44
|
-
|
45
|
-
get "/"
|
46
|
-
assert_equal "this is a rails way layout", body
|
47
|
-
end
|
48
|
-
end
|
49
|
-
|
50
|
-
should 'use rails way for a custom layout' do
|
51
|
-
with_layout "layouts/custom", "this is a <%= yield %>" do
|
52
|
-
mock_app do
|
53
|
-
layout :custom
|
54
|
-
get("/"){ render :erb, "rails way custom layout" }
|
55
|
-
end
|
56
|
-
|
57
|
-
get "/"
|
58
|
-
assert_equal "this is a rails way custom layout", body
|
59
|
-
end
|
60
|
-
end
|
61
|
-
|
62
|
-
should 'not use layout' do
|
63
|
-
with_layout :application, "this is an <%= yield %>" do
|
64
|
-
with_view :index, "index" do
|
65
|
-
mock_app do
|
66
|
-
get("/with/layout"){ render :index }
|
67
|
-
get("/without/layout"){ render :index, :layout => false }
|
68
|
-
end
|
69
|
-
get "/with/layout"
|
70
|
-
assert_equal "this is an index", body
|
71
|
-
get "/without/layout"
|
72
|
-
assert_equal "index", body
|
73
|
-
end
|
74
|
-
end
|
75
|
-
end
|
76
|
-
|
77
|
-
should 'not use layout with js format' do
|
78
|
-
create_layout :application, "this is an <%= yield %>"
|
79
|
-
create_view :foo, "erb file"
|
80
|
-
create_view :foo, "js file", :format => :js
|
81
|
-
mock_app do
|
82
|
-
get('/layout_test', :provides => [:html, :js]){ render :foo }
|
83
|
-
end
|
84
|
-
get "/layout_test"
|
85
|
-
assert_equal "this is an erb file", body
|
86
|
-
get "/layout_test.js"
|
87
|
-
assert_equal "js file", body
|
88
|
-
end
|
89
|
-
|
90
|
-
should 'use correct layout for each format' do
|
91
|
-
create_layout :application, "this is an <%= yield %>"
|
92
|
-
create_layout :application, "document start <%= yield %> end", :format => :xml
|
93
|
-
create_view :foo, "erb file"
|
94
|
-
create_view :foo, "xml file", :format => :xml
|
95
|
-
mock_app do
|
96
|
-
get('/layout_test', :provides => [:html, :xml]){ render :foo }
|
97
|
-
end
|
98
|
-
get "/layout_test"
|
99
|
-
assert_equal "this is an erb file", body
|
100
|
-
get "/layout_test.xml"
|
101
|
-
assert_equal "document start xml file end", body
|
102
|
-
end
|
103
|
-
|
104
|
-
should 'by default use html file when no other is given' do
|
105
|
-
create_layout :baz, "html file", :format => :html
|
106
|
-
|
107
|
-
mock_app do
|
108
|
-
get('/content_type_test', :provides => [:html, :xml]) { render :baz }
|
109
|
-
end
|
110
|
-
|
111
|
-
get "/content_type_test"
|
112
|
-
assert_equal "html file", body
|
113
|
-
get "/content_type_test.html"
|
114
|
-
assert_equal "html file", body
|
115
|
-
get "/content_type_test.xml"
|
116
|
-
assert_equal "html file", body
|
117
|
-
end
|
118
|
-
|
119
|
-
should 'not use html file when DEFAULT_RENDERING_OPTIONS[:strict_format] == true' do
|
120
|
-
create_layout :foo, "html file", :format => :html
|
121
|
-
|
122
|
-
mock_app do
|
123
|
-
get('/default_rendering_test', :provides => [:html, :xml]) { render :foo }
|
124
|
-
end
|
125
|
-
|
126
|
-
@save = Padrino::Rendering::DEFAULT_RENDERING_OPTIONS
|
127
|
-
Padrino::Rendering::DEFAULT_RENDERING_OPTIONS[:strict_format] = true
|
128
|
-
|
129
|
-
get "/default_rendering_test"
|
130
|
-
assert_equal "html file", body
|
131
|
-
assert_raises Padrino::Rendering::TemplateNotFound do
|
132
|
-
get "/default_rendering_test.xml"
|
133
|
-
end
|
134
|
-
|
135
|
-
Padrino::Rendering::DEFAULT_RENDERING_OPTIONS.merge!(@save)
|
136
|
-
end
|
137
|
-
|
138
|
-
should 'use correct layout with each controller' do
|
139
|
-
create_layout :foo, "foo layout at <%= yield %>"
|
140
|
-
create_layout :bar, "bar layout at <%= yield %>"
|
141
|
-
create_layout :baz, "baz layout at <%= yield %>"
|
142
|
-
create_layout :application, "default layout at <%= yield %>"
|
143
|
-
mock_app do
|
144
|
-
get("/"){ render :erb, "application" }
|
145
|
-
controller :foo do
|
146
|
-
layout :foo
|
147
|
-
get("/"){ render :erb, "foo" }
|
148
|
-
end
|
149
|
-
controller :bar do
|
150
|
-
layout :bar
|
151
|
-
get("/"){ render :erb, "bar" }
|
152
|
-
end
|
153
|
-
controller :baz do
|
154
|
-
layout :baz
|
155
|
-
get("/"){ render :erb, "baz", :layout => true }
|
156
|
-
end
|
157
|
-
controller :none do
|
158
|
-
get("/") { render :erb, "none" }
|
159
|
-
get("/with_foo_layout") { render :erb, "none with layout", :layout => :foo }
|
160
|
-
end
|
161
|
-
end
|
162
|
-
get "/foo"
|
163
|
-
assert_equal "foo layout at foo", body
|
164
|
-
get "/bar"
|
165
|
-
assert_equal "bar layout at bar", body
|
166
|
-
get "/baz"
|
167
|
-
assert_equal "baz layout at baz", body
|
168
|
-
get "/none"
|
169
|
-
assert_equal "default layout at none", body
|
170
|
-
get "/none/with_foo_layout"
|
171
|
-
assert_equal "foo layout at none with layout", body
|
172
|
-
get "/"
|
173
|
-
assert_equal "default layout at application", body
|
174
|
-
end
|
175
|
-
end
|
176
|
-
|
177
|
-
should 'solve layout in layouts paths' do
|
178
|
-
create_layout :foo, "foo layout <%= yield %>"
|
179
|
-
create_layout :"layouts/bar", "bar layout <%= yield %>"
|
180
|
-
mock_app do
|
181
|
-
get("/") { render :erb, "none" }
|
182
|
-
get("/foo") { render :erb, "foo", :layout => :foo }
|
183
|
-
get("/bar") { render :erb, "bar", :layout => :bar }
|
184
|
-
end
|
185
|
-
get "/"
|
186
|
-
assert_equal "none", body
|
187
|
-
get "/foo"
|
188
|
-
assert_equal "foo layout foo", body
|
189
|
-
get "/bar"
|
190
|
-
assert_equal "bar layout bar", body
|
191
|
-
end
|
192
|
-
|
193
|
-
should 'render correctly if layout was not found or not exist' do
|
194
|
-
create_layout :application, "application layout for <%= yield %>"
|
195
|
-
create_view :foo, "index", :format => :html
|
196
|
-
create_view :foo, "xml.rss", :format => :rss
|
197
|
-
mock_app do
|
198
|
-
get("/foo", :provides => [:html, :rss]) { render('foo') }
|
199
|
-
get("/baz", :provides => :js) { render(:erb, 'baz') }
|
200
|
-
get("/bar") { render :haml, "haml" }
|
201
|
-
end
|
202
|
-
get "/foo"
|
203
|
-
assert_equal "application layout for index", body
|
204
|
-
get "/foo.rss"
|
205
|
-
assert_equal "<rss/>", body.chomp
|
206
|
-
get "/baz.js"
|
207
|
-
assert_equal "baz", body
|
208
|
-
get "/bar"
|
209
|
-
assert_equal "haml", body.chomp
|
210
|
-
end
|
211
|
-
|
212
|
-
should 'allow to render template with layout option that using other template engine.' do
|
213
|
-
create_layout :"layouts/foo", "application layout for <%= yield %>", :format => :erb
|
214
|
-
create_view :slim, "| slim", :format => :slim
|
215
|
-
create_view :haml, "haml", :format => :haml
|
216
|
-
create_view :erb, "erb", :format => :erb
|
217
|
-
mock_app do
|
218
|
-
get("/slim") { render("slim.slim", :layout => "foo.erb") }
|
219
|
-
get("/haml") { render("haml.haml", :layout => "foo.erb") }
|
220
|
-
get("/erb") { render("erb.erb", :layout => "foo.erb") }
|
221
|
-
end
|
222
|
-
get "/slim"
|
223
|
-
assert_equal "application layout for slim", body.chomp
|
224
|
-
get "/haml"
|
225
|
-
assert_equal "application layout for haml", body.chomp
|
226
|
-
get "/erb"
|
227
|
-
assert_equal "application layout for erb", body.chomp
|
228
|
-
end
|
229
|
-
|
230
|
-
should 'allow to use extension with layout method.' do
|
231
|
-
create_layout :"layouts/bar", "application layout for <%= yield %>", :format => :erb
|
232
|
-
create_view :slim, "| slim", :format => :slim
|
233
|
-
create_view :haml, "haml", :format => :haml
|
234
|
-
create_view :erb, "erb", :format => :erb
|
235
|
-
mock_app do
|
236
|
-
layout "bar.erb"
|
237
|
-
get("/slim") { render("slim.slim") }
|
238
|
-
get("/haml") { render("haml.haml") }
|
239
|
-
get("/erb") { render("erb.erb") }
|
240
|
-
end
|
241
|
-
get "/slim"
|
242
|
-
assert_equal "application layout for slim", body.chomp
|
243
|
-
get "/haml"
|
244
|
-
assert_equal "application layout for haml", body.chomp
|
245
|
-
get "/erb"
|
246
|
-
assert_equal "application layout for erb", body.chomp
|
247
|
-
end
|
248
|
-
|
249
|
-
context 'for application render functionality' do
|
250
|
-
|
251
|
-
should "work properly with logging and missing layout" do
|
252
|
-
create_view :index, "<%= foo %>"
|
253
|
-
mock_app do
|
254
|
-
enable :logging
|
255
|
-
get("/") { render "index", { :layout => nil }, { :foo => "bar" } }
|
256
|
-
end
|
257
|
-
get "/"
|
258
|
-
assert_equal "bar", body
|
259
|
-
end
|
260
|
-
|
261
|
-
should "work properly with logging and layout" do
|
262
|
-
create_layout :application, "layout <%= yield %>"
|
263
|
-
create_view :index, "<%= foo %>"
|
264
|
-
mock_app do
|
265
|
-
enable :logging
|
266
|
-
get("/") { render "index", { :layout => true }, { :foo => "bar" } }
|
267
|
-
end
|
268
|
-
get "/"
|
269
|
-
assert_equal "layout bar", body
|
270
|
-
end
|
271
|
-
|
272
|
-
should 'be compatible with sinatra render' do
|
273
|
-
mock_app do
|
274
|
-
get("/"){ render :erb, "<%= 1+2 %>" }
|
275
|
-
end
|
276
|
-
get "/"
|
277
|
-
assert_equal "3", body
|
278
|
-
end
|
279
|
-
|
280
|
-
should "support passing locals into render" do
|
281
|
-
create_layout :application, "layout <%= yield %>"
|
282
|
-
create_view :index, "<%= foo %>"
|
283
|
-
mock_app do
|
284
|
-
get("/") { render "index", { :layout => true }, { :foo => "bar" } }
|
285
|
-
end
|
286
|
-
get "/"
|
287
|
-
assert_equal "layout bar", body
|
288
|
-
end
|
289
|
-
|
290
|
-
should "support passing locals into sinatra render" do
|
291
|
-
create_layout :application, "layout <%= yield %>"
|
292
|
-
create_view :index, "<%= foo %>"
|
293
|
-
mock_app do
|
294
|
-
get("/") { render :erb, :index, { :layout => true }, { :foo => "bar" } }
|
295
|
-
end
|
296
|
-
get "/"
|
297
|
-
assert_equal "layout bar", body
|
298
|
-
end
|
299
|
-
|
300
|
-
should "support passing locals into special nil engine render" do
|
301
|
-
create_layout :application, "layout <%= yield %>"
|
302
|
-
create_view :index, "<%= foo %>"
|
303
|
-
mock_app do
|
304
|
-
get("/") { render nil, :index, { :layout => true }, { :foo => "bar" } }
|
305
|
-
end
|
306
|
-
get "/"
|
307
|
-
assert_equal "layout bar", body
|
308
|
-
end
|
309
|
-
|
310
|
-
should 'be compatible with sinatra views' do
|
311
|
-
with_view :index, "<%= 1+2 %>" do
|
312
|
-
mock_app do
|
313
|
-
get("/foo") { render :erb, :index }
|
314
|
-
get("/bar") { erb :index }
|
315
|
-
get("/dir") { "3" }
|
316
|
-
get("/inj") { erb "<%= 2+1 %>" }
|
317
|
-
get("/rnj") { render :erb, "<%= 2+1 %>" }
|
318
|
-
end
|
319
|
-
get "/foo"
|
320
|
-
assert_equal "3", body
|
321
|
-
get "/bar"
|
322
|
-
assert_equal "3", body
|
323
|
-
get "/dir"
|
324
|
-
assert_equal "3", body
|
325
|
-
get "/inj"
|
326
|
-
assert_equal "3", body
|
327
|
-
get "/rnj"
|
328
|
-
assert_equal "3", body
|
329
|
-
end
|
330
|
-
end
|
331
|
-
|
332
|
-
should 'resolve template engine' do
|
333
|
-
with_view :index, "<%= 1+2 %>" do
|
334
|
-
mock_app do
|
335
|
-
get("/foo") { render :index }
|
336
|
-
get("/bar") { render "/index" }
|
337
|
-
end
|
338
|
-
get "/foo"
|
339
|
-
assert_equal "3", body
|
340
|
-
get "/bar"
|
341
|
-
assert_equal "3", body
|
342
|
-
end
|
343
|
-
end
|
344
|
-
|
345
|
-
should 'resolve template content type' do
|
346
|
-
create_view :foo, "Im Js", :format => :js
|
347
|
-
create_view :foo, "Im Erb"
|
348
|
-
mock_app do
|
349
|
-
get("/foo", :provides => :js) { render :foo }
|
350
|
-
get("/bar.js") { render :foo }
|
351
|
-
end
|
352
|
-
get "/foo.js"
|
353
|
-
assert_equal "Im Js", body
|
354
|
-
# TODO: implement this!
|
355
|
-
# get "/bar.js"
|
356
|
-
# assert_equal "Im Js", body
|
357
|
-
end
|
358
|
-
|
359
|
-
should 'resolve with explicit template format' do
|
360
|
-
create_view :foo, "Im Js", :format => :js
|
361
|
-
create_view :foo, "Im Haml", :format => :haml
|
362
|
-
create_view :foo, "Im Xml", :format => :xml
|
363
|
-
mock_app do
|
364
|
-
get("/foo_normal", :provides => :js) { render 'foo' }
|
365
|
-
get("/foo_haml", :provides => :js) { render 'foo.haml' }
|
366
|
-
get("/foo_xml", :provides => :js) { render 'foo.xml' }
|
367
|
-
end
|
368
|
-
get "/foo_normal.js"
|
369
|
-
assert_equal "Im Js", body
|
370
|
-
get "/foo_haml.js"
|
371
|
-
assert_equal "Im Haml\n", body
|
372
|
-
get "/foo_xml.js"
|
373
|
-
assert_equal "Im Xml", body
|
374
|
-
end
|
375
|
-
|
376
|
-
should 'resolve without explict template format' do
|
377
|
-
create_view :foo, "Im Html"
|
378
|
-
create_view :foo, "xml.rss", :format => :rss
|
379
|
-
mock_app do
|
380
|
-
get(:index, :map => "/", :provides => [:html, :rss]){ render 'foo' }
|
381
|
-
end
|
382
|
-
get "/", {}, { 'HTTP_ACCEPT' => 'text/html;q=0.9' }
|
383
|
-
assert_equal "Im Html", body
|
384
|
-
get ".rss"
|
385
|
-
assert_equal "<rss/>\n", body
|
386
|
-
end
|
387
|
-
|
388
|
-
should "ignore files ending in tilde and not render them" do
|
389
|
-
create_view :foo, "Im Wrong", :format => 'haml~'
|
390
|
-
create_view :foo, "Im Haml", :format => :haml
|
391
|
-
create_view :bar, "Im Haml backup", :format => 'haml~'
|
392
|
-
mock_app do
|
393
|
-
get('/foo') { render 'foo' }
|
394
|
-
get('/bar') { render 'bar' }
|
395
|
-
end
|
396
|
-
get '/foo'
|
397
|
-
assert_equal "Im Haml\n", body
|
398
|
-
assert_raises(Padrino::Rendering::TemplateNotFound) { get '/bar' }
|
399
|
-
end
|
400
|
-
|
401
|
-
should 'resolve template locale' do
|
402
|
-
create_view :foo, "Im English", :locale => :en
|
403
|
-
create_view :foo, "Im Italian", :locale => :it
|
404
|
-
mock_app do
|
405
|
-
get("/foo") { render :foo }
|
406
|
-
end
|
407
|
-
I18n.locale = :en
|
408
|
-
get "/foo"
|
409
|
-
assert_equal "Im English", body
|
410
|
-
I18n.locale = :it
|
411
|
-
get "/foo"
|
412
|
-
assert_equal "Im Italian", body
|
413
|
-
end
|
414
|
-
|
415
|
-
should 'resolve template content_type and locale' do
|
416
|
-
create_view :foo, "Im Js", :format => :js
|
417
|
-
create_view :foo, "Im Erb"
|
418
|
-
create_view :foo, "Im English Erb", :locale => :en
|
419
|
-
create_view :foo, "Im Italian Erb", :locale => :it
|
420
|
-
create_view :foo, "Im English Js", :format => :js, :locale => :en
|
421
|
-
create_view :foo, "Im Italian Js", :format => :js, :locale => :it
|
422
|
-
mock_app do
|
423
|
-
get("/foo", :provides => [:html, :js]) { render :foo }
|
424
|
-
end
|
425
|
-
|
426
|
-
I18n.enforce_available_locales = false
|
427
|
-
I18n.locale = :none
|
428
|
-
get "/foo.js"
|
429
|
-
assert_equal "Im Js", body
|
430
|
-
get "/foo"
|
431
|
-
assert_equal "Im Erb", body
|
432
|
-
I18n.enforce_available_locales = true
|
433
|
-
|
434
|
-
I18n.locale = :en
|
435
|
-
get "/foo"
|
436
|
-
assert_equal "Im English Erb", body
|
437
|
-
I18n.locale = :it
|
438
|
-
get "/foo"
|
439
|
-
assert_equal "Im Italian Erb", body
|
440
|
-
I18n.locale = :en
|
441
|
-
get "/foo.js"
|
442
|
-
assert_equal "Im English Js", body
|
443
|
-
I18n.locale = :it
|
444
|
-
get "/foo.js"
|
445
|
-
assert_equal "Im Italian Js", body
|
446
|
-
I18n.locale = :en
|
447
|
-
get "/foo.pk"
|
448
|
-
assert_equal 404, status
|
449
|
-
end
|
450
|
-
|
451
|
-
should 'resolve templates and layouts located in absolute paths' do
|
452
|
-
mock_app do
|
453
|
-
get("/foo") { render 'apps/views/blog/post', :layout => 'layout', :views => File.dirname(__FILE__)+'/fixtures' }
|
454
|
-
end
|
455
|
-
get '/foo'
|
456
|
-
assert_match /okay absolute layout/, body
|
457
|
-
end
|
458
|
-
|
459
|
-
should 'resolve template content_type and locale with layout' do
|
460
|
-
create_layout :foo, "Hello <%= yield %> in a Js layout", :format => :js
|
461
|
-
create_layout :foo, "Hello <%= yield %> in a Js-En layout", :format => :js, :locale => :en
|
462
|
-
create_layout :foo, "Hello <%= yield %> in a Js-It layout", :format => :js, :locale => :it
|
463
|
-
create_layout :foo, "Hello <%= yield %> in a Erb-En layout", :locale => :en
|
464
|
-
create_layout :foo, "Hello <%= yield %> in a Erb-It layout", :locale => :it
|
465
|
-
create_layout :foo, "Hello <%= yield %> in a Erb layout"
|
466
|
-
create_view :bar, "Im Js", :format => :js
|
467
|
-
create_view :bar, "Im Erb"
|
468
|
-
create_view :bar, "Im English Erb", :locale => :en
|
469
|
-
create_view :bar, "Im Italian Erb", :locale => :it
|
470
|
-
create_view :bar, "Im English Js", :format => :js, :locale => :en
|
471
|
-
create_view :bar, "Im Italian Js", :format => :js, :locale => :it
|
472
|
-
create_view :bar, "Im a json", :format => :json
|
473
|
-
mock_app do
|
474
|
-
layout :foo
|
475
|
-
get("/bar", :provides => [:html, :js, :json]) { render :bar }
|
476
|
-
end
|
477
|
-
|
478
|
-
I18n.enforce_available_locales = false
|
479
|
-
I18n.locale = :none
|
480
|
-
get "/bar.js"
|
481
|
-
assert_equal "Hello Im Js in a Js layout", body
|
482
|
-
get "/bar"
|
483
|
-
assert_equal "Hello Im Erb in a Erb layout", body
|
484
|
-
I18n.enforce_available_locales = true
|
485
|
-
|
486
|
-
I18n.locale = :en
|
487
|
-
get "/bar"
|
488
|
-
assert_equal "Hello Im English Erb in a Erb-En layout", body
|
489
|
-
I18n.locale = :it
|
490
|
-
get "/bar"
|
491
|
-
assert_equal "Hello Im Italian Erb in a Erb-It layout", body
|
492
|
-
I18n.locale = :en
|
493
|
-
get "/bar.js"
|
494
|
-
assert_equal "Hello Im English Js in a Js-En layout", body
|
495
|
-
I18n.locale = :it
|
496
|
-
get "/bar.js"
|
497
|
-
assert_equal "Hello Im Italian Js in a Js-It layout", body
|
498
|
-
I18n.locale = :en
|
499
|
-
get "/bar.json"
|
500
|
-
assert_equal "Im a json", body
|
501
|
-
get "/bar.pk"
|
502
|
-
assert_equal 404, status
|
503
|
-
|
504
|
-
end
|
505
|
-
|
506
|
-
should 'resolve template location relative to controller name' do
|
507
|
-
require File.expand_path(File.dirname(__FILE__) + '/fixtures/apps/render')
|
508
|
-
@app = RenderDemo
|
509
|
-
get '/blog'
|
510
|
-
assert_equal 'okay', body
|
511
|
-
end
|
512
|
-
|
513
|
-
should 'renders erb with blocks' do
|
514
|
-
mock_app do
|
515
|
-
def container
|
516
|
-
@_out_buf << "THIS."
|
517
|
-
yield
|
518
|
-
@_out_buf << "SPARTA!"
|
519
|
-
end
|
520
|
-
def is; "IS."; end
|
521
|
-
get '/' do
|
522
|
-
render :erb, '<% container do %> <%= is %> <% end %>'
|
523
|
-
end
|
524
|
-
end
|
525
|
-
get '/'
|
526
|
-
assert ok?
|
527
|
-
assert_equal 'THIS. IS. SPARTA!', body
|
528
|
-
end
|
529
|
-
|
530
|
-
should 'render erb to a SafeBuffer' do
|
531
|
-
mock_app do
|
532
|
-
layout do
|
533
|
-
"this is a <%= yield %>"
|
534
|
-
end
|
535
|
-
get '/' do
|
536
|
-
render :erb, '<p><%= %q{<script lang="ronin">alert("https://github.com/ronin-ruby/ronin")</script>} %></p>', :layout => false
|
537
|
-
end
|
538
|
-
get '/with_layout' do
|
539
|
-
render :erb, '<span>span</span>', :layout => true
|
540
|
-
end
|
541
|
-
end
|
542
|
-
get '/'
|
543
|
-
assert ok?
|
544
|
-
assert_equal '<p><script lang="ronin">alert("https://github.com/ronin-ruby/ronin")</script></p>', body
|
545
|
-
|
546
|
-
get '/with_layout'
|
547
|
-
assert ok?
|
548
|
-
assert_equal 'this is a <span>span</span>', body
|
549
|
-
end
|
550
|
-
|
551
|
-
should 'render haml to a SafeBuffer' do
|
552
|
-
mock_app do
|
553
|
-
layout do
|
554
|
-
"%p= yield"
|
555
|
-
end
|
556
|
-
get '/' do
|
557
|
-
render :haml, '%p= %s{<script lang="ronin">alert("https://github.com/ronin-ruby/ronin")</script>}', :layout => false
|
558
|
-
end
|
559
|
-
get '/with_layout' do
|
560
|
-
render :haml, "%div\n foo", :layout => true
|
561
|
-
end
|
562
|
-
end
|
563
|
-
get '/'
|
564
|
-
assert ok?
|
565
|
-
assert_equal '<p><script lang="ronin">alert("https://github.com/ronin-ruby/ronin")</script></p>', body.strip
|
566
|
-
|
567
|
-
get 'with_layout'
|
568
|
-
assert ok?
|
569
|
-
assert_equal '<p><div>foo</div></p>', body.gsub(/\s+/, "")
|
570
|
-
end
|
571
|
-
|
572
|
-
should 'render slim to a SafeBuffer' do
|
573
|
-
mock_app do
|
574
|
-
layout do
|
575
|
-
"p= yield"
|
576
|
-
end
|
577
|
-
get '/' do
|
578
|
-
render :slim, 'p = %q{<script lang="ronin">alert("https://github.com/ronin-ruby/ronin")</script>}', :layout => false
|
579
|
-
end
|
580
|
-
get "/with_layout" do
|
581
|
-
render :slim, 'div foo', :layout => true
|
582
|
-
end
|
583
|
-
end
|
584
|
-
get '/'
|
585
|
-
assert ok?
|
586
|
-
assert_equal '<p><script lang="ronin">alert("https://github.com/ronin-ruby/ronin")</script></p>', body.strip
|
587
|
-
|
588
|
-
get '/with_layout'
|
589
|
-
assert ok?
|
590
|
-
assert_equal '<p><div>foo</div></p>', body.strip
|
591
|
-
end
|
592
|
-
|
593
|
-
should "render correct erb when use sinatra as middleware" do
|
594
|
-
class Bar < Sinatra::Base
|
595
|
-
get "/" do
|
596
|
-
render :erb, "<&'>"
|
597
|
-
end
|
598
|
-
end
|
599
|
-
mock_app do
|
600
|
-
use Bar
|
601
|
-
end
|
602
|
-
get "/"
|
603
|
-
assert_equal "<&'>", body
|
604
|
-
end
|
605
|
-
end
|
606
|
-
end
|