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
@@ -1,138 +1,248 @@
1
1
  require_relative '../../../../test_helper'
2
2
 
3
- class Comfy::Admin::Cms::RevisionsControllerTest < ActionController::TestCase
4
-
3
+ class Comfy::Admin::Cms::RevisionsControllerTest < ActionDispatch::IntegrationTest
4
+
5
+ setup do
6
+ @site = comfy_cms_sites(:default)
7
+ @layout = comfy_cms_layouts(:default)
8
+ @page = comfy_cms_pages(:default)
9
+ @translation = comfy_cms_translations(:default)
10
+ @snippet = comfy_cms_snippets(:default)
11
+ end
12
+
5
13
  def test_get_index_for_layouts
6
- get :index, :site_id => comfy_cms_sites(:default), :layout_id => comfy_cms_layouts(:default)
14
+ r :get, comfy_admin_cms_site_layout_revisions_path(@site, @layout)
7
15
  assert_response :redirect
8
- assert_redirected_to :action => :show, :id => comfy_cms_revisions(:layout)
16
+ assert_redirected_to action: :show, id: comfy_cms_revisions(:layout)
9
17
  end
10
-
18
+
11
19
  def test_get_index_for_pages
12
- get :index, :site_id => comfy_cms_sites(:default), :page_id => comfy_cms_pages(:default)
20
+ r :get, comfy_admin_cms_site_page_revisions_path(@site, @page)
13
21
  assert_response :redirect
14
- assert_redirected_to :action => :show, :id => comfy_cms_revisions(:page)
22
+ assert_redirected_to action: :show, id: comfy_cms_revisions(:page)
15
23
  end
16
-
24
+
17
25
  def test_get_index_for_snippets
18
- get :index, :site_id => comfy_cms_sites(:default), :snippet_id => comfy_cms_snippets(:default)
26
+ r :get, comfy_admin_cms_site_snippet_revisions_path(@site, @snippet)
19
27
  assert_response :redirect
20
- assert_redirected_to :action => :show, :id => comfy_cms_revisions(:snippet)
28
+ assert_redirected_to action: :show, id: comfy_cms_revisions(:snippet)
21
29
  end
22
-
30
+
31
+ def test_get_index_for_translations
32
+ r :get, comfy_admin_cms_site_page_translation_revisions_path(@site, @page, @translation)
33
+ assert_response :redirect
34
+ assert_redirected_to action: :show, id: comfy_cms_revisions(:translation)
35
+ end
36
+
23
37
  def test_get_index_for_snippets_with_no_revisions
24
38
  Comfy::Cms::Revision.delete_all
25
- get :index, :site_id => comfy_cms_sites(:default), :snippet_id => comfy_cms_snippets(:default)
39
+ r :get, comfy_admin_cms_site_snippet_revisions_path(@site, @snippet)
26
40
  assert_response :redirect
27
- assert_redirected_to :action => :show, :id => 0
41
+ assert_redirected_to action: :show, id: 0
28
42
  end
29
-
43
+
30
44
  def test_get_show_for_layout
31
- get :show, :site_id => comfy_cms_sites(:default), :layout_id => comfy_cms_layouts(:default), :id => comfy_cms_revisions(:layout)
45
+ r :get, comfy_admin_cms_site_layout_revision_path(
46
+ site_id: @site,
47
+ layout_id: @layout,
48
+ id: comfy_cms_revisions(:layout))
32
49
  assert_response :success
33
50
  assert assigns(:record)
34
51
  assert assigns(:revision)
35
52
  assert assigns(:record).is_a?(Comfy::Cms::Layout)
36
53
  assert_template :show
37
54
  end
38
-
55
+
39
56
  def test_get_show_for_page
40
- get :show, :site_id => comfy_cms_sites(:default), :page_id => comfy_cms_pages(:default), :id => comfy_cms_revisions(:page)
57
+ r :get, comfy_admin_cms_site_page_revision_path(
58
+ site_id: @site,
59
+ page_id: @page,
60
+ id: comfy_cms_revisions(:page))
41
61
  assert_response :success
42
62
  assert assigns(:record)
43
63
  assert assigns(:revision)
44
64
  assert assigns(:record).is_a?(Comfy::Cms::Page)
45
65
  assert_template :show
46
66
  end
