middleman 2.0.7 → 2.0.8
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.
- data/.gitignore +1 -0
- data/.travis.yml +0 -1
- data/CHANGELOG +8 -0
- data/Gemfile +1 -1
- data/features/data.feature +6 -1
- data/features/markdown.feature +7 -0
- data/features/sprockets.feature +11 -1
- data/features/sprockets_gems.feature +3 -3
- data/fixtures/sprockets-app/source/jquery_include.js +1 -0
- data/fixtures/test-app/config.rb +2 -0
- data/fixtures/test-app/source/data2.html.liquid +1 -0
- data/fixtures/test-app/source/javascripts/multiple_engines.js.coffee.erb +1 -0
- data/fixtures/test-app/source/markdown.html.markdown +1 -0
- data/lib/middleman.rb +0 -6
- data/lib/middleman/base.rb +6 -1
- data/lib/middleman/builder.rb +6 -4
- data/lib/middleman/core_extensions/data.rb +35 -5
- data/lib/middleman/core_extensions/front_matter.rb +9 -2
- data/lib/middleman/core_extensions/sprockets.rb +25 -1
- data/lib/middleman/renderers/markdown.rb +25 -2
- data/lib/middleman/version.rb +1 -1
- data/middleman.gemspec +7 -6
- metadata +112 -251
- data/lib/middleman/vendor/padrino-core-0.10.0/.document +0 -5
- data/lib/middleman/vendor/padrino-core-0.10.0/.gitignore +0 -22
- data/lib/middleman/vendor/padrino-core-0.10.0/LICENSE +0 -20
- data/lib/middleman/vendor/padrino-core-0.10.0/README.rdoc +0 -294
- data/lib/middleman/vendor/padrino-core-0.10.0/Rakefile +0 -5
- data/lib/middleman/vendor/padrino-core-0.10.0/bin/padrino +0 -9
- data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core.rb +0 -119
- data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core/application.rb +0 -259
- data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core/application/rendering.rb +0 -228
- data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core/application/routing.rb +0 -821
- data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core/application/showexceptions.rb +0 -18
- data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core/caller.rb +0 -45
- data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core/cli/adapter.rb +0 -24
- data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core/cli/base.rb +0 -152
- data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core/cli/console.rb +0 -20
- data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core/cli/rake.rb +0 -24
- data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core/cli/rake_tasks.rb +0 -59
- data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core/command.rb +0 -27
- data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core/images/404.png +0 -0
- data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core/images/500.png +0 -0
- data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core/loader.rb +0 -182
- data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core/locale/cz.yml +0 -30
- data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core/locale/da.yml +0 -30
- data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core/locale/de.yml +0 -30
- data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core/locale/en.yml +0 -30
- data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core/locale/es.yml +0 -30
- data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core/locale/fr.yml +0 -30
- data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core/locale/hu.yml +0 -30
- data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core/locale/it.yml +0 -37
- data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core/locale/ja.yml +0 -30
- data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core/locale/nl.yml +0 -30
- data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core/locale/no.yml +0 -31
- data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core/locale/pl.yml +0 -30
- data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core/locale/pt_br.yml +0 -37
- data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core/locale/ru.yml +0 -30
- data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core/locale/tr.yml +0 -30
- data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core/locale/uk.yml +0 -30
- data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core/locale/zh_cn.yml +0 -30
- data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core/locale/zh_tw.yml +0 -30
- data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core/logger.rb +0 -344
- data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core/mounter.rb +0 -192
- data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core/reloader.rb +0 -247
- data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core/router.rb +0 -79
- data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core/server.rb +0 -70
- data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core/support_lite.rb +0 -135
- data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core/tasks.rb +0 -23
- data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core/version.rb +0 -15
- data/lib/middleman/vendor/padrino-core-0.10.0/padrino-core.gemspec +0 -38
- data/lib/middleman/vendor/padrino-core-0.10.0/test/fixtures/apps/.components +0 -6
- data/lib/middleman/vendor/padrino-core-0.10.0/test/fixtures/apps/.gitignore +0 -7
- data/lib/middleman/vendor/padrino-core-0.10.0/test/fixtures/apps/complex.rb +0 -27
- data/lib/middleman/vendor/padrino-core-0.10.0/test/fixtures/apps/simple.rb +0 -33
- data/lib/middleman/vendor/padrino-core-0.10.0/test/fixtures/dependencies/a.rb +0 -9
- data/lib/middleman/vendor/padrino-core-0.10.0/test/fixtures/dependencies/b.rb +0 -4
- data/lib/middleman/vendor/padrino-core-0.10.0/test/fixtures/dependencies/c.rb +0 -1
- data/lib/middleman/vendor/padrino-core-0.10.0/test/fixtures/dependencies/circular/e.rb +0 -13
- data/lib/middleman/vendor/padrino-core-0.10.0/test/fixtures/dependencies/circular/f.rb +0 -2
- data/lib/middleman/vendor/padrino-core-0.10.0/test/fixtures/dependencies/circular/g.rb +0 -2
- data/lib/middleman/vendor/padrino-core-0.10.0/test/fixtures/dependencies/d.rb +0 -4
- data/lib/middleman/vendor/padrino-core-0.10.0/test/helper.rb +0 -101
- data/lib/middleman/vendor/padrino-core-0.10.0/test/test_application.rb +0 -83
- data/lib/middleman/vendor/padrino-core-0.10.0/test/test_core.rb +0 -79
- data/lib/middleman/vendor/padrino-core-0.10.0/test/test_dependencies.rb +0 -44
- data/lib/middleman/vendor/padrino-core-0.10.0/test/test_filters.rb +0 -266
- data/lib/middleman/vendor/padrino-core-0.10.0/test/test_logger.rb +0 -91
- data/lib/middleman/vendor/padrino-core-0.10.0/test/test_mounter.rb +0 -176
- data/lib/middleman/vendor/padrino-core-0.10.0/test/test_reloader_complex.rb +0 -66
- data/lib/middleman/vendor/padrino-core-0.10.0/test/test_reloader_simple.rb +0 -97
- data/lib/middleman/vendor/padrino-core-0.10.0/test/test_rendering.rb +0 -437
- data/lib/middleman/vendor/padrino-core-0.10.0/test/test_router.rb +0 -146
- data/lib/middleman/vendor/padrino-core-0.10.0/test/test_routing.rb +0 -1491
- data/lib/middleman/vendor/padrino-helpers-0.10.0/.document +0 -5
- data/lib/middleman/vendor/padrino-helpers-0.10.0/.gitignore +0 -21
- data/lib/middleman/vendor/padrino-helpers-0.10.0/LICENSE +0 -20
- data/lib/middleman/vendor/padrino-helpers-0.10.0/README.rdoc +0 -239
- data/lib/middleman/vendor/padrino-helpers-0.10.0/Rakefile +0 -5
- data/lib/middleman/vendor/padrino-helpers-0.10.0/lib/padrino-helpers.rb +0 -51
- data/lib/middleman/vendor/padrino-helpers-0.10.0/lib/padrino-helpers/asset_tag_helpers.rb +0 -288
- data/lib/middleman/vendor/padrino-helpers-0.10.0/lib/padrino-helpers/form_builder/abstract_form_builder.rb +0 -220
- data/lib/middleman/vendor/padrino-helpers-0.10.0/lib/padrino-helpers/form_builder/standard_form_builder.rb +0 -43
- data/lib/middleman/vendor/padrino-helpers-0.10.0/lib/padrino-helpers/form_helpers.rb +0 -446
- data/lib/middleman/vendor/padrino-helpers-0.10.0/lib/padrino-helpers/format_helpers.rb +0 -260
- data/lib/middleman/vendor/padrino-helpers-0.10.0/lib/padrino-helpers/locale/cz.yml +0 -103
- data/lib/middleman/vendor/padrino-helpers-0.10.0/lib/padrino-helpers/locale/da.yml +0 -91
- data/lib/middleman/vendor/padrino-helpers-0.10.0/lib/padrino-helpers/locale/de.yml +0 -78
- data/lib/middleman/vendor/padrino-helpers-0.10.0/lib/padrino-helpers/locale/en.yml +0 -103
- data/lib/middleman/vendor/padrino-helpers-0.10.0/lib/padrino-helpers/locale/es.yml +0 -103
- data/lib/middleman/vendor/padrino-helpers-0.10.0/lib/padrino-helpers/locale/fr.yml +0 -79
- data/lib/middleman/vendor/padrino-helpers-0.10.0/lib/padrino-helpers/locale/hu.yml +0 -103
- data/lib/middleman/vendor/padrino-helpers-0.10.0/lib/padrino-helpers/locale/it.yml +0 -85
- data/lib/middleman/vendor/padrino-helpers-0.10.0/lib/padrino-helpers/locale/ja.yml +0 -103
- data/lib/middleman/vendor/padrino-helpers-0.10.0/lib/padrino-helpers/locale/nl.yml +0 -78
- data/lib/middleman/vendor/padrino-helpers-0.10.0/lib/padrino-helpers/locale/no.yml +0 -91
- data/lib/middleman/vendor/padrino-helpers-0.10.0/lib/padrino-helpers/locale/pl.yml +0 -95
- data/lib/middleman/vendor/padrino-helpers-0.10.0/lib/padrino-helpers/locale/pt_br.yml +0 -103
- data/lib/middleman/vendor/padrino-helpers-0.10.0/lib/padrino-helpers/locale/ru.yml +0 -103
- data/lib/middleman/vendor/padrino-helpers-0.10.0/lib/padrino-helpers/locale/tr.yml +0 -103
- data/lib/middleman/vendor/padrino-helpers-0.10.0/lib/padrino-helpers/locale/uk.yml +0 -103
- data/lib/middleman/vendor/padrino-helpers-0.10.0/lib/padrino-helpers/locale/zh_cn.yml +0 -103
- data/lib/middleman/vendor/padrino-helpers-0.10.0/lib/padrino-helpers/locale/zh_tw.yml +0 -103
- data/lib/middleman/vendor/padrino-helpers-0.10.0/lib/padrino-helpers/number_helpers.rb +0 -273
- data/lib/middleman/vendor/padrino-helpers-0.10.0/lib/padrino-helpers/output_helpers.rb +0 -128
- data/lib/middleman/vendor/padrino-helpers-0.10.0/lib/padrino-helpers/output_helpers/abstract_handler.rb +0 -103
- data/lib/middleman/vendor/padrino-helpers-0.10.0/lib/padrino-helpers/output_helpers/erb_handler.rb +0 -79
- data/lib/middleman/vendor/padrino-helpers-0.10.0/lib/padrino-helpers/output_helpers/haml_handler.rb +0 -64
- data/lib/middleman/vendor/padrino-helpers-0.10.0/lib/padrino-helpers/output_helpers/slim_handler.rb +0 -82
- data/lib/middleman/vendor/padrino-helpers-0.10.0/lib/padrino-helpers/render_helpers.rb +0 -40
- data/lib/middleman/vendor/padrino-helpers-0.10.0/lib/padrino-helpers/tag_helpers.rb +0 -59
- data/lib/middleman/vendor/padrino-helpers-0.10.0/lib/padrino-helpers/translation_helpers.rb +0 -21
- data/lib/middleman/vendor/padrino-helpers-0.10.0/padrino-helpers.gemspec +0 -27
- data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/markup_app/app.rb +0 -73
- data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/markup_app/views/capture_concat.erb +0 -14
- data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/markup_app/views/capture_concat.haml +0 -12
- data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/markup_app/views/capture_concat.slim +0 -13
- data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/markup_app/views/content_for.erb +0 -11
- data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/markup_app/views/content_for.haml +0 -9
- data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/markup_app/views/content_for.slim +0 -9
- data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/markup_app/views/content_tag.erb +0 -11
- data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/markup_app/views/content_tag.haml +0 -9
- data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/markup_app/views/content_tag.slim +0 -9
- data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/markup_app/views/current_engine.erb +0 -5
- data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/markup_app/views/current_engine.haml +0 -5
- data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/markup_app/views/current_engine.slim +0 -5
- data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/markup_app/views/fields_for.erb +0 -20
- data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/markup_app/views/fields_for.haml +0 -15
- data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/markup_app/views/fields_for.slim +0 -15
- data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/markup_app/views/form_for.erb +0 -56
- data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/markup_app/views/form_for.haml +0 -47
- data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/markup_app/views/form_for.slim +0 -47
- data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/markup_app/views/form_tag.erb +0 -56
- data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/markup_app/views/form_tag.haml +0 -45
- data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/markup_app/views/form_tag.slim +0 -45
- data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/markup_app/views/link_to.erb +0 -5
- data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/markup_app/views/link_to.haml +0 -4
- data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/markup_app/views/link_to.slim +0 -4
- data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/markup_app/views/mail_to.erb +0 -3
- data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/markup_app/views/mail_to.haml +0 -3
- data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/markup_app/views/mail_to.slim +0 -3
- data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/markup_app/views/meta_tag.erb +0 -3
- data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/markup_app/views/meta_tag.haml +0 -3
- data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/markup_app/views/meta_tag.slim +0 -3
- data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/markup_app/views/partials/_erb.erb +0 -1
- data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/markup_app/views/partials/_haml.haml +0 -1
- data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/markup_app/views/partials/_slim.slim +0 -1
- data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/markup_app/views/simple_partial.erb +0 -1
- data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/markup_app/views/simple_partial.haml +0 -1
- data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/markup_app/views/simple_partial.slim +0 -1
- data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/render_app/app.rb +0 -45
- data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/render_app/views/current_engine.haml +0 -5
- data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/render_app/views/current_engines/_erb.erb +0 -1
- data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/render_app/views/current_engines/_haml.haml +0 -1
- data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/render_app/views/current_engines/_slim.slim +0 -1
- data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/render_app/views/erb/test.erb +0 -1
- data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/render_app/views/explicit_engine.haml +0 -5
- data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/render_app/views/haml/test.haml +0 -1
- data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/render_app/views/template/_user.haml +0 -7
- data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/render_app/views/template/haml_template.haml +0 -1
- data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/render_app/views/template/some_template.haml +0 -2
- data/lib/middleman/vendor/padrino-helpers-0.10.0/test/helper.rb +0 -78
- data/lib/middleman/vendor/padrino-helpers-0.10.0/test/test_asset_tag_helpers.rb +0 -320
- data/lib/middleman/vendor/padrino-helpers-0.10.0/test/test_form_builder.rb +0 -998
- data/lib/middleman/vendor/padrino-helpers-0.10.0/test/test_form_helpers.rb +0 -645
- data/lib/middleman/vendor/padrino-helpers-0.10.0/test/test_format_helpers.rb +0 -227
- data/lib/middleman/vendor/padrino-helpers-0.10.0/test/test_number_helpers.rb +0 -136
- data/lib/middleman/vendor/padrino-helpers-0.10.0/test/test_output_helpers.rb +0 -133
- data/lib/middleman/vendor/padrino-helpers-0.10.0/test/test_render_helpers.rb +0 -69
- data/lib/middleman/vendor/padrino-helpers-0.10.0/test/test_tag_helpers.rb +0 -100
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
require File.expand_path(File.dirname(__FILE__) + '/helper')
|
|
2
|
-
|
|
3
|
-
class TestPadrinoLogger < Test::Unit::TestCase
|
|
4
|
-
|
|
5
|
-
def setup
|
|
6
|
-
Padrino::Logger::Config[:test][:stream] = :null # The default
|
|
7
|
-
Padrino::Logger.setup!
|
|
8
|
-
end
|
|
9
|
-
|
|
10
|
-
def setup_logger(options={})
|
|
11
|
-
@log = StringIO.new
|
|
12
|
-
@logger = Padrino::Logger.new(options.merge(:stream => @log))
|
|
13
|
-
end
|
|
14
|
-
|
|
15
|
-
context 'for logger functionality' do
|
|
16
|
-
|
|
17
|
-
context 'check stream config' do
|
|
18
|
-
|
|
19
|
-
should 'use stdout if stream is nil' do
|
|
20
|
-
Padrino::Logger::Config[:test][:stream] = nil
|
|
21
|
-
Padrino::Logger.setup!
|
|
22
|
-
assert_equal $stdout, Padrino.logger.log
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
should 'use StringIO as default for test' do
|
|
26
|
-
assert_instance_of StringIO, Padrino.logger.log
|
|
27
|
-
end
|
|
28
|
-
|
|
29
|
-
should 'use a custom stream' do
|
|
30
|
-
my_stream = StringIO.new
|
|
31
|
-
Padrino::Logger::Config[:test][:stream] = my_stream
|
|
32
|
-
Padrino::Logger.setup!
|
|
33
|
-
assert_equal my_stream, Padrino.logger.log
|
|
34
|
-
end
|
|
35
|
-
end
|
|
36
|
-
|
|
37
|
-
should 'log something' do
|
|
38
|
-
setup_logger(:log_level => :error)
|
|
39
|
-
@logger.error "You log this error?"
|
|
40
|
-
assert_match(/You log this error?/, @log.string)
|
|
41
|
-
@logger.debug "You don't log this error!"
|
|
42
|
-
assert_no_match(/You don't log this error!/, @log.string)
|
|
43
|
-
@logger << "Yep this can be logged"
|
|
44
|
-
assert_match(/Yep this can be logged/, @log.string)
|
|
45
|
-
end
|
|
46
|
-
|
|
47
|
-
should 'respond to #write for Rack::CommonLogger' do
|
|
48
|
-
setup_logger(:log_level => :error)
|
|
49
|
-
@logger.error "Error message"
|
|
50
|
-
assert_match /Error message/, @log.string
|
|
51
|
-
@logger << "logged anyways"
|
|
52
|
-
assert_match /logged anyways/, @log.string
|
|
53
|
-
@logger.write "log via alias"
|
|
54
|
-
assert_match /log via alias/, @log.string
|
|
55
|
-
end
|
|
56
|
-
|
|
57
|
-
should 'log an application' do
|
|
58
|
-
mock_app do
|
|
59
|
-
enable :logging
|
|
60
|
-
get("/"){ "Foo" }
|
|
61
|
-
end
|
|
62
|
-
get "/"
|
|
63
|
-
assert_equal "Foo", body
|
|
64
|
-
assert_match /GET/, Padrino.logger.log.string
|
|
65
|
-
end
|
|
66
|
-
|
|
67
|
-
context "static asset logging" do
|
|
68
|
-
should 'not log static assets by default' do
|
|
69
|
-
mock_app do
|
|
70
|
-
enable :logging
|
|
71
|
-
get("/images/something.png"){ env["sinatra.static_file"] = '/public/images/something.png'; "Foo" }
|
|
72
|
-
end
|
|
73
|
-
get "/images/something.png"
|
|
74
|
-
assert_equal "Foo", body
|
|
75
|
-
assert_match "", Padrino.logger.log.string
|
|
76
|
-
end
|
|
77
|
-
|
|
78
|
-
should 'allow turning on static assets logging' do
|
|
79
|
-
Padrino.logger.instance_eval{ @log_static = true }
|
|
80
|
-
mock_app do
|
|
81
|
-
enable :logging
|
|
82
|
-
get("/images/something.png"){ env["sinatra.static_file"] = '/public/images/something.png'; "Foo" }
|
|
83
|
-
end
|
|
84
|
-
get "/images/something.png"
|
|
85
|
-
assert_equal "Foo", body
|
|
86
|
-
assert_match /GET/, Padrino.logger.log.string
|
|
87
|
-
Padrino.logger.instance_eval{ @log_static = false }
|
|
88
|
-
end
|
|
89
|
-
end
|
|
90
|
-
end
|
|
91
|
-
end
|
|
@@ -1,176 +0,0 @@
|
|
|
1
|
-
require File.expand_path(File.dirname(__FILE__) + '/helper')
|
|
2
|
-
|
|
3
|
-
class TestMounter < Test::Unit::TestCase
|
|
4
|
-
|
|
5
|
-
def setup
|
|
6
|
-
$VERBOSE, @_verbose_was = nil, $VERBOSE
|
|
7
|
-
Padrino.clear!
|
|
8
|
-
end
|
|
9
|
-
|
|
10
|
-
def teardown
|
|
11
|
-
$VERBOSE = @_verbose_was
|
|
12
|
-
end
|
|
13
|
-
|
|
14
|
-
context 'for mounter functionality' do
|
|
15
|
-
|
|
16
|
-
should 'check methods' do
|
|
17
|
-
mounter = Padrino::Mounter.new("test", :app_file => "/path/to/test.rb")
|
|
18
|
-
mounter.to("/test")
|
|
19
|
-
assert_kind_of Padrino::Mounter, mounter
|
|
20
|
-
assert_respond_to Padrino::Mounter, :new
|
|
21
|
-
assert_respond_to mounter, :to
|
|
22
|
-
assert_respond_to mounter, :map_onto
|
|
23
|
-
assert_equal "test", mounter.name
|
|
24
|
-
assert_equal "Test", mounter.app_class
|
|
25
|
-
assert_equal "/path/to/test.rb", mounter.app_file
|
|
26
|
-
assert_equal "/test", mounter.uri_root
|
|
27
|
-
assert_equal File.dirname(mounter.app_file), mounter.app_root
|
|
28
|
-
end
|
|
29
|
-
|
|
30
|
-
should 'check locate_app_file with __FILE__' do
|
|
31
|
-
mounter = Padrino::Mounter.new("test", :app_file => __FILE__)
|
|
32
|
-
mounter.to("/test")
|
|
33
|
-
assert_equal "test", mounter.name
|
|
34
|
-
assert_equal "Test", mounter.app_class
|
|
35
|
-
assert_equal __FILE__, mounter.app_file
|
|
36
|
-
assert_equal "/test", mounter.uri_root
|
|
37
|
-
assert_equal File.dirname(mounter.app_file), mounter.app_root
|
|
38
|
-
end
|
|
39
|
-
|
|
40
|
-
should 'mount an app' do
|
|
41
|
-
class ::AnApp < Padrino::Application; end
|
|
42
|
-
Padrino.mount("an_app").to("/")
|
|
43
|
-
assert_equal AnApp, Padrino.mounted_apps.first.app_obj
|
|
44
|
-
assert_equal ["an_app"], Padrino.mounted_apps.map(&:name)
|
|
45
|
-
end
|
|
46
|
-
|
|
47
|
-
should 'correctly mount an app in a namespace' do
|
|
48
|
-
module ::SomeNamespace
|
|
49
|
-
class AnApp < Padrino::Application; end
|
|
50
|
-
end
|
|
51
|
-
Padrino.mount("some_namespace/an_app").to("/")
|
|
52
|
-
assert_equal SomeNamespace::AnApp, Padrino.mounted_apps.first.app_obj
|
|
53
|
-
assert_equal ["some_namespace/an_app"], Padrino.mounted_apps.map(&:name)
|
|
54
|
-
end
|
|
55
|
-
|
|
56
|
-
should 'mount a primary app to root uri' do
|
|
57
|
-
mounter = Padrino.mount("test", :app_file => __FILE__).to("/")
|
|
58
|
-
assert_equal "test", mounter.name
|
|
59
|
-
assert_equal "Test", mounter.app_class
|
|
60
|
-
assert_equal Test, mounter.app_obj
|
|
61
|
-
assert_equal __FILE__, mounter.app_file
|
|
62
|
-
assert_equal "/", mounter.uri_root
|
|
63
|
-
assert_equal File.dirname(mounter.app_file), mounter.app_root
|
|
64
|
-
end
|
|
65
|
-
|
|
66
|
-
should 'mount a primary app to sub_uri' do
|
|
67
|
-
mounter = Padrino.mount("test", :app_file => __FILE__).to('/me')
|
|
68
|
-
assert_equal "test", mounter.name
|
|
69
|
-
assert_equal "Test", mounter.app_class
|
|
70
|
-
assert_equal Test, mounter.app_obj
|
|
71
|
-
assert_equal __FILE__, mounter.app_file
|
|
72
|
-
assert_equal "/me", mounter.uri_root
|
|
73
|
-
assert_equal File.dirname(mounter.app_file), mounter.app_root
|
|
74
|
-
end
|
|
75
|
-
|
|
76
|
-
should "raise error when app has no located file" do
|
|
77
|
-
assert_raise(Padrino::Mounter::MounterException) { Padrino.mount("tester_app").to('/test') }
|
|
78
|
-
assert_equal 0, Padrino.mounted_apps.size
|
|
79
|
-
end
|
|
80
|
-
|
|
81
|
-
should "raise error when app has no located object" do
|
|
82
|
-
assert_raise(Padrino::Mounter::MounterException) { Padrino.mount("tester_app", :app_file => "/path/to/file.rb").to('/test') }
|
|
83
|
-
assert_equal 0, Padrino.mounted_apps.size
|
|
84
|
-
end
|
|
85
|
-
|
|
86
|
-
should 'mount multiple apps' do
|
|
87
|
-
class ::OneApp < Padrino::Application; end
|
|
88
|
-
class ::TwoApp < Padrino::Application; end
|
|
89
|
-
|
|
90
|
-
Padrino.mount("one_app").to("/one_app")
|
|
91
|
-
Padrino.mount("two_app").to("/two_app")
|
|
92
|
-
# And testing no duplicates
|
|
93
|
-
Padrino.mount("one_app").to("/one_app")
|
|
94
|
-
Padrino.mount("two_app").to("/two_app")
|
|
95
|
-
|
|
96
|
-
assert_equal OneApp, Padrino.mounted_apps[0].app_obj
|
|
97
|
-
assert_equal TwoApp, Padrino.mounted_apps[1].app_obj
|
|
98
|
-
assert_equal 2, Padrino.mounted_apps.size, "should not mount duplicate apps"
|
|
99
|
-
assert_equal ["one_app", "two_app"], Padrino.mounted_apps.map(&:name)
|
|
100
|
-
end
|
|
101
|
-
|
|
102
|
-
should 'change mounted_root' do
|
|
103
|
-
Padrino.mounted_root = "fixtures"
|
|
104
|
-
assert_equal Padrino.root("fixtures", "test", "app.rb"), Padrino.mounted_root("test", "app.rb")
|
|
105
|
-
Padrino.mounted_root = "apps"
|
|
106
|
-
assert_equal Padrino.root("apps", "test", "app.rb"), Padrino.mounted_root("test", "app.rb")
|
|
107
|
-
Padrino.mounted_root = nil
|
|
108
|
-
assert_equal Padrino.root("test", "app.rb"), Padrino.mounted_root("test", "app.rb")
|
|
109
|
-
end
|
|
110
|
-
|
|
111
|
-
should "be able to access routes data for mounted apps" do
|
|
112
|
-
class ::OneApp < Padrino::Application
|
|
113
|
-
get("/test") { "test" }
|
|
114
|
-
get(:index, :provides => [:js, :json]) { "index" }
|
|
115
|
-
controllers :posts do
|
|
116
|
-
get(:index) { "index" }
|
|
117
|
-
get(:new, :provides => :js) { "new" }
|
|
118
|
-
get(:show, :provides => [:js, :html], :with => :id) { "show" }
|
|
119
|
-
post(:create, :provides => :js, :with => :id) { "create" }
|
|
120
|
-
end
|
|
121
|
-
end
|
|
122
|
-
class ::TwoApp < Padrino::Application
|
|
123
|
-
controllers :users do
|
|
124
|
-
get(:index) { "users" }
|
|
125
|
-
get(:new) { "users new" }
|
|
126
|
-
post(:create) { "users create" }
|
|
127
|
-
put(:update) { "users update" }
|
|
128
|
-
delete(:destroy) { "users delete" }
|
|
129
|
-
end
|
|
130
|
-
end
|
|
131
|
-
|
|
132
|
-
Padrino.mount("one_app").to("/")
|
|
133
|
-
Padrino.mount("two_app").to("/two_app")
|
|
134
|
-
|
|
135
|
-
assert_equal 11, Padrino.mounted_apps[0].routes.size
|
|
136
|
-
assert_equal 7, Padrino.mounted_apps[1].routes.size
|
|
137
|
-
assert_equal 5, Padrino.mounted_apps[0].named_routes.size
|
|
138
|
-
assert_equal 5, Padrino.mounted_apps[1].named_routes.size
|
|
139
|
-
|
|
140
|
-
first_route = Padrino.mounted_apps[0].named_routes[3]
|
|
141
|
-
assert_equal "posts_show", first_route.identifier.to_s
|
|
142
|
-
assert_equal "(:posts, :show)", first_route.name
|
|
143
|
-
assert_equal "GET", first_route.verb
|
|
144
|
-
assert_equal "/posts/show/:id(.:format)", first_route.path
|
|
145
|
-
another_route = Padrino.mounted_apps[1].named_routes[2]
|
|
146
|
-
assert_equal "users_create", another_route.identifier.to_s
|
|
147
|
-
assert_equal "(:users, :create)", another_route.name
|
|
148
|
-
assert_equal "POST", another_route.verb
|
|
149
|
-
assert_equal "/two_app/users/create", another_route.path
|
|
150
|
-
end
|
|
151
|
-
|
|
152
|
-
should 'correctly instantiate a new padrino application' do
|
|
153
|
-
mock_app do
|
|
154
|
-
get("/demo_1"){ "Im Demo 1" }
|
|
155
|
-
get("/demo_2"){ "Im Demo 2" }
|
|
156
|
-
end
|
|
157
|
-
|
|
158
|
-
get '/demo_1'
|
|
159
|
-
assert_equal "Im Demo 1", body
|
|
160
|
-
get '/demo_2'
|
|
161
|
-
assert_equal "Im Demo 2", body
|
|
162
|
-
end
|
|
163
|
-
|
|
164
|
-
should "not clobber the public setting when mounting an app" do
|
|
165
|
-
class ::PublicApp < Padrino::Application
|
|
166
|
-
set :root, "/root"
|
|
167
|
-
set :public, File.expand_path(File.dirname(__FILE__))
|
|
168
|
-
end
|
|
169
|
-
|
|
170
|
-
Padrino.mount("public_app").to("/public")
|
|
171
|
-
res = Rack::MockRequest.new(Padrino.application).get("/public/test_mounter.rb")
|
|
172
|
-
assert res.ok?
|
|
173
|
-
assert_equal File.read(__FILE__), res.body
|
|
174
|
-
end
|
|
175
|
-
end
|
|
176
|
-
end
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
require File.expand_path(File.dirname(__FILE__) + '/helper')
|
|
2
|
-
require File.expand_path(File.dirname(__FILE__) + '/fixtures/apps/complex')
|
|
3
|
-
|
|
4
|
-
class TestComplexReloader < Test::Unit::TestCase
|
|
5
|
-
|
|
6
|
-
context 'for complex reload functionality' do
|
|
7
|
-
|
|
8
|
-
should 'correctly instantiate Complex(1-2)Demo fixture' do
|
|
9
|
-
Padrino.clear!
|
|
10
|
-
Padrino.mount("complex_1_demo").to("/complex_1_demo")
|
|
11
|
-
Padrino.mount("complex_2_demo").to("/complex_2_demo")
|
|
12
|
-
assert_equal ["/complex_1_demo", "/complex_2_demo"], Padrino.mounted_apps.map(&:uri_root)
|
|
13
|
-
assert_equal ["complex_1_demo", "complex_2_demo"], Padrino.mounted_apps.map(&:name)
|
|
14
|
-
assert Complex1Demo.reload?
|
|
15
|
-
assert Complex2Demo.reload?
|
|
16
|
-
assert_match %r{fixtures/apps/complex.rb}, Complex1Demo.app_file
|
|
17
|
-
assert_match %r{fixtures/apps/complex.rb}, Complex2Demo.app_file
|
|
18
|
-
end
|
|
19
|
-
|
|
20
|
-
should 'correctly reload Complex(1-2)Demo fixture' do
|
|
21
|
-
assert_match %r{fixtures/apps/complex.rb}, Complex1Demo.app_file
|
|
22
|
-
@app = Padrino.application
|
|
23
|
-
|
|
24
|
-
get "/"
|
|
25
|
-
assert_equal 404, status
|
|
26
|
-
|
|
27
|
-
get "/complex_1_demo"
|
|
28
|
-
assert_equal "Given random #{LibDemo.give_me_a_random}", body
|
|
29
|
-
|
|
30
|
-
get "/complex_2_demo"
|
|
31
|
-
assert_equal 200, status
|
|
32
|
-
|
|
33
|
-
get "/complex_1_demo/old"
|
|
34
|
-
assert_equal 200, status
|
|
35
|
-
|
|
36
|
-
get "/complex_2_demo/old"
|
|
37
|
-
assert_equal 200, status
|
|
38
|
-
|
|
39
|
-
new_phrase = "The magick number is: #{rand(2**255)}!"
|
|
40
|
-
buffer = File.read(Complex1Demo.app_file)
|
|
41
|
-
new_buffer = buffer.gsub(/The magick number is: \d+!/, new_phrase)
|
|
42
|
-
begin
|
|
43
|
-
File.open(Complex1Demo.app_file, "w") { |f| f.write(new_buffer) }
|
|
44
|
-
sleep 1.2 # We need at least a cooldown of 1 sec.
|
|
45
|
-
get "/complex_2_demo"
|
|
46
|
-
assert_equal new_phrase, body
|
|
47
|
-
|
|
48
|
-
# Re-Check that we didn't forget any route
|
|
49
|
-
get "/complex_1_demo"
|
|
50
|
-
assert_equal "Given random #{LibDemo.give_me_a_random}", body
|
|
51
|
-
|
|
52
|
-
get "/complex_2_demo"
|
|
53
|
-
assert_equal 200, status
|
|
54
|
-
|
|
55
|
-
get "/complex_1_demo/old"
|
|
56
|
-
assert_equal 200, status
|
|
57
|
-
|
|
58
|
-
get "/complex_2_demo/old"
|
|
59
|
-
assert_equal 200, status
|
|
60
|
-
ensure
|
|
61
|
-
# Now we need to prevent to commit a new changed file so we revert it
|
|
62
|
-
File.open(Complex1Demo.app_file, "w") { |f| f.write(buffer) }
|
|
63
|
-
end
|
|
64
|
-
end
|
|
65
|
-
end
|
|
66
|
-
end
|
|
@@ -1,97 +0,0 @@
|
|
|
1
|
-
require File.expand_path(File.dirname(__FILE__) + '/helper')
|
|
2
|
-
require File.expand_path(File.dirname(__FILE__) + '/fixtures/apps/simple')
|
|
3
|
-
|
|
4
|
-
class TestSimpleReloader < Test::Unit::TestCase
|
|
5
|
-
|
|
6
|
-
context 'for simple reset functionality' do
|
|
7
|
-
|
|
8
|
-
should 'reset routes' do
|
|
9
|
-
mock_app do
|
|
10
|
-
(1..10).each do |i|
|
|
11
|
-
get("/#{i}") { "Foo #{i}" }
|
|
12
|
-
end
|
|
13
|
-
end
|
|
14
|
-
(1..10).each do |i|
|
|
15
|
-
get "/#{i}"
|
|
16
|
-
assert_equal "Foo #{i}", body
|
|
17
|
-
end
|
|
18
|
-
@app.reset_routes!
|
|
19
|
-
(1..10).each do |i|
|
|
20
|
-
get "/#{i}"
|
|
21
|
-
assert_equal 404, status
|
|
22
|
-
end
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
should 'keep sinatra routes on development' do
|
|
26
|
-
mock_app do
|
|
27
|
-
set :environment, :development
|
|
28
|
-
get("/"){ "ok" }
|
|
29
|
-
end
|
|
30
|
-
assert_equal :development, @app.environment
|
|
31
|
-
get "/"
|
|
32
|
-
assert_equal 200, status
|
|
33
|
-
get "/__sinatra__/404.png"
|
|
34
|
-
assert_equal 200, status
|
|
35
|
-
assert_match /image\/png/, response["Content-Type"]
|
|
36
|
-
@app.reset_routes!
|
|
37
|
-
get "/"
|
|
38
|
-
assert_equal 404, status
|
|
39
|
-
get "/__sinatra__/404.png"
|
|
40
|
-
assert_equal 200, status
|
|
41
|
-
assert_match /image\/png/, response["Content-Type"]
|
|
42
|
-
end
|
|
43
|
-
end
|
|
44
|
-
|
|
45
|
-
context 'for simple reload functionality' do
|
|
46
|
-
|
|
47
|
-
should 'correctly instantiate SimpleDemo fixture' do
|
|
48
|
-
Padrino.clear!
|
|
49
|
-
Padrino.mount("simple_demo").to("/")
|
|
50
|
-
assert_equal ["simple_demo"], Padrino.mounted_apps.map(&:name)
|
|
51
|
-
assert SimpleDemo.reload?
|
|
52
|
-
assert_match %r{fixtures/apps/simple.rb}, SimpleDemo.app_file
|
|
53
|
-
end
|
|
54
|
-
|
|
55
|
-
should 'correctly reload SimpleDemo fixture' do
|
|
56
|
-
@app = SimpleDemo
|
|
57
|
-
get "/"
|
|
58
|
-
assert ok?
|
|
59
|
-
new_phrase = "The magick number is: #{rand(2**255)}!"
|
|
60
|
-
buffer = File.read(SimpleDemo.app_file)
|
|
61
|
-
new_buffer = buffer.gsub(/The magick number is: \d+!/, new_phrase)
|
|
62
|
-
File.open(SimpleDemo.app_file, "w") { |f| f.write(new_buffer) }
|
|
63
|
-
sleep 1.2 # We need at least a cooldown of 1 sec.
|
|
64
|
-
get "/"
|
|
65
|
-
assert_equal new_phrase, body
|
|
66
|
-
|
|
67
|
-
# Now we need to prevent to commit a new changed file so we revert it
|
|
68
|
-
File.open(SimpleDemo.app_file, "w") { |f| f.write(buffer) }
|
|
69
|
-
Padrino.reload!
|
|
70
|
-
end
|
|
71
|
-
|
|
72
|
-
should 'correctly reset SimpleDemo fixture' do
|
|
73
|
-
@app = SimpleDemo
|
|
74
|
-
@app.reload!
|
|
75
|
-
get "/rand"
|
|
76
|
-
assert ok?
|
|
77
|
-
last_body = body
|
|
78
|
-
assert_equal 2, @app.filters[:before].size # one is ours the other is default_filter for content type
|
|
79
|
-
assert_equal 1, @app.errors.size
|
|
80
|
-
assert_equal 1, @app.filters[:after].size
|
|
81
|
-
assert_equal 1, @app.middleware.size # [Padrino::Reloader::Rack]
|
|
82
|
-
assert_equal 4, @app.routes.size # GET+HEAD of "/" + GET+HEAD of "/rand" = 4
|
|
83
|
-
assert_equal 2, @app.extensions.size # [Padrino::Routing, Padrino::Rendering]
|
|
84
|
-
assert_equal 0, @app.templates.size
|
|
85
|
-
@app.reload!
|
|
86
|
-
get "/rand"
|
|
87
|
-
assert_not_equal last_body, body
|
|
88
|
-
assert_equal 2, @app.filters[:before].size # one is ours the other is default_filter for content type
|
|
89
|
-
assert_equal 1, @app.errors.size
|
|
90
|
-
assert_equal 1, @app.filters[:after].size
|
|
91
|
-
assert_equal 1, @app.middleware.size
|
|
92
|
-
assert_equal 4, @app.routes.size # GET+HEAD of "/" = 2
|
|
93
|
-
assert_equal 2, @app.extensions.size # [Padrino::Routing, Padrino::Rendering]
|
|
94
|
-
assert_equal 0, @app.templates.size
|
|
95
|
-
end
|
|
96
|
-
end
|
|
97
|
-
end
|
|
@@ -1,437 +0,0 @@
|
|
|
1
|
-
require File.expand_path(File.dirname(__FILE__) + '/helper')
|
|
2
|
-
require 'i18n'
|
|
3
|
-
|
|
4
|
-
class TestRendering < Test::Unit::TestCase
|
|
5
|
-
def setup
|
|
6
|
-
Padrino::Application.send(:register, Padrino::Rendering)
|
|
7
|
-
end
|
|
8
|
-
|
|
9
|
-
def teardown
|
|
10
|
-
remove_views
|
|
11
|
-
end
|
|
12
|
-
|
|
13
|
-
context 'for application layout functionality' do
|
|
14
|
-
|
|
15
|
-
should 'get no layout' do
|
|
16
|
-
mock_app do
|
|
17
|
-
get("/"){ "no layout" }
|
|
18
|
-
end
|
|
19
|
-
|
|
20
|
-
get "/"
|
|
21
|
-
assert_equal "no layout", body
|
|
22
|
-
end
|
|
23
|
-
|
|
24
|
-
should 'be compatible with sinatra layout' do
|
|
25
|
-
mock_app do
|
|
26
|
-
layout do
|
|
27
|
-
"this is a <%= yield %>"
|
|
28
|
-
end
|
|
29
|
-
|
|
30
|
-
get("/"){ render :erb, "sinatra layout" }
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
get "/"
|
|
34
|
-
assert_equal "this is a sinatra layout", body
|
|
35
|
-
end
|
|
36
|
-
|
|
37
|
-
should 'use rails way layout' do
|
|
38
|
-
with_layout :application, "this is a <%= yield %>" do
|
|
39
|
-
mock_app do
|
|
40
|
-
get("/"){ render :erb, "rails way layout" }
|
|
41
|
-
end
|
|
42
|
-
|
|
43
|
-
get "/"
|
|
44
|
-
assert_equal "this is a rails way layout", body
|
|
45
|
-
end
|
|
46
|
-
end
|
|
47
|
-
|
|
48
|
-
should 'use rails way for a custom layout' do
|
|
49
|
-
with_layout "layouts/custom", "this is a <%= yield %>" do
|
|
50
|
-
mock_app do
|
|
51
|
-
layout :custom
|
|
52
|
-
get("/"){ render :erb, "rails way custom layout" }
|
|
53
|
-
end
|
|
54
|
-
|
|
55
|
-
get "/"
|
|
56
|
-
assert_equal "this is a rails way custom layout", body
|
|
57
|
-
end
|
|
58
|
-
end
|
|
59
|
-
|
|
60
|
-
should 'not use layout' do
|
|
61
|
-
with_layout :application, "this is a <%= yield %>" do
|
|
62
|
-
with_view :index, "index" do
|
|
63
|
-
mock_app do
|
|
64
|
-
get("/with/layout"){ render :index }
|
|
65
|
-
get("/without/layout"){ render :index, :layout => false }
|
|
66
|
-
end
|
|
67
|
-
get "/with/layout"
|
|
68
|
-
assert_equal "this is a index", body
|
|
69
|
-
get "/without/layout"
|
|
70
|
-
assert_equal "index", body
|
|
71
|
-
end
|
|
72
|
-
end
|
|
73
|
-
end
|
|
74
|
-
|
|
75
|
-
should 'not use layout with js format' do
|
|
76
|
-
create_layout :application, "this is an <%= yield %>"
|
|
77
|
-
create_view :foo, "erb file"
|
|
78
|
-
create_view :foo, "js file", :format => :js
|
|
79
|
-
mock_app do
|
|
80
|
-
get('/layout_test', :provides => [:html, :js]){ render :foo }
|
|
81
|
-
end
|
|
82
|
-
get "/layout_test"
|
|
83
|
-
assert_equal "this is an erb file", body
|
|
84
|
-
get "/layout_test.js"
|
|
85
|
-
assert_equal "js file", body
|
|
86
|
-
end
|
|
87
|
-
|
|
88
|
-
should 'use correct layout for each format' do
|
|
89
|
-
create_layout :application, "this is an <%= yield %>"
|
|
90
|
-
create_layout :application, "document start <%= yield %> end", :format => :xml
|
|
91
|
-
create_view :foo, "erb file"
|
|
92
|
-
create_view :foo, "xml file", :format => :xml
|
|
93
|
-
mock_app do
|
|
94
|
-
get('/layout_test', :provides => [:html, :xml]){ render :foo }
|
|
95
|
-
end
|
|
96
|
-
get "/layout_test"
|
|
97
|
-
assert_equal "this is an erb file", body
|
|
98
|
-
get "/layout_test.xml"
|
|
99
|
-
assert_equal "document start xml file end", body
|
|
100
|
-
end
|
|
101
|
-
|
|
102
|
-
should 'by default use html file when no other is given' do
|
|
103
|
-
create_layout :foo, "html file", :format => :html
|
|
104
|
-
|
|
105
|
-
mock_app do
|
|
106
|
-
get('/content_type_test', :provides => [:html, :xml]) { render :foo }
|
|
107
|
-
end
|
|
108
|
-
|
|
109
|
-
get "/content_type_test"
|
|
110
|
-
assert_equal "html file", body
|
|
111
|
-
get "/content_type_test.xml"
|
|
112
|
-
assert_equal "html file", body
|
|
113
|
-
end
|
|
114
|
-
|
|
115
|
-
should 'not use html file when DEFAULT_RENDERING_OPTIONS[:strict_format] == true' do
|
|
116
|
-
create_layout :foo, "html file", :format => :html
|
|
117
|
-
|
|
118
|
-
mock_app do
|
|
119
|
-
get('/default_rendering_test', :provides => [:html, :xml]) { render :foo }
|
|
120
|
-
end
|
|
121
|
-
|
|
122
|
-
@save = Padrino::Rendering::DEFAULT_RENDERING_OPTIONS
|
|
123
|
-
Padrino::Rendering::DEFAULT_RENDERING_OPTIONS[:strict_format] = true
|
|
124
|
-
|
|
125
|
-
get "/default_rendering_test"
|
|
126
|
-
assert_equal "html file", body
|
|
127
|
-
assert_raise Padrino::Rendering::TemplateNotFound do
|
|
128
|
-
get "/default_rendering_test.xml"
|
|
129
|
-
end
|
|
130
|
-
|
|
131
|
-
Padrino::Rendering::DEFAULT_RENDERING_OPTIONS.merge(@save)
|
|
132
|
-
end
|
|
133
|
-
|
|
134
|
-
should 'use correct layout with each controller' do
|
|
135
|
-
create_layout :foo, "foo layout at <%= yield %>"
|
|
136
|
-
create_layout :bar, "bar layout at <%= yield %>"
|
|
137
|
-
create_layout :application, "default layout at <%= yield %>"
|
|
138
|
-
mock_app do
|
|
139
|
-
get("/"){ render :erb, "application" }
|
|
140
|
-
controller :foo do
|
|
141
|
-
layout :foo
|
|
142
|
-
get("/"){ render :erb, "foo" }
|
|
143
|
-
end
|
|
144
|
-
controller :bar do
|
|
145
|
-
layout :bar
|
|
146
|
-
get("/"){ render :erb, "bar" }
|
|
147
|
-
end
|
|
148
|
-
controller :none do
|
|
149
|
-
get("/") { render :erb, "none" }
|
|
150
|
-
get("/with_foo_layout") { render :erb, "none with layout", :layout => :foo }
|
|
151
|
-
end
|
|
152
|
-
end
|
|
153
|
-
get "/foo"
|
|
154
|
-
assert_equal "foo layout at foo", body
|
|
155
|
-
get "/bar"
|
|
156
|
-
assert_equal "bar layout at bar", body
|
|
157
|
-
get "/none"
|
|
158
|
-
assert_equal "default layout at none", body
|
|
159
|
-
get "/none/with_foo_layout"
|
|
160
|
-
assert_equal "foo layout at none with layout", body
|
|
161
|
-
get "/"
|
|
162
|
-
assert_equal "default layout at application", body
|
|
163
|
-
end
|
|
164
|
-
end
|
|
165
|
-
|
|
166
|
-
should 'solve layout in layouts paths' do
|
|
167
|
-
create_layout :foo, "foo layout <%= yield %>"
|
|
168
|
-
create_layout :"layouts/bar", "bar layout <%= yield %>"
|
|
169
|
-
mock_app do
|
|
170
|
-
get("/") { render :erb, "none" }
|
|
171
|
-
get("/foo") { render :erb, "foo", :layout => :foo }
|
|
172
|
-
get("/bar") { render :erb, "bar", :layout => :bar }
|
|
173
|
-
end
|
|
174
|
-
get "/"
|
|
175
|
-
assert_equal "none", body
|
|
176
|
-
get "/foo"
|
|
177
|
-
assert_equal "foo layout foo", body
|
|
178
|
-
get "/bar"
|
|
179
|
-
assert_equal "bar layout bar", body
|
|
180
|
-
end
|
|
181
|
-
|
|
182
|
-
should 'render correctly if layout was not found or not exist' do
|
|
183
|
-
create_layout :application, "application layout for <%= yield %>"
|
|
184
|
-
create_view :foo, "index", :format => :html
|
|
185
|
-
create_view :foo, "xml.rss", :format => :rss
|
|
186
|
-
mock_app do
|
|
187
|
-
get("/foo", :provides => [:html, :rss]) { render('foo') }
|
|
188
|
-
get("/baz", :provides => :js) { render(:erb, 'baz') }
|
|
189
|
-
get("/bar") { render :haml, "haml" }
|
|
190
|
-
end
|
|
191
|
-
get "/foo"
|
|
192
|
-
assert_equal "application layout for index", body
|
|
193
|
-
get "/foo.rss"
|
|
194
|
-
assert_equal "<rss/>", body.chomp
|
|
195
|
-
get "/baz.js"
|
|
196
|
-
assert_equal "baz", body
|
|
197
|
-
get "/bar"
|
|
198
|
-
assert_equal "haml", body.chomp
|
|
199
|
-
end
|
|
200
|
-
|
|
201
|
-
context 'for application render functionality' do
|
|
202
|
-
|
|
203
|
-
should 'be compatible with sinatra render' do
|
|
204
|
-
mock_app do
|
|
205
|
-
get("/"){ render :erb, "<%= 1+2 %>" }
|
|
206
|
-
end
|
|
207
|
-
get "/"
|
|
208
|
-
assert_equal "3", body
|
|
209
|
-
end
|
|
210
|
-
|
|
211
|
-
should "support passing locals into render" do
|
|
212
|
-
create_layout :application, "layout <%= yield %>"
|
|
213
|
-
create_view :index, "<%= foo %>"
|
|
214
|
-
mock_app do
|
|
215
|
-
get("/") { render "index", { :layout => true }, { :foo => "bar" } }
|
|
216
|
-
end
|
|
217
|
-
get "/"
|
|
218
|
-
assert_equal "layout bar", body
|
|
219
|
-
end
|
|
220
|
-
|
|
221
|
-
should "support passing locals into sinatra render" do
|
|
222
|
-
create_layout :application, "layout <%= yield %>"
|
|
223
|
-
create_view :index, "<%= foo %>"
|
|
224
|
-
mock_app do
|
|
225
|
-
get("/") { render :erb, :index, { :layout => true }, { :foo => "bar" } }
|
|
226
|
-
end
|
|
227
|
-
get "/"
|
|
228
|
-
assert_equal "layout bar", body
|
|
229
|
-
end
|
|
230
|
-
|
|
231
|
-
should "support passing locals into special nil engine render" do
|
|
232
|
-
create_layout :application, "layout <%= yield %>"
|
|
233
|
-
create_view :index, "<%= foo %>"
|
|
234
|
-
mock_app do
|
|
235
|
-
get("/") { render nil, :index, { :layout => true }, { :foo => "bar" } }
|
|
236
|
-
end
|
|
237
|
-
get "/"
|
|
238
|
-
assert_equal "layout bar", body
|
|
239
|
-
end
|
|
240
|
-
|
|
241
|
-
should 'be compatible with sinatra views' do
|
|
242
|
-
with_view :index, "<%= 1+2 %>" do
|
|
243
|
-
mock_app do
|
|
244
|
-
get("/foo") { render :erb, :index }
|
|
245
|
-
get("/bar") { erb :index }
|
|
246
|
-
get("/dir") { "3" }
|
|
247
|
-
get("/inj") { erb "<%= 2+1 %>" }
|
|
248
|
-
get("/rnj") { render :erb, "<%= 2+1 %>" }
|
|
249
|
-
end
|
|
250
|
-
get "/foo"
|
|
251
|
-
assert_equal "3", body
|
|
252
|
-
get "/bar"
|
|
253
|
-
assert_equal "3", body
|
|
254
|
-
get "/dir"
|
|
255
|
-
assert_equal "3", body
|
|
256
|
-
get "/inj"
|
|
257
|
-
assert_equal "3", body
|
|
258
|
-
get "/rnj"
|
|
259
|
-
assert_equal "3", body
|
|
260
|
-
end
|
|
261
|
-
end
|
|
262
|
-
|
|
263
|
-
should 'resolve template engine' do
|
|
264
|
-
with_view :index, "<%= 1+2 %>" do
|
|
265
|
-
mock_app do
|
|
266
|
-
get("/foo") { render :index }
|
|
267
|
-
get("/bar") { render "/index" }
|
|
268
|
-
end
|
|
269
|
-
get "/foo"
|
|
270
|
-
assert_equal "3", body
|
|
271
|
-
get "/bar"
|
|
272
|
-
assert_equal "3", body
|
|
273
|
-
end
|
|
274
|
-
end
|
|
275
|
-
|
|
276
|
-
should 'resolve template content type' do
|
|
277
|
-
create_view :foo, "Im Js", :format => :js
|
|
278
|
-
create_view :foo, "Im Erb"
|
|
279
|
-
mock_app do
|
|
280
|
-
get("/foo", :provides => :js) { render :foo }
|
|
281
|
-
get("/bar.js") { render :foo }
|
|
282
|
-
end
|
|
283
|
-
get "/foo.js"
|
|
284
|
-
assert_equal "Im Js", body
|
|
285
|
-
# TODO: implement this!
|
|
286
|
-
# get "/bar.js"
|
|
287
|
-
# assert_equal "Im Js", body
|
|
288
|
-
end
|
|
289
|
-
|
|
290
|
-
should 'resolve with explicit template format' do
|
|
291
|
-
create_view :foo, "Im Js", :format => :js
|
|
292
|
-
create_view :foo, "Im Haml", :format => :haml
|
|
293
|
-
create_view :foo, "Im Xml", :format => :xml
|
|
294
|
-
mock_app do
|
|
295
|
-
get("/foo_normal", :provides => :js) { render 'foo' }
|
|
296
|
-
get("/foo_haml", :provides => :js) { render 'foo.haml' }
|
|
297
|
-
get("/foo_xml", :provides => :js) { render 'foo.xml' }
|
|
298
|
-
end
|
|
299
|
-
get "/foo_normal.js"
|
|
300
|
-
assert_equal "Im Js", body
|
|
301
|
-
get "/foo_haml.js"
|
|
302
|
-
assert_equal "Im Haml\n", body
|
|
303
|
-
get "/foo_xml.js"
|
|
304
|
-
assert_equal "Im Xml", body
|
|
305
|
-
end
|
|
306
|
-
|
|
307
|
-
should 'resolve without explict template format' do
|
|
308
|
-
create_view :foo, "Im Html"
|
|
309
|
-
create_view :foo, "xml.rss", :format => :rss
|
|
310
|
-
mock_app do
|
|
311
|
-
get(:index, :map => "/", :provides => [:html, :rss]){ render 'foo' }
|
|
312
|
-
end
|
|
313
|
-
get "/", {}, { 'HTTP_ACCEPT' => 'text/html;q=0.9' }
|
|
314
|
-
assert_equal "Im Html", body
|
|
315
|
-
get ".rss"
|
|
316
|
-
assert_equal "<rss/>\n", body
|
|
317
|
-
end
|
|
318
|
-
|
|
319
|
-
should "ignore files ending in tilde and not render them" do
|
|
320
|
-
create_view :foo, "Im Wrong", :format => 'haml~'
|
|
321
|
-
create_view :foo, "Im Haml", :format => :haml
|
|
322
|
-
create_view :bar, "Im Haml backup", :format => 'haml~'
|
|
323
|
-
mock_app do
|
|
324
|
-
get('/foo') { render 'foo' }
|
|
325
|
-
get('/bar') { render 'bar' }
|
|
326
|
-
end
|
|
327
|
-
get '/foo'
|
|
328
|
-
assert_equal "Im Haml\n", body
|
|
329
|
-
assert_raises(Padrino::Rendering::TemplateNotFound) { get '/bar' }
|
|
330
|
-
end
|
|
331
|
-
|
|
332
|
-
should 'resolve template locale' do
|
|
333
|
-
create_view :foo, "Im English", :locale => :en
|
|
334
|
-
create_view :foo, "Im Italian", :locale => :it
|
|
335
|
-
mock_app do
|
|
336
|
-
get("/foo") { render :foo }
|
|
337
|
-
end
|
|
338
|
-
I18n.locale = :en
|
|
339
|
-
get "/foo"
|
|
340
|
-
assert_equal "Im English", body
|
|
341
|
-
I18n.locale = :it
|
|
342
|
-
get "/foo"
|
|
343
|
-
assert_equal "Im Italian", body
|
|
344
|
-
end
|
|
345
|
-
|
|
346
|
-
should 'resolve template content_type and locale' do
|
|
347
|
-
create_view :foo, "Im Js", :format => :js
|
|
348
|
-
create_view :foo, "Im Erb"
|
|
349
|
-
create_view :foo, "Im English Erb", :locale => :en
|
|
350
|
-
create_view :foo, "Im Italian Erb", :locale => :it
|
|
351
|
-
create_view :foo, "Im English Js", :format => :js, :locale => :en
|
|
352
|
-
create_view :foo, "Im Italian Js", :format => :js, :locale => :it
|
|
353
|
-
mock_app do
|
|
354
|
-
get("/foo", :provides => [:html, :js]) { render :foo }
|
|
355
|
-
end
|
|
356
|
-
I18n.locale = :none
|
|
357
|
-
get "/foo.js"
|
|
358
|
-
assert_equal "Im Js", body
|
|
359
|
-
get "/foo"
|
|
360
|
-
assert_equal "Im Erb", body
|
|
361
|
-
I18n.locale = :en
|
|
362
|
-
get "/foo"
|
|
363
|
-
assert_equal "Im English Erb", body
|
|
364
|
-
I18n.locale = :it
|
|
365
|
-
get "/foo"
|
|
366
|
-
assert_equal "Im Italian Erb", body
|
|
367
|
-
I18n.locale = :en
|
|
368
|
-
get "/foo.js"
|
|
369
|
-
assert_equal "Im English Js", body
|
|
370
|
-
I18n.locale = :it
|
|
371
|
-
get "/foo.js"
|
|
372
|
-
assert_equal "Im Italian Js", body
|
|
373
|
-
I18n.locale = :en
|
|
374
|
-
get "/foo.pk"
|
|
375
|
-
assert_equal 405, status
|
|
376
|
-
end
|
|
377
|
-
|
|
378
|
-
should 'resolve template content_type and locale with layout' do
|
|
379
|
-
create_layout :foo, "Hello <%= yield %> in a Js layout", :format => :js
|
|
380
|
-
create_layout :foo, "Hello <%= yield %> in a Js-En layout", :format => :js, :locale => :en
|
|
381
|
-
create_layout :foo, "Hello <%= yield %> in a Js-It layout", :format => :js, :locale => :it
|
|
382
|
-
create_layout :foo, "Hello <%= yield %> in a Erb-En layout", :locale => :en
|
|
383
|
-
create_layout :foo, "Hello <%= yield %> in a Erb-It layout", :locale => :it
|
|
384
|
-
create_layout :foo, "Hello <%= yield %> in a Erb layout"
|
|
385
|
-
create_view :bar, "Im Js", :format => :js
|
|
386
|
-
create_view :bar, "Im Erb"
|
|
387
|
-
create_view :bar, "Im English Erb", :locale => :en
|
|
388
|
-
create_view :bar, "Im Italian Erb", :locale => :it
|
|
389
|
-
create_view :bar, "Im English Js", :format => :js, :locale => :en
|
|
390
|
-
create_view :bar, "Im Italian Js", :format => :js, :locale => :it
|
|
391
|
-
create_view :bar, "Im a json", :format => :json
|
|
392
|
-
mock_app do
|
|
393
|
-
layout :foo
|
|
394
|
-
get("/bar", :provides => [:html, :js, :json]) { render :bar }
|
|
395
|
-
end
|
|
396
|
-
I18n.locale = :none
|
|
397
|
-
get "/bar.js"
|
|
398
|
-
assert_equal "Hello Im Js in a Js layout", body
|
|
399
|
-
get "/bar"
|
|
400
|
-
assert_equal "Hello Im Erb in a Erb layout", body
|
|
401
|
-
I18n.locale = :en
|
|
402
|
-
get "/bar"
|
|
403
|
-
assert_equal "Hello Im English Erb in a Erb-En layout", body
|
|
404
|
-
I18n.locale = :it
|
|
405
|
-
get "/bar"
|
|
406
|
-
assert_equal "Hello Im Italian Erb in a Erb-It layout", body
|
|
407
|
-
I18n.locale = :en
|
|
408
|
-
get "/bar.js"
|
|
409
|
-
assert_equal "Hello Im English Js in a Js-En layout", body
|
|
410
|
-
I18n.locale = :it
|
|
411
|
-
get "/bar.js"
|
|
412
|
-
assert_equal "Hello Im Italian Js in a Js-It layout", body
|
|
413
|
-
I18n.locale = :en
|
|
414
|
-
get "/bar.json"
|
|
415
|
-
assert_equal "Im a json", body
|
|
416
|
-
get "/bar.pk"
|
|
417
|
-
assert_equal 405, status
|
|
418
|
-
end
|
|
419
|
-
|
|
420
|
-
should 'renders erb with blocks' do
|
|
421
|
-
mock_app do
|
|
422
|
-
def container
|
|
423
|
-
@_out_buf << "THIS."
|
|
424
|
-
yield
|
|
425
|
-
@_out_buf << "SPARTA!"
|
|
426
|
-
end
|
|
427
|
-
def is; "IS."; end
|
|
428
|
-
get '/' do
|
|
429
|
-
render :erb, '<% container do %> <%= is %> <% end %>'
|
|
430
|
-
end
|
|
431
|
-
end
|
|
432
|
-
get '/'
|
|
433
|
-
assert ok?
|
|
434
|
-
assert_equal 'THIS. IS. SPARTA!', body
|
|
435
|
-
end
|
|
436
|
-
end
|
|
437
|
-
end
|