middleman-core 3.0.0.alpha.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (571) hide show
  1. data/Rakefile +5 -0
  2. data/bin/middleman +52 -0
  3. data/features/3rd_party_cli.feature +5 -0
  4. data/features/asset_host.feature +7 -0
  5. data/features/auto_layout.feature +36 -0
  6. data/features/automatic_image_sizes.feature +16 -0
  7. data/features/builder.feature +50 -0
  8. data/features/chained_templates.feature +19 -0
  9. data/features/clean_build.feature +31 -0
  10. data/features/cli.feature +120 -0
  11. data/features/content_for.feature +6 -0
  12. data/features/current_page_request_path_backwards.feature +6 -0
  13. data/features/custom_layout_engines.feature +8 -0
  14. data/features/custom_layouts.feature +44 -0
  15. data/features/data.feature +22 -0
  16. data/features/directory_index.feature +36 -0
  17. data/features/dynamic_pages.feature +95 -0
  18. data/features/feature_params.feature +6 -0
  19. data/features/former_padrino_helpers.feature +10 -0
  20. data/features/front-matter.feature +35 -0
  21. data/features/helpers_auto_javascript_include_tag.feature +27 -0
  22. data/features/helpers_auto_stylesheet_link_tag.feature +27 -0
  23. data/features/helpers_external.feature +6 -0
  24. data/features/helpers_lorem.feature +6 -0
  25. data/features/helpers_page_classes.feature +17 -0
  26. data/features/instance_vars.feature +20 -0
  27. data/features/mount_rack.feature +8 -0
  28. data/features/nested_layouts.feature +24 -0
  29. data/features/partials.feature +41 -0
  30. data/features/preview_changes.feature +18 -0
  31. data/features/sitemap_traversal.features +73 -0
  32. data/features/static_server.feature +6 -0
  33. data/features/step_definitions/page_layout_steps.rb +15 -0
  34. data/features/support/env.rb +3 -0
  35. data/features/wildcard_page_helper.feature +19 -0
  36. data/fixtures/3rd-party-command/config.rb +10 -0
  37. data/fixtures/asset-host-app/config.rb +6 -0
  38. data/fixtures/asset-host-app/source/.htaccess +1 -0
  39. data/fixtures/asset-host-app/source/asset_host.html.erb +1 -0
  40. data/fixtures/asset-host-app/source/images/blank.gif +0 -0
  41. data/fixtures/auto-css-app/config.rb +11 -0
  42. data/fixtures/auto-css-app/source/auto-css.html.erb +1 -0
  43. data/fixtures/auto-css-app/source/auto-css/auto-css.html.erb +1 -0
  44. data/fixtures/auto-css-app/source/auto-css/index.html.erb +1 -0
  45. data/fixtures/auto-css-app/source/auto-css/sub/auto-css.html.erb +1 -0
  46. data/fixtures/auto-css-app/source/stylesheets/auto-css.css +3 -0
  47. data/fixtures/auto-css-app/source/stylesheets/auto-css/auto-css.css +3 -0
  48. data/fixtures/auto-css-app/source/stylesheets/auto-css/index.css +0 -0
  49. data/fixtures/auto-css-app/source/stylesheets/auto-css/sub/auto-css.css +3 -0
  50. data/fixtures/auto-js-app/config.rb +11 -0
  51. data/fixtures/auto-js-app/source/auto-js.html.erb +1 -0
  52. data/fixtures/auto-js-app/source/auto-js/auto-js.html.erb +1 -0
  53. data/fixtures/auto-js-app/source/auto-js/index.html.erb +1 -0
  54. data/fixtures/auto-js-app/source/auto-js/sub/auto-js.html.erb +1 -0
  55. data/fixtures/auto-js-app/source/javascripts/auto-js.js +1 -0
  56. data/fixtures/auto-js-app/source/javascripts/auto-js/auto-js.js +1 -0
  57. data/fixtures/auto-js-app/source/javascripts/auto-js/index.js +1 -0
  58. data/fixtures/auto-js-app/source/javascripts/auto-js/sub/auto-js.js +1 -0
  59. data/fixtures/automatic-image-size-app/config.rb +0 -0
  60. data/fixtures/automatic-image-size-app/source/auto-image-sizes.html.erb +1 -0
  61. data/fixtures/automatic-image-size-app/source/images/blank.gif +0 -0
  62. data/fixtures/basic-data-app/config.rb +4 -0
  63. data/fixtures/basic-data-app/data/test.yml +4 -0
  64. data/fixtures/basic-data-app/data/test2.json +4 -0
  65. data/fixtures/basic-data-app/source/data.html.erb +1 -0
  66. data/fixtures/basic-data-app/source/data3.html.erb +1 -0
  67. data/fixtures/build-with-errors-app/config.rb +1 -0
  68. data/fixtures/build-with-errors-app/source/index.html.erb +1 -0
  69. data/fixtures/chained-app/config.rb +0 -0
  70. data/fixtures/chained-app/data/article.yml +2 -0
  71. data/fixtures/chained-app/source/index.html.str.erb +8 -0
  72. data/fixtures/clean-app/config-complications.rb +11 -0
  73. data/fixtures/clean-app/config-empty.rb +0 -0
  74. data/fixtures/clean-app/config.rb +11 -0
  75. data/fixtures/clean-app/source/index.html.erb +1 -0
  76. data/fixtures/clean-app/source/layout.erb +9 -0
  77. data/fixtures/clean-app/source/layouts/custom.erb +8 -0
  78. data/fixtures/clean-app/source/real.html +1 -0
  79. data/fixtures/clean-app/source/real/index.html.erb +5 -0
  80. data/fixtures/clean-app/source/should_be_ignored.html +1 -0
  81. data/fixtures/clean-app/source/should_be_ignored2.html +1 -0
  82. data/fixtures/clean-app/source/should_be_ignored3.html +1 -0
  83. data/fixtures/clean-app/source/static.html +1 -0
  84. data/fixtures/clean-dir-app/config.rb +1 -0
  85. data/fixtures/clean-dir-app/source/about.html +1 -0
  86. data/fixtures/content-for-app/config.rb +3 -0
  87. data/fixtures/content-for-app/source/content_for_erb.html.erb +5 -0
  88. data/fixtures/content-for-app/source/layouts/content_for.erb +4 -0
  89. data/fixtures/current-page-app/config.rb +3 -0
  90. data/fixtures/current-page-app/source/request-path.html.erb +1 -0
  91. data/fixtures/custom-layout-app/config.rb +1 -0
  92. data/fixtures/custom-layout-app/source/index.html.erb +1 -0
  93. data/fixtures/custom-layout-app/source/layout.str +9 -0
  94. data/fixtures/custom-layout-app2/config.rb +0 -0
  95. data/fixtures/custom-layout-app2/source/custom-layout-dir/index.html.erb +1 -0
  96. data/fixtures/custom-layout-app2/source/custom-layout.html.erb +1 -0
  97. data/fixtures/custom-layout-app2/source/layouts/custom.erb +8 -0
  98. data/fixtures/data-app/config.rb +3 -0
  99. data/fixtures/data-app/data/pages.yml +6 -0
  100. data/fixtures/data-app/source/index.html.erb +1 -0
  101. data/fixtures/data-app/source/layout.erb +5 -0
  102. data/fixtures/different-engine-layout/config.rb +0 -0
  103. data/fixtures/different-engine-layout/source/index.html.str +1 -0
  104. data/fixtures/different-engine-layout/source/layout.erb +9 -0
  105. data/fixtures/different-engine-partial/config.rb +0 -0
  106. data/fixtures/different-engine-partial/source/index.html.erb +1 -0
  107. data/fixtures/different-engine-partial/source/layouts/layout.erb +7 -0
  108. data/fixtures/different-engine-partial/source/shared/_footer.str +1 -0
  109. data/fixtures/different-engine-partial/source/shared/_header.erb +1 -0
  110. data/fixtures/dynamic-pages-app/config.rb +29 -0
  111. data/fixtures/dynamic-pages-app/source/real.html +1 -0
  112. data/fixtures/dynamic-pages-app/source/real/index.html.erb +5 -0
  113. data/fixtures/dynamic-pages-app/source/should_be_ignored.html +1 -0
  114. data/fixtures/dynamic-pages-app/source/should_be_ignored2.html +1 -0
  115. data/fixtures/dynamic-pages-app/source/should_be_ignored3.html +1 -0
  116. data/fixtures/dynamic-pages-app/source/should_be_ignored4.html +1 -0
  117. data/fixtures/dynamic-pages-app/source/should_be_ignored5.html +1 -0
  118. data/fixtures/dynamic-pages-app/source/should_be_ignored6.html +1 -0
  119. data/fixtures/dynamic-pages-app/source/should_be_ignored7.html +1 -0
  120. data/fixtures/dynamic-pages-app/source/should_be_ignored8.html +1 -0
  121. data/fixtures/empty-app/not-config.rb +0 -0
  122. data/fixtures/engine-matching-layout/config.rb +0 -0
  123. data/fixtures/engine-matching-layout/source/index.html.erb +1 -0
  124. data/fixtures/engine-matching-layout/source/layout.erb +9 -0
  125. data/fixtures/external-helpers/config.rb +4 -0
  126. data/fixtures/external-helpers/lib/hello_helper.rb +5 -0
  127. data/fixtures/external-helpers/source/index.html.erb +1 -0
  128. data/fixtures/feature-params-app/config.rb +12 -0
  129. data/fixtures/feature-params-app/source/index.html.erb +3 -0
  130. data/fixtures/frontmatter-app/config.rb +0 -0
  131. data/fixtures/frontmatter-app/source/front-matter-2.php.erb +7 -0
  132. data/fixtures/frontmatter-app/source/front-matter-change.html.erb +5 -0
  133. data/fixtures/frontmatter-app/source/front-matter.html.erb +6 -0
  134. data/fixtures/generator-test/config.rb +80 -0
  135. data/fixtures/generator-test/source/index.html.erb +10 -0
  136. data/fixtures/glob-app/config.rb +1 -0
  137. data/fixtures/glob-app/source/index.html.erb +4 -0
  138. data/fixtures/glob-app/source/stylesheets/site.css.str +3 -0
  139. data/fixtures/ignore-app/config.rb +2 -0
  140. data/fixtures/ignore-app/source/articles/template.html.erb +1 -0
  141. data/fixtures/ignore-app/source/template.html.erb +1 -0
  142. data/fixtures/indexable-app/config.rb +2 -0
  143. data/fixtures/indexable-app/source/.htaccess +1 -0
  144. data/fixtures/indexable-app/source/a_folder/needs_index.html +1 -0
  145. data/fixtures/indexable-app/source/leave_me_alone.html +1 -0
  146. data/fixtures/indexable-app/source/needs_index.html +1 -0
  147. data/fixtures/indexable-app/source/regular/index.html +1 -0
  148. data/fixtures/instance-vars-app/config.rb +0 -0
  149. data/fixtures/instance-vars-app/source/_vartial.erb +5 -0
  150. data/fixtures/instance-vars-app/source/instance-var-set.html.erb +2 -0
  151. data/fixtures/instance-vars-app/source/layout.erb +3 -0
  152. data/fixtures/instance-vars-app/source/no-instance-var.html.erb +1 -0
  153. data/fixtures/large-build-app/config.rb +3 -0
  154. data/fixtures/large-build-app/source/.htaccess +1 -0
  155. data/fixtures/large-build-app/source/_partial.erb +1 -0
  156. data/fixtures/large-build-app/source/images/Child folder/regular_file(example).txt +1 -0
  157. data/fixtures/large-build-app/source/images/Read me (example).txt +1 -0
  158. data/fixtures/large-build-app/source/images/blank.gif +0 -0
  159. data/fixtures/large-build-app/source/index.html.erb +1 -0
  160. data/fixtures/large-build-app/source/layout.erb +9 -0
  161. data/fixtures/large-build-app/source/layouts/content_for.erb +4 -0
  162. data/fixtures/large-build-app/source/layouts/custom.erb +8 -0
  163. data/fixtures/large-build-app/source/other_layout.erb +1 -0
  164. data/fixtures/large-build-app/source/services/index.html.erb +1 -0
  165. data/fixtures/large-build-app/source/spaces in file.html.erb +1 -0
  166. data/fixtures/large-build-app/source/static.html +1 -0
  167. data/fixtures/large-build-app/source/stylesheets/static.css +2 -0
  168. data/fixtures/lorem-app/config.rb +0 -0
  169. data/fixtures/lorem-app/source/lorem.html.erb +13 -0
  170. data/fixtures/manual-layout-missing/config.rb +1 -0
  171. data/fixtures/manual-layout-missing/source/index.html.erb +1 -0
  172. data/fixtures/manual-layout-override/config.rb +3 -0
  173. data/fixtures/manual-layout-override/source/index.html.erb +1 -0
  174. data/fixtures/manual-layout-override/source/layouts/another.erb +9 -0
  175. data/fixtures/manual-layout-override/source/layouts/custom.erb +9 -0
  176. data/fixtures/manual-layout/config.rb +1 -0
  177. data/fixtures/manual-layout/source/index.html.erb +1 -0
  178. data/fixtures/manual-layout/source/layouts/custom.erb +9 -0
  179. data/fixtures/multiple-layouts/config.rb +0 -0
  180. data/fixtures/multiple-layouts/source/index.html.erb +1 -0
  181. data/fixtures/multiple-layouts/source/layout.erb +9 -0
  182. data/fixtures/multiple-layouts/source/layout.str +9 -0
  183. data/fixtures/nested-layout-app/config.rb +1 -0
  184. data/fixtures/nested-layout-app/source/data-one.html.erb +5 -0
  185. data/fixtures/nested-layout-app/source/data-two.html.erb +5 -0
  186. data/fixtures/nested-layout-app/source/index.html.erb +1 -0
  187. data/fixtures/nested-layout-app/source/layouts/inner.erb +4 -0
  188. data/fixtures/nested-layout-app/source/layouts/master.erb +3 -0
  189. data/fixtures/nested-layout-app/source/layouts/outer.erb +4 -0
  190. data/fixtures/no-layout/config.rb +0 -0
  191. data/fixtures/no-layout/source/index.html.erb +1 -0
  192. data/fixtures/padrino-helpers-app/config.rb +0 -0
  193. data/fixtures/padrino-helpers-app/source/former_padrino_test.html.erb +4 -0
  194. data/fixtures/page-classes-app/config.rb +4 -0
  195. data/fixtures/page-classes-app/source/page-classes.html.erb +1 -0
  196. data/fixtures/page-classes-app/source/sub1/page-classes.html.erb +1 -0
  197. data/fixtures/page-classes-app/source/sub1/sub2/page-classes.html.erb +1 -0
  198. data/fixtures/partials-app/config.rb +0 -0
  199. data/fixtures/partials-app/source/_locals.erb +1 -0
  200. data/fixtures/partials-app/source/_main.erb +1 -0
  201. data/fixtures/partials-app/source/_main.str +1 -0
  202. data/fixtures/partials-app/source/index.html.erb +3 -0
  203. data/fixtures/partials-app/source/locals.html.erb +1 -0
  204. data/fixtures/partials-app/source/second.html.str +3 -0
  205. data/fixtures/partials-app/source/shared/_footer.erb +1 -0
  206. data/fixtures/partials-app/source/shared/_header.erb +1 -0
  207. data/fixtures/partials-app/source/sub/_local.erb +1 -0
  208. data/fixtures/partials-app/source/sub/index.html.erb +3 -0
  209. data/fixtures/plain-app/index.html +1 -0
  210. data/fixtures/preview-app/config.rb +0 -0
  211. data/fixtures/preview-app/source/content.html.erb +1 -0
  212. data/fixtures/preview-app/source/layout.erb +1 -0
  213. data/fixtures/sinatra-app/config.rb +11 -0
  214. data/fixtures/sinatra-app/source/index.html.erb +5 -0
  215. data/fixtures/traversal-app/config.rb +7 -0
  216. data/fixtures/traversal-app/source/directory-indexed.html.erb +0 -0
  217. data/fixtures/traversal-app/source/directory-indexed/sibling.html.erb +3 -0
  218. data/fixtures/traversal-app/source/directory-indexed/sibling2.html.erb +3 -0
  219. data/fixtures/traversal-app/source/directory-indexed/sub2/index.html.erb +0 -0
  220. data/fixtures/traversal-app/source/directory-indexed/sub3/deep.html.erb +0 -0
  221. data/fixtures/traversal-app/source/index.html.erb +0 -0
  222. data/fixtures/traversal-app/source/layout.erb +19 -0
  223. data/fixtures/traversal-app/source/proxied.html.erb +0 -0
  224. data/fixtures/traversal-app/source/root.html.erb +0 -0
  225. data/fixtures/traversal-app/source/sub/index.html.erb +0 -0
  226. data/fixtures/traversal-app/source/sub/sibling.html.erb +0 -0
  227. data/fixtures/traversal-app/source/sub/sibling2.html.erb +0 -0
  228. data/fixtures/traversal-app/source/sub/sub2/index.html.erb +0 -0
  229. data/fixtures/traversal-app/source/sub/sub3/deep.html.erb +0 -0
  230. data/fixtures/wildcard-app/config.rb +1 -0
  231. data/fixtures/wildcard-app/source/admin/index.html.erb +1 -0
  232. data/fixtures/wildcard-app/source/admin/page.html.erb +1 -0
  233. data/fixtures/wildcard-app/source/index.html.erb +1 -0
  234. data/fixtures/wildcard-app/source/layouts/admin.erb +2 -0
  235. data/fixtures/wildcard-app/source/layouts/layout.erb +2 -0
  236. data/fixtures/wildcard-directory-index-app/config.rb +2 -0
  237. data/fixtures/wildcard-directory-index-app/source/admin/index.html.erb +1 -0
  238. data/fixtures/wildcard-directory-index-app/source/admin/page.html.erb +1 -0
  239. data/fixtures/wildcard-directory-index-app/source/index.html.erb +1 -0
  240. data/fixtures/wildcard-directory-index-app/source/layouts/admin.erb +2 -0
  241. data/fixtures/wildcard-directory-index-app/source/layouts/layout.erb +2 -0
  242. data/lib/middleman-core.rb +259 -0
  243. data/lib/middleman-core/base.rb +494 -0
  244. data/lib/middleman-core/cache.rb +57 -0
  245. data/lib/middleman-core/cli.rb +57 -0
  246. data/lib/middleman-core/cli/build.rb +229 -0
  247. data/lib/middleman-core/cli/init.rb +52 -0
  248. data/lib/middleman-core/cli/server.rb +52 -0
  249. data/lib/middleman-core/core_extensions/assets.rb +30 -0
  250. data/lib/middleman-core/core_extensions/builder.rb +49 -0
  251. data/lib/middleman-core/core_extensions/data.rb +193 -0
  252. data/lib/middleman-core/core_extensions/default_helpers.rb +119 -0
  253. data/lib/middleman-core/core_extensions/extensions.rb +148 -0
  254. data/lib/middleman-core/core_extensions/file_watcher.rb +83 -0
  255. data/lib/middleman-core/core_extensions/front_matter.rb +145 -0
  256. data/lib/middleman-core/core_extensions/rendering.rb +247 -0
  257. data/lib/middleman-core/core_extensions/routing.rb +69 -0
  258. data/lib/middleman-core/core_extensions/show_exceptions.rb +16 -0
  259. data/lib/middleman-core/core_extensions/sitemap.rb +72 -0
  260. data/lib/middleman-core/extensions/asset_host.rb +29 -0
  261. data/lib/middleman-core/extensions/automatic_image_sizes.rb +38 -0
  262. data/lib/middleman-core/extensions/automatic_image_sizes/fastimage.rb +287 -0
  263. data/lib/middleman-core/extensions/directory_indexes.rb +62 -0
  264. data/lib/middleman-core/extensions/lorem.rb +140 -0
  265. data/lib/middleman-core/guard.rb +148 -0
  266. data/lib/middleman-core/renderers/erb.rb +19 -0
  267. data/lib/middleman-core/sitemap/page.rb +186 -0
  268. data/lib/middleman-core/sitemap/store.rb +139 -0
  269. data/lib/middleman-core/sitemap/template.rb +82 -0
  270. data/lib/middleman-core/step_definitions.rb +12 -0
  271. data/lib/middleman-core/step_definitions/builder_steps.rb +42 -0
  272. data/lib/middleman-core/step_definitions/middleman_steps.rb +15 -0
  273. data/lib/middleman-core/step_definitions/server_steps.rb +73 -0
  274. data/lib/middleman-core/templates.rb +82 -0
  275. data/lib/middleman-core/templates/default.rb +29 -0
  276. data/lib/middleman-core/templates/default/source/images/background.png +0 -0
  277. data/lib/middleman-core/templates/default/source/images/middleman.png +0 -0
  278. data/lib/middleman-core/templates/default/source/index.html.erb +10 -0
  279. data/lib/middleman-core/templates/default/source/javascripts/all.js +1 -0
  280. data/lib/middleman-core/templates/default/source/layouts/layout.erb +19 -0
  281. data/lib/middleman-core/templates/default/source/stylesheets/_animate.scss +23 -0
  282. data/lib/middleman-core/templates/default/source/stylesheets/_normalize.scss +431 -0
  283. data/lib/middleman-core/templates/default/source/stylesheets/all.css.scss +40 -0
  284. data/lib/middleman-core/templates/html5.rb +25 -0
  285. data/lib/middleman-core/templates/html5/source/404.html +38 -0
  286. data/lib/middleman-core/templates/html5/source/README.md +388 -0
  287. data/lib/middleman-core/templates/html5/source/apple-touch-icon-114x114-precomposed.png +0 -0
  288. data/lib/middleman-core/templates/html5/source/apple-touch-icon-57x57-precomposed.png +0 -0
  289. data/lib/middleman-core/templates/html5/source/apple-touch-icon-72x72-precomposed.png +0 -0
  290. data/lib/middleman-core/templates/html5/source/apple-touch-icon-precomposed.png +0 -0
  291. data/lib/middleman-core/templates/html5/source/apple-touch-icon.png +0 -0
  292. data/lib/middleman-core/templates/html5/source/crossdomain.xml +25 -0
  293. data/lib/middleman-core/templates/html5/source/css/style.css +293 -0
  294. data/lib/middleman-core/templates/html5/source/favicon.ico +0 -0
  295. data/lib/middleman-core/templates/html5/source/humans.txt +43 -0
  296. data/lib/middleman-core/templates/html5/source/img/.gitignore +2 -0
  297. data/lib/middleman-core/templates/html5/source/index.html +79 -0
  298. data/lib/middleman-core/templates/html5/source/js/libs/jquery-1.6.2.js +8981 -0
  299. data/lib/middleman-core/templates/html5/source/js/libs/jquery-1.6.2.min.js +18 -0
  300. data/lib/middleman-core/templates/html5/source/js/libs/modernizr-2.0.6.min.js +4 -0
  301. data/lib/middleman-core/templates/html5/source/js/mylibs/.gitignore +2 -0
  302. data/lib/middleman-core/templates/html5/source/js/plugins.js +20 -0
  303. data/lib/middleman-core/templates/html5/source/js/script.js +8 -0
  304. data/lib/middleman-core/templates/html5/source/robots.txt +5 -0
  305. data/lib/middleman-core/templates/html5/source/test/index.html +31 -0
  306. data/lib/middleman-core/templates/html5/source/test/qunit/qunit.css +148 -0
  307. data/lib/middleman-core/templates/html5/source/test/qunit/qunit.js +1265 -0
  308. data/lib/middleman-core/templates/html5/source/test/tests.js +24 -0
  309. data/lib/middleman-core/templates/local.rb +21 -0
  310. data/lib/middleman-core/templates/mobile.rb +25 -0
  311. data/lib/middleman-core/templates/mobile/source/404.html +37 -0
  312. data/lib/middleman-core/templates/mobile/source/README.markdown +21 -0
  313. data/lib/middleman-core/templates/mobile/source/crossdomain.xml +25 -0
  314. data/lib/middleman-core/templates/mobile/source/css/style.css +315 -0
  315. data/lib/middleman-core/templates/mobile/source/humans.txt +43 -0
  316. data/lib/middleman-core/templates/mobile/source/img/h/apple-touch-icon.png +0 -0
  317. data/lib/middleman-core/templates/mobile/source/img/h/splash.png +0 -0
  318. data/lib/middleman-core/templates/mobile/source/img/l/apple-touch-icon-precomposed.png +0 -0
  319. data/lib/middleman-core/templates/mobile/source/img/l/apple-touch-icon.png +0 -0
  320. data/lib/middleman-core/templates/mobile/source/img/l/splash.png +0 -0
  321. data/lib/middleman-core/templates/mobile/source/img/m/apple-touch-icon.png +0 -0
  322. data/lib/middleman-core/templates/mobile/source/index.html +92 -0
  323. data/lib/middleman-core/templates/mobile/source/js/libs/modernizr-custom.js +14 -0
  324. data/lib/middleman-core/templates/mobile/source/js/libs/respond.min.js +7 -0
  325. data/lib/middleman-core/templates/mobile/source/js/mylibs/helper.js +171 -0
  326. data/lib/middleman-core/templates/mobile/source/js/plugins.js +20 -0
  327. data/lib/middleman-core/templates/mobile/source/js/script.js +0 -0
  328. data/lib/middleman-core/templates/mobile/source/robots.txt +4 -0
  329. data/lib/middleman-core/templates/mobile/source/sitemap.xml +9 -0
  330. data/lib/middleman-core/templates/mobile/source/test/index.html +31 -0
  331. data/lib/middleman-core/templates/mobile/source/test/qunit/qunit.css +148 -0
  332. data/lib/middleman-core/templates/mobile/source/test/qunit/qunit.js +1265 -0
  333. data/lib/middleman-core/templates/mobile/source/test/tests.js +21 -0
  334. data/lib/middleman-core/templates/mobile/source/tools/googleanalyticsformobile/Readme.PDF +0 -0
  335. data/lib/middleman-core/templates/mobile/source/tools/googleanalyticsformobile/aspx/aspx1.snippet +31 -0
  336. data/lib/middleman-core/templates/mobile/source/tools/googleanalyticsformobile/aspx/aspx2.snippet +2 -0
  337. data/lib/middleman-core/templates/mobile/source/tools/googleanalyticsformobile/aspx/ga.aspx +195 -0
  338. data/lib/middleman-core/templates/mobile/source/tools/googleanalyticsformobile/aspx/sample.aspx +44 -0
  339. data/lib/middleman-core/templates/mobile/source/tools/googleanalyticsformobile/jsp/ga.jsp +225 -0
  340. data/lib/middleman-core/templates/mobile/source/tools/googleanalyticsformobile/jsp/jsp1.snippet +35 -0
  341. data/lib/middleman-core/templates/mobile/source/tools/googleanalyticsformobile/jsp/jsp2.snippet +2 -0
  342. data/lib/middleman-core/templates/mobile/source/tools/googleanalyticsformobile/jsp/sample.jsp +51 -0
  343. data/lib/middleman-core/templates/mobile/source/tools/googleanalyticsformobile/php/ga.php +176 -0
  344. data/lib/middleman-core/templates/mobile/source/tools/googleanalyticsformobile/php/php1.snippet +30 -0
  345. data/lib/middleman-core/templates/mobile/source/tools/googleanalyticsformobile/php/php2.snippet +4 -0
  346. data/lib/middleman-core/templates/mobile/source/tools/googleanalyticsformobile/php/sample.php +44 -0
  347. data/lib/middleman-core/templates/mobile/source/tools/googleanalyticsformobile/pl/ga.pl +195 -0
  348. data/lib/middleman-core/templates/mobile/source/tools/googleanalyticsformobile/pl/perl1.snippet +27 -0
  349. data/lib/middleman-core/templates/mobile/source/tools/googleanalyticsformobile/pl/perl2.snippet +1 -0
  350. data/lib/middleman-core/templates/mobile/source/tools/googleanalyticsformobile/pl/sample.pl +38 -0
  351. data/lib/middleman-core/templates/mobile/source/tools/mobile-bookmark-bubble/COPYING +202 -0
  352. data/lib/middleman-core/templates/mobile/source/tools/mobile-bookmark-bubble/bookmark_bubble.js +559 -0
  353. data/lib/middleman-core/templates/mobile/source/tools/mobile-bookmark-bubble/example/example.html +43 -0
  354. data/lib/middleman-core/templates/mobile/source/tools/mobile-bookmark-bubble/example/example.js +57 -0
  355. data/lib/middleman-core/templates/mobile/source/tools/mobile-bookmark-bubble/images/arrow.png +0 -0
  356. data/lib/middleman-core/templates/mobile/source/tools/mobile-bookmark-bubble/images/close.png +0 -0
  357. data/lib/middleman-core/templates/mobile/source/tools/mobile-bookmark-bubble/images/generate_base64_images +33 -0
  358. data/lib/middleman-core/templates/mobile/source/tools/mobile-bookmark-bubble/images/icon_calendar.png +0 -0
  359. data/lib/middleman-core/templates/mobile/source/tools/wspl/README +27 -0
  360. data/lib/middleman-core/templates/mobile/source/tools/wspl/databasefactory.js +45 -0
  361. data/lib/middleman-core/templates/mobile/source/tools/wspl/dbworker.js +324 -0
  362. data/lib/middleman-core/templates/mobile/source/tools/wspl/dbworker_test.html +393 -0
  363. data/lib/middleman-core/templates/mobile/source/tools/wspl/dbworkerstarter.js +32 -0
  364. data/lib/middleman-core/templates/mobile/source/tools/wspl/dbwrapper_gears.js +595 -0
  365. data/lib/middleman-core/templates/mobile/source/tools/wspl/dbwrapper_gears_test.html +404 -0
  366. data/lib/middleman-core/templates/mobile/source/tools/wspl/dbwrapper_html5.js +203 -0
  367. data/lib/middleman-core/templates/mobile/source/tools/wspl/dbwrapper_html5_test.html +468 -0
  368. data/lib/middleman-core/templates/mobile/source/tools/wspl/dbwrapperapi.js +202 -0
  369. data/lib/middleman-core/templates/mobile/source/tools/wspl/dbwrapperapi_test.html +51 -0
  370. data/lib/middleman-core/templates/mobile/source/tools/wspl/gears_resultset.js +71 -0
  371. data/lib/middleman-core/templates/mobile/source/tools/wspl/gears_resultset_test.html +86 -0
  372. data/lib/middleman-core/templates/mobile/source/tools/wspl/gears_transaction.js +196 -0
  373. data/lib/middleman-core/templates/mobile/source/tools/wspl/gears_transaction_test.html +221 -0
  374. data/lib/middleman-core/templates/mobile/source/tools/wspl/gearsutils.js +94 -0
  375. data/lib/middleman-core/templates/mobile/source/tools/wspl/gearsutils_test.html +84 -0
  376. data/lib/middleman-core/templates/mobile/source/tools/wspl/global_functions.js +72 -0
  377. data/lib/middleman-core/templates/mobile/source/tools/wspl/simplenotes/index.html +347 -0
  378. data/lib/middleman-core/templates/mobile/source/tools/wspl/simplenotes/simplenotes.js +503 -0
  379. data/lib/middleman-core/templates/mobile/source/tools/wspl/simplenotes/styles.css +66 -0
  380. data/lib/middleman-core/templates/mobile/source/tools/wspl/simplenotes/template.js +75 -0
  381. data/lib/middleman-core/templates/shared/Gemfile.tt +3 -0
  382. data/lib/middleman-core/templates/shared/config.ru +4 -0
  383. data/lib/middleman-core/templates/shared/config.tt +92 -0
  384. data/lib/middleman-core/vendor/hooks-0.2.0/CHANGES.textile +9 -0
  385. data/lib/middleman-core/vendor/hooks-0.2.0/Gemfile +3 -0
  386. data/lib/middleman-core/vendor/hooks-0.2.0/README.rdoc +107 -0
  387. data/lib/middleman-core/vendor/hooks-0.2.0/Rakefile +12 -0
  388. data/lib/middleman-core/vendor/hooks-0.2.0/hooks.gemspec +22 -0
  389. data/lib/middleman-core/vendor/hooks-0.2.0/lib/hooks.rb +109 -0
  390. data/lib/middleman-core/vendor/hooks-0.2.0/lib/hooks/inheritable_attribute.rb +33 -0
  391. data/lib/middleman-core/vendor/hooks-0.2.0/test/hooks_test.rb +141 -0
  392. data/lib/middleman-core/vendor/hooks-0.2.0/test/inheritable_attribute_test.rb +55 -0
  393. data/lib/middleman-core/vendor/hooks-0.2.0/test/test_helper.rb +10 -0
  394. data/lib/middleman-core/vendor/padrino-core-0.10.5/.document +5 -0
  395. data/lib/middleman-core/vendor/padrino-core-0.10.5/.gitignore +22 -0
  396. data/lib/middleman-core/vendor/padrino-core-0.10.5/.yardopts +1 -0
  397. data/lib/middleman-core/vendor/padrino-core-0.10.5/LICENSE.txt +20 -0
  398. data/lib/middleman-core/vendor/padrino-core-0.10.5/README.rdoc +294 -0
  399. data/lib/middleman-core/vendor/padrino-core-0.10.5/Rakefile +5 -0
  400. data/lib/middleman-core/vendor/padrino-core-0.10.5/bin/padrino +9 -0
  401. data/lib/middleman-core/vendor/padrino-core-0.10.5/lib/padrino-core.rb +167 -0
  402. data/lib/middleman-core/vendor/padrino-core-0.10.5/lib/padrino-core/application.rb +270 -0
  403. data/lib/middleman-core/vendor/padrino-core-0.10.5/lib/padrino-core/application/rendering.rb +292 -0
  404. data/lib/middleman-core/vendor/padrino-core-0.10.5/lib/padrino-core/application/routing.rb +934 -0
  405. data/lib/middleman-core/vendor/padrino-core-0.10.5/lib/padrino-core/application/showexceptions.rb +20 -0
  406. data/lib/middleman-core/vendor/padrino-core-0.10.5/lib/padrino-core/caller.rb +53 -0
  407. data/lib/middleman-core/vendor/padrino-core-0.10.5/lib/padrino-core/cli/adapter.rb +24 -0
  408. data/lib/middleman-core/vendor/padrino-core-0.10.5/lib/padrino-core/cli/base.rb +151 -0
  409. data/lib/middleman-core/vendor/padrino-core-0.10.5/lib/padrino-core/cli/console.rb +20 -0
  410. data/lib/middleman-core/vendor/padrino-core-0.10.5/lib/padrino-core/cli/rake.rb +24 -0
  411. data/lib/middleman-core/vendor/padrino-core-0.10.5/lib/padrino-core/cli/rake_tasks.rb +59 -0
  412. data/lib/middleman-core/vendor/padrino-core-0.10.5/lib/padrino-core/command.rb +38 -0
  413. data/lib/middleman-core/vendor/padrino-core-0.10.5/lib/padrino-core/images/404.png +0 -0
  414. data/lib/middleman-core/vendor/padrino-core-0.10.5/lib/padrino-core/images/500.png +0 -0
  415. data/lib/middleman-core/vendor/padrino-core-0.10.5/lib/padrino-core/loader.rb +210 -0
  416. data/lib/middleman-core/vendor/padrino-core-0.10.5/lib/padrino-core/locale/cs.yml +34 -0
  417. data/lib/middleman-core/vendor/padrino-core-0.10.5/lib/padrino-core/locale/da.yml +34 -0
  418. data/lib/middleman-core/vendor/padrino-core-0.10.5/lib/padrino-core/locale/de.yml +34 -0
  419. data/lib/middleman-core/vendor/padrino-core-0.10.5/lib/padrino-core/locale/en.yml +34 -0
  420. data/lib/middleman-core/vendor/padrino-core-0.10.5/lib/padrino-core/locale/es.yml +34 -0
  421. data/lib/middleman-core/vendor/padrino-core-0.10.5/lib/padrino-core/locale/fr.yml +34 -0
  422. data/lib/middleman-core/vendor/padrino-core-0.10.5/lib/padrino-core/locale/hu.yml +34 -0
  423. data/lib/middleman-core/vendor/padrino-core-0.10.5/lib/padrino-core/locale/it.yml +40 -0
  424. data/lib/middleman-core/vendor/padrino-core-0.10.5/lib/padrino-core/locale/ja.yml +34 -0
  425. data/lib/middleman-core/vendor/padrino-core-0.10.5/lib/padrino-core/locale/lv.yml +34 -0
  426. data/lib/middleman-core/vendor/padrino-core-0.10.5/lib/padrino-core/locale/nl.yml +34 -0
  427. data/lib/middleman-core/vendor/padrino-core-0.10.5/lib/padrino-core/locale/no.yml +35 -0
  428. data/lib/middleman-core/vendor/padrino-core-0.10.5/lib/padrino-core/locale/pl.yml +34 -0
  429. data/lib/middleman-core/vendor/padrino-core-0.10.5/lib/padrino-core/locale/pt_br.yml +40 -0
  430. data/lib/middleman-core/vendor/padrino-core-0.10.5/lib/padrino-core/locale/ru.yml +35 -0
  431. data/lib/middleman-core/vendor/padrino-core-0.10.5/lib/padrino-core/locale/tr.yml +34 -0
  432. data/lib/middleman-core/vendor/padrino-core-0.10.5/lib/padrino-core/locale/uk.yml +34 -0
  433. data/lib/middleman-core/vendor/padrino-core-0.10.5/lib/padrino-core/locale/zh_cn.yml +34 -0
  434. data/lib/middleman-core/vendor/padrino-core-0.10.5/lib/padrino-core/locale/zh_tw.yml +34 -0
  435. data/lib/middleman-core/vendor/padrino-core-0.10.5/lib/padrino-core/logger.rb +345 -0
  436. data/lib/middleman-core/vendor/padrino-core-0.10.5/lib/padrino-core/mounter.rb +224 -0
  437. data/lib/middleman-core/vendor/padrino-core-0.10.5/lib/padrino-core/reloader.rb +254 -0
  438. data/lib/middleman-core/vendor/padrino-core-0.10.5/lib/padrino-core/router.rb +98 -0
  439. data/lib/middleman-core/vendor/padrino-core-0.10.5/lib/padrino-core/server.rb +79 -0
  440. data/lib/middleman-core/vendor/padrino-core-0.10.5/lib/padrino-core/support_lite.rb +200 -0
  441. data/lib/middleman-core/vendor/padrino-core-0.10.5/lib/padrino-core/tasks.rb +21 -0
  442. data/lib/middleman-core/vendor/padrino-core-0.10.5/lib/padrino-core/version.rb +20 -0
  443. data/lib/middleman-core/vendor/padrino-core-0.10.5/padrino-core.gemspec +38 -0
  444. data/lib/middleman-core/vendor/padrino-core-0.10.5/test/fixtures/apps/.components +6 -0
  445. data/lib/middleman-core/vendor/padrino-core-0.10.5/test/fixtures/apps/.gitignore +7 -0
  446. data/lib/middleman-core/vendor/padrino-core-0.10.5/test/fixtures/apps/complex.rb +32 -0
  447. data/lib/middleman-core/vendor/padrino-core-0.10.5/test/fixtures/apps/simple.rb +33 -0
  448. data/lib/middleman-core/vendor/padrino-core-0.10.5/test/fixtures/dependencies/a.rb +9 -0
  449. data/lib/middleman-core/vendor/padrino-core-0.10.5/test/fixtures/dependencies/b.rb +4 -0
  450. data/lib/middleman-core/vendor/padrino-core-0.10.5/test/fixtures/dependencies/c.rb +1 -0
  451. data/lib/middleman-core/vendor/padrino-core-0.10.5/test/fixtures/dependencies/circular/e.rb +13 -0
  452. data/lib/middleman-core/vendor/padrino-core-0.10.5/test/fixtures/dependencies/circular/f.rb +2 -0
  453. data/lib/middleman-core/vendor/padrino-core-0.10.5/test/fixtures/dependencies/circular/g.rb +2 -0
  454. data/lib/middleman-core/vendor/padrino-core-0.10.5/test/fixtures/dependencies/d.rb +4 -0
  455. data/lib/middleman-core/vendor/padrino-core-0.10.5/test/helper.rb +81 -0
  456. data/lib/middleman-core/vendor/padrino-core-0.10.5/test/mini_shoulda.rb +45 -0
  457. data/lib/middleman-core/vendor/padrino-core-0.10.5/test/test_application.rb +108 -0
  458. data/lib/middleman-core/vendor/padrino-core-0.10.5/test/test_core.rb +79 -0
  459. data/lib/middleman-core/vendor/padrino-core-0.10.5/test/test_dependencies.rb +44 -0
  460. data/lib/middleman-core/vendor/padrino-core-0.10.5/test/test_filters.rb +278 -0
  461. data/lib/middleman-core/vendor/padrino-core-0.10.5/test/test_locale.rb +21 -0
  462. data/lib/middleman-core/vendor/padrino-core-0.10.5/test/test_logger.rb +100 -0
  463. data/lib/middleman-core/vendor/padrino-core-0.10.5/test/test_mounter.rb +177 -0
  464. data/lib/middleman-core/vendor/padrino-core-0.10.5/test/test_reloader_complex.rb +75 -0
  465. data/lib/middleman-core/vendor/padrino-core-0.10.5/test/test_reloader_simple.rb +98 -0
  466. data/lib/middleman-core/vendor/padrino-core-0.10.5/test/test_rendering.rb +461 -0
  467. data/lib/middleman-core/vendor/padrino-core-0.10.5/test/test_restful_routing.rb +33 -0
  468. data/lib/middleman-core/vendor/padrino-core-0.10.5/test/test_router.rb +146 -0
  469. data/lib/middleman-core/vendor/padrino-core-0.10.5/test/test_routing.rb +1673 -0
  470. data/lib/middleman-core/vendor/padrino-helpers-0.10.5/.document +5 -0
  471. data/lib/middleman-core/vendor/padrino-helpers-0.10.5/.gitignore +21 -0
  472. data/lib/middleman-core/vendor/padrino-helpers-0.10.5/.yardopts +1 -0
  473. data/lib/middleman-core/vendor/padrino-helpers-0.10.5/LICENSE.txt +20 -0
  474. data/lib/middleman-core/vendor/padrino-helpers-0.10.5/README.rdoc +239 -0
  475. data/lib/middleman-core/vendor/padrino-helpers-0.10.5/Rakefile +5 -0
  476. data/lib/middleman-core/vendor/padrino-helpers-0.10.5/lib/padrino-helpers.rb +58 -0
  477. data/lib/middleman-core/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/asset_tag_helpers.rb +420 -0
  478. data/lib/middleman-core/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/form_builder/abstract_form_builder.rb +220 -0
  479. data/lib/middleman-core/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/form_builder/standard_form_builder.rb +43 -0
  480. data/lib/middleman-core/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/form_helpers.rb +602 -0
  481. data/lib/middleman-core/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/format_helpers.rb +381 -0
  482. data/lib/middleman-core/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/locale/cs.yml +103 -0
  483. data/lib/middleman-core/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/locale/da.yml +91 -0
  484. data/lib/middleman-core/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/locale/de.yml +81 -0
  485. data/lib/middleman-core/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/locale/en.yml +103 -0
  486. data/lib/middleman-core/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/locale/es.yml +103 -0
  487. data/lib/middleman-core/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/locale/fr.yml +80 -0
  488. data/lib/middleman-core/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/locale/hu.yml +103 -0
  489. data/lib/middleman-core/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/locale/it.yml +89 -0
  490. data/lib/middleman-core/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/locale/ja.yml +103 -0
  491. data/lib/middleman-core/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/locale/lv.yml +103 -0
  492. data/lib/middleman-core/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/locale/nl.yml +82 -0
  493. data/lib/middleman-core/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/locale/no.yml +91 -0
  494. data/lib/middleman-core/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/locale/pl.yml +95 -0
  495. data/lib/middleman-core/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/locale/pt_br.yml +103 -0
  496. data/lib/middleman-core/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/locale/ru.yml +103 -0
  497. data/lib/middleman-core/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/locale/tr.yml +103 -0
  498. data/lib/middleman-core/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/locale/uk.yml +103 -0
  499. data/lib/middleman-core/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/locale/zh_cn.yml +104 -0
  500. data/lib/middleman-core/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/locale/zh_tw.yml +103 -0
  501. data/lib/middleman-core/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/number_helpers.rb +288 -0
  502. data/lib/middleman-core/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/output_helpers.rb +175 -0
  503. data/lib/middleman-core/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/output_helpers/abstract_handler.rb +98 -0
  504. data/lib/middleman-core/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/output_helpers/erb_handler.rb +79 -0
  505. data/lib/middleman-core/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/output_helpers/haml_handler.rb +63 -0
  506. data/lib/middleman-core/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/output_helpers/slim_handler.rb +81 -0
  507. data/lib/middleman-core/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/render_helpers.rb +60 -0
  508. data/lib/middleman-core/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/tag_helpers.rb +103 -0
  509. data/lib/middleman-core/vendor/padrino-helpers-0.10.5/lib/padrino-helpers/translation_helpers.rb +38 -0
  510. data/lib/middleman-core/vendor/padrino-helpers-0.10.5/padrino-helpers.gemspec +27 -0
  511. data/lib/middleman-core/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/app.rb +73 -0
  512. data/lib/middleman-core/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/capture_concat.erb +14 -0
  513. data/lib/middleman-core/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/capture_concat.haml +12 -0
  514. data/lib/middleman-core/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/capture_concat.slim +13 -0
  515. data/lib/middleman-core/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/content_for.erb +14 -0
  516. data/lib/middleman-core/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/content_for.haml +12 -0
  517. data/lib/middleman-core/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/content_for.slim +12 -0
  518. data/lib/middleman-core/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/content_tag.erb +11 -0
  519. data/lib/middleman-core/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/content_tag.haml +9 -0
  520. data/lib/middleman-core/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/content_tag.slim +9 -0
  521. data/lib/middleman-core/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/current_engine.erb +5 -0
  522. data/lib/middleman-core/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/current_engine.haml +5 -0
  523. data/lib/middleman-core/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/current_engine.slim +5 -0
  524. data/lib/middleman-core/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/fields_for.erb +20 -0
  525. data/lib/middleman-core/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/fields_for.haml +15 -0
  526. data/lib/middleman-core/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/fields_for.slim +15 -0
  527. data/lib/middleman-core/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/form_for.erb +56 -0
  528. data/lib/middleman-core/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/form_for.haml +47 -0
  529. data/lib/middleman-core/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/form_for.slim +47 -0
  530. data/lib/middleman-core/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/form_tag.erb +56 -0
  531. data/lib/middleman-core/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/form_tag.haml +45 -0
  532. data/lib/middleman-core/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/form_tag.slim +45 -0
  533. data/lib/middleman-core/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/link_to.erb +5 -0
  534. data/lib/middleman-core/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/link_to.haml +4 -0
  535. data/lib/middleman-core/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/link_to.slim +4 -0
  536. data/lib/middleman-core/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/mail_to.erb +3 -0
  537. data/lib/middleman-core/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/mail_to.haml +3 -0
  538. data/lib/middleman-core/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/mail_to.slim +3 -0
  539. data/lib/middleman-core/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/meta_tag.erb +3 -0
  540. data/lib/middleman-core/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/meta_tag.haml +3 -0
  541. data/lib/middleman-core/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/meta_tag.slim +3 -0
  542. data/lib/middleman-core/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/partials/_erb.erb +1 -0
  543. data/lib/middleman-core/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/partials/_haml.haml +1 -0
  544. data/lib/middleman-core/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/partials/_slim.slim +1 -0
  545. data/lib/middleman-core/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/simple_partial.erb +1 -0
  546. data/lib/middleman-core/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/simple_partial.haml +1 -0
  547. data/lib/middleman-core/vendor/padrino-helpers-0.10.5/test/fixtures/markup_app/views/simple_partial.slim +1 -0
  548. data/lib/middleman-core/vendor/padrino-helpers-0.10.5/test/fixtures/render_app/app.rb +50 -0
  549. data/lib/middleman-core/vendor/padrino-helpers-0.10.5/test/fixtures/render_app/views/current_engine.haml +5 -0
  550. data/lib/middleman-core/vendor/padrino-helpers-0.10.5/test/fixtures/render_app/views/current_engines/_erb.erb +1 -0
  551. data/lib/middleman-core/vendor/padrino-helpers-0.10.5/test/fixtures/render_app/views/current_engines/_haml.haml +1 -0
  552. data/lib/middleman-core/vendor/padrino-helpers-0.10.5/test/fixtures/render_app/views/current_engines/_slim.slim +1 -0
  553. data/lib/middleman-core/vendor/padrino-helpers-0.10.5/test/fixtures/render_app/views/erb/test.erb +1 -0
  554. data/lib/middleman-core/vendor/padrino-helpers-0.10.5/test/fixtures/render_app/views/explicit_engine.haml +5 -0
  555. data/lib/middleman-core/vendor/padrino-helpers-0.10.5/test/fixtures/render_app/views/haml/test.haml +1 -0
  556. data/lib/middleman-core/vendor/padrino-helpers-0.10.5/test/fixtures/render_app/views/template/_user.haml +7 -0
  557. data/lib/middleman-core/vendor/padrino-helpers-0.10.5/test/fixtures/render_app/views/template/haml_template.haml +1 -0
  558. data/lib/middleman-core/vendor/padrino-helpers-0.10.5/test/fixtures/render_app/views/template/some_template.haml +2 -0
  559. data/lib/middleman-core/vendor/padrino-helpers-0.10.5/test/helper.rb +66 -0
  560. data/lib/middleman-core/vendor/padrino-helpers-0.10.5/test/test_asset_tag_helpers.rb +320 -0
  561. data/lib/middleman-core/vendor/padrino-helpers-0.10.5/test/test_form_builder.rb +996 -0
  562. data/lib/middleman-core/vendor/padrino-helpers-0.10.5/test/test_form_helpers.rb +645 -0
  563. data/lib/middleman-core/vendor/padrino-helpers-0.10.5/test/test_format_helpers.rb +227 -0
  564. data/lib/middleman-core/vendor/padrino-helpers-0.10.5/test/test_locale.rb +20 -0
  565. data/lib/middleman-core/vendor/padrino-helpers-0.10.5/test/test_number_helpers.rb +136 -0
  566. data/lib/middleman-core/vendor/padrino-helpers-0.10.5/test/test_output_helpers.rb +153 -0
  567. data/lib/middleman-core/vendor/padrino-helpers-0.10.5/test/test_render_helpers.rb +76 -0
  568. data/lib/middleman-core/vendor/padrino-helpers-0.10.5/test/test_tag_helpers.rb +105 -0
  569. data/lib/middleman-core/version.rb +13 -0
  570. data/middleman-core.gemspec +41 -0
  571. metadata +974 -0
@@ -0,0 +1,645 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/helper')
2
+ require File.expand_path(File.dirname(__FILE__) + '/fixtures/markup_app/app')
3
+
4
+ describe "FormHelpers" do
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