47
-
67
+
68
+ def test_get_show_for_translation
69
+ r :get, comfy_admin_cms_site_page_translation_revision_path(
70
+ site_id: @site,
71
+ page_id: @page,
72
+ translation_id: @translation,
73
+ id: comfy_cms_revisions(:translation))
74
+ assert_response :success
75
+ assert assigns(:record)
76
+ assert assigns(:revision)
77
+ assert assigns(:record).is_a?(Comfy::Cms::Translation)
78
+ assert_template :show
79
+ end
80
+
48
81
  def test_get_show_for_snippet
49
- get :show, :site_id => comfy_cms_sites(:default), :snippet_id => comfy_cms_snippets(:default), :id => comfy_cms_revisions(:snippet)
82
+ r :get, comfy_admin_cms_site_snippet_revision_path(
83
+ site_id: @site,
84
+ snippet_id: @snippet,
85
+ id: comfy_cms_revisions(:snippet))
50
86
  assert_response :success
51
87
  assert assigns(:record)
52
88
  assert assigns(:revision)
53
89
  assert assigns(:record).is_a?(Comfy::Cms::Snippet)
54
90
  assert_template :show
55
91
  end
56
-
92
+
57
93
  def test_get_show_for_bad_type
58
- get :show, :site_id => comfy_cms_sites(:default), :snippet_id => 'invalid', :id => comfy_cms_revisions(:snippet)
94
+ r :get, comfy_admin_cms_site_layout_revision_path(
95
+ site_id: @site,
96
+ layout_id: 'invalid',
97
+ id: comfy_cms_revisions(:layout))
59
98
  assert_response :redirect
60
99
  assert_redirected_to comfy_admin_cms_path
61
100
  assert_equal 'Record Not Found', flash[:danger]
62
101
  end
63
-
102
+
64
103
  def test_get_show_for_layout_failure
65
- site = comfy_cms_sites(:default)
66
- get :show, :site_id => site, :layout_id => comfy_cms_layouts(:default), :id => 'invalid'
104
+ r :get, comfy_admin_cms_site_layout_revision_path(
105
+ site_id: @site,
106
+ layout_id: @layout,
107
+ id: 'invalid')
67
108
  assert_response :redirect
68
109
  assert assigns(:record)
69
- assert_redirected_to edit_comfy_admin_cms_site_layout_path(site, assigns(:record))
110
+ assert_redirected_to edit_comfy_admin_cms_site_layout_path(@site, assigns(:record))
70
111
  assert_equal 'Revision Not Found', flash[:danger]
71
112
  end
72
-
113
+
73
114
  def test_get_show_for_page_failure
74
- site = comfy_cms_sites(:default)
75
- get :show, :site_id => site, :page_id => comfy_cms_pages(:default), :id => 'invalid'
115
+ r :get, comfy_admin_cms_site_page_revision_path(
116
+ site_id: @site,
117
+ page_id: @page,
118
+ id: 'invalid')
76
119
  assert_response :redirect
77
120
  assert assigns(:record)
78
- assert_redirected_to edit_comfy_admin_cms_site_page_path(site, assigns(:record))
121
+ assert_redirected_to edit_comfy_admin_cms_site_page_path(@site, assigns(:record))
79
122
  assert_equal 'Revision Not Found', flash[:danger]
80
123
  end
81
-
124
+
125
+ def test_get_show_for_translation_failure
126
+ r :get, comfy_admin_cms_site_page_translation_revision_path(
127
+ site_id: @site,
128
+ page_id: @page,
129
+ translation_id: @translation,
130
+ id: 'invalid')
131
+ assert_response :redirect
132
+ assert assigns(:record)
133
+ assert_redirected_to edit_comfy_admin_cms_site_page_translation_path(@site, @page, assigns(:record))
134
+ assert_equal 'Revision Not Found', flash[:danger]
135
+ end
136
+
82
137
  def test_get_show_for_snippet_failure
83
- site = comfy_cms_sites(:default)
84
- get :show, :site_id => site, :snippet_id => comfy_cms_snippets(:default), :id => 'invalid'
138
+ r :get, comfy_admin_cms_site_snippet_revision_path(
139
+ site_id: @site,
140
+ snippet_id: @snippet,
141
+ id: 'invalid')
85
142
  assert_response :redirect
