comfortable_mexican_sofa 2.0.9 → 2.0.10
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/assets/javascripts/comfy/vendor/bootstrap.min.js +3 -3
- data/app/assets/stylesheets/comfy/admin/cms/application.sass +1 -2
- data/app/assets/stylesheets/comfy/admin/cms/base.sass +12 -13
- data/app/assets/stylesheets/comfy/vendor/bootstrap/_alert.scss +3 -1
- data/app/assets/stylesheets/comfy/vendor/bootstrap/_button-group.scss +31 -72
- data/app/assets/stylesheets/comfy/vendor/bootstrap/_buttons.scss +26 -19
- data/app/assets/stylesheets/comfy/vendor/bootstrap/_card.scss +23 -12
- data/app/assets/stylesheets/comfy/vendor/bootstrap/_carousel.scss +2 -2
- data/app/assets/stylesheets/comfy/vendor/bootstrap/_close.scss +6 -1
- data/app/assets/stylesheets/comfy/vendor/bootstrap/_code.scss +4 -12
- data/app/assets/stylesheets/comfy/vendor/bootstrap/_custom-forms.scss +124 -84
- data/app/assets/stylesheets/comfy/vendor/bootstrap/_dropdown.scss +30 -2
- data/app/assets/stylesheets/comfy/vendor/bootstrap/_forms.scss +46 -71
- data/app/assets/stylesheets/comfy/vendor/bootstrap/_functions.scss +4 -4
- data/app/assets/stylesheets/comfy/vendor/bootstrap/_images.scss +0 -1
- data/app/assets/stylesheets/comfy/vendor/bootstrap/_input-group.scss +99 -126
- data/app/assets/stylesheets/comfy/vendor/bootstrap/_list-group.scss +2 -1
- data/app/assets/stylesheets/comfy/vendor/bootstrap/_modal.scss +24 -9
- data/app/assets/stylesheets/comfy/vendor/bootstrap/_nav.scss +2 -2
- data/app/assets/stylesheets/comfy/vendor/bootstrap/_navbar.scss +8 -3
- data/app/assets/stylesheets/comfy/vendor/bootstrap/_pagination.scss +32 -19
- data/app/assets/stylesheets/comfy/vendor/bootstrap/_popover.scss +106 -117
- data/app/assets/stylesheets/comfy/vendor/bootstrap/_print.scss +17 -3
- data/app/assets/stylesheets/comfy/vendor/bootstrap/_progress.scss +4 -1
- data/app/assets/stylesheets/comfy/vendor/bootstrap/_reboot.scss +3 -25
- data/app/assets/stylesheets/comfy/vendor/bootstrap/_tables.scss +1 -1
- data/app/assets/stylesheets/comfy/vendor/bootstrap/_tooltip.scss +65 -57
- data/app/assets/stylesheets/comfy/vendor/bootstrap/_type.scss +2 -2
- data/app/assets/stylesheets/comfy/vendor/bootstrap/_variables.scss +174 -108
- data/app/assets/stylesheets/comfy/vendor/bootstrap/bootstrap-grid.scss +32 -0
- data/app/assets/stylesheets/comfy/vendor/bootstrap/bootstrap-reboot.scss +12 -0
- data/app/assets/stylesheets/comfy/vendor/bootstrap/bootstrap.scss +42 -0
- data/app/assets/stylesheets/comfy/vendor/bootstrap/mixins/_background-variant.scss +2 -1
- data/app/assets/stylesheets/comfy/vendor/bootstrap/mixins/_breakpoints.scss +11 -7
- data/app/assets/stylesheets/comfy/vendor/bootstrap/mixins/_buttons.scss +37 -22
- data/app/assets/stylesheets/comfy/vendor/bootstrap/mixins/_caret.scss +30 -0
- data/app/assets/stylesheets/comfy/vendor/bootstrap/mixins/_forms.scss +48 -19
- data/app/assets/stylesheets/comfy/vendor/bootstrap/mixins/_grid-framework.scss +5 -7
- data/app/assets/stylesheets/comfy/vendor/bootstrap/mixins/_hover.scss +24 -46
- data/app/assets/stylesheets/comfy/vendor/bootstrap/mixins/_list-group.scss +10 -13
- data/app/assets/stylesheets/comfy/vendor/bootstrap/mixins/_screen-reader.scss +1 -1
- data/app/assets/stylesheets/comfy/vendor/bootstrap/mixins/_text-hide.scss +1 -0
- data/app/assets/stylesheets/comfy/vendor/bootstrap/utilities/_borders.scss +6 -1
- data/app/assets/stylesheets/comfy/vendor/bootstrap/utilities/_display.scss +10 -28
- data/app/controllers/comfy/admin/cms/files_controller.rb +6 -7
- data/app/helpers/comfy/admin/cms_helper.rb +5 -4
- data/app/models/concerns/comfy/cms/with_categories.rb +20 -9
- data/app/views/comfy/admin/cms/categories/_edit.html.haml +3 -3
- data/app/views/comfy/admin/cms/categories/_form.html.haml +3 -9
- data/app/views/comfy/admin/cms/categories/_index.html.haml +2 -2
- data/app/views/comfy/admin/cms/categories/_show.html.haml +4 -3
- data/app/views/comfy/admin/cms/categories/create.js.erb +1 -1
- data/app/views/comfy/admin/cms/files/_form.html.haml +11 -12
- data/app/views/comfy/admin/cms/files/edit.html.haml +2 -2
- data/app/views/comfy/admin/cms/files/new.html.haml +2 -2
- data/app/views/comfy/admin/cms/fragments/_form_fragment_attachments.html.haml +7 -5
- data/app/views/comfy/admin/cms/fragments/_form_fragments.html.haml +1 -1
- data/app/views/comfy/admin/cms/layouts/_form.html.haml +3 -2
- data/app/views/comfy/admin/cms/layouts/edit.html.haml +1 -1
- data/app/views/comfy/admin/cms/layouts/new.html.haml +2 -2
- data/app/views/comfy/admin/cms/pages/_form.html.haml +3 -5
- data/app/views/comfy/admin/cms/pages/edit.html.haml +1 -1
- data/app/views/comfy/admin/cms/pages/new.html.haml +1 -1
- data/app/views/comfy/admin/cms/revisions/show.html.haml +2 -2
- data/app/views/comfy/admin/cms/sites/_form.html.haml +4 -4
- data/app/views/comfy/admin/cms/sites/edit.html.haml +1 -1
- data/app/views/comfy/admin/cms/sites/new.html.haml +2 -2
- data/app/views/comfy/admin/cms/snippets/_form.html.haml +2 -2
- data/app/views/comfy/admin/cms/snippets/edit.html.haml +1 -1
- data/app/views/comfy/admin/cms/snippets/new.html.haml +2 -2
- data/app/views/comfy/admin/cms/translations/_form.html.haml +5 -7
- data/app/views/comfy/admin/cms/translations/edit.html.haml +1 -1
- data/app/views/comfy/admin/cms/translations/new.html.haml +2 -2
- data/comfortable_mexican_sofa.gemspec +6 -3
- data/config/locales/fr.yml +33 -33
- data/lib/comfortable_mexican_sofa/content/tags/file.rb +1 -1
- data/lib/comfortable_mexican_sofa/content/tags/files.rb +1 -1
- data/lib/comfortable_mexican_sofa/form_builder.rb +10 -15
- data/lib/comfortable_mexican_sofa/seeds.rb +2 -5
- data/lib/comfortable_mexican_sofa/version.rb +1 -1
- metadata +9 -116
- data/app/assets/stylesheets/comfy/vendor/_bootstrap.scss +0 -42
- data/doc/preview.jpg +0 -0
- data/test/controllers/comfy/admin/cms/base_controller_test.rb +0 -18
- data/test/controllers/comfy/admin/cms/categories_controller_test.rb +0 -74
- data/test/controllers/comfy/admin/cms/files_controller_test.rb +0 -242
- data/test/controllers/comfy/admin/cms/layouts_controller_test.rb +0 -137
- data/test/controllers/comfy/admin/cms/pages_controller_test.rb +0 -580
- data/test/controllers/comfy/admin/cms/revisions/layout_controller_test.rb +0 -62
- data/test/controllers/comfy/admin/cms/revisions/page_controller_test.rb +0 -87
- data/test/controllers/comfy/admin/cms/revisions/snippet_controller_test.rb +0 -60
- data/test/controllers/comfy/admin/cms/revisions/translation_controller_test.rb +0 -68
- data/test/controllers/comfy/admin/cms/sites_controller_test.rb +0 -106
- data/test/controllers/comfy/admin/cms/snippets_controller_test.rb +0 -156
- data/test/controllers/comfy/admin/cms/translations_controller_test.rb +0 -182
- data/test/controllers/comfy/cms/assets_controller_test.rb +0 -61
- data/test/controllers/comfy/cms/content_controller_test.rb +0 -249
- data/test/fixtures/active_storage/attachments.yml +0 -9
- data/test/fixtures/active_storage/blobs.yml +0 -13
- data/test/fixtures/comfy/cms/categories.yml +0 -4
- data/test/fixtures/comfy/cms/categorizations.yml +0 -3
- data/test/fixtures/comfy/cms/files.yml +0 -5
- data/test/fixtures/comfy/cms/fragments.yml +0 -25
- data/test/fixtures/comfy/cms/layouts.yml +0 -34
- data/test/fixtures/comfy/cms/pages.yml +0 -24
- data/test/fixtures/comfy/cms/revisions.yml +0 -29
- data/test/fixtures/comfy/cms/sites.yml +0 -5
- data/test/fixtures/comfy/cms/snippets.yml +0 -6
- data/test/fixtures/comfy/cms/translations.yml +0 -7
- data/test/fixtures/files/data.zip +0 -0
- data/test/fixtures/files/document.pdf +0 -0
- data/test/fixtures/files/image.gif +0 -0
- data/test/fixtures/files/image.jpg +0 -0
- data/test/fixtures/generators/cms/application.rb +0 -7
- data/test/fixtures/generators/cms/routes.rb +0 -5
- data/test/fixtures/generators/scaffold/controller.rb +0 -62
- data/test/fixtures/generators/scaffold/migration.rb +0 -9
- data/test/fixtures/generators/scaffold/model.rb +0 -21
- data/test/fixtures/generators/scaffold/routes.rb +0 -6
- data/test/fixtures/generators/scaffold/tests/controller.rb +0 -111
- data/test/fixtures/generators/scaffold/tests/fixture +0 -2
- data/test/fixtures/generators/scaffold/tests/model.rb +0 -24
- data/test/fixtures/generators/scaffold/views/_form.haml +0 -5
- data/test/fixtures/generators/scaffold/views/edit.haml +0 -5
- data/test/fixtures/generators/scaffold/views/index.haml +0 -21
- data/test/fixtures/generators/scaffold/views/new.haml +0 -5
- data/test/fixtures/generators/scaffold/views/show.haml +0 -4
- data/test/fixtures/views/_nav_hook.html.erb +0 -1
- data/test/fixtures/views/_nav_hook_2.html.erb +0 -1
- data/test/fixtures/views/render_test/_test.html.erb +0 -1
- data/test/fixtures/views/render_test/new.html.erb +0 -1
- data/test/fixtures/views/render_test/render_layout.html.erb +0 -1
- data/test/gemfiles/5.2.gemfile +0 -19
- data/test/generators/cms_assets_generator_test.rb +0 -14
- data/test/generators/cms_controllers_generator_test.rb +0 -14
- data/test/generators/cms_generator_test.rb +0 -26
- data/test/generators/cms_models_generator_test.rb +0 -14
- data/test/generators/cms_views_generator_test.rb +0 -14
- data/test/generators/scaffold_generator_test.rb +0 -32
- data/test/helpers/cms_helper_test.rb +0 -106
- data/test/integration/access_control_test.rb +0 -179
- data/test/integration/i18n_test.rb +0 -38
- data/test/integration/meta_variables_test.rb +0 -27
- data/test/integration/render_cms_test.rb +0 -255
- data/test/integration/routing_test.rb +0 -19
- data/test/integration/seeds_test.rb +0 -75
- data/test/integration/sites_test.rb +0 -107
- data/test/integration/view_hooks_test.rb +0 -47
- data/test/lib/configuration_test.rb +0 -38
- data/test/lib/content/block_test.rb +0 -26
- data/test/lib/content/params_parser_test.rb +0 -126
- data/test/lib/content/renderer_test.rb +0 -276
- data/test/lib/content/tag_test.rb +0 -58
- data/test/lib/content/tags/asset_test.rb +0 -104
- data/test/lib/content/tags/checkbox_test.rb +0 -21
- data/test/lib/content/tags/date_test.rb +0 -21
- data/test/lib/content/tags/datetime_test.rb +0 -21
- data/test/lib/content/tags/file_link_test.rb +0 -91
- data/test/lib/content/tags/file_test.rb +0 -69
- data/test/lib/content/tags/files_test.rb +0 -52
- data/test/lib/content/tags/fragment_test.rb +0 -68
- data/test/lib/content/tags/helper_test.rb +0 -62
- data/test/lib/content/tags/markdown_test.rb +0 -37
- data/test/lib/content/tags/number_test.rb +0 -14
- data/test/lib/content/tags/partial_test.rb +0 -65
- data/test/lib/content/tags/snippet_test.rb +0 -37
- data/test/lib/content/tags/template_test.rb +0 -51
- data/test/lib/content/tags/text_test.rb +0 -14
- data/test/lib/content/tags/textarea_test.rb +0 -14
- data/test/lib/content/tags/wysiwyg_test.rb +0 -14
- data/test/lib/revisions_test.rb +0 -222
- data/test/lib/seeds/files_test.rb +0 -97
- data/test/lib/seeds/layouts_test.rb +0 -156
- data/test/lib/seeds/pages_test.rb +0 -230
- data/test/lib/seeds/snippets_test.rb +0 -99
- data/test/lib/seeds_test.rb +0 -51
- data/test/models/categorization_test.rb +0 -76
- data/test/models/category_test.rb +0 -39
- data/test/models/file_test.rb +0 -43
- data/test/models/fragment_test.rb +0 -132
- data/test/models/layout_test.rb +0 -194
- data/test/models/page_test.rb +0 -575
- data/test/models/site_test.rb +0 -190
- data/test/models/snippet_test.rb +0 -56
- data/test/models/translation_test.rb +0 -67
- data/test/system/layouts_frontend_test.rb +0 -15
- data/test/system/pages_frontend_test.rb +0 -15
- data/test/system/sites_frontend_test.rb +0 -11
- data/test/system/snippets_frontend_test.rb +0 -15
- data/test/tasks/cms_seeds_test.rb +0 -34
- data/test/test_helper.rb +0 -201
@@ -1,99 +0,0 @@
|
|
1
|
-
require_relative "../../test_helper"
|
2
|
-
|
3
|
-
class SeedsSnippetsTest < ActiveSupport::TestCase
|
4
|
-
|
5
|
-
setup do
|
6
|
-
@site = comfy_cms_sites(:default)
|
7
|
-
@snippet = comfy_cms_snippets(:default)
|
8
|
-
end
|
9
|
-
|
10
|
-
def test_creation
|
11
|
-
Comfy::Cms::Snippet.delete_all
|
12
|
-
|
13
|
-
assert_count_difference [Comfy::Cms::Snippet] do
|
14
|
-
ComfortableMexicanSofa::Seeds::Snippet::Importer.new("sample-site", "default-site").import!
|
15
|
-
end
|
16
|
-
|
17
|
-
snippet = Comfy::Cms::Snippet.last
|
18
|
-
|
19
|
-
assert_equal "default", snippet.identifier
|
20
|
-
assert_equal "Default Seed Snippet", snippet.label
|
21
|
-
assert_equal "Default Seed Snippet Content\n", snippet.content
|
22
|
-
|
23
|
-
assert_equal %w[category_a category_b], snippet.categories.map(&:label)
|
24
|
-
end
|
25
|
-
|
26
|
-
def test_update
|
27
|
-
@snippet.update_column(:updated_at, 10.years.ago)
|
28
|
-
assert_equal "default", @snippet.identifier
|
29
|
-
assert_equal "Default Snippet", @snippet.label
|
30
|
-
assert_equal "snippet content", @snippet.content
|
31
|
-
|
32
|
-
assert_count_no_difference [Comfy::Cms::Snippet] do
|
33
|
-
ComfortableMexicanSofa::Seeds::Snippet::Importer.new("sample-site", "default-site").import!
|
34
|
-
end
|
35
|
-
|
36
|
-
@snippet.reload
|
37
|
-
assert_equal "default", @snippet.identifier
|
38
|
-
assert_equal "Default Seed Snippet", @snippet.label
|
39
|
-
assert_equal "Default Seed Snippet Content\n", @snippet.content
|
40
|
-
end
|
41
|
-
|
42
|
-
def test_delete
|
43
|
-
old_snippet = @snippet
|
44
|
-
old_snippet.update_column(:identifier, "old")
|
45
|
-
|
46
|
-
assert_count_no_difference [Comfy::Cms::Snippet] do
|
47
|
-
ComfortableMexicanSofa::Seeds::Snippet::Importer.new("sample-site", "default-site").import!
|
48
|
-
end
|
49
|
-
|
50
|
-
assert snippet = Comfy::Cms::Snippet.last
|
51
|
-
assert_equal "default", snippet.identifier
|
52
|
-
assert_equal "Default Seed Snippet", snippet.label
|
53
|
-
assert_equal "Default Seed Snippet Content\n", snippet.content
|
54
|
-
|
55
|
-
assert_nil Comfy::Cms::Snippet.where(id: old_snippet.id).first
|
56
|
-
end
|
57
|
-
|
58
|
-
def test_update_ignoring
|
59
|
-
snippet_path = File.join(ComfortableMexicanSofa.config.seeds_path, "sample-site", "snippets")
|
60
|
-
content_path = File.join(snippet_path, "default.html")
|
61
|
-
|
62
|
-
assert @snippet.updated_at >= File.mtime(content_path)
|
63
|
-
|
64
|
-
ComfortableMexicanSofa::Seeds::Snippet::Importer.new("sample-site", "default-site").import!
|
65
|
-
@snippet.reload
|
66
|
-
assert_equal "default", @snippet.identifier
|
67
|
-
assert_equal "Default Snippet", @snippet.label
|
68
|
-
assert_equal "snippet content", @snippet.content
|
69
|
-
end
|
70
|
-
|
71
|
-
def test_export
|
72
|
-
comfy_cms_categories(:default).categorizations.create!(
|
73
|
-
categorized: @snippet
|
74
|
-
)
|
75
|
-
|
76
|
-
host_path = File.join(ComfortableMexicanSofa.config.seeds_path, "test-site")
|
77
|
-
content_path = File.join(host_path, "snippets/default.html")
|
78
|
-
|
79
|
-
ComfortableMexicanSofa::Seeds::Snippet::Exporter.new("default-site", "test-site").export!
|
80
|
-
|
81
|
-
assert File.exist?(content_path)
|
82
|
-
out = <<-TEXT.strip_heredoc
|
83
|
-
[attributes]
|
84
|
-
---
|
85
|
-
label: Default Snippet
|
86
|
-
categories:
|
87
|
-
- Default
|
88
|
-
position: 0
|
89
|
-
|
90
|
-
[content]
|
91
|
-
snippet content
|
92
|
-
TEXT
|
93
|
-
assert_equal out, IO.read(content_path)
|
94
|
-
|
95
|
-
ensure
|
96
|
-
FileUtils.rm_rf(host_path)
|
97
|
-
end
|
98
|
-
|
99
|
-
end
|
data/test/lib/seeds_test.rb
DELETED
@@ -1,51 +0,0 @@
|
|
1
|
-
require_relative "../test_helper"
|
2
|
-
|
3
|
-
class SeedsTest < ActiveSupport::TestCase
|
4
|
-
|
5
|
-
def test_import_all
|
6
|
-
Comfy::Cms::Page.destroy_all
|
7
|
-
Comfy::Cms::Layout.destroy_all
|
8
|
-
Comfy::Cms::Snippet.destroy_all
|
9
|
-
|
10
|
-
assert_count_difference [Comfy::Cms::Layout], 2 do
|
11
|
-
assert_count_difference [Comfy::Cms::Page], 3 do
|
12
|
-
assert_count_difference [Comfy::Cms::Snippet], 1 do
|
13
|
-
ComfortableMexicanSofa::Seeds::Importer.new("sample-site", "default-site").import!
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|
18
|
-
|
19
|
-
def test_import_all_with_no_site
|
20
|
-
comfy_cms_sites(:default).destroy
|
21
|
-
|
22
|
-
assert_exception_raised ActiveRecord::RecordNotFound do
|
23
|
-
ComfortableMexicanSofa::Seeds::Importer.new("sample-site", "default-site").import!
|
24
|
-
end
|
25
|
-
end
|
26
|
-
|
27
|
-
def test_import_all_with_no_folder
|
28
|
-
assert_exception_raised ComfortableMexicanSofa::Seeds::Error do
|
29
|
-
ComfortableMexicanSofa::Seeds::Importer.new("invalid", "default-site").import!
|
30
|
-
end
|
31
|
-
end
|
32
|
-
|
33
|
-
def test_export_all
|
34
|
-
ActiveStorage::Blob.any_instance.stubs(:download).returns(
|
35
|
-
File.read(File.join(Rails.root, "db/cms_seeds/sample-site/files/default.jpg"))
|
36
|
-
)
|
37
|
-
|
38
|
-
host_path = File.join(ComfortableMexicanSofa.config.seeds_path, "test-site")
|
39
|
-
ComfortableMexicanSofa::Seeds::Exporter.new("default-site", "test-site").export!
|
40
|
-
FileUtils.rm_rf(host_path)
|
41
|
-
end
|
42
|
-
|
43
|
-
def test_export_all_with_no_site
|
44
|
-
comfy_cms_sites(:default).destroy
|
45
|
-
|
46
|
-
assert_exception_raised ActiveRecord::RecordNotFound do
|
47
|
-
ComfortableMexicanSofa::Seeds::Exporter.new("sample-site", "default-site").export!
|
48
|
-
end
|
49
|
-
end
|
50
|
-
|
51
|
-
end
|
@@ -1,76 +0,0 @@
|
|
1
|
-
require_relative "../test_helper"
|
2
|
-
|
3
|
-
class CmsCategorizationTest < ActiveSupport::TestCase
|
4
|
-
|
5
|
-
def test_fixtures_validity
|
6
|
-
Comfy::Cms::Categorization.all.each do |categorization|
|
7
|
-
assert categorization.valid?, categorization.errors.full_messages.to_s
|
8
|
-
end
|
9
|
-
end
|
10
|
-
|
11
|
-
def test_validation
|
12
|
-
category = Comfy::Cms::Categorization.new
|
13
|
-
assert category.invalid?
|
14
|
-
assert_has_errors_on category, :category, :categorized
|
15
|
-
end
|
16
|
-
|
17
|
-
def test_creation
|
18
|
-
assert_difference "Comfy::Cms::Categorization.count" do
|
19
|
-
comfy_cms_categories(:default).categorizations.create!(
|
20
|
-
categorized: comfy_cms_pages(:default)
|
21
|
-
)
|
22
|
-
end
|
23
|
-
end
|
24
|
-
|
25
|
-
def test_categorized_relationship
|
26
|
-
file = comfy_cms_files(:default)
|
27
|
-
assert file.respond_to?(:category_ids)
|
28
|
-
assert_equal 1, file.categories.count
|
29
|
-
assert_equal comfy_cms_categories(:default), file.categories.first
|
30
|
-
|
31
|
-
assert comfy_cms_pages(:default).respond_to?(:category_ids)
|
32
|
-
assert_equal 0, comfy_cms_pages(:default).categories.count
|
33
|
-
end
|
34
|
-
|
35
|
-
def test_categorized_destruction
|
36
|
-
assert_count_difference [Comfy::Cms::File, Comfy::Cms::Categorization], -1 do
|
37
|
-
comfy_cms_files(:default).destroy
|
38
|
-
end
|
39
|
-
end
|
40
|
-
|
41
|
-
def test_categorized_syncing
|
42
|
-
page = comfy_cms_pages(:default)
|
43
|
-
assert_equal 0, page.categories.count
|
44
|
-
|
45
|
-
page.update_attributes(category_ids:
|
46
|
-
{ comfy_cms_categories(:default).id => 1,
|
47
|
-
"invalid" => 1 })
|
48
|
-
|
49
|
-
page.reload
|
50
|
-
assert_equal 1, page.categories.count
|
51
|
-
|
52
|
-
page.update_attributes(category_ids:
|
53
|
-
{ comfy_cms_categories(:default).id => 0,
|
54
|
-
"invalid" => 0 })
|
55
|
-
page.reload
|
56
|
-
assert_equal 0, page.categories.count
|
57
|
-
end
|
58
|
-
|
59
|
-
def test_scope_for_category
|
60
|
-
category = comfy_cms_categories(:default)
|
61
|
-
assert_equal 1, Comfy::Cms::File.for_category(category.label).count
|
62
|
-
assert_equal 0, Comfy::Cms::File.for_category("invalid").count
|
63
|
-
assert_equal 1, Comfy::Cms::File.for_category(category.label, "invalid").count
|
64
|
-
assert_equal 1, Comfy::Cms::File.for_category(nil).count
|
65
|
-
|
66
|
-
new_category = comfy_cms_sites(:default).categories.create!(
|
67
|
-
label: "Test Category",
|
68
|
-
categorized_type: "Comfy::Cms::File"
|
69
|
-
)
|
70
|
-
new_category.categorizations.create!(categorized: comfy_cms_pages(:default))
|
71
|
-
assert_equal 1, Comfy::Cms::File.for_category(category.label, new_category.label).to_a.size
|
72
|
-
assert_equal 1,
|
73
|
-
Comfy::Cms::File.for_category(category.label, new_category.label).distinct.count("comfy_cms_files.id")
|
74
|
-
end
|
75
|
-
|
76
|
-
end
|
@@ -1,39 +0,0 @@
|
|
1
|
-
require_relative "../test_helper"
|
2
|
-
|
3
|
-
class CmsCategoryTest < ActiveSupport::TestCase
|
4
|
-
|
5
|
-
def test_fixtures_validity
|
6
|
-
Comfy::Cms::Category.all.each do |category|
|
7
|
-
assert category.valid?, category.errors.full_messages.to_s
|
8
|
-
end
|
9
|
-
end
|
10
|
-
|
11
|
-
def test_validation
|
12
|
-
category = Comfy::Cms::Category.new
|
13
|
-
assert category.invalid?
|
14
|
-
assert_has_errors_on category, :site, :label, :categorized_type
|
15
|
-
end
|
16
|
-
|
17
|
-
def test_creation
|
18
|
-
assert_difference "Comfy::Cms::Category.count" do
|
19
|
-
comfy_cms_sites(:default).categories.create(
|
20
|
-
label: "Test Category",
|
21
|
-
categorized_type: "Comfy::Cms::Snippet"
|
22
|
-
)
|
23
|
-
end
|
24
|
-
end
|
25
|
-
|
26
|
-
def test_destruction
|
27
|
-
category = comfy_cms_categories(:default)
|
28
|
-
assert_equal 1, category.categorizations.count
|
29
|
-
assert_difference ["Comfy::Cms::Category.count", "Comfy::Cms::Categorization.count"], -1 do
|
30
|
-
category.destroy
|
31
|
-
end
|
32
|
-
end
|
33
|
-
|
34
|
-
def test_scope_of_type
|
35
|
-
assert_equal 1, Comfy::Cms::Category.of_type("Comfy::Cms::File").count
|
36
|
-
assert_equal 0, Comfy::Cms::Category.of_type("Invalid").count
|
37
|
-
end
|
38
|
-
|
39
|
-
end
|
data/test/models/file_test.rb
DELETED
@@ -1,43 +0,0 @@
|
|
1
|
-
require_relative "../test_helper"
|
2
|
-
|
3
|
-
class CmsFileTest < ActiveSupport::TestCase
|
4
|
-
|
5
|
-
def test_fixtures_validity
|
6
|
-
Comfy::Cms::File.all.each do |file|
|
7
|
-
assert file.valid?, file.errors.full_messages.to_s
|
8
|
-
assert file.attachment
|
9
|
-
assert file.attachment.blob
|
10
|
-
end
|
11
|
-
end
|
12
|
-
|
13
|
-
def test_validations
|
14
|
-
file = Comfy::Cms::File.new
|
15
|
-
assert file.invalid?
|
16
|
-
assert_has_errors_on file, :site, :file
|
17
|
-
end
|
18
|
-
|
19
|
-
def test_creation
|
20
|
-
assert_difference ["Comfy::Cms::File.count", "ActiveStorage::Attachment.count"] do
|
21
|
-
file = comfy_cms_sites(:default).files.create(
|
22
|
-
label: "test",
|
23
|
-
description: "test file",
|
24
|
-
file: fixture_file_upload("files/image.jpg", "image/jpeg")
|
25
|
-
)
|
26
|
-
assert_equal 1, file.position
|
27
|
-
end
|
28
|
-
end
|
29
|
-
|
30
|
-
def test_scope_with_images
|
31
|
-
assert_equal 1, Comfy::Cms::File.with_attached_attachment.with_images.count
|
32
|
-
active_storage_blobs(:default).update_column(:content_type, "application/pdf")
|
33
|
-
assert_equal 0, Comfy::Cms::File.with_attached_attachment.with_images.count
|
34
|
-
end
|
35
|
-
|
36
|
-
def test_label
|
37
|
-
file = comfy_cms_files(:default)
|
38
|
-
assert_equal "default file", file.label
|
39
|
-
file.update_column(:label, "")
|
40
|
-
assert_equal "default.jpg", file.label
|
41
|
-
end
|
42
|
-
|
43
|
-
end
|
@@ -1,132 +0,0 @@
|
|
1
|
-
require_relative "../test_helper"
|
2
|
-
|
3
|
-
class CmsFragmentTest < ActiveSupport::TestCase
|
4
|
-
|
5
|
-
setup do
|
6
|
-
@site = comfy_cms_sites(:default)
|
7
|
-
@layout = comfy_cms_layouts(:default)
|
8
|
-
@page = comfy_cms_pages(:default)
|
9
|
-
|
10
|
-
@upload_doc = fixture_file_upload("files/document.pdf", "application/pdf")
|
11
|
-
@upload_img = fixture_file_upload("files/image.jpg", "image/jpeg")
|
12
|
-
end
|
13
|
-
|
14
|
-
def page_params(frag_params = [])
|
15
|
-
{
|
16
|
-
layout: @layout,
|
17
|
-
label: "test page",
|
18
|
-
slug: "test_page",
|
19
|
-
parent_id: @page.id,
|
20
|
-
fragments_attributes: frag_params
|
21
|
-
}
|
22
|
-
end
|
23
|
-
|
24
|
-
# -- Tests -------------------------------------------------------------------
|
25
|
-
|
26
|
-
def test_initialization
|
27
|
-
frag = Comfy::Cms::Fragment.new
|
28
|
-
assert_equal "text", frag.tag
|
29
|
-
end
|
30
|
-
|
31
|
-
def test_fixtures_validity
|
32
|
-
Comfy::Cms::Fragment.all.each do |frag|
|
33
|
-
assert frag.valid?, frag.errors.full_messages.to_s
|
34
|
-
end
|
35
|
-
end
|
36
|
-
|
37
|
-
def test_validation
|
38
|
-
frag = Comfy::Cms::Fragment.new
|
39
|
-
refute frag.valid?
|
40
|
-
assert_has_errors_on frag, :identifier, :record
|
41
|
-
end
|
42
|
-
|
43
|
-
def test_content_serialization
|
44
|
-
fragment = Comfy::Cms::Fragment.new
|
45
|
-
|
46
|
-
fragment.content = "test"
|
47
|
-
assert_equal "test", fragment.content
|
48
|
-
|
49
|
-
fragment.content = 123
|
50
|
-
assert_equal 123, fragment.content
|
51
|
-
|
52
|
-
fragment.content = [1, 2, 3]
|
53
|
-
assert_equal [1, 2, 3], fragment.content
|
54
|
-
end
|
55
|
-
|
56
|
-
def test_creation
|
57
|
-
assert_difference "Comfy::Cms::Fragment.count" do
|
58
|
-
@page.fragments.create!(
|
59
|
-
identifier: "test",
|
60
|
-
content: "test content"
|
61
|
-
)
|
62
|
-
end
|
63
|
-
end
|
64
|
-
|
65
|
-
def test_creation_with_files
|
66
|
-
assert_count_difference [Comfy::Cms::Fragment] do
|
67
|
-
assert_count_difference [ActiveStorage::Attachment], 2 do
|
68
|
-
frag = @page.fragments.create!(
|
69
|
-
identifier: "test",
|
70
|
-
tag: "files",
|
71
|
-
files: [@upload_doc, @upload_img]
|
72
|
-
)
|
73
|
-
assert_equal 2, frag.attachments.count
|
74
|
-
end
|
75
|
-
end
|
76
|
-
end
|
77
|
-
|
78
|
-
def test_creation_with_file
|
79
|
-
assert_count_difference [Comfy::Cms::Fragment, ActiveStorage::Attachment] do
|
80
|
-
frag = @page.fragments.create!(
|
81
|
-
identifier: "test",
|
82
|
-
tag: "file",
|
83
|
-
files: [@upload_doc, @upload_img]
|
84
|
-
)
|
85
|
-
assert_equal 1, frag.attachments.count
|
86
|
-
end
|
87
|
-
end
|
88
|
-
|
89
|
-
def test_update_with_files
|
90
|
-
frag = comfy_cms_fragments(:file)
|
91
|
-
assert_equal 1, frag.attachments.count
|
92
|
-
assert_equal "fragment.jpg", frag.attachments.first.filename.to_s
|
93
|
-
assert_difference -> { frag.attachments.count } do
|
94
|
-
frag.update_attributes(
|
95
|
-
tag: "files",
|
96
|
-
files: [@upload_doc]
|
97
|
-
)
|
98
|
-
end
|
99
|
-
end
|
100
|
-
|
101
|
-
def test_update_with_file
|
102
|
-
frag = comfy_cms_fragments(:file)
|
103
|
-
assert_equal 1, frag.attachments.count
|
104
|
-
assert_equal "fragment.jpg", frag.attachments.first.filename.to_s
|
105
|
-
assert_no_difference -> { frag.attachments.count } do
|
106
|
-
frag.update_attributes(
|
107
|
-
tag: "file",
|
108
|
-
files: [@upload_doc]
|
109
|
-
)
|
110
|
-
end
|
111
|
-
frag.reload
|
112
|
-
assert_equal "document.pdf", frag.attachments.first.filename.to_s
|
113
|
-
end
|
114
|
-
|
115
|
-
def test_update_with_file_removal
|
116
|
-
frag = comfy_cms_fragments(:file)
|
117
|
-
assert_difference -> { frag.attachments.count }, -1 do
|
118
|
-
frag.update_attributes(
|
119
|
-
file_ids_destroy: frag.attachments.pluck(:id)
|
120
|
-
)
|
121
|
-
end
|
122
|
-
end
|
123
|
-
|
124
|
-
def test_touch
|
125
|
-
timestamp = 2.days.ago
|
126
|
-
@page.update_column(:updated_at, timestamp)
|
127
|
-
comfy_cms_fragments(:default).update_attributes(content: "updated")
|
128
|
-
@page.reload
|
129
|
-
refute_equal timestamp, @page.updated_at
|
130
|
-
end
|
131
|
-
|
132
|
-
end
|
data/test/models/layout_test.rb
DELETED
@@ -1,194 +0,0 @@
|
|
1
|
-
require_relative "../test_helper"
|
2
|
-
|
3
|
-
class CmsLayoutTest < ActiveSupport::TestCase
|
4
|
-
|
5
|
-
setup do
|
6
|
-
@site = comfy_cms_sites(:default)
|
7
|
-
@layout = comfy_cms_layouts(:default)
|
8
|
-
@page = comfy_cms_pages(:default)
|
9
|
-
end
|
10
|
-
|
11
|
-
def test_fixtures_validity
|
12
|
-
Comfy::Cms::Layout.all.each do |layout|
|
13
|
-
assert layout.valid?, layout.errors.full_messages.to_s
|
14
|
-
end
|
15
|
-
end
|
16
|
-
|
17
|
-
def test_validations
|
18
|
-
layout = @site.layouts.create
|
19
|
-
assert layout.errors.present?
|
20
|
-
assert_has_errors_on layout, :label, :identifier
|
21
|
-
end
|
22
|
-
|
23
|
-
def test_content_tokens
|
24
|
-
layout = Comfy::Cms::Layout.new(content: "a {{cms:text content}} b")
|
25
|
-
expected = [
|
26
|
-
"a ",
|
27
|
-
{ tag_class: "text", tag_params: "content", source: "{{cms:text content}}" },
|
28
|
-
" b"
|
29
|
-
]
|
30
|
-
assert_equal expected, layout.content_tokens
|
31
|
-
end
|
32
|
-
|
33
|
-
def test_content_tokens_nested
|
34
|
-
layout_a = Comfy::Cms::Layout.new(content: "a {{cms:text content}} {{cms:text footer}} b")
|
35
|
-
layout_b = Comfy::Cms::Layout.new(content: "c {{cms:text content}} d")
|
36
|
-
layout_b.parent = layout_a
|
37
|
-
expected = [
|
38
|
-
"a ",
|
39
|
-
"c ",
|
40
|
-
{ tag_class: "text", tag_params: "content", source: "{{cms:text content}}" },
|
41
|
-
" d",
|
42
|
-
" ",
|
43
|
-
{ tag_class: "text", tag_params: "footer", source: "{{cms:text footer}}" },
|
44
|
-
" b"
|
45
|
-
]
|
46
|
-
assert_equal expected, layout_b.content_tokens
|
47
|
-
end
|
48
|
-
|
49
|
-
def test_content_tokens_nested_with_fragment_subclass_tag
|
50
|
-
layout_a = Comfy::Cms::Layout.new(content: "a {{cms:markdown content}} b")
|
51
|
-
layout_b = Comfy::Cms::Layout.new(content: "c {{cms:text content}} d")
|
52
|
-
layout_b.parent = layout_a
|
53
|
-
expected = [
|
54
|
-
"a ",
|
55
|
-
"c ",
|
56
|
-
{ tag_class: "text", tag_params: "content", source: "{{cms:text content}}" },
|
57
|
-
" d",
|
58
|
-
" b"
|
59
|
-
]
|
60
|
-
assert_equal expected, layout_b.content_tokens
|
61
|
-
end
|
62
|
-
|
63
|
-
def test_content_tokens_nested_with_non_fragment_subclass_tag
|
64
|
-
layout_a = Comfy::Cms::Layout.new(content: "a {{cms:snippet content}} b")
|
65
|
-
layout_b = Comfy::Cms::Layout.new(content: "c {{cms:text content}} d")
|
66
|
-
layout_b.parent = layout_a
|
67
|
-
expected = [
|
68
|
-
"c ",
|
69
|
-
{ tag_class: "text", tag_params: "content", source: "{{cms:text content}}" },
|
70
|
-
" d"
|
71
|
-
]
|
72
|
-
assert_equal expected, layout_b.content_tokens
|
73
|
-
end
|
74
|
-
|
75
|
-
def test_content_tokens_nested_without_content_tag
|
76
|
-
layout_a = Comfy::Cms::Layout.new(content: "a {{cms:text footer}} b")
|
77
|
-
layout_b = Comfy::Cms::Layout.new(content: "c {{cms:text content}} d")
|
78
|
-
layout_b.parent = layout_a
|
79
|
-
expected = [
|
80
|
-
"c ", { tag_class: "text", tag_params: "content", source: "{{cms:text content}}" }, " d"
|
81
|
-
]
|
82
|
-
assert_equal expected, layout_b.content_tokens
|
83
|
-
end
|
84
|
-
|
85
|
-
def test_label_assignment
|
86
|
-
layout = @site.layouts.new(
|
87
|
-
identifier: "test",
|
88
|
-
content: "content"
|
89
|
-
)
|
90
|
-
assert layout.valid?
|
91
|
-
assert_equal "Test", layout.label
|
92
|
-
end
|
93
|
-
|
94
|
-
def test_creation
|
95
|
-
assert_difference "Comfy::Cms::Layout.count" do
|
96
|
-
layout = @site.layouts.create(
|
97
|
-
label: "New Layout",
|
98
|
-
identifier: "new-layout",
|
99
|
-
content: "{{cms:text default}}",
|
100
|
-
css: "css",
|
101
|
-
js: "js"
|
102
|
-
)
|
103
|
-
assert_equal "New Layout", layout.label
|
104
|
-
assert_equal "new-layout", layout.identifier
|
105
|
-
assert_equal "{{cms:text default}}", layout.content
|
106
|
-
assert_equal "css", layout.css
|
107
|
-
assert_equal "js", layout.js
|
108
|
-
assert_equal 1, layout.position
|
109
|
-
end
|
110
|
-
end
|
111
|
-
|
112
|
-
def test_options_for_select
|
113
|
-
assert_equal ["Default Layout", "Nested Layout", ". . Child Layout"],
|
114
|
-
Comfy::Cms::Layout.options_for_select(@site).collect(&:first)
|
115
|
-
assert_equal ["Default Layout", "Nested Layout"],
|
116
|
-
Comfy::Cms::Layout.options_for_select(@site, comfy_cms_layouts(:child)).collect(&:first)
|
117
|
-
assert_equal ["Default Layout"],
|
118
|
-
Comfy::Cms::Layout.options_for_select(@site, comfy_cms_layouts(:nested)).collect(&:first)
|
119
|
-
end
|
120
|
-
|
121
|
-
def test_app_layouts_for_select
|
122
|
-
FileUtils.touch(File.expand_path("app/views/layouts/comfy/admin/cms/nested.html.erb", Rails.root))
|
123
|
-
FileUtils.touch(File.expand_path("app/views/layouts/comfy/_partial.html.erb", Rails.root))
|
124
|
-
FileUtils.touch(File.expand_path("app/views/layouts/comfy/not_a_layout.erb", Rails.root))
|
125
|
-
|
126
|
-
view_paths = [File.expand_path("app/views/", Rails.root)]
|
127
|
-
assert_equal ["comfy/admin/cms", "comfy/admin/cms/nested"],
|
128
|
-
Comfy::Cms::Layout.app_layouts_for_select(view_paths)
|
129
|
-
|
130
|
-
ensure
|
131
|
-
FileUtils.rm(File.expand_path("app/views/layouts/comfy/admin/cms/nested.html.erb", Rails.root))
|
132
|
-
FileUtils.rm(File.expand_path("app/views/layouts/comfy/_partial.html.erb", Rails.root))
|
133
|
-
FileUtils.rm(File.expand_path("app/views/layouts/comfy/not_a_layout.erb", Rails.root))
|
134
|
-
end
|
135
|
-
|
136
|
-
def test_multiple_view_paths
|
137
|
-
FileUtils.mkdir_p(File.expand_path("app/additional_views/layouts", Rails.root))
|
138
|
-
FileUtils.touch(File.expand_path("app/additional_views/layouts/additional_layout.html.erb", Rails.root))
|
139
|
-
|
140
|
-
view_paths = [File.expand_path("app/views/", Rails.root), File.expand_path("app/additional_views", Rails.root)]
|
141
|
-
assert_equal ["additional_layout", "comfy/admin/cms"], Comfy::Cms::Layout.app_layouts_for_select(view_paths)
|
142
|
-
ensure
|
143
|
-
FileUtils.rm_r(File.expand_path("app/additional_views", Rails.root))
|
144
|
-
end
|
145
|
-
|
146
|
-
def test_update_forces_page_content_reload
|
147
|
-
layout_a = comfy_cms_layouts(:nested)
|
148
|
-
layout_b = comfy_cms_layouts(:child)
|
149
|
-
page_a = @site.pages.create!(
|
150
|
-
label: "page_1",
|
151
|
-
slug: "page-1",
|
152
|
-
parent_id: @page.id,
|
153
|
-
layout_id: layout_a.id,
|
154
|
-
is_published: "1",
|
155
|
-
fragments_attributes: [
|
156
|
-
{ identifier: "header",
|
157
|
-
content: "header_content" },
|
158
|
-
{ identifier: "content",
|
159
|
-
content: "content_content" }
|
160
|
-
]
|
161
|
-
)
|
162
|
-
page_b = @site.pages.create!(
|
163
|
-
label: "page_2",
|
164
|
-
slug: "page-2",
|
165
|
-
parent_id: @page.id,
|
166
|
-
layout_id: layout_b.id,
|
167
|
-
is_published: "1",
|
168
|
-
fragments_attributes: [
|
169
|
-
{ identifier: "header",
|
170
|
-
content: "header_content" },
|
171
|
-
{ identifier: "left_column",
|
172
|
-
content: "left_column_content" },
|
173
|
-
{ identifier: "right_column",
|
174
|
-
content: "left_column_content" }
|
175
|
-
]
|
176
|
-
)
|
177
|
-
assert_equal "header_content\ncontent_content", page_a.content_cache
|
178
|
-
assert_equal "header_content\nleft_column_content\nleft_column_content", page_b.content_cache
|
179
|
-
|
180
|
-
layout_a.update_attributes(content: "Updated {{cms:text content}}")
|
181
|
-
page_a.reload
|
182
|
-
page_b.reload
|
183
|
-
|
184
|
-
assert_equal "Updated content_content", page_a.content_cache
|
185
|
-
assert_equal "Updated left_column_content\nleft_column_content", page_b.content_cache
|
186
|
-
end
|
187
|
-
|
188
|
-
def test_cache_buster
|
189
|
-
timestamp = Time.current
|
190
|
-
layout = @site.layouts.create(updated_at: timestamp)
|
191
|
-
assert_equal timestamp.to_i, layout.cache_buster
|
192
|
-
end
|
193
|
-
|
194
|
-
end
|