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,645 +0,0 @@
1
- require File.expand_path(File.dirname(__FILE__) + '/helper')
2
- require File.expand_path(File.dirname(__FILE__) + '/fixtures/markup_app/app')
3
-
4
- class TestFormHelpers < Test::Unit::TestCase
5
- include Padrino::Helpers::FormHelpers
6
-
7
- def app
8
- MarkupDemo.tap { |app| app.set :environment, :test }
9
- end
10
-
11
- context 'for #form_tag method' do
12
- should "display correct forms in ruby" do
13
- actual_html = form_tag('/register', :"accept-charset" => "UTF-8", :class => 'test', :method => "post") { "Demo" }
14
- assert_has_tag(:form, :"accept-charset" => "UTF-8", :class => "test") { actual_html }
15
- assert_has_tag('form input', :type => 'hidden', :name => '_method', :count => 0) { actual_html }
16
- end
17
-
18
- should "display correct text inputs within form_tag" do
19
- actual_html = form_tag('/register', :"accept-charset" => "UTF-8", :class => 'test') { text_field_tag(:username) }
20
- assert_has_tag('form input', :type => 'text', :name => "username") { actual_html }
21
- end
22
-
23
- should "display correct form with remote" do
24
- actual_html = form_tag('/update', :"accept-charset" => "UTF-8", :class => 'put-form', :remote => true) { "Demo" }
25
- assert_has_tag(:form, :class => "put-form", :"accept-charset" => "UTF-8", :"data-remote" => 'true') { actual_html }
26
- assert_has_no_tag(:form, "data-method" => 'post') { actual_html }
27
- end
28
-
29
- should "display correct form with remote and method is put" do
30
- actual_html = form_tag('/update', :"accept-charset" => "UTF-8", :method => 'put', :remote => true) { "Demo" }
31
- assert_has_tag(:form, "data-remote" => 'true', :"accept-charset" => "UTF-8", :"data-method" => 'put') { actual_html }
32
- assert_has_tag('form input', :type => 'hidden', :name => "_method", :value => 'put') { actual_html }
33
- end
34
-
35
- should "display correct form with method :put" do
36
- actual_html = form_tag('/update', :"accept-charset" => "UTF-8", :class => 'put-form', :method => "put") { "Demo" }
37
- assert_has_tag(:form, :class => "put-form", :"accept-charset" => "UTF-8", :method => 'post') { actual_html }
38
- assert_has_tag('form input', :type => 'hidden', :name => "_method", :value => 'put') { actual_html }
39
- end
40
-
41
- should "display correct form with method :delete and charset" do
42
- actual_html = form_tag('/remove', :"accept-charset" => "UTF-8", :class => 'delete-form', :method => "delete") { "Demo" }
43
- assert_has_tag(:form, :class => "delete-form", :"accept-charset" => "UTF-8", :method => 'post') { actual_html }
44
- assert_has_tag('form input', :type => 'hidden', :name => "_method", :value => 'delete') { actual_html }
45
- end
46
-
47
- should "display correct form with charset" do
48
- actual_html = form_tag('/charset', :"accept-charset" => "UTF-8", :class => 'charset-form') { "Demo" }
49
- assert_has_tag(:form, :class => "charset-form", :"accept-charset" => "UTF-8", :method => 'post') { actual_html }
50
- end
51
-
52
- should "display correct form with multipart encoding" do
53
- actual_html = form_tag('/remove', :"accept-charset" => "UTF-8", :multipart => true) { "Demo" }
54
- assert_has_tag(:form, :enctype => "multipart/form-data") { actual_html }
55
- end
56
-
57
- should "display correct forms in erb" do
58
- visit '/erb/form_tag'
59
- assert_have_selector 'form.simple-form', :action => '/simple'
60
- assert_have_selector 'form.advanced-form', :action => '/advanced', :id => 'advanced', :method => 'get'
61
- end
62
-
63
- should "display correct forms in haml" do
64
- visit '/haml/form_tag'
65
- assert_have_selector 'form.simple-form', :action => '/simple'
66
- assert_have_selector 'form.advanced-form', :action => '/advanced', :id => 'advanced', :method => 'get'
67
- end
68
-
69
- should "display correct forms in slim" do
70
- visit '/slim/form_tag'
71
- assert_have_selector 'form.simple-form', :action => '/simple'
72
- assert_have_selector 'form.advanced-form', :action => '/advanced', :id => 'advanced', :method => 'get'
73
- end
74
- end
75
-
76
- context 'for #field_set_tag method' do
77
- should "display correct field_sets in ruby" do
78
- actual_html = field_set_tag("Basic", :class => 'basic') { "Demo" }
79
- assert_has_tag(:fieldset, :class => 'basic') { actual_html }
80
- assert_has_tag('fieldset legend', :content => "Basic") { actual_html }
81
- end
82
-
83
- should "display correct field_sets in erb" do
84
- visit '/erb/form_tag'
85
- assert_have_selector 'form.simple-form fieldset', :count => 1
86
- assert_have_no_selector 'form.simple-form fieldset legend'
87
- assert_have_selector 'form.advanced-form fieldset', :count => 1, :class => 'advanced-field-set'
88
- assert_have_selector 'form.advanced-form fieldset legend', :content => "Advanced"
89
- end
90
-
91
- should "display correct field_sets in haml" do
92
- visit '/haml/form_tag'
93
- assert_have_selector 'form.simple-form fieldset', :count => 1
94
- assert_have_no_selector 'form.simple-form fieldset legend'
95
- assert_have_selector 'form.advanced-form fieldset', :count => 1, :class => 'advanced-field-set'
96
- assert_have_selector 'form.advanced-form fieldset legend', :content => "Advanced"
97
- end
98
-
99
- should "display correct field_sets in slim" do
100
- visit '/slim/form_tag'
101
- assert_have_selector 'form.simple-form fieldset', :count => 1
102
- assert_have_no_selector 'form.simple-form fieldset legend'
103
- assert_have_selector 'form.advanced-form fieldset', :count => 1, :class => 'advanced-field-set'
104
- assert_have_selector 'form.advanced-form fieldset legend', :content => "Advanced"
105
- end
106
- end
107
-
108
- context 'for #error_messages_for method' do
109
- should "display correct error messages list in ruby" do
110
- user = mock_model("User", :errors => { :a => "1", :b => "2" }, :blank? => false)
111
- actual_html = error_messages_for(user)
112
- assert_has_tag('div.field-errors') { actual_html }
113
- assert_has_tag('div.field-errors h2', :content => "2 errors prohibited this User from being saved") { actual_html }
114
- assert_has_tag('div.field-errors p', :content => "There were problems with the following fields:") { actual_html }
115
- assert_has_tag('div.field-errors ul') { actual_html }
116
- assert_has_tag('div.field-errors ul li', :count => 2) { actual_html }
117
- end
118
-
119
- should "display correct error messages list in erb" do
120
- visit '/erb/form_tag'
121
- assert_have_no_selector 'form.simple-form .field-errors'
122
- assert_have_selector 'form.advanced-form .field-errors'
123
- assert_have_selector 'form.advanced-form .field-errors h2', :content => "There are problems with saving user!"
124
- assert_have_selector 'form.advanced-form .field-errors p', :content => "There were problems with the following fields:"
125
- assert_have_selector 'form.advanced-form .field-errors ul'
126
- assert_have_selector 'form.advanced-form .field-errors ul li', :count => 4
127
- assert_have_selector 'form.advanced-form .field-errors ul li', :content => "Email must be a email"
128
- assert_have_selector 'form.advanced-form .field-errors ul li', :content => "Fake must be valid"
129
- assert_have_selector 'form.advanced-form .field-errors ul li', :content => "Second must be present"
130
- assert_have_selector 'form.advanced-form .field-errors ul li', :content => "Third must be a number"
131
- end
132
-
133
- should "display correct error messages list in haml" do
134
- visit '/haml/form_tag'
135
- assert_have_no_selector 'form.simple-form .field-errors'
136
- assert_have_selector 'form.advanced-form .field-errors'
137
- assert_have_selector 'form.advanced-form .field-errors h2', :content => "There are problems with saving user!"
138
- assert_have_selector 'form.advanced-form .field-errors p', :content => "There were problems with the following fields:"
139
- assert_have_selector 'form.advanced-form .field-errors ul'
140
- assert_have_selector 'form.advanced-form .field-errors ul li', :count => 4
141
- assert_have_selector 'form.advanced-form .field-errors ul li', :content => "Email must be a email"
142
- assert_have_selector 'form.advanced-form .field-errors ul li', :content => "Fake must be valid"
143
- assert_have_selector 'form.advanced-form .field-errors ul li', :content => "Second must be present"
144
- assert_have_selector 'form.advanced-form .field-errors ul li', :content => "Third must be a number"
145
- end
146
-
147
- should "display correct error messages list in slim" do
148
- visit '/slim/form_tag'
149
- assert_have_no_selector 'form.simple-form .field-errors'
150
- assert_have_selector 'form.advanced-form .field-errors'
151
- assert_have_selector 'form.advanced-form .field-errors h2', :content => "There are problems with saving user!"
152
- assert_have_selector 'form.advanced-form .field-errors p', :content => "There were problems with the following fields:"
153
- assert_have_selector 'form.advanced-form .field-errors ul'
154
- assert_have_selector 'form.advanced-form .field-errors ul li', :count => 4
155
- assert_have_selector 'form.advanced-form .field-errors ul li', :content => "Email must be a email"
156
- assert_have_selector 'form.advanced-form .field-errors ul li', :content => "Fake must be valid"
157
- assert_have_selector 'form.advanced-form .field-errors ul li', :content => "Second must be present"
158
- assert_have_selector 'form.advanced-form .field-errors ul li', :content => "Third must be a number"
159
- end
160
- end
161
-
162
- context 'for #error_message_on method' do
163
- should "display correct error message on specified model name in ruby" do
164
- @user = mock_model("User", :errors => { :a => "1", :b => "2" }, :blank? => false)
165
- actual_html = error_message_on(:user, :a, :prepend => "foo", :append => "bar")
166
- assert_has_tag('span.error', :content => "foo 1 bar") { actual_html }
167
- end
168
-
169
- should "display correct error message on specified object in ruby" do
170
- @bob = mock_model("User", :errors => { :a => "1", :b => "2" }, :blank? => false)
171
- actual_html = error_message_on(@bob, :a, :prepend => "foo", :append => "bar")
172
- assert_has_tag('span.error', :content => "foo 1 bar") { actual_html }
173
- end
174
-
175
- should "display no message when error isn't present" do
176
- @user = mock_model("User", :errors => { :a => "1", :b => "2" }, :blank? => false)
177
- actual_html = error_message_on(:user, :fake, :prepend => "foo", :append => "bar")
178
- assert actual_html.blank?
179
- end
180
- end
181
-
182
- context 'for #label_tag method' do
183
- should "display label tag in ruby" do
184
- actual_html = label_tag(:username, :class => 'long-label', :caption => "Nickname")
185
- assert_has_tag(:label, :for => 'username', :class => 'long-label', :content => "Nickname") { actual_html }
186
- end
187
-
188
- should "display label tag in ruby with required" do
189
- actual_html = label_tag(:username, :caption => "Nickname", :required => true)
190
- assert_has_tag(:label, :for => 'username', :content => 'Nickname') { actual_html }
191
- assert_has_tag('label[for=username] span.required', :content => "*") { actual_html }
192
- end
193
-
194
- should "display label tag in erb for simple form" do
195
- visit '/erb/form_tag'
196
- assert_have_selector 'form.simple-form label', :count => 4
197
- assert_have_selector 'form.simple-form label', :content => "Username", :for => 'username'
198
- assert_have_selector 'form.simple-form label', :content => "Password", :for => 'password'
199
- assert_have_selector 'form.simple-form label', :content => "Gender", :for => 'gender'
200
- end
201
- should "display label tag in erb for advanced form" do
202
- visit '/erb/form_tag'
203
- assert_have_selector 'form.advanced-form label', :count => 6
204
- assert_have_selector 'form.advanced-form label.first', :content => "Nickname", :for => 'username'
205
- assert_have_selector 'form.advanced-form label.first', :content => "Password", :for => 'password'
206
- assert_have_selector 'form.advanced-form label.about', :content => "About Me", :for => 'about'
207
- assert_have_selector 'form.advanced-form label.photo', :content => "Photo" , :for => 'photo'
208
- assert_have_selector 'form.advanced-form label.gender', :content => "Gender" , :for => 'gender'
209
- end
210
-
211
- should "display label tag in haml for simple form" do
212
- visit '/haml/form_tag'
213
- assert_have_selector 'form.simple-form label', :count => 4
214
- assert_have_selector 'form.simple-form label', :content => "Username", :for => 'username'
215
- assert_have_selector 'form.simple-form label', :content => "Password", :for => 'password'
216
- assert_have_selector 'form.simple-form label', :content => "Gender", :for => 'gender'
217
- end
218
-
219
- should "display label tag in haml for advanced form" do
220
- visit '/haml/form_tag'
221
- assert_have_selector 'form.advanced-form label', :count => 6
222
- assert_have_selector 'form.advanced-form label.first', :content => "Nickname", :for => 'username'
223
- assert_have_selector 'form.advanced-form label.first', :content => "Password", :for => 'password'
224
- assert_have_selector 'form.advanced-form label.about', :content => "About Me", :for => 'about'
225
- assert_have_selector 'form.advanced-form label.photo', :content => "Photo" , :for => 'photo'
226
- assert_have_selector 'form.advanced-form label.gender', :content => "Gender" , :for => 'gender'
227
- end
228
-
229
- should "display label tag in slim for simple form" do
230
- visit '/slim/form_tag'
231
- assert_have_selector 'form.simple-form label', :count => 4
232
- assert_have_selector 'form.simple-form label', :content => "Username", :for => 'username'
233
- assert_have_selector 'form.simple-form label', :content => "Password", :for => 'password'
234
- assert_have_selector 'form.simple-form label', :content => "Gender", :for => 'gender'
235
- end
236
-
237
- should "display label tag in slim for advanced form" do
238
- visit '/slim/form_tag'
239
- assert_have_selector 'form.advanced-form label', :count => 6
240
- assert_have_selector 'form.advanced-form label.first', :content => "Nickname", :for => 'username'
241
- assert_have_selector 'form.advanced-form label.first', :content => "Password", :for => 'password'
242
- assert_have_selector 'form.advanced-form label.about', :content => "About Me", :for => 'about'
243
- assert_have_selector 'form.advanced-form label.photo', :content => "Photo" , :for => 'photo'
244
- assert_have_selector 'form.advanced-form label.gender', :content => "Gender" , :for => 'gender'
245
- end
246
- end
247
-
248
- context 'for #hidden_field_tag method' do
249
- should "display hidden field in ruby" do
250
- actual_html = hidden_field_tag(:session_key, :id => 'session_id', :value => '56768')
251
- assert_has_tag(:input, :type => 'hidden', :id => "session_id", :name => 'session_key', :value => '56768') { actual_html }
252
- end
253
-
254
- should "display hidden field in erb" do
255
- visit '/erb/form_tag'
256
- assert_have_selector 'form.simple-form input[type=hidden]', :count => 1, :name => 'session_id', :value => "__secret__"
257
- assert_have_selector 'form.advanced-form input[type=hidden]', :count => 1, :name => 'session_id', :value => "__secret__"
258
- end
259
-
260
- should "display hidden field in haml" do
261
- visit '/haml/form_tag'
262
- assert_have_selector 'form.simple-form input[type=hidden]', :count => 1, :name => 'session_id', :value => "__secret__"
263
- assert_have_selector 'form.advanced-form input[type=hidden]', :count => 1, :name => 'session_id', :value => "__secret__"
264
- end
265
-
266
- should "display hidden field in slim" do
267
- visit '/slim/form_tag'
268
- assert_have_selector 'form.simple-form input[type=hidden]', :count => 1, :name => 'session_id', :value => "__secret__"
269
- assert_have_selector 'form.advanced-form input[type=hidden]', :count => 1, :name => 'session_id', :value => "__secret__"
270
- end
271
- end
272
-
273
- context 'for #text_field_tag method' do
274
- should "display text field in ruby" do
275
- actual_html = text_field_tag(:username, :class => 'long')
276
- assert_has_tag(:input, :type => 'text', :class => "long", :name => 'username') { actual_html }
277
- end
278
-
279
- should "display text field in erb" do
280
- visit '/erb/form_tag'
281
- assert_have_selector 'form.simple-form input[type=text]', :count => 1, :name => 'username'
282
- assert_have_selector 'form.advanced-form fieldset input[type=text]', :count => 1, :name => 'username', :id => 'the_username'
283
- end
284
-
285
- should "display text field in haml" do
286
- visit '/haml/form_tag'
287
- assert_have_selector 'form.simple-form input[type=text]', :count => 1, :name => 'username'
288
- assert_have_selector 'form.advanced-form fieldset input[type=text]', :count => 1, :name => 'username', :id => 'the_username'
289
- end
290
-
291
- should "display text field in slim" do
292
- visit '/slim/form_tag'
293
- assert_have_selector 'form.simple-form input[type=text]', :count => 1, :name => 'username'
294
- assert_have_selector 'form.advanced-form fieldset input[type=text]', :count => 1, :name => 'username', :id => 'the_username'
295
- end
296
- end
297
-
298
- context 'for #text_area_tag method' do
299
- should "display text area in ruby" do
300
- actual_html = text_area_tag(:about, :class => 'long')
301
- assert_has_tag(:textarea, :class => "long", :name => 'about', :rows => '', :cols => '') { actual_html }
302
- end
303
-
304
- should "display text area in ruby with specified content" do
305
- actual_html = text_area_tag(:about, :value => "a test", :rows => 5, :cols => 6)
306
- assert_has_tag(:textarea, :content => "a test", :name => 'about', :rows => "5", :cols => "6") { actual_html }
307
- end
308
-
309
- should "display text area in erb" do
310
- visit '/erb/form_tag'
311
- assert_have_selector 'form.advanced-form textarea', :count => 1, :name => 'about', :class => 'large'
312
- end
313
-
314
- should "display text area in haml" do
315
- visit '/haml/form_tag'
316
- assert_have_selector 'form.advanced-form textarea', :count => 1, :name => 'about', :class => 'large'
317
- end
318
-
319
- should "display text area in slim" do
320
- visit '/slim/form_tag'
321
- assert_have_selector 'form.advanced-form textarea', :count => 1, :name => 'about', :class => 'large'
322
- end
323
- end
324
-
325
- context 'for #password_field_tag method' do
326
- should "display password field in ruby" do
327
- actual_html = password_field_tag(:password, :class => 'long')
328
- assert_has_tag(:input, :type => 'password', :class => "long", :name => 'password') { actual_html }
329
- end
330
-
331
- should "display password field in erb" do
332
- visit '/erb/form_tag'
333
- assert_have_selector 'form.simple-form input[type=password]', :count => 1, :name => 'password'
334
- assert_have_selector 'form.advanced-form input[type=password]', :count => 1, :name => 'password'
335
- end
336
-
337
- should "display password field in haml" do
338
- visit '/haml/form_tag'
339
- assert_have_selector 'form.simple-form input[type=password]', :count => 1, :name => 'password'
340
- assert_have_selector 'form.advanced-form input[type=password]', :count => 1, :name => 'password'
341
- end
342
-
343
- should "display password field in slim" do
344
- visit '/slim/form_tag'
345
- assert_have_selector 'form.simple-form input[type=password]', :count => 1, :name => 'password'
346
- assert_have_selector 'form.advanced-form input[type=password]', :count => 1, :name => 'password'
347
- end
348
- end
349
-
350
- context 'for #file_field_tag method' do
351
- should "display file field in ruby" do
352
- actual_html = file_field_tag(:photo, :class => 'photo')
353
- assert_has_tag(:input, :type => 'file', :class => "photo", :name => 'photo') { actual_html }
354
- end
355
-
356
- should "display file field in erb" do
357
- visit '/erb/form_tag'
358
- assert_have_selector 'form.advanced-form input[type=file]', :count => 1, :name => 'photo', :class => 'upload'
359
- end
360
-
361
- should "display file field in haml" do
362
- visit '/haml/form_tag'
363
- assert_have_selector 'form.advanced-form input[type=file]', :count => 1, :name => 'photo', :class => 'upload'
364
- end
365
-
366
- should "display file field in slim" do
367
- visit '/slim/form_tag'
368
- assert_have_selector 'form.advanced-form input[type=file]', :count => 1, :name => 'photo', :class => 'upload'
369
- end
370
- end
371
-
372
- context "for #check_box_tag method" do
373
- should "display check_box tag in ruby" do
374
- actual_html = check_box_tag("clear_session")
375
- assert_has_tag(:input, :type => 'checkbox', :value => '1', :name => 'clear_session') { actual_html }
376
- assert_has_no_tag(:input, :type => 'hidden') { actual_html }
377
- end
378
-
379
- should "display check_box tag in ruby with extended attributes" do
380
- actual_html = check_box_tag("clear_session", :disabled => true, :checked => true)
381
- assert_has_tag(:input, :type => 'checkbox', :disabled => 'disabled', :checked => 'checked') { actual_html }
382
- end
383
-
384
- should "display check_box tag in erb" do
385
- visit '/erb/form_tag'
386
- assert_have_selector 'form.simple-form input[type=checkbox]', :count => 1
387
- assert_have_selector 'form.advanced-form input[type=checkbox]', :value => "1", :checked => 'checked'
388
- end
389
-
390
- should "display check_box tag in haml" do
391
- visit '/haml/form_tag'
392
- assert_have_selector 'form.simple-form input[type=checkbox]', :count => 1
393
- assert_have_selector 'form.advanced-form input[type=checkbox]', :value => "1", :checked => 'checked'
394
- end
395
-
396
- should "display check_box tag in slim" do
397
- visit '/slim/form_tag'
398
- assert_have_selector 'form.simple-form input[type=checkbox]', :count => 1
399
- assert_have_selector 'form.advanced-form input[type=checkbox]', :value => "1", :checked => 'checked'
400
- end
401
- end
402
-
403
- context "for #radio_button_tag method" do
404
- should "display radio_button tag in ruby" do
405
- actual_html = radio_button_tag("gender", :value => 'male')
406
- assert_has_tag(:input, :type => 'radio', :value => 'male', :name => 'gender') { actual_html }
407
- end
408
-
409
- should "display radio_button tag in ruby with extended attributes" do
410
- actual_html = radio_button_tag("gender", :disabled => true, :checked => true)
411
- assert_has_tag(:input, :type => 'radio', :disabled => 'disabled', :checked => 'checked') { actual_html }
412
- end
413
-
414
- should "display radio_button tag in erb" do
415
- visit '/erb/form_tag'
416
- assert_have_selector 'form.simple-form input[type=radio]', :count => 1, :value => 'male'
417
- assert_have_selector 'form.simple-form input[type=radio]', :count => 1, :value => 'female'
418
- assert_have_selector 'form.advanced-form input[type=radio]', :value => "male", :checked => 'checked'
419
- assert_have_selector 'form.advanced-form input[type=radio]', :value => "female"
420
- end
421
-
422
- should "display radio_button tag in haml" do
423
- visit '/haml/form_tag'
424
- assert_have_selector 'form.simple-form input[type=radio]', :count => 1, :value => 'male'
425
- assert_have_selector 'form.simple-form input[type=radio]', :count => 1, :value => 'female'
426
- assert_have_selector 'form.advanced-form input[type=radio]', :value => "male", :checked => 'checked'
427
- assert_have_selector 'form.advanced-form input[type=radio]', :value => "female"
428
- end
429
-
430
- should "display radio_button tag in slim" do
431
- visit '/slim/form_tag'
432
- assert_have_selector 'form.simple-form input[type=radio]', :count => 1, :value => 'male'
433
- assert_have_selector 'form.simple-form input[type=radio]', :count => 1, :value => 'female'
434
- assert_have_selector 'form.advanced-form input[type=radio]', :value => "male", :checked => 'checked'
435
- assert_have_selector 'form.advanced-form input[type=radio]', :value => "female"
436
- end
437
- end
438
-
439
- context "for #select_tag method" do
440
- should "display select tag in ruby" do
441
- actual_html = select_tag(:favorite_color, :options => ['green', 'blue', 'black'], :include_blank => true)
442
- assert_has_tag(:select, :name => 'favorite_color') { actual_html }
443
- assert_has_tag('select option:first-child', :content => '') { actual_html }
444
- assert_has_tag('select option', :content => 'green', :value => 'green') { actual_html }
445
- assert_has_tag('select option', :content => 'blue', :value => 'blue') { actual_html }
446
- assert_has_tag('select option', :content => 'black', :value => 'black') { actual_html }
447
- end
448
-
449
- should "display select tag in ruby with extended attributes" do
450
- actual_html = select_tag(:favorite_color, :disabled => true, :options => ['only', 'option'])
451
- assert_has_tag(:select, :disabled => 'disabled') { actual_html }
452
- end
453
-
454
- should "take a range as a collection for options" do
455
- actual_html = select_tag(:favorite_color, :options => (1..3))
456
- assert_has_tag(:select) { actual_html }
457
- assert_has_tag('select option', :value => '1') { actual_html }
458
- assert_has_tag('select option', :value => '2') { actual_html }
459
- assert_has_tag('select option', :value => '3') { actual_html }
460
- end
461
-
462
- should "include blank for grouped options" do
463
- opts = { "Red" => ["Rose","Fire"], "Blue" => ["Sky","Sea"] }
464
- actual_html = select_tag( 'color', :grouped_options => opts, :include_blank => true )
465
- assert_has_tag('select option:first-child', :value => "", :content => "") { actual_html }
466
- end
467
-
468
- should "return a select tag with grouped options for an nested array" do
469
- opts = [
470
- ["Friends",["Yoda",["Obiwan",2]]],
471
- ["Enemies", ["Palpatine",['Darth Vader',3]]]
472
- ]
473
- actual_html = select_tag( 'name', :grouped_options => opts )
474
- assert_has_tag(:select, :name => "name") { actual_html }
475
- assert_has_tag(:optgroup, :label => "Friends") { actual_html }
476
- assert_has_tag(:option, :value => "Yoda", :content => "Yoda") { actual_html }
477
- assert_has_tag(:option, :value => "2", :content => "Obiwan") { actual_html }
478
- assert_has_tag(:optgroup, :label => "Enemies") { actual_html }
479
- assert_has_tag(:option, :value => "Palpatine", :content => "Palpatine") { actual_html }
480
- assert_has_tag(:option, :value => "3", :content => "Darth Vader") { actual_html }
481
- end
482
-
483
- should "return a select tag with grouped options for a hash" do
484
- opts = {
485
- "Friends" => ["Yoda",["Obiwan",2]],
486
- "Enemies" => ["Palpatine",['Darth Vader',3]]
487
- }
488
- actual_html = select_tag( 'name', :grouped_options => opts )
489
- assert_has_tag(:select, :name => "name") { actual_html }
490
- assert_has_tag(:optgroup, :label => "Friends") { actual_html }
491
- assert_has_tag(:option, :value => "Yoda", :content => "Yoda") { actual_html }
492
- assert_has_tag(:option, :value => "2", :content => "Obiwan") { actual_html }
493
- assert_has_tag(:optgroup, :label => "Enemies") { actual_html }
494
- assert_has_tag(:option, :value => "Palpatine", :content => "Palpatine") { actual_html }
495
- assert_has_tag(:option, :value => "3", :content => "Darth Vader") { actual_html }
496
- end
497
-
498
- should "display select tag in ruby with multiple attribute" do
499
- actual_html = select_tag(:favorite_color, :multiple => true, :options => ['only', 'option'])
500
- assert_has_tag(:select, :multiple => 'multiple', :name => 'favorite_color[]') { actual_html }
501
- end
502
-
503
- should "display options with values and single selected" do
504
- options = [['Green', 'green1'], ['Blue', 'blue1'], ['Black', "black1"]]
505
- actual_html = select_tag(:favorite_color, :options => options, :selected => 'green1')
506
- assert_has_tag(:select, :name => 'favorite_color') { actual_html }
507
- assert_has_tag('select option', :selected => 'selected', :count => 1) { actual_html }
508
- assert_has_tag('select option', :content => 'Green', :value => 'green1', :selected => 'selected') { actual_html }
509
- assert_has_tag('select option', :content => 'Blue', :value => 'blue1') { actual_html }
510
- assert_has_tag('select option', :content => 'Black', :value => 'black1') { actual_html }
511
- end
512
-
513
- should "display option with values and multiple selected" do
514
- options = [['Green', 'green1'], ['Blue', 'blue1'], ['Black', "black1"]]
515
- actual_html = select_tag(:favorite_color, :options => options, :selected => ['green1', 'Black'])
516
- assert_has_tag(:select, :name => 'favorite_color') { actual_html }
517
- assert_has_tag('select option', :selected => 'selected', :count => 2) { actual_html }
518
- assert_has_tag('select option', :content => 'Green', :value => 'green1', :selected => 'selected') { actual_html }
519
- assert_has_tag('select option', :content => 'Blue', :value => 'blue1') { actual_html }
520
- assert_has_tag('select option', :content => 'Black', :value => 'black1', :selected => 'selected') { actual_html }
521
- end
522
-
523
- should "display options selected only for exact match" do
524
- options = [['One', '1'], ['1', '10'], ['Two', "-1"]]
525
- actual_html = select_tag(:range, :options => options, :selected => '-1')
526
- assert_has_tag(:select, :name => 'range') { actual_html }
527
- assert_has_tag('select option', :selected => 'selected', :count => 1) { actual_html }
528
- assert_has_tag('select option', :content => 'Two', :value => '-1', :selected => 'selected') { actual_html }
529
- end
530
-
531
- should "display select tag in erb" do
532
- visit '/erb/form_tag'
533
- assert_have_selector 'form.simple-form select', :count => 1, :name => 'color'
534
- assert_have_selector('select option', :content => 'green', :value => 'green')
535
- assert_have_selector('select option', :content => 'orange', :value => 'orange')
536
- assert_have_selector('select option', :content => 'purple', :value => 'purple')
537
- assert_have_selector 'form.advanced-form select', :name => 'fav_color'
538
- assert_have_selector('select option', :content => 'green', :value => '1')
539
- assert_have_selector('select option', :content => 'orange', :value => '2', :selected => 'selected')
540
- assert_have_selector('select option', :content => 'purple', :value => '3')
541
- end
542
-
543
- should "display select tag in haml" do
544
- visit '/haml/form_tag'
545
- assert_have_selector 'form.simple-form select', :count => 1, :name => 'color'
546
- assert_have_selector('select option', :content => 'green', :value => 'green')
547
- assert_have_selector('select option', :content => 'orange', :value => 'orange')
548
- assert_have_selector('select option', :content => 'purple', :value => 'purple')
549
- assert_have_selector 'form.advanced-form select', :name => 'fav_color'
550
- assert_have_selector('select option', :content => 'green', :value => '1')
551
- assert_have_selector('select option', :content => 'orange', :value => '2', :selected => 'selected')
552
- assert_have_selector('select option', :content => 'purple', :value => '3')
553
- end
554
-
555
- should "display select tag in slim" do
556
- visit '/slim/form_tag'
557
- assert_have_selector 'form.simple-form select', :count => 1, :name => 'color'
558
- assert_have_selector('select option', :content => 'green', :value => 'green')
559
- assert_have_selector('select option', :content => 'orange', :value => 'orange')
560
- assert_have_selector('select option', :content => 'purple', :value => 'purple')
561
- assert_have_selector 'form.advanced-form select', :name => 'fav_color'
562
- assert_have_selector('select option', :content => 'green', :value => '1')
563
- assert_have_selector('select option', :content => 'orange', :value => '2', :selected => 'selected')
564
- assert_have_selector('select option', :content => 'purple', :value => '3')
565
- end
566
- end
567
-
568
- context 'for #submit_tag method' do
569
- should "display submit tag in ruby" do
570
- actual_html = submit_tag("Update", :class => 'success')
571
- assert_has_tag(:input, :type => 'submit', :class => "success", :value => 'Update') { actual_html }
572
- end
573
-
574
- should "display submit tag in erb" do
575
- visit '/erb/form_tag'
576
- assert_have_selector 'form.simple-form input[type=submit]', :count => 1, :value => "Submit"
577
- assert_have_selector 'form.advanced-form input[type=submit]', :count => 1, :value => "Login"
578
- end
579
-
580
- should "display submit tag in haml" do
581
- visit '/haml/form_tag'
582
- assert_have_selector 'form.simple-form input[type=submit]', :count => 1, :value => "Submit"
583
- assert_have_selector 'form.advanced-form input[type=submit]', :count => 1, :value => "Login"
584
- end
585
-
586
- should "display submit tag in slim" do
587
- visit '/slim/form_tag'
588
- assert_have_selector 'form.simple-form input[type=submit]', :count => 1, :value => "Submit"
589
- assert_have_selector 'form.advanced-form input[type=submit]', :count => 1, :value => "Login"
590
- end
591
- end
592
-
593
- context 'for #button_tag method' do
594
- should "display submit tag in ruby" do
595
- actual_html = button_tag("Cancel", :class => 'clear')
596
- assert_has_tag(:input, :type => 'button', :class => "clear", :value => 'Cancel') { actual_html }
597
- end
598
-
599
- should "display submit tag in erb" do
600
- visit '/erb/form_tag'
601
- assert_have_selector 'form.advanced-form input[type=button]', :count => 1, :value => "Cancel"
602
- end
603
-
604
- should "display submit tag in haml" do
605
- visit '/haml/form_tag'
606
- assert_have_selector 'form.advanced-form input[type=button]', :count => 1, :value => "Cancel"
607
- end
608
-
609
- should "display submit tag in slim" do
610
- visit '/slim/form_tag'
611
- assert_have_selector 'form.advanced-form input[type=button]', :count => 1, :value => "Cancel"
612
- end
613
- end
614
-
615
- context 'for #image_submit_tag method' do
616
- setup do
617
- @stamp = stop_time_for_test.to_i
618
- end
619
-
620
- should "display image submit tag in ruby with relative path" do
621
- actual_html = image_submit_tag('buttons/ok.png', :class => 'success')
622
- assert_has_tag(:input, :type => 'image', :class => "success", :src => "/images/buttons/ok.png?#{@stamp}") { actual_html }
623
- end
624
-
625
- should "display image submit tag in ruby with absolute path" do
626
- actual_html = image_submit_tag('/system/ok.png', :class => 'success')
627
- assert_has_tag(:input, :type => 'image', :class => "success", :src => "/system/ok.png?#{@stamp}") { actual_html }
628
- end
629
-
630
- should "display image submit tag in erb" do
631
- visit '/erb/form_tag'
632
- assert_have_selector 'form.advanced-form input[type=image]', :count => 1, :src => "/images/buttons/submit.png?#{@stamp}"
633
- end
634
-
635
- should "display image submit tag in haml" do
636
- visit '/haml/form_tag'
637
- assert_have_selector 'form.advanced-form input[type=image]', :count => 1, :src => "/images/buttons/submit.png?#{@stamp}"
638
- end
639
-
640
- should "display image submit tag in slim" do
641
- visit '/slim/form_tag'
642
- assert_have_selector 'form.advanced-form input[type=image]', :count => 1, :src => "/images/buttons/submit.png?#{@stamp}"
643
- end
644
- end
645
- end