86
143
  assert assigns(:record)
87
- assert_redirected_to edit_comfy_admin_cms_site_snippet_path(site, assigns(:record))
144
+ assert_redirected_to edit_comfy_admin_cms_site_snippet_path(@site, assigns(:record))
88
145
  assert_equal 'Revision Not Found', flash[:danger]
89
146
  end
90
-
147
+
91
148
  def test_revert_for_layout
92
- layout = comfy_cms_layouts(:default)
93
-
94
- assert_difference 'layout.revisions.count' do
95
- put :revert, :site_id => comfy_cms_sites(:default), :layout_id => layout, :id => comfy_cms_revisions(:layout)
149
+ assert_difference -> {@layout.revisions.count} do
150
+ r :patch, revert_comfy_admin_cms_site_layout_revision_path(
151
+ site_id: @site,
152
+ layout_id: @layout,
153
+ id: comfy_cms_revisions(:layout)
154
+ )
96
155
  assert_response :redirect
97
- assert_redirected_to edit_comfy_admin_cms_site_layout_path(layout.site, layout)
156
+ assert_redirected_to edit_comfy_admin_cms_site_layout_path(@site, @layout)
98
157
  assert_equal 'Content Reverted', flash[:success]
99
-
100
- layout.reload
101
- assert_equal 'revision {{cms:page:default_page_text}}', layout.content
102
- assert_equal 'revision css', layout.css
103
- assert_equal 'revision js', layout.js
158
+
159
+ @layout.reload
160
+ assert_equal 'revision {{cms:fragment content}}', @layout.content
161
+ assert_equal 'revision css', @layout.css
162
+ assert_equal 'revision js', @layout.js
104
163
  end
105
164
  end
106
-
165
+
107
166
  def test_revert_for_page
108
- page = comfy_cms_pages(:default)
109
-
110
- assert_difference 'page.revisions.count' do
111
- put :revert, :site_id => comfy_cms_sites(:default), :page_id => page, :id => comfy_cms_revisions(:page)
167
+ assert_difference -> {@page.revisions.count} do
168
+ r :patch, revert_comfy_admin_cms_site_page_revision_path(
169
+ site_id: @site,
170
+ page_id: @page,
171
+ id: comfy_cms_revisions(:page)
172
+ )
112
173
  assert_response :redirect
113
- assert_redirected_to edit_comfy_admin_cms_site_page_path(page.site, page)
174
+ assert_redirected_to edit_comfy_admin_cms_site_page_path(@site, @page)
114
175
  assert_equal 'Content Reverted', flash[:success]
115
-
116
- page.reload
176
+
177
+ @page.reload
178
+
117
179
  assert_equal [
118
- { :identifier => 'default_field_text', :content => 'revision field content' },
119
- { :identifier => 'default_page_text', :content => 'revision page content' }
120
- ], page.blocks_attributes
180
+ { identifier: "boolean",
181
+ tag: "checkbox",
182
+ content: nil,
183
+ datetime: nil,
184
+ boolean: true },
185
+ { identifier: "file",
186
+ tag: "file",
187
+ content: nil,
188
+ datetime: nil,
189
+ boolean: false },
190
+ { identifier: "datetime",
191
+ tag: "datetime",
192
+ content: nil,
193
+ datetime: comfy_cms_fragments(:datetime).datetime,
194
+ boolean: false },
195
+ { identifier: "content",
196
+ tag: "text",
197
+ content: "old content",
198
+ datetime: nil,
199
+ boolean: false },
200
+ { identifier: "title",
201
+ tag: "text",
202
+ content: "old title",
203
+ datetime: nil,
204
+ boolean: false }
205
+ ], @page.fragments_attributes
121
206
  end
122
207
  end
123
-
208
+
209
+ def test_revert_for_page
210
+ assert_difference -> {@translation.revisions.count} do
211
+ r :patch, revert_comfy_admin_cms_site_page_translation_revision_path(
212
+ site_id: @site,
213
+ page_id: @page,
214
+ translation_id: @translation,
215
+ id: comfy_cms_revisions(:translation)
216
+ )
217
+ assert_response :redirect
218
+ assert_redirected_to edit_comfy_admin_cms_site_page_translation_path(@site, @page, @translation)
219
+ assert_equal 'Content Reverted', flash[:success]
220
+
221
+ @translation.reload
222
+
223
+ assert_equal [
224
+ { identifier: "content",
225
+ tag: "text",
226
+ content: "old content",
227
+ datetime: nil,
228
+ boolean: false }
229
+ ], @translation.fragments_attributes
230
+ end
231
+ end
232
+
124
233
  def test_revert_for_snippet
