comfortable_mexican_sofa 1.12.11 → 2.0.0

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 (490) hide show
  1. checksums.yaml +5 -5
  2. data/.codeclimate.yml +4 -0
  3. data/.gitattributes +2 -0
  4. data/.github/issue_template.md +22 -0
  5. data/.github/pull_request_template.md +6 -0
  6. data/.gitignore +3 -0
  7. data/.rubocop.yml +5 -0
  8. data/.rubocop_todo.yml +974 -0
  9. data/.travis.yml +2 -10
  10. data/Gemfile +5 -7
  11. data/README.md +40 -39
  12. data/Rakefile +1 -31
  13. data/app/assets/javascripts/comfy/admin/cms/application.js.coffee +7 -4
  14. data/app/assets/javascripts/comfy/admin/cms/base.js.coffee +23 -33
  15. data/app/assets/javascripts/comfy/admin/cms/lib/diff/pretty_text_diff.js +76 -0
  16. data/app/assets/javascripts/comfy/admin/cms/lib/flatpickr.min.js +2 -0
  17. data/app/assets/javascripts/comfy/admin/cms/lib/flatpickr/i18n/ar.js +52 -0
  18. data/app/assets/javascripts/comfy/admin/cms/lib/flatpickr/i18n/bg.js +65 -0
  19. data/app/assets/javascripts/comfy/admin/cms/lib/flatpickr/i18n/bn.js +65 -0
  20. data/app/assets/javascripts/comfy/admin/cms/lib/flatpickr/i18n/cat.js +83 -0
  21. data/app/assets/javascripts/comfy/admin/cms/lib/flatpickr/i18n/cs.js +70 -0
  22. data/app/assets/javascripts/comfy/admin/cms/lib/flatpickr/i18n/cy.js +92 -0
  23. data/app/assets/javascripts/comfy/admin/cms/lib/flatpickr/i18n/da.js +71 -0
  24. data/app/assets/javascripts/comfy/admin/cms/lib/flatpickr/i18n/de.js +70 -0
  25. data/app/assets/javascripts/comfy/admin/cms/lib/flatpickr/i18n/default.js +80 -0
  26. data/app/assets/javascripts/comfy/admin/cms/lib/flatpickr/i18n/eo.js +73 -0
  27. data/app/assets/javascripts/comfy/admin/cms/lib/flatpickr/i18n/es.js +69 -0
  28. data/app/assets/javascripts/comfy/admin/cms/lib/flatpickr/i18n/et.js +73 -0
  29. data/app/assets/javascripts/comfy/admin/cms/lib/flatpickr/i18n/fa.js +68 -0
  30. data/app/assets/javascripts/comfy/admin/cms/lib/flatpickr/i18n/fi.js +69 -0
  31. data/app/assets/javascripts/comfy/admin/cms/lib/flatpickr/i18n/fr.js +75 -0
  32. data/app/assets/javascripts/comfy/admin/cms/lib/flatpickr/i18n/gr.js +74 -0
  33. data/app/assets/javascripts/comfy/admin/cms/lib/flatpickr/i18n/he.js +57 -0
  34. data/app/assets/javascripts/comfy/admin/cms/lib/flatpickr/i18n/hi.js +65 -0
  35. data/app/assets/javascripts/comfy/admin/cms/lib/flatpickr/i18n/hr.js +66 -0
  36. data/app/assets/javascripts/comfy/admin/cms/lib/flatpickr/i18n/hu.js +72 -0
  37. data/app/assets/javascripts/comfy/admin/cms/lib/flatpickr/i18n/id.js +61 -0
  38. data/app/assets/javascripts/comfy/admin/cms/lib/flatpickr/i18n/it.js +70 -0
  39. data/app/assets/javascripts/comfy/admin/cms/lib/flatpickr/i18n/ja.js +57 -0
  40. data/app/assets/javascripts/comfy/admin/cms/lib/flatpickr/i18n/ko.js +60 -0
  41. data/app/assets/javascripts/comfy/admin/cms/lib/flatpickr/i18n/lt.js +72 -0
  42. data/app/assets/javascripts/comfy/admin/cms/lib/flatpickr/i18n/lv.js +67 -0
  43. data/app/assets/javascripts/comfy/admin/cms/lib/flatpickr/i18n/mk.js +69 -0
  44. data/app/assets/javascripts/comfy/admin/cms/lib/flatpickr/i18n/mn.js +67 -0
  45. data/app/assets/javascripts/comfy/admin/cms/lib/flatpickr/i18n/ms.js +68 -0
  46. data/app/assets/javascripts/comfy/admin/cms/lib/flatpickr/i18n/my.js +69 -0
  47. data/app/assets/javascripts/comfy/admin/cms/lib/flatpickr/i18n/nl.js +75 -0
  48. data/app/assets/javascripts/comfy/admin/cms/lib/flatpickr/i18n/no.js +73 -0
  49. data/app/assets/javascripts/comfy/admin/cms/lib/flatpickr/i18n/pa.js +65 -0
  50. data/app/assets/javascripts/comfy/admin/cms/lib/flatpickr/i18n/pl.js +68 -0
  51. data/app/assets/javascripts/comfy/admin/cms/lib/flatpickr/i18n/pt-BR.js +66 -0
  52. data/app/assets/javascripts/comfy/admin/cms/lib/flatpickr/i18n/pt.js +66 -0
  53. data/app/assets/javascripts/comfy/admin/cms/lib/flatpickr/i18n/ro.js +69 -0
  54. data/app/assets/javascripts/comfy/admin/cms/lib/flatpickr/i18n/ru.js +66 -0
  55. data/app/assets/javascripts/comfy/admin/cms/lib/flatpickr/i18n/si.js +65 -0
  56. data/app/assets/javascripts/comfy/admin/cms/lib/flatpickr/i18n/sk.js +70 -0
  57. data/app/assets/javascripts/comfy/admin/cms/lib/flatpickr/i18n/sl.js +70 -0
  58. data/app/assets/javascripts/comfy/admin/cms/lib/flatpickr/i18n/sq.js +65 -0
  59. data/app/assets/javascripts/comfy/admin/cms/lib/flatpickr/i18n/sr.js +69 -0
  60. data/app/assets/javascripts/comfy/admin/cms/lib/flatpickr/i18n/sv.js +70 -0
  61. data/app/assets/javascripts/comfy/admin/cms/lib/flatpickr/i18n/th.js +72 -0
  62. data/app/assets/javascripts/comfy/admin/cms/lib/flatpickr/i18n/tr.js +66 -0
  63. data/app/assets/javascripts/comfy/admin/cms/lib/flatpickr/i18n/uk.js +66 -0
  64. data/app/assets/javascripts/comfy/admin/cms/lib/flatpickr/i18n/vn.js +66 -0
  65. data/app/assets/javascripts/comfy/admin/cms/lib/flatpickr/i18n/zh-CN.js +61 -0
  66. data/app/assets/javascripts/comfy/admin/cms/lib/flatpickr/i18n/zh-TW.js +61 -0
  67. data/app/assets/javascripts/comfy/admin/cms/lib/redactor.js +9 -3
  68. data/app/assets/javascripts/comfy/admin/cms/uploader.js.coffee +9 -10
  69. data/app/assets/stylesheets/comfy/admin/cms/application.sass +4 -4
  70. data/app/assets/stylesheets/comfy/admin/cms/base.sass +215 -338
  71. data/app/assets/stylesheets/comfy/admin/cms/lib/flatpickr.min.css +13 -0
  72. data/app/assets/stylesheets/comfy/admin/cms/redactor_overrides.sass +2 -2
  73. data/app/controllers/comfy/admin/base_controller.rb +20 -0
  74. data/app/controllers/comfy/admin/cms/base_controller.rb +9 -22
  75. data/app/controllers/comfy/admin/cms/categories_controller.rb +2 -3
  76. data/app/controllers/comfy/admin/cms/files_controller.rb +50 -31
  77. data/app/controllers/comfy/admin/cms/layouts_controller.rb +12 -13
  78. data/app/controllers/comfy/admin/cms/pages_controller.rb +28 -28
  79. data/app/controllers/comfy/admin/cms/revisions_controller.rb +23 -14
  80. data/app/controllers/comfy/admin/cms/sites_controller.rb +9 -10
  81. data/app/controllers/comfy/admin/cms/snippets_controller.rb +11 -11
  82. data/app/controllers/comfy/admin/cms/translations_controller.rb +98 -0
  83. data/app/controllers/comfy/cms/assets_controller.rb +9 -10
  84. data/app/controllers/comfy/cms/base_controller.rb +0 -2
  85. data/app/controllers/comfy/cms/content_controller.rb +50 -31
  86. data/app/controllers/concerns/comfy/paginate.rb +2 -2
  87. data/app/helpers/comfy/admin/cms_helper.rb +29 -0
  88. data/app/helpers/comfy/cms_helper.rb +40 -60
  89. data/app/models/comfy/cms/categorization.rb +8 -11
  90. data/app/models/comfy/cms/category.rb +10 -14
  91. data/app/models/comfy/cms/file.rb +31 -47
  92. data/app/models/comfy/cms/fragment.rb +55 -0
  93. data/app/models/comfy/cms/layout.rb +45 -40
  94. data/app/models/comfy/cms/page.rb +47 -36
  95. data/app/models/comfy/cms/revision.rb +5 -8
  96. data/app/models/comfy/cms/site.rb +26 -51
  97. data/app/models/comfy/cms/snippet.rb +20 -24
  98. data/app/models/comfy/cms/translation.rb +37 -0
  99. data/app/models/concerns/comfy/cms/with_categories.rb +38 -0
  100. data/app/models/concerns/comfy/cms/with_fragments.rb +121 -0
  101. data/app/views/comfy/admin/cms/categories/_categories.html.haml +2 -1
  102. data/app/views/comfy/admin/cms/categories/_edit.html.haml +7 -6
  103. data/app/views/comfy/admin/cms/categories/_form.html.haml +8 -5
  104. data/app/views/comfy/admin/cms/categories/_index.html.haml +24 -20
  105. data/app/views/comfy/admin/cms/categories/_show.html.haml +10 -9
  106. data/app/views/comfy/admin/cms/categories/create.js.erb +2 -2
  107. data/app/views/comfy/admin/cms/categories/edit.js.erb +1 -1
  108. data/app/views/comfy/admin/cms/categories/update.js.erb +2 -2
  109. data/app/views/comfy/admin/cms/files/_file.html.haml +31 -25
  110. data/app/views/comfy/admin/cms/files/_form.html.haml +16 -12
  111. data/app/views/comfy/admin/cms/files/edit.html.haml +1 -1
  112. data/app/views/comfy/admin/cms/files/index.html.haml +17 -19
  113. data/app/views/comfy/admin/cms/files/new.html.haml +1 -1
  114. data/app/views/comfy/admin/cms/layouts/_form.html.haml +10 -10
  115. data/app/views/comfy/admin/cms/layouts/_index_branch.html.haml +21 -19
  116. data/app/views/comfy/admin/cms/layouts/edit.html.haml +5 -5
  117. data/app/views/comfy/admin/cms/layouts/index.html.haml +4 -7
  118. data/app/views/comfy/admin/cms/pages/_form.html.haml +15 -21
  119. data/app/views/comfy/admin/cms/pages/_form_fragments.html.haml +40 -0
  120. data/app/views/comfy/admin/cms/pages/_fragment_attachments.html.haml +10 -0
  121. data/app/views/comfy/admin/cms/pages/_index_branch.html.haml +34 -26
  122. data/app/views/comfy/admin/cms/pages/edit.html.haml +19 -5
  123. data/app/views/comfy/admin/cms/pages/form_fragments.js.erb +1 -0
  124. data/app/views/comfy/admin/cms/pages/index.html.haml +5 -8
  125. data/app/views/comfy/admin/cms/pages/new.html.haml +1 -1
  126. data/app/views/comfy/admin/cms/revisions/show.html.haml +29 -27
  127. data/app/views/comfy/admin/cms/sites/_form.html.haml +6 -8
  128. data/app/views/comfy/admin/cms/sites/edit.html.haml +1 -1
  129. data/app/views/comfy/admin/cms/sites/index.html.haml +23 -22
  130. data/app/views/comfy/admin/cms/sites/new.html.haml +1 -1
  131. data/app/views/comfy/admin/cms/snippets/_form.html.haml +9 -9
  132. data/app/views/comfy/admin/cms/snippets/edit.html.haml +6 -5
  133. data/app/views/comfy/admin/cms/snippets/index.html.haml +25 -25
  134. data/app/views/comfy/admin/cms/snippets/new.html.haml +1 -1
  135. data/app/views/comfy/admin/cms/translations/_form.html.haml +21 -0
  136. data/app/views/comfy/admin/cms/translations/edit.html.haml +9 -0
  137. data/app/views/comfy/admin/cms/translations/form_fragments.js.erb +1 -0
  138. data/app/views/comfy/admin/cms/translations/new.html.haml +5 -0
  139. data/app/views/kaminari/comfy/_first_page.html.haml +3 -2
  140. data/app/views/kaminari/comfy/_gap.html.haml +2 -2
  141. data/app/views/kaminari/comfy/_last_page.html.haml +3 -2
  142. data/app/views/kaminari/comfy/_next_page.html.haml +2 -2
  143. data/app/views/kaminari/comfy/_page.html.haml +2 -2
  144. data/app/views/kaminari/comfy/_prev_page.html.haml +1 -1
  145. data/app/views/layouts/comfy/admin/cms/_body.html.haml +13 -15
  146. data/app/views/layouts/comfy/admin/cms/_footer_js.html.haml +10 -3
  147. data/app/views/layouts/comfy/admin/cms/_head.html.haml +7 -10
  148. data/app/views/layouts/comfy/admin/cms/_left.html.haml +33 -15
  149. data/app/views/layouts/comfy/admin/cms/_right.html.haml +2 -2
  150. data/comfortable_mexican_sofa.gemspec +19 -19
  151. data/config/application.rb +14 -8
  152. data/config/boot.rb +2 -2
  153. data/config/cms_routes.rb +3 -3
  154. data/config/environments/development.rb +37 -4
  155. data/config/environments/test.rb +12 -14
  156. data/config/initializers/comfortable_mexican_sofa.rb +5 -12
  157. data/config/locales/cs.yml +33 -7
  158. data/config/locales/da.yml +33 -7
  159. data/config/locales/de.yml +32 -6
  160. data/config/locales/en.yml +33 -7
  161. data/config/locales/es.yml +33 -7
  162. data/config/locales/fr.yml +33 -7
  163. data/config/locales/it.yml +33 -7
  164. data/config/locales/ja.yml +33 -7
  165. data/config/locales/nb.yml +33 -7
  166. data/config/locales/nl.yml +33 -7
  167. data/config/locales/pl.yml +33 -7
  168. data/config/locales/pt-BR.yml +33 -7
  169. data/config/locales/ru.yml +33 -7
  170. data/config/locales/sk.yml +33 -7
  171. data/config/locales/sv.yml +33 -7
  172. data/config/locales/tr.yml +33 -7
  173. data/config/locales/uk.yml +33 -7
  174. data/config/locales/zh-CN.yml +33 -7
  175. data/config/locales/zh-TW.yml +33 -7
  176. data/config/storage.yml +35 -0
  177. data/db/cms_seeds/sample-site/files/_default.jpg.yml +5 -0
  178. data/db/{cms_fixtures/sample-site/files/sample.jpg → cms_seeds/sample-site/files/default.jpg} +0 -0
  179. data/db/cms_seeds/sample-site/layouts/default/content.html +16 -0
  180. data/db/cms_seeds/sample-site/layouts/default/nested/content.html +14 -0
  181. data/db/cms_seeds/sample-site/pages/index/child_a/content.html +7 -0
  182. data/db/cms_seeds/sample-site/pages/index/child_b/content.html +6 -0
  183. data/db/cms_seeds/sample-site/pages/index/content.es.html +6 -0
  184. data/db/cms_seeds/sample-site/pages/index/content.fr.html +6 -0
  185. data/db/cms_seeds/sample-site/pages/index/content.html +24 -0
  186. data/db/{cms_fixtures/sample-site/pages/index/child/thumbnail.png → cms_seeds/sample-site/pages/index/footer.png} +0 -0
  187. data/db/cms_seeds/sample-site/pages/index/header.png +0 -0
  188. data/db/cms_seeds/sample-site/snippets/default.html +8 -0
  189. data/db/migrate/00_create_active_storage_tables.active_storage.rb +26 -0
  190. data/db/migrate/01_create_cms.rb +113 -104
  191. data/doc/preview.jpg +0 -0
  192. data/lib/comfortable_mexican_sofa.rb +10 -14
  193. data/lib/comfortable_mexican_sofa/configuration.rb +9 -13
  194. data/lib/comfortable_mexican_sofa/content.rb +28 -0
  195. data/lib/comfortable_mexican_sofa/content/block.rb +11 -0
  196. data/lib/comfortable_mexican_sofa/content/params_parser.rb +80 -0
  197. data/lib/comfortable_mexican_sofa/content/renderer.rb +125 -0
  198. data/lib/comfortable_mexican_sofa/content/tag.rb +37 -0
  199. data/lib/comfortable_mexican_sofa/content/tags/asset.rb +56 -0
  200. data/lib/comfortable_mexican_sofa/content/tags/checkbox.rb +21 -0
  201. data/lib/comfortable_mexican_sofa/content/tags/date.rb +22 -0
  202. data/lib/comfortable_mexican_sofa/content/tags/datetime.rb +22 -0
  203. data/lib/comfortable_mexican_sofa/content/tags/file.rb +77 -0
  204. data/lib/comfortable_mexican_sofa/content/tags/file_link.rb +66 -0
  205. data/lib/comfortable_mexican_sofa/content/tags/files.rb +39 -0
  206. data/lib/comfortable_mexican_sofa/content/tags/fragment.rb +54 -0
  207. data/lib/comfortable_mexican_sofa/content/tags/helper.rb +52 -0
  208. data/lib/comfortable_mexican_sofa/content/tags/markdown.rb +21 -0
  209. data/lib/comfortable_mexican_sofa/content/tags/number.rb +17 -0
  210. data/lib/comfortable_mexican_sofa/content/tags/partial.rb +42 -0
  211. data/lib/comfortable_mexican_sofa/content/tags/snippet.rb +31 -0
  212. data/lib/comfortable_mexican_sofa/content/tags/template.rb +41 -0
  213. data/lib/comfortable_mexican_sofa/content/tags/text.rb +17 -0
  214. data/lib/comfortable_mexican_sofa/content/tags/textarea.rb +17 -0
  215. data/lib/comfortable_mexican_sofa/content/tags/wysiwyg.rb +18 -0
  216. data/lib/comfortable_mexican_sofa/engine.rb +3 -2
  217. data/lib/comfortable_mexican_sofa/extensions/acts_as_tree.rb +33 -30
  218. data/lib/comfortable_mexican_sofa/extensions/has_revisions.rb +27 -23
  219. data/lib/comfortable_mexican_sofa/form_builder.rb +32 -104
  220. data/lib/comfortable_mexican_sofa/render_methods.rb +24 -21
  221. data/lib/comfortable_mexican_sofa/routes/cms.rb +6 -14
  222. data/lib/comfortable_mexican_sofa/routes/cms_admin.rb +39 -29
  223. data/lib/comfortable_mexican_sofa/routing.rb +1 -1
  224. data/lib/comfortable_mexican_sofa/seeds.rb +102 -0
  225. data/lib/comfortable_mexican_sofa/seeds/file/exporter.rb +40 -0
  226. data/lib/comfortable_mexican_sofa/seeds/file/importer.rb +61 -0
  227. data/lib/comfortable_mexican_sofa/seeds/layout/exporter.rb +37 -0
  228. data/lib/comfortable_mexican_sofa/seeds/layout/importer.rb +59 -0
  229. data/lib/comfortable_mexican_sofa/seeds/page/exporter.rb +88 -0
  230. data/lib/comfortable_mexican_sofa/seeds/page/importer.rb +213 -0
  231. data/lib/comfortable_mexican_sofa/seeds/snippet/exporter.rb +31 -0
  232. data/lib/comfortable_mexican_sofa/seeds/snippet/importer.rb +48 -0
  233. data/lib/comfortable_mexican_sofa/version.rb +1 -1
  234. data/lib/comfortable_mexican_sofa/view_hooks.rb +0 -1
  235. data/lib/generators/comfy/cms/assets_generator.rb +0 -1
  236. data/lib/generators/comfy/cms/cms_generator.rb +15 -5
  237. data/lib/generators/comfy/scaffold/scaffold_generator.rb +26 -20
  238. data/lib/generators/comfy/scaffold/templates/{controller.rb → controller.rb.tt} +10 -10
  239. data/lib/generators/comfy/scaffold/templates/{migration.rb → migration.rb.tt} +2 -3
  240. data/lib/generators/comfy/scaffold/templates/{model.rb → model.rb.tt} +7 -7
  241. data/lib/generators/comfy/scaffold/templates/tests/{controller.rb → controller.rb.tt} +37 -24
  242. data/lib/generators/comfy/scaffold/templates/tests/{fixture.yml → fixture.yml.tt} +0 -0
  243. data/lib/generators/comfy/scaffold/templates/tests/{model.rb → model.rb.tt} +3 -4
  244. data/lib/generators/comfy/scaffold/templates/views/_form.haml.tt +7 -0
  245. data/lib/generators/comfy/scaffold/templates/views/{edit.haml → edit.haml.tt} +1 -1
  246. data/lib/generators/comfy/scaffold/templates/views/index.haml.tt +21 -0
  247. data/lib/generators/comfy/scaffold/templates/views/{new.haml → new.haml.tt} +1 -1
  248. data/lib/generators/comfy/scaffold/templates/views/{show.haml → show.haml.tt} +2 -2
  249. data/lib/tasks/cms_seeds.rake +37 -0
  250. data/test/controllers/comfy/admin/cms/base_controller_test.rb +5 -6
  251. data/test/controllers/comfy/admin/cms/categories_controller_test.rb +27 -24
  252. data/test/controllers/comfy/admin/cms/files_controller_test.rb +97 -97
  253. data/test/controllers/comfy/admin/cms/layouts_controller_test.rb +32 -31
  254. data/test/controllers/comfy/admin/cms/pages_controller_test.rb +317 -263
  255. data/test/controllers/comfy/admin/cms/revisions_controller_test.rb +175 -65
  256. data/test/controllers/comfy/admin/cms/sites_controller_test.rb +27 -29
  257. data/test/controllers/comfy/admin/cms/snippets_controller_test.rb +54 -51
  258. data/test/controllers/comfy/admin/cms/translations_controller_test.rb +181 -0
  259. data/test/controllers/comfy/cms/assets_controller_test.rb +24 -22
  260. data/test/controllers/comfy/cms/content_controller_test.rb +126 -140
  261. data/test/fixtures/active_storage/attachments.yml +9 -0
  262. data/test/fixtures/active_storage/blobs.yml +13 -0
  263. data/test/fixtures/comfy/cms/files.yml +2 -6
  264. data/test/fixtures/comfy/cms/fragments.yml +25 -0
  265. data/test/fixtures/comfy/cms/layouts.yml +7 -13
  266. data/test/fixtures/comfy/cms/pages.yml +2 -17
  267. data/test/fixtures/comfy/cms/revisions.yml +16 -8
  268. data/test/fixtures/comfy/cms/sites.yml +0 -1
  269. data/test/fixtures/comfy/cms/snippets.yml +1 -1
  270. data/test/fixtures/comfy/cms/translations.yml +7 -0
  271. data/test/fixtures/generators/cms/application.rb +7 -0
  272. data/test/fixtures/generators/cms/routes.rb +4 -7
  273. data/test/fixtures/generators/scaffold/controller.rb +10 -10
  274. data/test/fixtures/generators/scaffold/migration.rb +2 -3
  275. data/test/fixtures/generators/scaffold/model.rb +7 -7
  276. data/test/fixtures/generators/scaffold/routes.rb +1 -2
  277. data/test/fixtures/generators/scaffold/tests/controller.rb +37 -24
  278. data/test/fixtures/generators/scaffold/tests/model.rb +3 -4
  279. data/test/fixtures/generators/scaffold/views/_form.haml +3 -2
  280. data/test/fixtures/generators/scaffold/views/edit.haml +1 -1
  281. data/test/fixtures/generators/scaffold/views/index.haml +15 -13
  282. data/test/fixtures/generators/scaffold/views/new.haml +1 -1
  283. data/test/fixtures/generators/scaffold/views/show.haml +2 -2
  284. data/test/gemfiles/Gemfile.rails.5.2 +32 -0
  285. data/test/generators/cms_assets_generator_test.rb +1 -2
  286. data/test/generators/cms_generator_test.rb +3 -1
  287. data/test/generators/cms_views_generator_test.rb +1 -1
  288. data/test/generators/scaffold_generator_test.rb +2 -2
  289. data/test/helpers/cms_helper_test.rb +52 -73
  290. data/test/integration/access_control_test.rb +35 -28
  291. data/test/integration/js_variables_test.rb +1 -2
  292. data/test/integration/render_cms_test.rb +37 -37
  293. data/test/integration/routing_test.rb +4 -5
  294. data/test/integration/seeds_test.rb +76 -0
  295. data/test/integration/sites_test.rb +35 -49
  296. data/test/integration/view_hooks_test.rb +12 -13
  297. data/test/lib/configuration_test.rb +3 -4
  298. data/test/lib/content/block_test.rb +26 -0
  299. data/test/lib/content/params_parser_test.rb +125 -0
  300. data/test/lib/content/renderer_test.rb +240 -0
  301. data/test/lib/content/tag_test.rb +48 -0
  302. data/test/lib/content/tags/asset_test.rb +79 -0
  303. data/test/lib/content/tags/checkbox_test.rb +20 -0
  304. data/test/lib/content/tags/date_test.rb +20 -0
  305. data/test/lib/content/tags/datetime_test.rb +20 -0
  306. data/test/lib/content/tags/file_link_test.rb +78 -0
  307. data/test/lib/content/tags/file_test.rb +60 -0
  308. data/test/lib/content/tags/files_test.rb +49 -0
  309. data/test/lib/content/tags/fragment_test.rb +63 -0
  310. data/test/lib/content/tags/helper_test.rb +52 -0
  311. data/test/lib/content/tags/markdown_test.rb +33 -0
  312. data/test/lib/content/tags/number_test.rb +13 -0
  313. data/test/lib/content/tags/partial_test.rb +43 -0
  314. data/test/lib/content/tags/snippet_test.rb +36 -0
  315. data/test/lib/content/tags/template_test.rb +35 -0
  316. data/test/lib/content/tags/text_test.rb +13 -0
  317. data/test/lib/content/tags/textarea_test.rb +13 -0
  318. data/test/lib/content/tags/wysiwyg_test.rb +13 -0
  319. data/test/lib/revisions_test.rb +146 -111
  320. data/test/lib/seeds/files_test.rb +96 -0
  321. data/test/lib/seeds/layouts_test.rb +155 -0
  322. data/test/lib/seeds/pages_test.rb +227 -0
  323. data/test/lib/seeds/snippets_test.rb +98 -0
  324. data/test/lib/seeds_test.rb +50 -0
  325. data/test/models/categorization_test.rb +37 -38
  326. data/test/models/category_test.rb +14 -14
  327. data/test/models/file_test.rb +23 -96
  328. data/test/models/fragment_test.rb +131 -0
  329. data/test/models/layout_test.rb +105 -74
  330. data/test/models/page_test.rb +352 -97
  331. data/test/models/site_test.rb +101 -90
  332. data/test/models/snippet_test.rb +29 -23
  333. data/test/models/translation_test.rb +60 -0
  334. data/test/tasks/cms_seeds_test.rb +33 -0
  335. data/test/test_helper.rb +49 -32
  336. metadata +235 -210
  337. data/_config.yml +0 -1
  338. data/app/assets/images/comfy/admin/cms/arrow_bottom.gif +0 -0
  339. data/app/assets/images/comfy/admin/cms/arrow_right.gif +0 -0
  340. data/app/assets/images/comfy/admin/cms/checkerboard.gif +0 -0
  341. data/app/assets/images/comfy/admin/cms/icon_draft.gif +0 -0
  342. data/app/assets/images/comfy/admin/cms/icon_file.gif +0 -0
  343. data/app/assets/images/comfy/admin/cms/icon_layout.gif +0 -0
  344. data/app/assets/images/comfy/admin/cms/icon_move.gif +0 -0
  345. data/app/assets/images/comfy/admin/cms/icon_page.gif +0 -0
  346. data/app/assets/images/comfy/admin/cms/icon_site.gif +0 -0
  347. data/app/assets/images/comfy/admin/cms/icon_snippet.gif +0 -0
  348. data/app/assets/javascripts/comfy/admin/cms/lib/bootstrap-datetimepicker.js +0 -29
  349. data/app/assets/javascripts/comfy/admin/cms/lib/diff.js.coffee +0 -9
  350. data/app/assets/javascripts/comfy/admin/cms/lib/diff/pretty_text_diff.min.js +0 -5
  351. data/app/assets/stylesheets/comfy/admin/cms/bootstrap_overrides.sass +0 -32
  352. data/app/assets/stylesheets/comfy/admin/cms/lib/bootstrap-datetimepicker.css +0 -9
  353. data/app/models/comfy/cms/block.rb +0 -63
  354. data/app/views/comfy/admin/cms/files/_page_form.html.haml +0 -10
  355. data/app/views/comfy/admin/cms/pages/_form_blocks.html.haml +0 -32
  356. data/app/views/comfy/admin/cms/pages/form_blocks.js.erb +0 -1
  357. data/app/views/comfy/admin/cms/partials/_body_before.html.haml +0 -3
  358. data/app/views/comfy/admin/cms/partials/_file_form_after.html.haml +0 -3
  359. data/app/views/comfy/admin/cms/partials/_file_form_before.html.haml +0 -3
  360. data/app/views/comfy/admin/cms/partials/_files_after.html.haml +0 -3
  361. data/app/views/comfy/admin/cms/partials/_files_before.html.haml +0 -3
  362. data/app/views/comfy/admin/cms/partials/_html_footer.html.haml +0 -2
  363. data/app/views/comfy/admin/cms/partials/_html_head.html.haml +0 -2
  364. data/app/views/comfy/admin/cms/partials/_layout_form_after.html.haml +0 -3
  365. data/app/views/comfy/admin/cms/partials/_layout_form_before.html.haml +0 -3
  366. data/app/views/comfy/admin/cms/partials/_layouts_after.html.haml +0 -3
  367. data/app/views/comfy/admin/cms/partials/_layouts_before.html.haml +0 -3
  368. data/app/views/comfy/admin/cms/partials/_navigation_after.html.haml +0 -3
  369. data/app/views/comfy/admin/cms/partials/_navigation_before.html.haml +0 -3
  370. data/app/views/comfy/admin/cms/partials/_navigation_inner.html.haml +0 -3
  371. data/app/views/comfy/admin/cms/partials/_page_form_after.html.haml +0 -3
  372. data/app/views/comfy/admin/cms/partials/_page_form_before.html.haml +0 -3
  373. data/app/views/comfy/admin/cms/partials/_page_form_inner.html.haml +0 -3
  374. data/app/views/comfy/admin/cms/partials/_pages_after.html.haml +0 -3
  375. data/app/views/comfy/admin/cms/partials/_pages_before.html.haml +0 -3
  376. data/app/views/comfy/admin/cms/partials/_right_column_after.html.haml +0 -3
  377. data/app/views/comfy/admin/cms/partials/_right_column_before.html.haml +0 -3
  378. data/app/views/comfy/admin/cms/partials/_site_form_after.html.haml +0 -3
  379. data/app/views/comfy/admin/cms/partials/_site_form_before.html.haml +0 -3
  380. data/app/views/comfy/admin/cms/partials/_sites_after.html.haml +0 -3
  381. data/app/views/comfy/admin/cms/partials/_sites_before.html.haml +0 -3
  382. data/app/views/comfy/admin/cms/partials/_snippet_form_after.html.haml +0 -3
  383. data/app/views/comfy/admin/cms/partials/_snippet_form_before.html.haml +0 -3
  384. data/app/views/comfy/admin/cms/partials/_snippets_after.html.haml +0 -3
  385. data/app/views/comfy/admin/cms/partials/_snippets_before.html.haml +0 -3
  386. data/app/views/comfy/admin/cms/sites/_mirrors.html.haml +0 -18
  387. data/app/views/comfy/cms/content/render_sitemap.xml.builder +0 -14
  388. data/app/views/layouts/comfy/admin/cms/_footer.html.haml +0 -3
  389. data/config/initializers/paperclip.rb +0 -3
  390. data/config/initializers/secret_token.rb +0 -15
  391. data/db/cms_fixtures/sample-site/categories/files.yml +0 -1
  392. data/db/cms_fixtures/sample-site/categories/pages.yml +0 -1
  393. data/db/cms_fixtures/sample-site/categories/snippets.yml +0 -1
  394. data/db/cms_fixtures/sample-site/files/_sample.jpg.yml +0 -5
  395. data/db/cms_fixtures/sample-site/layouts/default/attributes.yml +0 -1
  396. data/db/cms_fixtures/sample-site/layouts/default/content.html +0 -5
  397. data/db/cms_fixtures/sample-site/layouts/default/javascript.js +0 -1
  398. data/db/cms_fixtures/sample-site/layouts/default/nested/attributes.yml +0 -2
  399. data/db/cms_fixtures/sample-site/layouts/default/nested/content.haml +0 -3
  400. data/db/cms_fixtures/sample-site/layouts/default/nested/javascript.js +0 -1
  401. data/db/cms_fixtures/sample-site/layouts/default/nested/stylesheet.css +0 -1
  402. data/db/cms_fixtures/sample-site/layouts/default/stylesheet.css +0 -1
  403. data/db/cms_fixtures/sample-site/pages/index/attributes.yml +0 -6
  404. data/db/cms_fixtures/sample-site/pages/index/child/attributes.yml +0 -3
  405. data/db/cms_fixtures/sample-site/pages/index/child/left.haml +0 -1
  406. data/db/cms_fixtures/sample-site/pages/index/child/right.html +0 -1
  407. data/db/cms_fixtures/sample-site/pages/index/content.html +0 -2
  408. data/db/cms_fixtures/sample-site/snippets/default/attributes.yml +0 -4
  409. data/db/cms_fixtures/sample-site/snippets/default/content.html +0 -1
  410. data/db/seeds.rb +0 -7
  411. data/db/upgrade_migrations/02_upgrade_to_1_1_0.rb +0 -19
  412. data/db/upgrade_migrations/03_upgrade_to_1_2_0.rb +0 -15
  413. data/db/upgrade_migrations/04_upgrade_to_1_3_0.rb +0 -23
  414. data/db/upgrade_migrations/05_upgrade_to_1_4_0.rb +0 -33
  415. data/db/upgrade_migrations/06_upgrade_to_1_5_0.rb +0 -21
  416. data/db/upgrade_migrations/07_upgrade_to_1_6_0.rb +0 -25
  417. data/db/upgrade_migrations/08_upgrade_to_1_12_0.rb +0 -83
  418. data/doc/preview.png +0 -0
  419. data/lib/comfortable_mexican_sofa/extensions/cms_manageable.rb +0 -106
  420. data/lib/comfortable_mexican_sofa/extensions/is_categorized.rb +0 -49
  421. data/lib/comfortable_mexican_sofa/extensions/is_mirrored.rb +0 -86
  422. data/lib/comfortable_mexican_sofa/extensions/rails.rb +0 -17
  423. data/lib/comfortable_mexican_sofa/fixture.rb +0 -82
  424. data/lib/comfortable_mexican_sofa/fixture/category.rb +0 -42
  425. data/lib/comfortable_mexican_sofa/fixture/file.rb +0 -85
  426. data/lib/comfortable_mexican_sofa/fixture/layout.rb +0 -95
  427. data/lib/comfortable_mexican_sofa/fixture/page.rb +0 -129
  428. data/lib/comfortable_mexican_sofa/fixture/snippet.rb +0 -75
  429. data/lib/comfortable_mexican_sofa/tag.rb +0 -154
  430. data/lib/comfortable_mexican_sofa/tags/asset.rb +0 -30
  431. data/lib/comfortable_mexican_sofa/tags/collection.rb +0 -64
  432. data/lib/comfortable_mexican_sofa/tags/field_boolean.rb +0 -17
  433. data/lib/comfortable_mexican_sofa/tags/field_datetime.rb +0 -17
  434. data/lib/comfortable_mexican_sofa/tags/field_integer.rb +0 -17
  435. data/lib/comfortable_mexican_sofa/tags/field_rich_text.rb +0 -17
  436. data/lib/comfortable_mexican_sofa/tags/field_string.rb +0 -17
  437. data/lib/comfortable_mexican_sofa/tags/field_text.rb +0 -17
  438. data/lib/comfortable_mexican_sofa/tags/file.rb +0 -29
  439. data/lib/comfortable_mexican_sofa/tags/helper.rb +0 -24
  440. data/lib/comfortable_mexican_sofa/tags/page_datetime.rb +0 -13
  441. data/lib/comfortable_mexican_sofa/tags/page_file.rb +0 -62
  442. data/lib/comfortable_mexican_sofa/tags/page_files.rb +0 -51
  443. data/lib/comfortable_mexican_sofa/tags/page_integer.rb +0 -13
  444. data/lib/comfortable_mexican_sofa/tags/page_markdown.rb +0 -16
  445. data/lib/comfortable_mexican_sofa/tags/page_rich_text.rb +0 -13
  446. data/lib/comfortable_mexican_sofa/tags/page_string.rb +0 -13
  447. data/lib/comfortable_mexican_sofa/tags/page_text.rb +0 -13
  448. data/lib/comfortable_mexican_sofa/tags/partial.rb +0 -23
  449. data/lib/comfortable_mexican_sofa/tags/snippet.rb +0 -19
  450. data/lib/comfortable_mexican_sofa/tags/template.rb +0 -22
  451. data/lib/generators/comfy/scaffold/templates/views/_form.haml +0 -6
  452. data/lib/generators/comfy/scaffold/templates/views/index.haml +0 -23
  453. data/lib/tasks/comfortable_mexican_sofa.rake +0 -37
  454. data/test/fixtures/comfy/cms/blocks.yml +0 -12
  455. data/test/gemfiles/Gemfile.rails.4.1 +0 -22
  456. data/test/gemfiles/Gemfile.rails.4.2 +0 -22
  457. data/test/gemfiles/Gemfile.rails.5.0 +0 -23
  458. data/test/gemfiles/Gemfile.rails.master +0 -23
  459. data/test/integration/fixtures_test.rb +0 -65
  460. data/test/integration/mirrors_test.rb +0 -72
  461. data/test/lib/fixtures/categories_test.rb +0 -36
  462. data/test/lib/fixtures/files_test.rb +0 -109
  463. data/test/lib/fixtures/layouts_test.rb +0 -135
  464. data/test/lib/fixtures/pages_test.rb +0 -168
  465. data/test/lib/fixtures/snippets_test.rb +0 -106
  466. data/test/lib/fixtures_test.rb +0 -43
  467. data/test/lib/mirrors_test.rb +0 -254
  468. data/test/lib/tag_test.rb +0 -309
  469. data/test/lib/tags/asset_test.rb +0 -95
  470. data/test/lib/tags/collection_test.rb +0 -117
  471. data/test/lib/tags/field_boolean_test.rb +0 -49
  472. data/test/lib/tags/field_datetime_test.rb +0 -50
  473. data/test/lib/tags/field_integer_test.rb +0 -49
  474. data/test/lib/tags/field_rich_text_test.rb +0 -49
  475. data/test/lib/tags/field_string_test.rb +0 -52
  476. data/test/lib/tags/field_text_test.rb +0 -48
  477. data/test/lib/tags/file_test.rb +0 -67
  478. data/test/lib/tags/helper_test.rb +0 -86
  479. data/test/lib/tags/page_datetime_test.rb +0 -50
  480. data/test/lib/tags/page_file_test.rb +0 -119
  481. data/test/lib/tags/page_files_test.rb +0 -117
  482. data/test/lib/tags/page_integer_test.rb +0 -49
  483. data/test/lib/tags/page_markdown_test.rb +0 -48
  484. data/test/lib/tags/page_rich_text_test.rb +0 -49
  485. data/test/lib/tags/page_string_test.rb +0 -49
  486. data/test/lib/tags/page_text_test.rb +0 -52
  487. data/test/lib/tags/partial_test.rb +0 -76
  488. data/test/lib/tags/snippet_test.rb +0 -45
  489. data/test/lib/tags/template_test.rb +0 -56
  490. data/test/models/block_test.rb +0 -233
