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.
Files changed (190) hide show
  1. data/.gitignore +1 -0
  2. data/.travis.yml +0 -1
  3. data/CHANGELOG +8 -0
  4. data/Gemfile +1 -1
  5. data/features/data.feature +6 -1
  6. data/features/markdown.feature +7 -0
  7. data/features/sprockets.feature +11 -1
  8. data/features/sprockets_gems.feature +3 -3
  9. data/fixtures/sprockets-app/source/jquery_include.js +1 -0
  10. data/fixtures/test-app/config.rb +2 -0
  11. data/fixtures/test-app/source/data2.html.liquid +1 -0
  12. data/fixtures/test-app/source/javascripts/multiple_engines.js.coffee.erb +1 -0
  13. data/fixtures/test-app/source/markdown.html.markdown +1 -0
  14. data/lib/middleman.rb +0 -6
  15. data/lib/middleman/base.rb +6 -1
  16. data/lib/middleman/builder.rb +6 -4
  17. data/lib/middleman/core_extensions/data.rb +35 -5
  18. data/lib/middleman/core_extensions/front_matter.rb +9 -2
  19. data/lib/middleman/core_extensions/sprockets.rb +25 -1
  20. data/lib/middleman/renderers/markdown.rb +25 -2
  21. data/lib/middleman/version.rb +1 -1
  22. data/middleman.gemspec +7 -6
  23. metadata +112 -251
  24. data/lib/middleman/vendor/padrino-core-0.10.0/.document +0 -5
  25. data/lib/middleman/vendor/padrino-core-0.10.0/.gitignore +0 -22
  26. data/lib/middleman/vendor/padrino-core-0.10.0/LICENSE +0 -20
  27. data/lib/middleman/vendor/padrino-core-0.10.0/README.rdoc +0 -294
  28. data/lib/middleman/vendor/padrino-core-0.10.0/Rakefile +0 -5
  29. data/lib/middleman/vendor/padrino-core-0.10.0/bin/padrino +0 -9
  30. data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core.rb +0 -119
  31. data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core/application.rb +0 -259
  32. data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core/application/rendering.rb +0 -228
  33. data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core/application/routing.rb +0 -821
  34. data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core/application/showexceptions.rb +0 -18
  35. data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core/caller.rb +0 -45
  36. data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core/cli/adapter.rb +0 -24
  37. data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core/cli/base.rb +0 -152
  38. data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core/cli/console.rb +0 -20
  39. data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core/cli/rake.rb +0 -24
  40. data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core/cli/rake_tasks.rb +0 -59
  41. data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core/command.rb +0 -27
  42. data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core/images/404.png +0 -0
  43. data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core/images/500.png +0 -0
  44. data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core/loader.rb +0 -182
  45. data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core/locale/cz.yml +0 -30
  46. data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core/locale/da.yml +0 -30
  47. data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core/locale/de.yml +0 -30
  48. data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core/locale/en.yml +0 -30
  49. data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core/locale/es.yml +0 -30
  50. data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core/locale/fr.yml +0 -30
  51. data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core/locale/hu.yml +0 -30
  52. data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core/locale/it.yml +0 -37
  53. data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core/locale/ja.yml +0 -30
  54. data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core/locale/nl.yml +0 -30
  55. data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core/locale/no.yml +0 -31
  56. data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core/locale/pl.yml +0 -30
  57. data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core/locale/pt_br.yml +0 -37
  58. data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core/locale/ru.yml +0 -30
  59. data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core/locale/tr.yml +0 -30
  60. data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core/locale/uk.yml +0 -30
  61. data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core/locale/zh_cn.yml +0 -30
  62. data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core/locale/zh_tw.yml +0 -30
  63. data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core/logger.rb +0 -344
  64. data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core/mounter.rb +0 -192
  65. data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core/reloader.rb +0 -247
  66. data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core/router.rb +0 -79
  67. data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core/server.rb +0 -70
  68. data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core/support_lite.rb +0 -135
  69. data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core/tasks.rb +0 -23
  70. data/lib/middleman/vendor/padrino-core-0.10.0/lib/padrino-core/version.rb +0 -15
  71. data/lib/middleman/vendor/padrino-core-0.10.0/padrino-core.gemspec +0 -38
  72. data/lib/middleman/vendor/padrino-core-0.10.0/test/fixtures/apps/.components +0 -6
  73. data/lib/middleman/vendor/padrino-core-0.10.0/test/fixtures/apps/.gitignore +0 -7
  74. data/lib/middleman/vendor/padrino-core-0.10.0/test/fixtures/apps/complex.rb +0 -27
  75. data/lib/middleman/vendor/padrino-core-0.10.0/test/fixtures/apps/simple.rb +0 -33
  76. data/lib/middleman/vendor/padrino-core-0.10.0/test/fixtures/dependencies/a.rb +0 -9
  77. data/lib/middleman/vendor/padrino-core-0.10.0/test/fixtures/dependencies/b.rb +0 -4
  78. data/lib/middleman/vendor/padrino-core-0.10.0/test/fixtures/dependencies/c.rb +0 -1
  79. data/lib/middleman/vendor/padrino-core-0.10.0/test/fixtures/dependencies/circular/e.rb +0 -13
  80. data/lib/middleman/vendor/padrino-core-0.10.0/test/fixtures/dependencies/circular/f.rb +0 -2
  81. data/lib/middleman/vendor/padrino-core-0.10.0/test/fixtures/dependencies/circular/g.rb +0 -2
  82. data/lib/middleman/vendor/padrino-core-0.10.0/test/fixtures/dependencies/d.rb +0 -4
  83. data/lib/middleman/vendor/padrino-core-0.10.0/test/helper.rb +0 -101
  84. data/lib/middleman/vendor/padrino-core-0.10.0/test/test_application.rb +0 -83
  85. data/lib/middleman/vendor/padrino-core-0.10.0/test/test_core.rb +0 -79
  86. data/lib/middleman/vendor/padrino-core-0.10.0/test/test_dependencies.rb +0 -44
  87. data/lib/middleman/vendor/padrino-core-0.10.0/test/test_filters.rb +0 -266
  88. data/lib/middleman/vendor/padrino-core-0.10.0/test/test_logger.rb +0 -91
  89. data/lib/middleman/vendor/padrino-core-0.10.0/test/test_mounter.rb +0 -176
  90. data/lib/middleman/vendor/padrino-core-0.10.0/test/test_reloader_complex.rb +0 -66
  91. data/lib/middleman/vendor/padrino-core-0.10.0/test/test_reloader_simple.rb +0 -97
  92. data/lib/middleman/vendor/padrino-core-0.10.0/test/test_rendering.rb +0 -437
  93. data/lib/middleman/vendor/padrino-core-0.10.0/test/test_router.rb +0 -146
  94. data/lib/middleman/vendor/padrino-core-0.10.0/test/test_routing.rb +0 -1491
  95. data/lib/middleman/vendor/padrino-helpers-0.10.0/.document +0 -5
  96. data/lib/middleman/vendor/padrino-helpers-0.10.0/.gitignore +0 -21
  97. data/lib/middleman/vendor/padrino-helpers-0.10.0/LICENSE +0 -20
  98. data/lib/middleman/vendor/padrino-helpers-0.10.0/README.rdoc +0 -239
  99. data/lib/middleman/vendor/padrino-helpers-0.10.0/Rakefile +0 -5
  100. data/lib/middleman/vendor/padrino-helpers-0.10.0/lib/padrino-helpers.rb +0 -51
  101. data/lib/middleman/vendor/padrino-helpers-0.10.0/lib/padrino-helpers/asset_tag_helpers.rb +0 -288
  102. data/lib/middleman/vendor/padrino-helpers-0.10.0/lib/padrino-helpers/form_builder/abstract_form_builder.rb +0 -220
  103. data/lib/middleman/vendor/padrino-helpers-0.10.0/lib/padrino-helpers/form_builder/standard_form_builder.rb +0 -43
  104. data/lib/middleman/vendor/padrino-helpers-0.10.0/lib/padrino-helpers/form_helpers.rb +0 -446
  105. data/lib/middleman/vendor/padrino-helpers-0.10.0/lib/padrino-helpers/format_helpers.rb +0 -260
  106. data/lib/middleman/vendor/padrino-helpers-0.10.0/lib/padrino-helpers/locale/cz.yml +0 -103
  107. data/lib/middleman/vendor/padrino-helpers-0.10.0/lib/padrino-helpers/locale/da.yml +0 -91
  108. data/lib/middleman/vendor/padrino-helpers-0.10.0/lib/padrino-helpers/locale/de.yml +0 -78
  109. data/lib/middleman/vendor/padrino-helpers-0.10.0/lib/padrino-helpers/locale/en.yml +0 -103
  110. data/lib/middleman/vendor/padrino-helpers-0.10.0/lib/padrino-helpers/locale/es.yml +0 -103
  111. data/lib/middleman/vendor/padrino-helpers-0.10.0/lib/padrino-helpers/locale/fr.yml +0 -79
  112. data/lib/middleman/vendor/padrino-helpers-0.10.0/lib/padrino-helpers/locale/hu.yml +0 -103
  113. data/lib/middleman/vendor/padrino-helpers-0.10.0/lib/padrino-helpers/locale/it.yml +0 -85
  114. data/lib/middleman/vendor/padrino-helpers-0.10.0/lib/padrino-helpers/locale/ja.yml +0 -103
  115. data/lib/middleman/vendor/padrino-helpers-0.10.0/lib/padrino-helpers/locale/nl.yml +0 -78
  116. data/lib/middleman/vendor/padrino-helpers-0.10.0/lib/padrino-helpers/locale/no.yml +0 -91
  117. data/lib/middleman/vendor/padrino-helpers-0.10.0/lib/padrino-helpers/locale/pl.yml +0 -95
  118. data/lib/middleman/vendor/padrino-helpers-0.10.0/lib/padrino-helpers/locale/pt_br.yml +0 -103
  119. data/lib/middleman/vendor/padrino-helpers-0.10.0/lib/padrino-helpers/locale/ru.yml +0 -103
  120. data/lib/middleman/vendor/padrino-helpers-0.10.0/lib/padrino-helpers/locale/tr.yml +0 -103
  121. data/lib/middleman/vendor/padrino-helpers-0.10.0/lib/padrino-helpers/locale/uk.yml +0 -103
  122. data/lib/middleman/vendor/padrino-helpers-0.10.0/lib/padrino-helpers/locale/zh_cn.yml +0 -103
  123. data/lib/middleman/vendor/padrino-helpers-0.10.0/lib/padrino-helpers/locale/zh_tw.yml +0 -103
  124. data/lib/middleman/vendor/padrino-helpers-0.10.0/lib/padrino-helpers/number_helpers.rb +0 -273
  125. data/lib/middleman/vendor/padrino-helpers-0.10.0/lib/padrino-helpers/output_helpers.rb +0 -128
  126. data/lib/middleman/vendor/padrino-helpers-0.10.0/lib/padrino-helpers/output_helpers/abstract_handler.rb +0 -103
  127. data/lib/middleman/vendor/padrino-helpers-0.10.0/lib/padrino-helpers/output_helpers/erb_handler.rb +0 -79
  128. data/lib/middleman/vendor/padrino-helpers-0.10.0/lib/padrino-helpers/output_helpers/haml_handler.rb +0 -64
  129. data/lib/middleman/vendor/padrino-helpers-0.10.0/lib/padrino-helpers/output_helpers/slim_handler.rb +0 -82
  130. data/lib/middleman/vendor/padrino-helpers-0.10.0/lib/padrino-helpers/render_helpers.rb +0 -40
  131. data/lib/middleman/vendor/padrino-helpers-0.10.0/lib/padrino-helpers/tag_helpers.rb +0 -59
  132. data/lib/middleman/vendor/padrino-helpers-0.10.0/lib/padrino-helpers/translation_helpers.rb +0 -21
  133. data/lib/middleman/vendor/padrino-helpers-0.10.0/padrino-helpers.gemspec +0 -27
  134. data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/markup_app/app.rb +0 -73
  135. data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/markup_app/views/capture_concat.erb +0 -14
  136. data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/markup_app/views/capture_concat.haml +0 -12
  137. data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/markup_app/views/capture_concat.slim +0 -13
  138. data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/markup_app/views/content_for.erb +0 -11
  139. data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/markup_app/views/content_for.haml +0 -9
  140. data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/markup_app/views/content_for.slim +0 -9
  141. data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/markup_app/views/content_tag.erb +0 -11
  142. data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/markup_app/views/content_tag.haml +0 -9
  143. data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/markup_app/views/content_tag.slim +0 -9
  144. data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/markup_app/views/current_engine.erb +0 -5
  145. data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/markup_app/views/current_engine.haml +0 -5
  146. data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/markup_app/views/current_engine.slim +0 -5
  147. data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/markup_app/views/fields_for.erb +0 -20
  148. data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/markup_app/views/fields_for.haml +0 -15
  149. data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/markup_app/views/fields_for.slim +0 -15
  150. data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/markup_app/views/form_for.erb +0 -56
  151. data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/markup_app/views/form_for.haml +0 -47
  152. data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/markup_app/views/form_for.slim +0 -47
  153. data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/markup_app/views/form_tag.erb +0 -56
  154. data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/markup_app/views/form_tag.haml +0 -45
  155. data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/markup_app/views/form_tag.slim +0 -45
  156. data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/markup_app/views/link_to.erb +0 -5
  157. data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/markup_app/views/link_to.haml +0 -4
  158. data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/markup_app/views/link_to.slim +0 -4
  159. data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/markup_app/views/mail_to.erb +0 -3
  160. data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/markup_app/views/mail_to.haml +0 -3
  161. data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/markup_app/views/mail_to.slim +0 -3
  162. data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/markup_app/views/meta_tag.erb +0 -3
  163. data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/markup_app/views/meta_tag.haml +0 -3
  164. data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/markup_app/views/meta_tag.slim +0 -3
  165. data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/markup_app/views/partials/_erb.erb +0 -1
  166. data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/markup_app/views/partials/_haml.haml +0 -1
  167. data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/markup_app/views/partials/_slim.slim +0 -1
  168. data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/markup_app/views/simple_partial.erb +0 -1
  169. data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/markup_app/views/simple_partial.haml +0 -1
  170. data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/markup_app/views/simple_partial.slim +0 -1
  171. data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/render_app/app.rb +0 -45
  172. data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/render_app/views/current_engine.haml +0 -5
  173. data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/render_app/views/current_engines/_erb.erb +0 -1
  174. data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/render_app/views/current_engines/_haml.haml +0 -1
  175. data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/render_app/views/current_engines/_slim.slim +0 -1
  176. data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/render_app/views/erb/test.erb +0 -1
  177. data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/render_app/views/explicit_engine.haml +0 -5
  178. data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/render_app/views/haml/test.haml +0 -1
  179. data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/render_app/views/template/_user.haml +0 -7
  180. data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/render_app/views/template/haml_template.haml +0 -1
  181. data/lib/middleman/vendor/padrino-helpers-0.10.0/test/fixtures/render_app/views/template/some_template.haml +0 -2
  182. data/lib/middleman/vendor/padrino-helpers-0.10.0/test/helper.rb +0 -78
  183. data/lib/middleman/vendor/padrino-helpers-0.10.0/test/test_asset_tag_helpers.rb +0 -320
  184. data/lib/middleman/vendor/padrino-helpers-0.10.0/test/test_form_builder.rb +0 -998
  185. data/lib/middleman/vendor/padrino-helpers-0.10.0/test/test_form_helpers.rb +0 -645
  186. data/lib/middleman/vendor/padrino-helpers-0.10.0/test/test_format_helpers.rb +0 -227
  187. data/lib/middleman/vendor/padrino-helpers-0.10.0/test/test_number_helpers.rb +0 -136
  188. data/lib/middleman/vendor/padrino-helpers-0.10.0/test/test_output_helpers.rb +0 -133
  189. data/lib/middleman/vendor/padrino-helpers-0.10.0/test/test_render_helpers.rb +0 -69
  190. 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