125
- snippet = comfy_cms_snippets(:default)
126
-
127
- assert_difference 'snippet.revisions.count' do
128
- put :revert, :site_id => comfy_cms_sites(:default), :snippet_id => snippet, :id => comfy_cms_revisions(:snippet)
234
+ assert_difference -> {@snippet.revisions.count} do
235
+ r :patch, revert_comfy_admin_cms_site_snippet_revision_path(
236
+ site_id: @site,
237
+ snippet_id: @snippet,
238
+ id: comfy_cms_revisions(:snippet)
239
+ )
129
240
  assert_response :redirect
130
- assert_redirected_to edit_comfy_admin_cms_site_snippet_path(snippet.site, snippet)
241
+ assert_redirected_to edit_comfy_admin_cms_site_snippet_path(@site, @snippet)
131
242
  assert_equal 'Content Reverted', flash[:success]
132
-
133
- snippet.reload
134
- assert_equal 'revision content', snippet.content
243
+
244
+ @snippet.reload
245
+ assert_equal 'revision content', @snippet.content
135
246
  end
136
247
  end
137
-
138
248
  end
@@ -1,9 +1,9 @@
1
1
  require_relative '../../../../test_helper'
2
2
 
3
- class Comfy::Admin::Cms::SitesControllerTest < ActionController::TestCase
3
+ class Comfy::Admin::Cms::SitesControllerTest < ActionDispatch::IntegrationTest
4
4
 
5
5
  def test_get_index
6
- get :index
6
+ r :get, comfy_admin_cms_sites_path
7
7
  assert_response :success
8
8
  assert assigns(:sites)
9
9
  assert_template :index
@@ -11,13 +11,13 @@ class Comfy::Admin::Cms::SitesControllerTest < ActionController::TestCase
11
11
 
12
12
  def test_get_index_with_no_sites
13
13
  Comfy::Cms::Site.delete_all
14
- get :index
14
+ r :get, comfy_admin_cms_sites_path
15
15
  assert_response :redirect
16
- assert_redirected_to :action => :new
16
+ assert_redirected_to new_comfy_admin_cms_site_path
17
17
  end
18
18
 
19
19
  def test_get_new
20
- get :new
20
+ r :get, new_comfy_admin_cms_site_path
21
21
  assert_response :success
22
22
  assert assigns(:site)
23
23
  assert_equal 'test.host', assigns(:site).hostname
@@ -27,7 +27,7 @@ class Comfy::Admin::Cms::SitesControllerTest < ActionController::TestCase
27
27
 
28
28
  def test_get_edit
29
29
  site = comfy_cms_sites(:default)
30
- get :edit, :id => site
30
+ r :get, edit_comfy_admin_cms_site_path(id: site)
31
31
  assert_response :success
32
32
  assert assigns(:site)
33
33
  assert_template :edit
@@ -35,29 +35,29 @@ class Comfy::Admin::Cms::SitesControllerTest < ActionController::TestCase
35
35
  end
36
36
 
37
37
  def test_get_edit_failure
38
- get :edit, :id => 'not_found'
38
+ r :get, edit_comfy_admin_cms_site_path(id: 'invalid')
39
39
  assert_response :redirect
40
- assert_redirected_to :action => :index
40
+ assert_redirected_to action: :index
41
41
  assert_equal 'Site not found', flash[:danger]
42
42
  end
43
43
 
44
44
  def test_create
45
45
  assert_difference 'Comfy::Cms::Site.count' do
46
- post :create, :site => {
47
- :label => 'Test Site',
48
- :identifier => 'test-site',
49
- :hostname => 'test.site.local'
50
- }
46
+ r :post, comfy_admin_cms_sites_path, params: {site: {
47
+ label: 'Test Site',
48
+ identifier: 'test-site',
49
+ hostname: 'test.site.local'
50
+ }}
51
51
  assert_response :redirect
52
52
  site = Comfy::Cms::Site.last