@@ -4,7 +4,7 @@ class JsVariablesIntegrationTest < ActionDispatch::IntegrationTest
4
4
 
5
5
  def test_redactor_js_variables
6
6
  site = comfy_cms_sites(:default)
7
- http_auth :get, comfy_admin_cms_site_pages_path(site)
7
+ r :get, comfy_admin_cms_site_pages_path(site)
8
8
  assert_response :success
9
9
 
10
10
  js_vars = <<-HTML.strip_heredoc
@@ -17,5 +17,4 @@ class JsVariablesIntegrationTest < ActionDispatch::IntegrationTest
17
17
 
18
18
  assert response.body.match(js_vars)
19
19
  end
20
-
21
20
  end
@@ -10,9 +10,9 @@ class RenderCmsIntergrationTest < ActionDispatch::IntegrationTest
10
10
  get '/site-path/render-page' => 'render_test#render_page'
11
11
  get '/render-layout' => 'render_test#render_layout'
12
12
  end
13
- comfy_cms_layouts(:default).update_columns(:content => '{{cms:page:content}}')
14
- comfy_cms_pages(:child).update_attributes(:blocks_attributes => [
15
- { :identifier => 'content', :content => 'TestBlockContent' }
13
+ comfy_cms_layouts(:default).update_columns(content: '{{cms:text content}}')
14
+ comfy_cms_pages(:child).update_attributes(fragments_attributes: [
15
+ { identifier: 'content', content: 'TestBlockContent' }
16
16
  ])
17
17
  end
18
18
 
@@ -22,15 +22,15 @@ class RenderCmsIntergrationTest < ActionDispatch::IntegrationTest
22
22
 
23
23
  def create_site_b
24
24
  site = Comfy::Cms::Site.create!(
25
- :identifier => 'site-b',
26
- :hostname => 'site-b.test')
25
+ identifier: 'site-b',
26
+ hostname: 'site-b.test')
27
27
  layout = site.layouts.create!(
28
- :identifier => 'default',
29
- :content => 'site-b {{cms:page:content}}')
28
+ identifier: 'default',
29
+ content: 'site-b {{cms:text content}}')
30
30
  page = site.pages.create!(
31
- :label => 'default',
32
- :layout => layout,
33
- :blocks_attributes => [{ :identifier => 'content', :content => 'SiteBContent' }])
31
+ label: 'default',
32
+ layout: layout,
33
+ fragments_attributes: [{identifier: 'content', content: 'SiteBContent'}])
34
34
  end
