middleman 2.0.7 → 2.0.8

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