53
- assert_redirected_to comfy_admin_cms_site_layouts_path(site)
53
+ assert_redirected_to comfy_admin_cms_site_layouts_path(site_id: site)
54
54
  assert_equal 'Site created', flash[:success]
55
55
  end
56
56
  end
57
57
 
58
58
  def test_creation_failure
59
59
  assert_no_difference 'Comfy::Cms::Site.count' do
60
- post :create, :site => { }
60
+ r :post, comfy_admin_cms_sites_path, params: {site: {}}
61
61
  assert_response :success
62
62
  assert_template :new
63
63
  assert_equal 'Failed to create site', flash[:danger]
@@ -66,27 +66,25 @@ class Comfy::Admin::Cms::SitesControllerTest < ActionController::TestCase
66
66
 
67
67
  def test_update
68
68
  site = comfy_cms_sites(:default)
69
- put :update, :id => site, :site => {
70
- :label => 'New Site',
71
- :hostname => 'new.site.local',
72
- :locale => 'es',
73
- :is_mirrored => '1'
74
- }
69
+ r :put, comfy_admin_cms_site_path(id: site), params: {site: {
70
+ label: 'New Site',
71
+ hostname: 'new.site.local',
72
+ locale: 'es'
73
+ }}
75
74
  assert_response :redirect
76
- assert_redirected_to :action => :edit, :id => site
75
+ assert_redirected_to action: :edit, id: site
77
76
  assert_equal 'Site updated', flash[:success]
78
77
  site.reload
79
78
  assert_equal 'New Site', site.label
80
79
  assert_equal 'new.site.local', site.hostname
81
80
  assert_equal 'es', site.locale
82
- assert site.is_mirrored?
83
81
  end
84
82
 
85
83
  def test_update_failure
86
84
  site = comfy_cms_sites(:default)
87
- put :update, :id => site, :site => {
88
- :hostname => ''
89
- }
85
+ r :put, comfy_admin_cms_site_path(id: site), params: {site: {
86
+ hostname: ''
87
+ }}
90
88
  assert_response :success
91
89
  assert_template :edit
92
90
  site.reload
@@ -96,10 +94,10 @@ class Comfy::Admin::Cms::SitesControllerTest < ActionController::TestCase
96
94
 
97
95
  def test_destroy
98
96
  assert_difference 'Comfy::Cms::Site.count', -1 do
99
- delete :destroy, :id => comfy_cms_sites(:default)
97
+ r :delete, comfy_admin_cms_site_path(id: comfy_cms_sites(:default))
100
98
  assert_response :redirect
101
- assert_redirected_to :action => :index
99
+ assert_redirected_to action: :index
102
100
  assert_equal 'Site deleted', flash[:success]
103
101
  end
104
102
  end
105
- end
103
+ end
@@ -1,9 +1,14 @@
1
1
  require_relative '../../../../test_helper'
2
2
 
3
- class Comfy::Admin::Cms::SnippetsControllerTest < ActionController::TestCase
3
+ class Comfy::Admin::Cms::SnippetsControllerTest < ActionDispatch::IntegrationTest
4
+
5
+ setup do
6
+ @site = comfy_cms_sites(:default)
7
+ @snippet = comfy_cms_snippets(:default)
8
+ end
4
9
 
5
10
  def test_get_index
6
- get :index, :site_id => comfy_cms_sites(:default)
11
+ r :get, comfy_admin_cms_site_snippets_path(site_id: @site)
7
12
  assert_response :success
8
13
  assert assigns(:snippets)
9
14
  assert_template :index
@@ -11,19 +16,19 @@ class Comfy::Admin::Cms::SnippetsControllerTest < ActionController::TestCase
11
16
 
12
17
  def test_get_index_with_no_snippets
13
18
  Comfy::Cms::Snippet.delete_all
14
- get :index, :site_id => comfy_cms_sites(:default)
19
+ r :get, comfy_admin_cms_site_snippets_path(site_id: @site)
15
20
  assert_response :redirect
16
- assert_redirected_to :action => :new
21
+ assert_redirected_to action: :new
17
22
  end
18
23
 
19
24
  def test_get_index_with_category
