comfortable_mexican_sofa 1.12.2 → 1.12.3
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.
- checksums.yaml +4 -4
- data/app/assets/javascripts/comfortable_mexican_sofa/admin/application.js +1 -1
- data/app/assets/javascripts/comfortable_mexican_sofa/application.js.coffee +50 -57
- data/app/assets/javascripts/comfortable_mexican_sofa/cms/files.js.coffee +29 -0
- data/app/assets/javascripts/comfortable_mexican_sofa/cms/uploader.js.coffee +139 -0
- data/app/assets/stylesheets/comfortable_mexican_sofa/admin/application.css +1 -1
- data/app/assets/stylesheets/comfortable_mexican_sofa/application.css.sass +1 -0
- data/app/assets/stylesheets/comfortable_mexican_sofa/base.css.sass +67 -84
- data/app/controllers/comfy/admin/cms/base_controller.rb +11 -8
- data/app/controllers/comfy/admin/cms/categories_controller.rb +10 -9
- data/app/controllers/comfy/admin/cms/files_controller.rb +38 -69
- data/app/controllers/comfy/admin/cms/layouts_controller.rb +4 -3
- data/app/controllers/comfy/admin/cms/pages_controller.rb +17 -11
- data/app/controllers/comfy/admin/cms/revisions_controller.rb +10 -9
- data/app/controllers/comfy/admin/cms/sites_controller.rb +2 -1
- data/app/controllers/comfy/admin/cms/snippets_controller.rb +3 -2
- data/app/controllers/comfy/cms/assets_controller.rb +17 -9
- data/app/controllers/comfy/cms/content_controller.rb +20 -14
- data/app/models/comfy/cms/file.rb +16 -15
- data/app/models/comfy/cms/page.rb +2 -1
- data/app/models/comfy/cms/site.rb +5 -0
- data/app/views/comfy/admin/cms/files/_file.html.haml +26 -13
- data/app/views/comfy/admin/cms/files/_form.html.haml +8 -5
- data/app/views/comfy/admin/cms/files/_modal.html.haml +4 -0
- data/app/views/comfy/admin/cms/files/create.js.erb +1 -0
- data/app/views/comfy/admin/cms/files/destroy.js.coffee +2 -2
- data/app/views/comfy/admin/cms/files/index.html.haml +33 -31
- data/app/views/comfy/admin/cms/layouts/_form.html.haml +2 -5
- data/app/views/comfy/admin/cms/pages/_form.html.haml +7 -8
- data/app/views/comfy/admin/cms/pages/_form_blocks.html.haml +3 -3
- data/app/views/comfy/admin/cms/sites/_form.html.haml +2 -2
- data/app/views/comfy/admin/cms/sites/index.html.haml +1 -2
- data/app/views/comfy/admin/cms/snippets/_form.html.haml +5 -8
- data/app/views/kaminari/comfy/_paginator.html.haml +10 -11
- data/app/views/layouts/comfy/admin/cms.html.haml +3 -2
- data/app/views/layouts/comfy/admin/cms/_body.html.haml +8 -7
- data/app/views/layouts/comfy/admin/cms/{_center.html.haml → _flash.html.haml} +0 -3
- data/app/views/layouts/comfy/admin/cms/_footer_js.html.haml +0 -4
- data/app/views/layouts/comfy/admin/cms/_left.html.haml +10 -5
- data/comfortable_mexican_sofa.gemspec +9 -8
- data/config/cms_routes.rb +2 -2
- data/config/initializers/comfortable_mexican_sofa.rb +31 -13
- data/config/initializers/plupload.rb +9 -0
- data/config/locales/en.yml +18 -16
- data/db/upgrade_migrations/08_upgrade_to_1_12_0.rb +3 -0
- data/lib/comfortable_mexican_sofa.rb +6 -5
- data/lib/comfortable_mexican_sofa/access_control/admin_authentication.rb +20 -0
- data/lib/comfortable_mexican_sofa/access_control/admin_authorization.rb +8 -0
- data/lib/comfortable_mexican_sofa/access_control/public_authentication.rb +8 -0
- data/lib/comfortable_mexican_sofa/configuration.rb +11 -3
- data/lib/comfortable_mexican_sofa/engine.rb +1 -0
- data/lib/comfortable_mexican_sofa/fixture.rb +7 -5
- data/lib/comfortable_mexican_sofa/fixture/category.rb +10 -3
- data/lib/comfortable_mexican_sofa/form_builder.rb +1 -1
- data/lib/comfortable_mexican_sofa/routes/cms.rb +3 -0
- data/lib/comfortable_mexican_sofa/version.rb +1 -1
- data/lib/generators/comfy/cms/assets_generator.rb +15 -0
- data/lib/generators/comfy/cms/cms_generator.rb +19 -12
- data/lib/generators/comfy/cms/controllers_generator.rb +13 -0
- data/lib/generators/comfy/cms/models_generator.rb +13 -0
- data/lib/generators/comfy/cms/views_generator.rb +13 -0
- data/test/controllers/comfy/admin/cms/files_controller_test.rb +22 -95
- data/test/controllers/comfy/admin/cms/layouts_controller_test.rb +9 -10
- data/test/controllers/comfy/admin/cms/pages_controller_test.rb +26 -27
- data/test/controllers/comfy/admin/cms/snippets_controller_test.rb +7 -8
- data/test/controllers/comfy/cms/content_controller_test.rb +30 -4
- data/test/gemfiles/Gemfile.rails.4.0 +3 -2
- data/test/gemfiles/Gemfile.rails.4.1 +3 -2
- data/test/gemfiles/Gemfile.rails.master +3 -2
- data/test/generators/cms_assets_generator_test.rb +13 -0
- data/test/generators/cms_controllers_generator_test.rb +12 -0
- data/test/generators/cms_generator_test.rb +10 -8
- data/test/generators/cms_models_generator_test.rb +12 -0
- data/test/generators/cms_views_generator_test.rb +12 -0
- data/test/generators/scaffold_generator_test.rb +6 -7
- data/test/integration/access_control_test.rb +141 -0
- data/test/integration/routing_test.rb +19 -0
- data/test/lib/configuration_test.rb +8 -7
- data/test/lib/fixtures/categories_test.rb +1 -0
- data/test/lib/fixtures/files_test.rb +5 -0
- data/test/lib/fixtures/pages_test.rb +17 -1
- data/test/lib/fixtures/snippets_test.rb +5 -0
- data/test/models/page_test.rb +6 -0
- data/test/models/site_test.rb +9 -0
- data/test/test_helper.rb +28 -19
- metadata +82 -48
- data/app/views/comfy/admin/cms/files/_index.html.haml +0 -11
- data/lib/comfortable_mexican_sofa/authentication/dummy_auth.rb +0 -8
- data/lib/comfortable_mexican_sofa/authentication/http_auth.rb +0 -25
- data/test/integration/authentication_test.rb +0 -48
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
require_relative '../test_helper'
|
|
2
|
+
require_relative '../../lib/generators/comfy/cms/views_generator'
|
|
3
|
+
|
|
4
|
+
class CmsViewsGeneratorTest < Rails::Generators::TestCase
|
|
5
|
+
tests Comfy::Generators::Cms::ViewsGenerator
|
|
6
|
+
|
|
7
|
+
def test_generator
|
|
8
|
+
run_generator
|
|
9
|
+
assert_directory 'app/views/comfy'
|
|
10
|
+
assert_file 'app/views/comfy/admin/cms/pages/index.html.haml'
|
|
11
|
+
end
|
|
12
|
+
end
|
|
@@ -3,29 +3,28 @@ require_relative '../../lib/generators/comfy/scaffold/scaffold_generator'
|
|
|
3
3
|
|
|
4
4
|
class ScaffoldGeneratorTest < Rails::Generators::TestCase
|
|
5
5
|
tests Comfy::Generators::ScaffoldGenerator
|
|
6
|
-
|
|
6
|
+
|
|
7
7
|
def test_generator
|
|
8
8
|
run_generator %w(Foo bar:string)
|
|
9
|
-
|
|
9
|
+
|
|
10
10
|
assert_migration 'db/migrate/create_foos.rb', read_file('scaffold/migration.rb')
|
|
11
11
|
assert_file 'app/models/foo.rb', read_file('scaffold/model.rb')
|
|
12
12
|
assert_file 'test/models/foo_test.rb', read_file('scaffold/tests/model.rb')
|
|
13
13
|
assert_file 'test/fixtures/foos.yml', read_file('scaffold/tests/fixture')
|
|
14
|
-
|
|
14
|
+
|
|
15
15
|
assert_file 'app/controllers/admin/foos_controller.rb', read_file('scaffold/controller.rb')
|
|
16
16
|
assert_file 'test/controllers/admin/foos_controller_test.rb', read_file('scaffold/tests/controller.rb')
|
|
17
|
-
|
|
17
|
+
|
|
18
18
|
assert_file 'app/views/admin/foos/index.html.haml', read_file('scaffold/views/index.haml')
|
|
19
19
|
assert_file 'app/views/admin/foos/show.html.haml', read_file('scaffold/views/show.haml')
|
|
20
20
|
assert_file 'app/views/admin/foos/new.html.haml', read_file('scaffold/views/new.haml')
|
|
21
21
|
assert_file 'app/views/admin/foos/edit.html.haml', read_file('scaffold/views/edit.haml')
|
|
22
22
|
assert_file 'app/views/admin/foos/_form.html.haml', read_file('scaffold/views/_form.haml')
|
|
23
|
-
|
|
23
|
+
|
|
24
24
|
assert_file 'config/routes.rb', read_file('scaffold/routes.rb')
|
|
25
|
-
|
|
25
|
+
|
|
26
26
|
assert_file 'app/views/comfy/admin/cms/partials/_navigation_inner.html.haml' do |file|
|
|
27
27
|
assert_match "%li= active_link_to 'Foos', admin_foos_path", file
|
|
28
28
|
end
|
|
29
29
|
end
|
|
30
|
-
|
|
31
30
|
end
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
require_relative '../test_helper'
|
|
2
|
+
|
|
3
|
+
class AccessControlTest < ActionDispatch::IntegrationTest
|
|
4
|
+
|
|
5
|
+
module TestAuthentication
|
|
6
|
+
module Authenticate
|
|
7
|
+
def authenticate
|
|
8
|
+
render :text => 'Test Login Denied', :status => :unauthorized
|
|
9
|
+
end
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
# faking ComfortableMexicanSofa.config.admin_auth = 'AccessControlTest::TestAuthentication'
|
|
13
|
+
# faking ComfortableMexicanSofa.config.public_auth = 'AccessControlTest::TestAuthentication'
|
|
14
|
+
class SitesController < Comfy::Admin::Cms::SitesController; include Authenticate; end
|
|
15
|
+
class ContentController < Comfy::Cms::ContentController; include Authenticate; end
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
module TestAuthorization
|
|
19
|
+
module Authorize
|
|
20
|
+
def authorize
|
|
21
|
+
@authorization_vars = self.instance_variables
|
|
22
|
+
render :text => 'Test Access Denied', :status => :forbidden
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
# faking ComfortableMexicanSofa.config.admin_authorization = 'AccessControlTest::TestAuthorization'
|
|
27
|
+
class SitesController < Comfy::Admin::Cms::SitesController; include Authorize; end
|
|
28
|
+
class LayoutsController < Comfy::Admin::Cms::LayoutsController; include Authorize; end
|
|
29
|
+
class PagesController < Comfy::Admin::Cms::PagesController; include Authorize; end
|
|
30
|
+
class SnippetsController < Comfy::Admin::Cms::SnippetsController; include Authorize; end
|
|
31
|
+
class FilesController < Comfy::Admin::Cms::FilesController; include Authorize; end
|
|
32
|
+
class CategoriesController < Comfy::Admin::Cms::CategoriesController; include Authorize; end
|
|
33
|
+
class RevisionsController < Comfy::Admin::Cms::RevisionsController; include Authorize; end
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
def test_admin_authentication_default
|
|
38
|
+
assert_equal 'ComfortableMexicanSofa::AccessControl::AdminAuthentication',
|
|
39
|
+
ComfortableMexicanSofa.config.admin_auth
|
|
40
|
+
|
|
41
|
+
get '/admin/sites'
|
|
42
|
+
assert_response :unauthorized
|
|
43
|
+
|
|
44
|
+
http_auth :get, '/admin/sites'
|
|
45
|
+
assert_response :success
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
def test_admin_authentication_custom
|
|
49
|
+
with_routing do |routes|
|
|
50
|
+
routes.draw do
|
|
51
|
+
get '/admin/sites' => 'access_control_test/test_authentication/sites#index'
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
get '/admin/sites'
|
|
55
|
+
assert_response :unauthorized
|
|
56
|
+
assert_equal 'Test Login Denied', response.body
|
|
57
|
+
end
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
def test_admin_authorization_default
|
|
61
|
+
assert_equal 'ComfortableMexicanSofa::AccessControl::AdminAuthorization',
|
|
62
|
+
ComfortableMexicanSofa.config.admin_authorization
|
|
63
|
+
|
|
64
|
+
Comfy::Admin::Cms::BaseController.send(:include, ComfortableMexicanSofa::AccessControl::AdminAuthorization)
|
|
65
|
+
http_auth :get, "/admin/sites/#{comfy_cms_sites(:default).to_param}/edit"
|
|
66
|
+
assert_response :success, response.body
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
def test_admin_authorization_custom
|
|
70
|
+
site = comfy_cms_sites(:default)
|
|
71
|
+
with_routing do |routes|
|
|
72
|
+
routes.draw do
|
|
73
|
+
s = '/admin/sites'
|
|
74
|
+
ns = 'access_control_test/test_authorization'
|
|
75
|
+
get "#{s}/:id/edit" => "#{ns}/sites#edit"
|
|
76
|
+
get "#{s}/:site_id/layouts/:id/edit" => "#{ns}/layouts#edit"
|
|
77
|
+
get "#{s}/:site_id/layouts/:layout_id/revisions/:id" => "#{ns}/revisions#show"
|
|
78
|
+
get "#{s}/:site_id/pages/:id/edit" => "#{ns}/pages#edit"
|
|
79
|
+
get "#{s}/:site_id/snippets/:id/edit" => "#{ns}/snippets#edit"
|
|
80
|
+
get "#{s}/:site_id/files/:id/edit" => "#{ns}/files#edit"
|
|
81
|
+
get "#{s}/:site_id/categories/:id/edit" => "#{ns}/categories#edit"
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
http_auth :get, "/admin/sites/#{site.id}/edit"
|
|
85
|
+
assert_response :forbidden
|
|
86
|
+
assert_equal 'Test Access Denied', response.body
|
|
87
|
+
assert assigns(:authorization_vars)
|
|
88
|
+
assert assigns(:authorization_vars).member?(:@site)
|
|
89
|
+
|
|
90
|
+
layout = comfy_cms_layouts(:default)
|
|
91
|
+
http_auth :get, "/admin/sites/#{site.id}/layouts/#{layout.id}/edit"
|
|
92
|
+
assert assigns(:authorization_vars).member?(:@site)
|
|
93
|
+
assert assigns(:authorization_vars).member?(:@layout)
|
|
94
|
+
|
|
95
|
+
revision = comfy_cms_revisions(:layout)
|
|
96
|
+
http_auth :get, "/admin/sites/#{site.id}/layouts/#{layout.id}/revisions/#{revision.id}"
|
|
97
|
+
assert assigns(:authorization_vars).member?(:@site)
|
|
98
|
+
assert assigns(:authorization_vars).member?(:@record)
|
|
99
|
+
|
|
100
|
+
page = comfy_cms_pages(:default)
|
|
101
|
+
http_auth :get, "/admin/sites/#{site.id}/pages/#{page.id}/edit"
|
|
102
|
+
assert assigns(:authorization_vars).member?(:@site)
|
|
103
|
+
assert assigns(:authorization_vars).member?(:@page)
|
|
104
|
+
|
|
105
|
+
snippet = comfy_cms_snippets(:default)
|
|
106
|
+
http_auth :get, "/admin/sites/#{site.id}/snippets/#{snippet.id}/edit"
|
|
107
|
+
assert assigns(:authorization_vars).member?(:@site)
|
|
108
|
+
assert assigns(:authorization_vars).member?(:@snippet)
|
|
109
|
+
|
|
110
|
+
file = comfy_cms_files(:default)
|
|
111
|
+
http_auth :get, "/admin/sites/#{site.id}/files/#{file.id}/edit"
|
|
112
|
+
assert assigns(:authorization_vars).member?(:@site)
|
|
113
|
+
assert assigns(:authorization_vars).member?(:@file)
|
|
114
|
+
|
|
115
|
+
category = comfy_cms_categories(:default)
|
|
116
|
+
http_auth :get, "/admin/sites/#{site.id}/categories/#{category.id}/edit"
|
|
117
|
+
assert assigns(:authorization_vars).member?(:@site)
|
|
118
|
+
assert assigns(:authorization_vars).member?(:@category)
|
|
119
|
+
end
|
|
120
|
+
end
|
|
121
|
+
|
|
122
|
+
def test_public_authentication_default
|
|
123
|
+
assert_equal 'ComfortableMexicanSofa::AccessControl::PublicAuthentication',
|
|
124
|
+
ComfortableMexicanSofa.config.public_auth
|
|
125
|
+
|
|
126
|
+
get '/'
|
|
127
|
+
assert_response :success, response.body
|
|
128
|
+
end
|
|
129
|
+
|
|
130
|
+
def test_public_authentication_custom
|
|
131
|
+
with_routing do |routes|
|
|
132
|
+
routes.draw do
|
|
133
|
+
get '/:format' => 'access_control_test/test_authentication/content#show', :path => "(*cms_path)"
|
|
134
|
+
end
|
|
135
|
+
|
|
136
|
+
get '/'
|
|
137
|
+
assert_response :unauthorized
|
|
138
|
+
assert_equal 'Test Login Denied', response.body
|
|
139
|
+
end
|
|
140
|
+
end
|
|
141
|
+
end
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
require_relative '../test_helper'
|
|
2
|
+
|
|
3
|
+
class RoutingIntergrationTest < ActionDispatch::IntegrationTest
|
|
4
|
+
|
|
5
|
+
def teardown
|
|
6
|
+
Rails.application.reload_routes!
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
def test_cms_public_prefix
|
|
10
|
+
|
|
11
|
+
assert_equal nil, ComfortableMexicanSofa.config.public_cms_path
|
|
12
|
+
|
|
13
|
+
Rails.application.routes.draw do
|
|
14
|
+
comfy_route :cms, :path => '/custom'
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
assert_equal '/custom', ComfortableMexicanSofa.config.public_cms_path
|
|
18
|
+
end
|
|
19
|
+
end
|
|
@@ -3,18 +3,19 @@
|
|
|
3
3
|
require_relative '../test_helper'
|
|
4
4
|
|
|
5
5
|
class ConfigurationTest < ActiveSupport::TestCase
|
|
6
|
-
|
|
6
|
+
|
|
7
7
|
def test_configuration_presence
|
|
8
8
|
assert config = ComfortableMexicanSofa.configuration
|
|
9
9
|
assert_equal 'ComfortableMexicanSofa CMS Engine', config.cms_title
|
|
10
10
|
assert_equal 'ApplicationController', config.base_controller
|
|
11
|
-
assert_equal 'ComfortableMexicanSofa::
|
|
12
|
-
assert_equal 'ComfortableMexicanSofa::
|
|
11
|
+
assert_equal 'ComfortableMexicanSofa::AccessControl::AdminAuthentication', config.admin_auth
|
|
12
|
+
assert_equal 'ComfortableMexicanSofa::AccessControl::AdminAuthorization', config.admin_authorization
|
|
13
|
+
assert_equal 'ComfortableMexicanSofa::AccessControl::PublicAuthentication', config.public_auth
|
|
13
14
|
assert_equal '', config.admin_route_redirect
|
|
14
15
|
assert_equal false, config.enable_fixtures
|
|
15
16
|
assert_equal File.expand_path('db/cms_fixtures', Rails.root), config.fixtures_path
|
|
16
17
|
assert_equal 25, config.revisions_limit
|
|
17
|
-
assert_equal ({
|
|
18
|
+
assert_equal ({
|
|
18
19
|
'en' => 'English',
|
|
19
20
|
'es' => 'Español'
|
|
20
21
|
}), config.locales
|
|
@@ -26,14 +27,14 @@ class ConfigurationTest < ActiveSupport::TestCase
|
|
|
26
27
|
assert_equal nil, config.allowed_partials
|
|
27
28
|
assert_equal nil, config.hostname_aliases
|
|
28
29
|
end
|
|
29
|
-
|
|
30
|
+
|
|
30
31
|
def test_initialization_overrides
|
|
31
32
|
ComfortableMexicanSofa.configuration.cms_title = 'New Title'
|
|
32
33
|
assert_equal 'New Title', ComfortableMexicanSofa.configuration.cms_title
|
|
33
34
|
end
|
|
34
|
-
|
|
35
|
+
|
|
35
36
|
def test_version
|
|
36
37
|
assert ComfortableMexicanSofa::VERSION
|
|
37
38
|
end
|
|
38
|
-
|
|
39
|
+
|
|
39
40
|
end
|
|
@@ -5,6 +5,7 @@ require_relative '../../test_helper'
|
|
|
5
5
|
class FixtureCategoriesTest < ActiveSupport::TestCase
|
|
6
6
|
|
|
7
7
|
def test_creation
|
|
8
|
+
Comfy::Cms::Category.destroy_all
|
|
8
9
|
assert_difference 'Comfy::Cms::Category.count', 3 do
|
|
9
10
|
ComfortableMexicanSofa::Fixture::Category::Importer.new('sample-site', 'default-site').import!
|
|
10
11
|
assert Comfy::Cms::Category.where(:label => 'File Category', :categorized_type => 'Comfy::Cms::File').present?
|
|
@@ -7,6 +7,11 @@ class FixtureFilesTest < ActiveSupport::TestCase
|
|
|
7
7
|
def test_creation
|
|
8
8
|
Comfy::Cms::File.delete_all
|
|
9
9
|
|
|
10
|
+
# need to have categories present before linking
|
|
11
|
+
site = comfy_cms_sites(:default)
|
|
12
|
+
site.categories.create!(:categorized_type => 'Comfy::Cms::File', :label => 'category_a')
|
|
13
|
+
site.categories.create!(:categorized_type => 'Comfy::Cms::File', :label => 'category_b')
|
|
14
|
+
|
|
10
15
|
assert_difference 'Comfy::Cms::File.count' do
|
|
11
16
|
ComfortableMexicanSofa::Fixture::File::Importer.new('sample-site', 'default-site').import!
|
|
12
17
|
assert file = Comfy::Cms::File.last
|
|
@@ -7,12 +7,17 @@ class FixturePagesTest < ActiveSupport::TestCase
|
|
|
7
7
|
def test_creation
|
|
8
8
|
Comfy::Cms::Page.delete_all
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
site = comfy_cms_sites(:default)
|
|
11
|
+
layout = comfy_cms_layouts(:default)
|
|
11
12
|
layout.update_column(:content, '<html>{{cms:page:content}}</html>')
|
|
12
13
|
|
|
13
14
|
nested = comfy_cms_layouts(:nested)
|
|
14
15
|
nested.update_column(:content, '<html>{{cms:page:left}}<br/>{{cms:page:right}}</html>')
|
|
15
16
|
|
|
17
|
+
# need to have categories present before linking
|
|
18
|
+
site.categories.create!(:categorized_type => 'Comfy::Cms::Page', :label => 'category_a')
|
|
19
|
+
site.categories.create!(:categorized_type => 'Comfy::Cms::Page', :label => 'category_b')
|
|
20
|
+
|
|
16
21
|
assert_difference 'Comfy::Cms::Page.count', 2 do
|
|
17
22
|
ComfortableMexicanSofa::Fixture::Page::Importer.new('sample-site', 'default-site').import!
|
|
18
23
|
|
|
@@ -22,6 +27,7 @@ class FixturePagesTest < ActiveSupport::TestCase
|
|
|
22
27
|
assert_equal "<html>Home Page Fixture Contént\ndefault_snippet_content</html>", page.content_cache
|
|
23
28
|
assert_equal 0, page.position
|
|
24
29
|
assert page.is_published?
|
|
30
|
+
|
|
25
31
|
assert_equal 2, page.categories.count
|
|
26
32
|
assert_equal ['category_a', 'category_b'], page.categories.map{|c| c.label}
|
|
27
33
|
|
|
@@ -36,6 +42,16 @@ class FixturePagesTest < ActiveSupport::TestCase
|
|
|
36
42
|
end
|
|
37
43
|
end
|
|
38
44
|
|
|
45
|
+
def test_creation_with_missing_categories
|
|
46
|
+
Comfy::Cms::Page.delete_all
|
|
47
|
+
|
|
48
|
+
assert_difference 'Comfy::Cms::Page.count', 2 do
|
|
49
|
+
ComfortableMexicanSofa::Fixture::Page::Importer.new('sample-site', 'default-site').import!
|
|
50
|
+
assert page = Comfy::Cms::Page.where(:full_path => '/').first
|
|
51
|
+
assert_equal 0, page.categories.count
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
|
|
39
55
|
def test_update
|
|
40
56
|
page = comfy_cms_pages(:default)
|
|
41
57
|
page.update_column(:updated_at, 10.years.ago)
|
|
@@ -7,6 +7,11 @@ class FixtureSnippetsTest < ActiveSupport::TestCase
|
|
|
7
7
|
def test_creation
|
|
8
8
|
Comfy::Cms::Snippet.delete_all
|
|
9
9
|
|
|
10
|
+
# need to have categories present before linking
|
|
11
|
+
site = comfy_cms_sites(:default)
|
|
12
|
+
site.categories.create!(:categorized_type => 'Comfy::Cms::Snippet', :label => 'category_a')
|
|
13
|
+
site.categories.create!(:categorized_type => 'Comfy::Cms::Snippet', :label => 'category_b')
|
|
14
|
+
|
|
10
15
|
assert_difference 'Comfy::Cms::Snippet.count' do
|
|
11
16
|
ComfortableMexicanSofa::Fixture::Snippet::Importer.new('sample-site', 'default-site').import!
|
|
12
17
|
assert snippet = Comfy::Cms::Snippet.last
|
data/test/models/page_test.rb
CHANGED
|
@@ -237,6 +237,12 @@ class CmsPageTest < ActiveSupport::TestCase
|
|
|
237
237
|
assert_equal '//test.host/en/site/', comfy_cms_pages(:default).url
|
|
238
238
|
assert_equal '//test.host/en/site/child-page', comfy_cms_pages(:child).url
|
|
239
239
|
end
|
|
240
|
+
|
|
241
|
+
def test_url_with_public_cms_path
|
|
242
|
+
ComfortableMexicanSofa.config.public_cms_path = '/custom'
|
|
243
|
+
assert_equal '//test.host/custom/', comfy_cms_pages(:default).url
|
|
244
|
+
assert_equal '//test.host/custom/child-page', comfy_cms_pages(:child).url
|
|
245
|
+
end
|
|
240
246
|
|
|
241
247
|
def test_unicode_slug_escaping
|
|
242
248
|
page = comfy_cms_pages(:child)
|
data/test/models/site_test.rb
CHANGED
|
@@ -149,4 +149,13 @@ class CmsSiteTest < ActiveSupport::TestCase
|
|
|
149
149
|
assert_equal site_b, Comfy::Cms::Site.find_site('alias_c.host')
|
|
150
150
|
end
|
|
151
151
|
|
|
152
|
+
def test_url
|
|
153
|
+
assert_equal '//test.host/', comfy_cms_sites(:default).url
|
|
154
|
+
end
|
|
155
|
+
|
|
156
|
+
def test_url_with_public_cms_path
|
|
157
|
+
ComfortableMexicanSofa.config.public_cms_path = '/custom'
|
|
158
|
+
assert_equal '//test.host/custom/', comfy_cms_sites(:default).url
|
|
159
|
+
end
|
|
160
|
+
|
|
152
161
|
end
|
data/test/test_helper.rb
CHANGED
|
@@ -16,24 +16,25 @@ Paperclip::Attachment.default_options[:use_timestamp] = false
|
|
|
16
16
|
class ActiveSupport::TestCase
|
|
17
17
|
fixtures :all
|
|
18
18
|
include ActionDispatch::TestProcess
|
|
19
|
-
|
|
19
|
+
|
|
20
20
|
def setup
|
|
21
21
|
reset_config
|
|
22
22
|
reset_locale
|
|
23
23
|
stub_paperclip
|
|
24
24
|
end
|
|
25
|
-
|
|
25
|
+
|
|
26
26
|
# resetting default configuration
|
|
27
27
|
def reset_config
|
|
28
28
|
ComfortableMexicanSofa.configure do |config|
|
|
29
29
|
config.cms_title = 'ComfortableMexicanSofa CMS Engine'
|
|
30
|
-
config.admin_auth = 'ComfortableMexicanSofa::
|
|
31
|
-
config.
|
|
30
|
+
config.admin_auth = 'ComfortableMexicanSofa::AccessControl::AdminAuthentication'
|
|
31
|
+
config.admin_authorization = 'ComfortableMexicanSofa::AccessControl::AdminAuthorization'
|
|
32
|
+
config.public_auth = 'ComfortableMexicanSofa::AccessControl::PublicAuthentication'
|
|
32
33
|
config.admin_route_redirect = ''
|
|
33
34
|
config.enable_fixtures = false
|
|
34
35
|
config.fixtures_path = File.expand_path('db/cms_fixtures', Rails.root)
|
|
35
36
|
config.revisions_limit = 25
|
|
36
|
-
config.locales = {
|
|
37
|
+
config.locales = {
|
|
37
38
|
'en' => 'English',
|
|
38
39
|
'es' => 'Español'
|
|
39
40
|
}
|
|
@@ -44,16 +45,17 @@ class ActiveSupport::TestCase
|
|
|
44
45
|
config.allowed_helpers = nil
|
|
45
46
|
config.allowed_partials = nil
|
|
46
47
|
config.hostname_aliases = nil
|
|
48
|
+
config.public_cms_path = nil
|
|
47
49
|
end
|
|
48
|
-
ComfortableMexicanSofa::
|
|
49
|
-
ComfortableMexicanSofa::
|
|
50
|
+
ComfortableMexicanSofa::AccessControl::AdminAuthentication.username = 'username'
|
|
51
|
+
ComfortableMexicanSofa::AccessControl::AdminAuthentication.password = 'password'
|
|
50
52
|
end
|
|
51
|
-
|
|
53
|
+
|
|
52
54
|
def reset_locale
|
|
53
55
|
I18n.default_locale = :en
|
|
54
56
|
I18n.locale = :en
|
|
55
57
|
end
|
|
56
|
-
|
|
58
|
+
|
|
57
59
|
# Example usage:
|
|
58
60
|
# assert_has_errors_on @record, :field_1, :field_2
|
|
59
61
|
def assert_has_errors_on(record, *fields)
|
|
@@ -62,7 +64,7 @@ class ActiveSupport::TestCase
|
|
|
62
64
|
unmatched = fields.flatten - record.errors.keys
|
|
63
65
|
assert unmatched.blank?, "#{record.class} doesn't have errors on '#{unmatched.join(', ')}'"
|
|
64
66
|
end
|
|
65
|
-
|
|
67
|
+
|
|
66
68
|
# Example usage:
|
|
67
69
|
# assert_exception_raised do ... end
|
|
68
70
|
# assert_exception_raised ActiveRecord::RecordInvalid do ... end
|
|
@@ -92,13 +94,13 @@ class ActiveSupport::TestCase
|
|
|
92
94
|
def rendered_content_formatter(string)
|
|
93
95
|
string.gsub(/^[ ]+/, '')
|
|
94
96
|
end
|
|
95
|
-
|
|
97
|
+
|
|
96
98
|
def stub_paperclip
|
|
97
99
|
Comfy::Cms::Block.any_instance.stubs(:save_attached_files).returns(true)
|
|
98
100
|
Comfy::Cms::Block.any_instance.stubs(:delete_attached_files).returns(true)
|
|
99
101
|
Paperclip::Attachment.any_instance.stubs(:post_process).returns(true)
|
|
100
102
|
end
|
|
101
|
-
|
|
103
|
+
|
|
102
104
|
end
|
|
103
105
|
|
|
104
106
|
class ActionController::TestCase
|
|
@@ -108,28 +110,35 @@ class ActionController::TestCase
|
|
|
108
110
|
end
|
|
109
111
|
|
|
110
112
|
class ActionDispatch::IntegrationTest
|
|
111
|
-
|
|
113
|
+
|
|
112
114
|
def setup
|
|
113
115
|
host! 'test.host'
|
|
114
116
|
reset_config
|
|
115
117
|
reset_locale
|
|
116
118
|
stub_paperclip
|
|
117
119
|
end
|
|
118
|
-
|
|
120
|
+
|
|
119
121
|
# Attaching http_auth stuff with request. Example use:
|
|
120
122
|
# http_auth :get, '/cms-admin/pages'
|
|
121
123
|
def http_auth(method, path, options = {}, username = 'username', password = 'password')
|
|
122
124
|
send(method, path, options, {'HTTP_AUTHORIZATION' => "Basic #{Base64.encode64(username + ':' + password)}"})
|
|
123
125
|
end
|
|
126
|
+
|
|
127
|
+
# Overriding helper method as it doesn't really work for integration tests by default
|
|
128
|
+
def with_routing(&block)
|
|
129
|
+
yield ComfortableMexicanSofa::Application.routes
|
|
130
|
+
ensure
|
|
131
|
+
load File.expand_path('../config/cms_routes.rb', File.dirname(__FILE__))
|
|
132
|
+
end
|
|
124
133
|
end
|
|
125
134
|
|
|
126
135
|
class Rails::Generators::TestCase
|
|
127
|
-
|
|
136
|
+
|
|
128
137
|
destination File.expand_path('../tmp', File.dirname(__FILE__))
|
|
129
|
-
|
|
138
|
+
|
|
130
139
|
setup :prepare_destination,
|
|
131
140
|
:prepare_files
|
|
132
|
-
|
|
141
|
+
|
|
133
142
|
def prepare_files
|
|
134
143
|
config_path = File.join(self.destination_root, 'config')
|
|
135
144
|
routes_path = File.join(config_path, 'routes.rb')
|
|
@@ -139,7 +148,7 @@ class Rails::Generators::TestCase
|
|
|
139
148
|
f.write("Test::Application.routes.draw do\n\nend")
|
|
140
149
|
end
|
|
141
150
|
end
|
|
142
|
-
|
|
151
|
+
|
|
143
152
|
def read_file(filename)
|
|
144
153
|
File.read(
|
|
145
154
|
File.join(
|
|
@@ -148,5 +157,5 @@ class Rails::Generators::TestCase
|
|
|
148
157
|
)
|
|
149
158
|
)
|
|
150
159
|
end
|
|
151
|
-
|
|
160
|
+
|
|
152
161
|
end
|