middleman 2.0.7 → 2.0.8

Sign up to get free protection for your applications and to get access to all the features.
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