20
- category = comfy_cms_sites(:default).categories.create!(
21
- :label => 'Test Category',
22
- :categorized_type => 'Comfy::Cms::Snippet'
25
+ category = @site.categories.create!(
26
+ label: 'Test Category',
27
+ categorized_type: 'Comfy::Cms::Snippet'
23
28
  )
24
- category.categorizations.create!(:categorized => comfy_cms_snippets(:default))
29
+ category.categorizations.create!(categorized: @snippet)
25
30
 
26
- get :index, :site_id => comfy_cms_sites(:default), :category => category.label
31
+ r :get, comfy_admin_cms_site_snippets_path(site_id: @site), params: {categories: category.label}
27
32
  assert_response :success
28
33
  assert assigns(:snippets)
29
34
  assert_equal 1, assigns(:snippets).count
@@ -31,63 +36,62 @@ class Comfy::Admin::Cms::SnippetsControllerTest < ActionController::TestCase
31
36
  end
32
37
 
33
38
  def test_get_index_with_category_invalid
34
- get :index, :site_id => comfy_cms_sites(:default), :category => 'invalid'
39
+ r :get, comfy_admin_cms_site_snippets_path(site_id: @site), params: {categories: 'invalid'}
35
40
  assert_response :success
36
41
  assert assigns(:snippets)
37
42
  assert_equal 0, assigns(:snippets).count
38
43
  end
39
44
 
40
45
  def test_get_new
41
- site = comfy_cms_sites(:default)
42
- get :new, :site_id => site
46
+ r :get, new_comfy_admin_cms_site_snippet_path(site_id: @site)
43
47
  assert_response :success
44
48
  assert assigns(:snippet)
45
49
  assert_template :new
46
- assert_select "form[action='/admin/sites/#{site.id}/snippets']"
50
+ assert_select "form[action='/admin/sites/#{@site.id}/snippets']"
47
51
  end
48
52
 
49
53
  def test_get_edit
50
- snippet = comfy_cms_snippets(:default)
51
- get :edit, :site_id => snippet.site, :id => snippet
54
+ r :get, edit_comfy_admin_cms_site_snippet_path(site_id: @site, id: @snippet)
52
55
  assert_response :success
53
56
  assert assigns(:snippet)
54
57
  assert_template :edit
55
- assert_select "form[action='/admin/sites/#{snippet.site.id}/snippets/#{snippet.id}']"
58
+ assert_select "form[action='/admin/sites/#{@site.id}/snippets/#{@snippet.id}']"
56
59
  end
57
60
 
58
61
  def test_get_edit_with_params
59
- snippet = comfy_cms_snippets(:default)
60
- get :edit, :site_id => snippet.site, :id => snippet, :snippet => {:label => 'New Label'}
62
+ r :get, edit_comfy_admin_cms_site_snippet_path(site_id: @site, id: @snippet), params: {snippet: {
63
+ label: 'New Label'
64
+ }}
61
65
  assert_response :success
62
66
  assert assigns(:snippet)
63
67
  assert_equal 'New Label', assigns(:snippet).label
64
68
  end
65
69
 
66
70
  def test_get_edit_failure
67
- get :edit, :site_id => comfy_cms_sites(:default), :id => 'not_found'
71
+ r :get, edit_comfy_admin_cms_site_snippet_path(site_id: @site, id: 'invalid')
68
72
  assert_response :redirect
69
- assert_redirected_to :action => :index
73
+ assert_redirected_to action: :index
70
74
  assert_equal 'Snippet not found', flash[:danger]
71
75
  end
72
76
 
73
77
  def test_create
74
78
  assert_difference 'Comfy::Cms::Snippet.count' do
75
- post :create, :site_id => comfy_cms_sites(:default), :snippet => {
76
- :label => 'Test Snippet',
77
- :identifier => 'test-snippet',
78
- :content => 'Test Content'
79
- }
79
+ r :post, comfy_admin_cms_site_snippets_path(site_id: @site), params: {snippet: {
80
+ label: 'Test Snippet',
81
+ identifier: 'test-snippet',
82
+ content: 'Test Content'
83
+ }}
80
84
  assert_response :redirect
81
85
  snippet = Comfy::Cms::Snippet.last
82
- assert_equal comfy_cms_sites(:default), snippet.site
83
- assert_redirected_to :action => :edit, :id => snippet
86
+ assert_equal @site, snippet.site
87
+ assert_redirected_to action: :edit, id: snippet
84
88
  assert_equal 'Snippet created', flash[:success]
85
89
  end
86
90
  end
87
91
 
88
92
  def test_creation_failure
89
93
  assert_no_difference 'Comfy::Cms::Snippet.count' do
90
- post :create, :site_id => comfy_cms_sites(:default), :snippet => { }
94
+ r :post, comfy_admin_cms_site_snippets_path(site_id: @site), params: {snippet: { }}
91
95
  assert_response :success
92
96
  assert_template :new
93
97
  assert_equal 'Failed to create snippet', flash[:danger]
@@ -95,50 +99,50 @@ class Comfy::Admin::Cms::SnippetsControllerTest < ActionController::TestCase
95
99
  end
96
100
 
97
101
  def test_update
98
- snippet = comfy_cms_snippets(:default)
99
- put :update, :site_id => snippet.site, :id => snippet, :snippet => {
100
- :label => 'New-Snippet',
101
- :content => 'New Content'
102
- }
102
+ r :put, comfy_admin_cms_site_snippet_path(site_id: @site, id: @snippet), params: {snippet: {
103
+ label: 'New-Snippet',
104
+ content: 'New Content'
105
+ }}
103
106
  assert_response :redirect
104
- assert_redirected_to :action => :edit, :site_id => snippet.site, :id => snippet
107
+ assert_redirected_to action: :edit, site_id: @site, id: @snippet
105
108
  assert_equal 'Snippet updated', flash[:success]
106
- snippet.reload
107
- assert_equal 'New-Snippet', snippet.label
108
- assert_equal 'New Content', snippet.content
109
+ @snippet.reload
110
+ assert_equal 'New-Snippet', @snippet.label
111
+ assert_equal 'New Content', @snippet.content
109
112
  end
110
113
 
111
114
  def test_update_failure
112
- snippet = comfy_cms_snippets(:default)
113
- put :update, :site_id => snippet.site, :id => snippet, :snippet => {
114
- :identifier => ''
115
- }
115
+ r :put, comfy_admin_cms_site_snippet_path(site_id: @site, id: @snippet), params: {snippet: {
116
+ identifier: ''
117
+ }}
116
118
  assert_response :success
117
119
  assert_template :edit
118
- snippet.reload
119
- assert_not_equal '', snippet.identifier
120
+ @snippet.reload
121
+ assert_not_equal '', @snippet.identifier
120
122
  assert_equal 'Failed to update snippet', flash[:danger]
121
123
  end
122
124
 
123
125
  def test_destroy
124
126
  assert_difference 'Comfy::Cms::Snippet.count', -1 do
125
- delete :destroy, :site_id => comfy_cms_sites(:default), :id => comfy_cms_snippets(:default)
127
+ r :delete, comfy_admin_cms_site_snippet_path(site_id: @site, id: @snippet)
126
128
  assert_response :redirect
127
- assert_redirected_to :action => :index
129
+ assert_redirected_to action: :index
128
130
  assert_equal 'Snippet deleted', flash[:success]
129
131
  end
130
132
  end
131
133
 
132
134
  def test_reorder
133
- snippet_one = comfy_cms_snippets(:default)
134
- snippet_two = comfy_cms_sites(:default).snippets.create!(
135
- :label => 'test',
136
- :identifier => 'test'
135
+ snippet_one = @snippet
136
+ snippet_two = @site.snippets.create!(
137
+ label: 'test',
138
+ identifier: 'test'
137
139
  )
138
140
  assert_equal 0, snippet_one.position
139
141
  assert_equal 1, snippet_two.position
140
142
 
141
- post :reorder, :site_id => comfy_cms_sites(:default), :comfy_cms_snippet => [snippet_two.id, snippet_one.id]
143
+ r :put, reorder_comfy_admin_cms_site_snippets_path(site_id: @site), params: {
144
+ comfy_cms_snippet: [snippet_two.id, snippet_one.id]
145
+ }
142
146
  assert_response :success
143
147
  snippet_one.reload
144
148
  snippet_two.reload
@@ -146,5 +150,4 @@ class Comfy::Admin::Cms::SnippetsControllerTest < ActionController::TestCase
146
150
  assert_equal 1, snippet_one.position
147
151
  assert_equal 0, snippet_two.position
148
152
  end
149
-
150
153
  end