35
35
 
36
36
  class ::RenderTestController < ApplicationController
@@ -39,7 +39,7 @@ class RenderCmsIntergrationTest < ActionDispatch::IntegrationTest
39
39
  def render_basic
40
40
  case params[:type]
41
41
  when 'text'
42
- render :plain => 'TestText'
42
+ render plain: 'TestText'
43
43
  when 'update'
44
44
  render :update do |page|
45
45
  page.alert('rendered text')
@@ -54,14 +54,14 @@ class RenderCmsIntergrationTest < ActionDispatch::IntegrationTest
54
54
  when 'page_implicit'
55
55
  render
56
56
  when 'page_explicit'
57
- render :cms_page => '/test-page'
57
+ render cms_page: '/test-page'
58
58
  when 'page_explicit_with_status'
59
- render :cms_page => '/test-page', :status => 404
59
+ render cms_page: '/test-page', status: 404
60
60
  when 'page_explicit_with_site'
61
- render :cms_page => '/', :cms_site => 'site-b'
61
+ render cms_page: '/', cms_site: 'site-b'
62
62
  when 'page_explicit_with_blocks'
63
- render :cms_page => '/test-page', :cms_blocks => {
64
- :content => 'custom page content'
63
+ render cms_page: '/test-page', cms_fragments: {
64
+ content: 'custom page content'
65
65
  }
66
66
  else
67
67
  raise 'Invalid or no param[:type] provided'
@@ -72,21 +72,21 @@ class RenderCmsIntergrationTest < ActionDispatch::IntegrationTest
72
72
  @test_value = 'TestValue'
73
73
  case params[:type]
74
74
  when 'layout_defaults'
75
- render :cms_layout => 'default'
75
+ render cms_layout: 'default'
76
76
  when 'layout'
77
- render :cms_layout => 'default', :cms_blocks => {
78
- :content => 'TestText',
79
- :content_b => { :partial => 'render_test/test' },
80
- :content_c => { :template => 'render_test/render_layout' }
77
+ render cms_layout: 'default', cms_fragments: {
78
+ content: 'TestText',
79
+ content_b: {partial: 'render_test/test' },
80
+ content_c: {template: 'render_test/render_layout' }
81
81
  }
82
82
  when 'layout_with_status'
83
- render :cms_layout => 'default', :status => 404
83
+ render cms_layout: 'default', status: 404
84
84
  when 'layout_invalid'
85
- render :cms_layout => 'invalid'
85
+ render cms_layout: 'invalid'
86
86
  when 'layout_defaults_with_site'
87
- render :cms_layout => 'default', :cms_site => 'site-b'
87
+ render cms_layout: 'default', cms_site: 'site-b'
88
88
  when 'layout_with_action'
89
- render :cms_layout => 'default', :action => :new
89
+ render cms_layout: 'default', action: :new
90
90
  else
91
91
  raise 'Invalid or no param[:type] provided'
92
92
  end
@@ -96,7 +96,7 @@ class RenderCmsIntergrationTest < ActionDispatch::IntegrationTest
96
96
  end
97
97
  end
98
98
 
99
- # -- Basic Render Tests ---------------------------------------------------
99
+ # -- Basic Render Tests ------------------------------------------------------
100
100
  def test_text
101
101
  get '/render-basic?type=text'
102
102
  assert_response :success
@@ -110,10 +110,10 @@ class RenderCmsIntergrationTest < ActionDispatch::IntegrationTest
110
110
  end
111
111
  end
112
112
 
113
- # -- Page Render Test -----------------------------------------------------
113
+ # -- Page Render Test --------------------------------------------------------
114
114
  def test_implicit_cms_page
115
115
  page = comfy_cms_pages(:child)
116
- page.update_attributes(:slug => 'render-basic')
116
+ page.update_attributes(slug: 'render-basic')
117
117
  get '/render-basic?type=page_implicit'
118
118
  assert_response :success
119
119
  assert assigns(:cms_site)
@@ -125,7 +125,7 @@ class RenderCmsIntergrationTest < ActionDispatch::IntegrationTest
125
125
 
126
126
  def test_implicit_cms_page_with_site_path
127
127
  comfy_cms_sites(:default).update_column(:path, 'site-path')
128
- comfy_cms_pages(:child).update_attributes(:slug => 'render-page')
128
+ comfy_cms_pages(:child).update_attributes(slug: 'render-page')
129
129
  get '/site-path/render-page?type=page_implicit'
130
130
  assert_response :success
131
131
  assert_equal 'TestBlockContent', response.body
@@ -145,9 +145,9 @@ class RenderCmsIntergrationTest < ActionDispatch::IntegrationTest
145
145
 
146
146
  def test_explicit_cms_page_with_status
147
147
  page = comfy_cms_pages(:child)
148
- page.update_attributes(:slug => 'test-page')
148
+ page.update_attributes(slug: 'test-page')
149
149
  get '/render-page?type=page_explicit_with_status'
150
- assert_response 404
150
+ assert_response :not_found
151
151
  assert assigns(:cms_site)
152
152
  assert assigns(:cms_layout)
153
153
  assert assigns(:cms_page)
@@ -157,10 +157,9 @@ class RenderCmsIntergrationTest < ActionDispatch::IntegrationTest
157
157
 
158
158
  def test_explicit_cms_page_failure
159
159
  page = comfy_cms_pages(:child)
160
- page.update_attributes(:slug => 'invalid')
160
+ page.update_attributes(slug: 'invalid')
161
161
  assert_exception_raised ComfortableMexicanSofa::MissingPage do
162
162
  get '/render-page?type=page_explicit'
163
- raise Rails.env.to_s
164
163
  end
165
164
  end
166
165
 
@@ -187,7 +186,7 @@ class RenderCmsIntergrationTest < ActionDispatch::IntegrationTest
187
186
  assert_equal 'custom page content', response.body
188
187
  end
189
188
 
190
- # -- Layout Render Tests --------------------------------------------------
189
+ # -- Layout Render Tests -----------------------------------------------------
191
190
  def test_cms_layout_defaults
192
191
  get '/render-layout?type=layout_defaults'
193
192
  assert_response :success
@@ -198,7 +197,8 @@ class RenderCmsIntergrationTest < ActionDispatch::IntegrationTest
198
197
  end
199
198
 
200
199
  def test_cms_layout
201
- comfy_cms_layouts(:default).update_columns(:content => '{{cms:page:content}} {{cms:page:content_b}} {{cms:page:content_c}}')
200
+ content = "{{cms:text content}} {{cms:text content_b}} {{cms:text content_c}}"
201
+ comfy_cms_layouts(:default).update_columns(content: content)
202
202
  get '/render-layout?type=layout'
203
203
  assert_response :success
204
204
  assert_equal 'TestText TestPartial TestValue TestTemplate TestValue', response.body
@@ -217,7 +217,8 @@ class RenderCmsIntergrationTest < ActionDispatch::IntegrationTest
217
217
  end
218
218
 
219
219
  def test_cms_layout_with_action
220
- comfy_cms_layouts(:default).update_columns(:content => '{{cms:page:content}} {{cms:page:content_b}} {{cms:page:content_c}}')
220
+ content = "{{cms:text content}} {{cms:text content_b}} {{cms:text content_c}}"
221
+ comfy_cms_layouts(:default).update_columns(content: content)
221
222
  get '/render-layout?type=layout_with_action'
222
223
  assert_response :success
223
224
  assert_equal "Can render CMS layout and specify action\n ", response.body
@@ -246,5 +247,4 @@ class RenderCmsIntergrationTest < ActionDispatch::IntegrationTest
246
247
  get '/render-layout?type=layout_defaults_with_site'
247
248
  end
248
249
  end
249
-
250
250
  end
@@ -1,19 +1,18 @@
1
1
  require_relative '../test_helper'
2
2
 
3
3
  class RoutingIntergrationTest < ActionDispatch::IntegrationTest
4
-
4
+
5
5
  def teardown
6
6
  Rails.application.reload_routes!
7
7
  end
8
8
 
9
9
  def test_cms_public_prefix
10
-
11
10
  assert_nil ComfortableMexicanSofa.config.public_cms_path
12
-
11
+
13
12
  Rails.application.routes.draw do
14
- comfy_route :cms, :path => '/custom'
13
+ comfy_route :cms, path: '/custom'
15
14
  end
16
-
15
+
17
16
  assert_equal '/custom', ComfortableMexicanSofa.config.public_cms_path
18
17
  end
19
18
  end
@@ -0,0 +1,76 @@
1
+ require_relative '../test_helper'
2
+
3
+ class SeedsIntergrationTest < ActionDispatch::IntegrationTest
4
+
5
+ setup do
6
+ @site = comfy_cms_sites(:default)
7
+ @site.update_columns(identifier: 'sample-site')
8
+ end
9
+
10
+ def test_seeds_disabled
11
+ assert_no_difference ['Comfy::Cms::Layout.count', 'Comfy::Cms::Page.count', 'Comfy::Cms::Snippet.count'] do
12
+ get '/'
13
+ assert_response :success
14
+
15
+ assert_equal 'Default Page', Comfy::Cms::Page.root.label
16
+ assert_equal 'Default Layout', Comfy::Cms::Layout.find_by_identifier('default').label
17
+ assert_equal 'Default Snippet', Comfy::Cms::Snippet.find_by_identifier('default').label
18
+ end
19
+ end
20
+
21
+ def test_seeds_enabled
22
+ ComfortableMexicanSofa.config.enable_seeds = true
23
+ Comfy::Cms::Layout.destroy_all
24
+ Comfy::Cms::Page.destroy_all
25
+ Comfy::Cms::Snippet.destroy_all
26
+
27
+ assert_difference 'Comfy::Cms::Page.count', 3 do
28
+ assert_difference 'Comfy::Cms::Layout.count', 2 do
29
+ assert_difference 'Comfy::Cms::Snippet.count', 1 do
30
+ get '/'
31
+ assert_response :success
32
+
33
+ assert_equal 'Home Seed Page', Comfy::Cms::Page.root.label
34
+ assert_equal 'Default Seed Layout', Comfy::Cms::Layout.find_by_identifier('default').label
35
+ assert_equal 'Default Seed Snippet', Comfy::Cms::Snippet.find_by_identifier('default').label
36
+
37
+
38
+ file_path = url_for(ActiveStorage::Blob.find_by(filename: 'header.png'))
39
+ file_path = file_path.sub("http://test.host", "")
40
+ out = <<-HTML.strip_heredoc
41
+ <html>
42
+ <body>
43
+ <img src='#{file_path}' alt='header.png'/>
44
+ <p>Home Page Seed Contént
45
+ Default Seed Snippet Content
46
+ </p>
47
+
48
+
49
+ </body>
50
+ </html>
51
+
52
+ HTML
53
+ assert_equal out, response.body
54
+ end
55
+ end
56
+ end
57
+ end
58
+
59
+ def test_fixtures_enabled_in_admin
60
+ ComfortableMexicanSofa.config.enable_seeds = true
61
+ Comfy::Cms::Layout.destroy_all
62
+ Comfy::Cms::Page.destroy_all
63
+ Comfy::Cms::Snippet.destroy_all
64
+
65
+ assert_difference 'Comfy::Cms::Page.count', 3 do
66
+ assert_difference 'Comfy::Cms::Layout.count', 2 do
67
+ assert_difference 'Comfy::Cms::Snippet.count', 1 do
68
+ r :get, "/admin/sites/#{@site.id}/pages"
69
+ assert_response :success
70
+ assert_equal 'CMS Seeds are enabled. All changes done here will be discarded.', flash[:warning]
71
+ end
72
+ end
73
+ end
74
+ end
75
+
76
+ end
@@ -1,23 +1,23 @@
1
1
  require_relative '../test_helper'
2
2
 
3
3
  class SitesIntegrationTest < ActionDispatch::IntegrationTest
4
-
4
+
5
5
  def test_get_admin_with_single_site
6
- http_auth :get, comfy_admin_cms_path
6
+ r :get, comfy_admin_cms_path
7
7
  assert assigns(:site)
8
8
  assert_equal comfy_cms_sites(:default), assigns(:site)
9
9
  assert_response :redirect
10
10
  assert_redirected_to comfy_admin_cms_site_pages_path(assigns(:site))
11
11
  end
12
-
12
+
13
13
  def test_get_admin_with_no_site
14
14
  Comfy::Cms::Site.delete_all
15
- http_auth :get, comfy_admin_cms_path
15
+ r :get, comfy_admin_cms_path
16
16
  assert_response :redirect
17
17
  assert_redirected_to new_comfy_admin_cms_site_path
18
18
  assert_equal 'Site not found', flash[:danger]
19
19
  end
20
-
20
+
21
21
  def test_get_public_page_with_single_site
22
22
  host! 'bogus.host'
23
23
  get '/'
@@ -25,33 +25,33 @@ class SitesIntegrationTest < ActionDispatch::IntegrationTest
25
25
  assert assigns(:cms_site)
26
26
  assert_equal 'test.host', assigns(:cms_site).hostname
27
27
  end
28
-
28
+
29
29
  def test_get_public_page_with_sites_with_different_paths
30
30
  Comfy::Cms::Site.delete_all
31
- site_a = Comfy::Cms::Site.create!(:identifier => 'site-a', :hostname => 'test.host', :path => '')
32
- site_b = Comfy::Cms::Site.create!(:identifier => 'site-b', :hostname => 'test.host', :path => 'path-b')
33
- site_c = Comfy::Cms::Site.create!(:identifier => 'site-c', :hostname => 'test.host', :path => 'path-c/child')
34
-
31
+ site_a = Comfy::Cms::Site.create!(identifier: 'site-a', hostname: 'test.host', path: '')
32
+ site_b = Comfy::Cms::Site.create!(identifier: 'site-b', hostname: 'test.host', path: 'path-b')
33
+ site_c = Comfy::Cms::Site.create!(identifier: 'site-c', hostname: 'test.host', path: 'path-c/child')
34
+
35
35
  [site_a, site_b, site_c].each do |site|
36
- layout = site.layouts.create!(:identifier => 'test')
37
- site.pages.create!(:label => 'index', :layout => layout)
38
- site.pages.create!(:label => '404', :slug => '404', :layout => layout)
36
+ layout = site.layouts.create!(identifier: 'test')
37
+ site.pages.create!(label: 'index', layout: layout)
38
+ site.pages.create!(label: '404', slug: '404', layout: layout)
39
39
  end
40
-
40
+
41
41
  %w(/ /path-a /path-a/child /path-c).each do |path|
42
42
  get path
43
43
  assert assigns(:cms_site), path
44
44
  assert_equal site_a, assigns(:cms_site)
45
45
  assert_equal path.gsub(/^\//, ''), @controller.params[:cms_path].to_s
46
46
  end
47
-
47
+
48
48
  %w(/path-b /path-b/child).each do |path|
49
49
  get path
50
50
  assert assigns(:cms_site), path
51
51
  assert_equal site_b, assigns(:cms_site)
52
52
  assert_equal path.gsub(/^\/path-b/, '').gsub(/^\//, ''), @controller.params[:cms_path].to_s
53
53
  end
54
-
54
+
55
55
  %w(/path-c/child /path-c/child/child).each do |path|
56
56
  get path
57
57
  assert assigns(:cms_site), path
@@ -59,62 +59,48 @@ class SitesIntegrationTest < ActionDispatch::IntegrationTest
59
59
  assert_equal path.gsub(/^\/path-c\/child/, '').gsub(/^\//, ''), @controller.params[:cms_path].to_s
60
60
  end
61
61
  end
62
-
62
+
63
63
  def test_get_public_page_with_host_with_port
64
64
  Comfy::Cms::Site.delete_all
65
- site_a = Comfy::Cms::Site.create!(:identifier => 'site-a', :hostname => 'test.host:3000')
66
- site_b = Comfy::Cms::Site.create!(:identifier => 'site-b', :hostname => 'test.host')
67
-
65
+ site_a = Comfy::Cms::Site.create!(identifier: 'site-a', hostname: 'test.host:3000')
66
+ site_b = Comfy::Cms::Site.create!(identifier: 'site-b', hostname: 'test.host')
67
+
68
68
  [site_a, site_b].each do |site|
69
- layout = site.layouts.create!(:identifier => 'test')
70
- site.pages.create!(:label => 'index', :layout => layout)
71
- site.pages.create!(:label => '404', :slug => '404', :layout => layout)
69
+ layout = site.layouts.create!(identifier: 'test')
70
+ site.pages.create!(label: 'index', layout: layout)
71
+ site.pages.create!(label: '404', slug: '404', layout: layout)
72
72
  end
73
-
73
+
74
74
  get '/'
75
75
  assert assigns(:cms_site)
76
76
  assert_equal site_b, assigns(:cms_site)
77
77
  end
78
-
79
- def test_get_public_with_locale
80
- get '/'
81
- assert_response :success
82
- assert assigns(:cms_site)
83
- assert_equal :en, I18n.locale
84
-
85
- comfy_cms_sites(:default).update_columns(:locale => 'fr')
86
- get '/'
87
- assert_response :success
88
- assert assigns(:cms_site)
89
- assert_equal :fr, I18n.locale
90
- end
91
-
78
+
92
79
  def test_get_admin_with_locale
93
- http_auth :get, comfy_admin_cms_site_pages_path(comfy_cms_sites(:default))
80
+ r :get, comfy_admin_cms_site_pages_path(comfy_cms_sites(:default))
94
81
  assert_response :success
95
82
  assert_equal :en, I18n.locale
96
-
97
- comfy_cms_sites(:default).update_columns(:locale => 'fr')
98
- http_auth :get, comfy_admin_cms_site_pages_path(comfy_cms_sites(:default))
83
+
84
+ comfy_cms_sites(:default).update_columns(locale: 'fr')
85
+ r :get, comfy_admin_cms_site_pages_path(comfy_cms_sites(:default))
99
86
  assert_response :success
100
87
  assert_equal :fr, I18n.locale
101
88
  end
102
-
89
+
103
90
  def test_get_admin_with_forced_locale
104
91
  ComfortableMexicanSofa.config.admin_locale = :en
105
-
106
- comfy_cms_sites(:default).update_columns(:locale => 'fr')
107
- http_auth :get, comfy_admin_cms_site_pages_path(comfy_cms_sites(:default))
92
+
93
+ comfy_cms_sites(:default).update_columns(locale: 'fr')
94
+ r :get, comfy_admin_cms_site_pages_path(comfy_cms_sites(:default))
108
95
  assert_response :success
109
96
  assert_equal :en, I18n.locale
110
97
 
111
98
  I18n.default_locale = :fr
112
99
  I18n.locale = :fr
113
- http_auth :get, comfy_admin_cms_sites_path
100
+ r :get, comfy_admin_cms_sites_path
114
101
  assert_response :success
115
102
  assert_equal :en, I18n.locale
116
103
 
117
104
  I18n.default_locale = :en
118
105
  end
119
-
120
- end
106
+ end