cms-fortress 1.2.2 → 1.3.0.rc1
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.
- data/.gitignore +66 -0
- data/Gemfile +2 -17
- data/Gemfile.lock +80 -90
- data/README.rdoc +11 -0
- data/Rakefile +9 -39
- data/app/controllers/cms/fortress/admin_controller.rb +5 -0
- data/app/controllers/cms/fortress/roles_controller.rb +11 -21
- data/app/controllers/cms/fortress/users_controller.rb +48 -31
- data/app/helpers/cms/fortress/application_helper.rb +37 -5
- data/app/helpers/comfy/admin/cms/pages_helper.rb +22 -0
- data/app/models/cms/fortress/error.rb +17 -0
- data/app/models/cms/fortress/role.rb +2 -1
- data/app/models/cms/fortress/settings.rb +17 -0
- data/app/models/cms/fortress/user.rb +17 -0
- data/app/models/cms_ability.rb +29 -22
- data/app/views/cms/fortress/admin/dashboard.html.haml +12 -0
- data/app/views/cms/fortress/shared/_dashboard_widget.html.haml +29 -0
- data/app/views/cms/fortress/shared/_menu.html.haml +26 -26
- data/app/views/cms/fortress/shared/_navbar.html.haml +1 -1
- data/app/views/cms/fortress/shared/_page_extend.html.haml +3 -5
- data/app/views/cms/fortress/shared/_page_extend_js.html.haml +2 -14
- data/app/views/cms/fortress/themes/wide/_body.html.haml +9 -8
- data/app/views/cms/fortress/themes/wide/_menu.html.haml +70 -37
- data/app/views/cms/fortress/users/_form.html.haml +6 -1
- data/app/views/cms/fortress/users/edit.html.haml +1 -2
- data/app/views/cms/fortress/users/index.html.haml +14 -5
- data/app/views/cms/fortress/users/new.html.haml +1 -2
- data/app/views/comfy/admin/cms/pages/_form.html.haml +10 -4
- data/app/views/comfy/admin/cms/pages/edit.html.haml +25 -0
- data/app/views/layouts/comfy/admin/cms/_head.html.haml +1 -1
- data/app/views/layouts/comfy/admin/cms/_left.html.haml +15 -12
- data/bin/bundle +3 -0
- data/bin/rails +4 -0
- data/bin/rake +4 -0
- data/cms-fortress.gemspec +32 -171
- data/config.ru +4 -0
- data/config/application.rb +34 -0
- data/config/boot.rb +5 -0
- data/config/cms/fortress/global_settings.yml +12 -0
- data/config/cms_routes.rb +7 -0
- data/config/database.yml +11 -0
- data/config/environment.rb +5 -0
- data/config/environments/development.rb +29 -0
- data/config/environments/test.rb +36 -0
- data/config/initializers/devise.rb +256 -0
- data/config/initializers/secret_token.rb +14 -0
- data/config/locales/de.yml +28 -1
- data/config/locales/devise.en.yml +59 -0
- data/config/locales/en.yml +37 -1
- data/config/roles.yml +1 -0
- data/config/secrets.yml +14 -0
- data/db/migrate/06_add_type_to_users.rb +11 -0
- data/db/migrate/07_integrate_workflow_into_cms_pages.rb +37 -0
- data/db/schema.rb +182 -0
- data/lib/assets/.keep +0 -0
- data/lib/cms-fortress.rb +10 -1
- data/lib/cms/fortress/application_controller_methods.rb +5 -2
- data/lib/cms/fortress/page_methods.rb +52 -2
- data/lib/cms/fortress/pages_controller_methods.rb +17 -0
- data/lib/cms/fortress/rails/engine.rb +12 -3
- data/lib/cms/fortress/routes/admin.rb +9 -1
- data/lib/cms/fortress/site_methods.rb +29 -0
- data/lib/cms/fortress/sites_controller_methods.rb +22 -0
- data/lib/generators/cms/comfy/comfy_generator.rb +18 -0
- data/lib/generators/cms/fortress/fortress_generator.rb +30 -6
- data/lib/generators/cms/fortress/upgrade/USAGE +8 -0
- data/lib/generators/cms/fortress/upgrade/upgrade_generator.rb +24 -0
- data/lib/tasks/.keep +0 -0
- data/test/{functional → controllers}/cms/fortress/roles_controller_test.rb +9 -4
- data/test/{functional → controllers}/cms/fortress/users_controller_test.rb +10 -11
- data/test/controllers/comfy/admin/cms/pages_controller_test.rb +115 -0
- data/test/fixtures/cms/fortress/role_details.yml +89 -8
- data/test/fixtures/cms/fortress/roles.yml +17 -0
- data/test/fixtures/cms/fortress/users.yml +14 -0
- data/test/fixtures/comfy/cms/blocks.yml +12 -0
- data/test/fixtures/comfy/cms/categories.yml +4 -0
- data/test/fixtures/comfy/cms/categorizations.yml +3 -0
- data/test/fixtures/comfy/cms/files.yml +9 -0
- data/test/fixtures/comfy/cms/layouts.yml +40 -0
- data/test/fixtures/comfy/cms/pages.yml +105 -0
- data/test/fixtures/comfy/cms/revisions.yml +21 -0
- data/test/fixtures/comfy/cms/sites.yml +6 -0
- data/test/fixtures/comfy/cms/snippets.yml +6 -0
- data/test/integration/cms/fortress/users_controller_test.rb +16 -0
- data/test/models/comfy/cms/page_test.rb +84 -0
- data/test/models/comfy/cms/settings_test.rb +16 -0
- data/test/test_helper.rb +25 -0
- metadata +157 -23
- data/app/models/cms/page_workflow.rb +0 -44
- data/app/models/error/missing_role_configuration_file.rb +0 -12
- data/lib/generators/comfy/cms/cms_generator.rb +0 -60
- data/test/fixtures/cms/page_workflows.yml +0 -11
- data/test/helper.rb +0 -18
- data/test/test_cms-fortress.rb +0 -7
- data/test/unit/cms/fortress/role_detail_test.rb +0 -7
- data/test/unit/cms/fortress/role_test.rb +0 -7
- data/test/unit/cms/fortress/role_user_test.rb +0 -7
- data/test/unit/helpers/cms/fortress/roles_helper_test.rb +0 -4
- data/test/unit/helpers/cms/fortress/users_helper_test.rb +0 -4
@@ -0,0 +1,17 @@
|
|
1
|
+
module Cms
|
2
|
+
module Fortress
|
3
|
+
module PagesControllerMethods
|
4
|
+
|
5
|
+
def transit_to_state
|
6
|
+
@page.send(params.fetch(:transition)) if params[:transition].present?
|
7
|
+
end
|
8
|
+
|
9
|
+
def self.included(base)
|
10
|
+
base.class_eval do
|
11
|
+
before_action :transit_to_state, only: [:create, :update]
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -10,15 +10,24 @@ module Cms
|
|
10
10
|
Sprockets::Context.send :include, Cms::Fortress::SprocketHelper
|
11
11
|
|
12
12
|
Comfy::Cms::ContentController.send(:include, Cms::Fortress::ContentRenderer)
|
13
|
+
Comfy::Admin::Cms::PagesController.send(:include, Cms::Fortress::PagesControllerMethods)
|
13
14
|
Comfy::Cms::Page.send(:include, Cms::Fortress::PageMethods)
|
14
15
|
Comfy::Cms::File.send(:include, Cms::Fortress::FileMethods)
|
16
|
+
Comfy::Cms::Site.send(:include, Cms::Fortress::SiteMethods)
|
15
17
|
|
16
|
-
|
17
|
-
Comfy::Admin::Cms::
|
18
|
+
|
19
|
+
Comfy::Admin::Cms::BaseController.class_eval do
|
18
20
|
before_action do
|
19
|
-
|
21
|
+
if current_cms_fortress_user && current_cms_fortress_user.type.eql?(:site_user)
|
22
|
+
@site = current_cms_fortress_user.site
|
23
|
+
session[:site_id] = @site.id if @site
|
24
|
+
end
|
20
25
|
end
|
21
26
|
end
|
27
|
+
|
28
|
+
# Insert Roles
|
29
|
+
Comfy::Admin::Cms::SitesController.send :include, Cms::Fortress::SiteControllerMethods
|
30
|
+
|
22
31
|
Comfy::Admin::Cms::LayoutsController.class_eval do
|
23
32
|
before_action do
|
24
33
|
authorize! :manage, Comfy::Cms::Layout
|
@@ -18,7 +18,13 @@ class ActionDispatch::Routing::Mapper
|
|
18
18
|
post :refresh
|
19
19
|
end
|
20
20
|
end
|
21
|
-
|
21
|
+
|
22
|
+
resources :users, :except => :show, :as => 'cms_fortress_users' do
|
23
|
+
collection do
|
24
|
+
get :super
|
25
|
+
get "super/new", action: "new_super"
|
26
|
+
end
|
27
|
+
end
|
22
28
|
|
23
29
|
get 'settings/users' => 'admin#users', as: 'cms_fortress_user_settings'
|
24
30
|
get 'unauthorised' => 'admin#unauthorised', as: 'cms_fortress_unauthorised'
|
@@ -27,6 +33,8 @@ class ActionDispatch::Routing::Mapper
|
|
27
33
|
get 'sites/:site_id/files/videos' => 'admin#videos', as: 'cms_fortress_files_videos'
|
28
34
|
get 'sites/:site_id/files/others' => 'admin#other_files', as: 'cms_fortress_files_others'
|
29
35
|
|
36
|
+
# Site Resource routes
|
37
|
+
get 'site/dashboard' => 'admin#dashboard', as: 'dashboard_site'
|
30
38
|
end
|
31
39
|
|
32
40
|
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
require 'active_support/concern'
|
2
|
+
|
3
|
+
module Cms
|
4
|
+
module Fortress
|
5
|
+
module SiteMethods
|
6
|
+
extend ActiveSupport::Concern
|
7
|
+
|
8
|
+
included do
|
9
|
+
after_create :generate_defaults
|
10
|
+
|
11
|
+
has_many :users, class_name: "Cms::Fortress::User", foreign_key: :site_id
|
12
|
+
has_many :roles, class_name: "Cms::Fortress::Role", foreign_key: :site_id
|
13
|
+
has_many :role_details, class_name: "Cms::Fortress::RoleDetail", foreign_key: :site_id
|
14
|
+
end
|
15
|
+
|
16
|
+
# generate default roles specific for the site
|
17
|
+
def generate_defaults
|
18
|
+
#TODO: implement I18n below
|
19
|
+
role = Cms::Fortress::Role.create!(:site_id => id, :name => "#{label} Administrator", :description => "#{ label } administrator users")
|
20
|
+
role.load_defaults
|
21
|
+
role.save
|
22
|
+
end
|
23
|
+
|
24
|
+
module ClassMethods
|
25
|
+
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
require 'active_support/concern'
|
2
|
+
module Cms
|
3
|
+
module Fortress
|
4
|
+
module SiteControllerMethods
|
5
|
+
extend ActiveSupport::Concern
|
6
|
+
|
7
|
+
included do
|
8
|
+
before_action do
|
9
|
+
authorize! :manage, Comfy::Cms::Site
|
10
|
+
end
|
11
|
+
before_action only: [:new, :create] do
|
12
|
+
raise CanCan::AccessDenied.new("You are not allowed to create a site.") unless current_cms_fortress_user.type.eql?(:super_user)
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
module ClassMethods
|
17
|
+
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require 'rails/generators'
|
2
|
+
require 'generators/comfy/cms/cms_generator'
|
3
|
+
|
4
|
+
class Cms::ComfyGenerator < Comfy::Generators::CmsGenerator
|
5
|
+
spec = Gem::Specification.find_by_name("comfortable_mexican_sofa")
|
6
|
+
source_root spec.gem_dir # File.expand_path('../../../../..', __FILE__)
|
7
|
+
|
8
|
+
def generate_routing
|
9
|
+
route_string = " comfy_route :cms_admin, :path => '/cms-admin'\n\n"
|
10
|
+
route_string << " # Make sure this routeset is defined last\n"
|
11
|
+
route_string << " comfy_route :cms, :path => '/', :sitemap => false\n"
|
12
|
+
route route_string[2..-1]
|
13
|
+
end
|
14
|
+
|
15
|
+
def show_readme
|
16
|
+
|
17
|
+
end
|
18
|
+
end
|
@@ -1,29 +1,53 @@
|
|
1
|
+
require 'generators/cms/comfy/comfy_generator'
|
2
|
+
require 'fileutils'
|
1
3
|
|
2
4
|
class Cms::FortressGenerator < Rails::Generators::Base
|
5
|
+
include Thor::Actions
|
6
|
+
|
3
7
|
# source_root File.expand_path('../templates', __FILE__)
|
4
8
|
source_root File.expand_path('../../../../..', __FILE__)
|
9
|
+
class_option :comfy, type: :boolean, default: true, description: "Generate Comfy"
|
10
|
+
class_option :routes, type: :boolean, default: true, description: "Generate routes"
|
11
|
+
class_option :migration, type: :boolean, default: true, description: "Generate migration"
|
12
|
+
class_option :devise, type: :boolean, default: true, description: "Generate devise"
|
13
|
+
class_option :development , default: false, desc: "Copy files that are necessary for development and testing of cms-fortress.", aliases: "-d"
|
5
14
|
|
6
15
|
def install_devise
|
7
|
-
generate("devise:install")
|
16
|
+
generate("devise:install") if options.devise? && !options.development?
|
8
17
|
end
|
9
18
|
|
10
19
|
def install_comfortable_mexican_sofa
|
11
|
-
|
20
|
+
Cms::ComfyGenerator.start if options.comfy? && !options.development?
|
12
21
|
end
|
13
22
|
|
14
23
|
def generate_migrations
|
15
|
-
rake("cms_fortress_engine:install:migrations")
|
24
|
+
rake("cms_fortress_engine:install:migrations") if options.migration?
|
16
25
|
end
|
17
26
|
|
18
27
|
def generate_initialization
|
19
|
-
copy_file 'config/initializers/cms_fortress.rb',
|
20
|
-
|
28
|
+
copy_file 'config/initializers/cms_fortress.rb', 'config/initializers/cms_fortress.rb'
|
29
|
+
end
|
30
|
+
|
31
|
+
def copy_development_files
|
32
|
+
if options[:development] == "development"
|
33
|
+
copy_file Gem::Specification.find_by_name('comfortable_mexican_sofa').gem_dir+'/db/migrate/01_create_cms.rb',
|
34
|
+
'db/migrate/00_create_cms.rb'
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
def generate_routing
|
39
|
+
if options.routes?
|
40
|
+
route_string = ""
|
41
|
+
route_string << " cms_fortress_routes :path => '/cms-admin'\n"
|
42
|
+
route route_string[2..-1]
|
43
|
+
end
|
21
44
|
end
|
22
45
|
|
23
46
|
def copy_files
|
24
47
|
log 'Copying files...'
|
25
48
|
files = [
|
26
|
-
'config/roles.yml'
|
49
|
+
'config/roles.yml',
|
50
|
+
'config/cms/fortress/global_settings.yml'
|
27
51
|
]
|
28
52
|
files.each do |file|
|
29
53
|
copy_file file, file
|
@@ -0,0 +1,24 @@
|
|
1
|
+
class Cms::Fortress::UpgradeGenerator < Rails::Generators::Base
|
2
|
+
source_root File.expand_path('../../../../../..', __FILE__)
|
3
|
+
|
4
|
+
def generate_migrations
|
5
|
+
rake("cms_fortress_engine:install:migrations")
|
6
|
+
end
|
7
|
+
|
8
|
+
def copy_files
|
9
|
+
log 'Copying files...'
|
10
|
+
files = [
|
11
|
+
'config/cms/fortress/global_settings.yml'
|
12
|
+
]
|
13
|
+
files.each do |file|
|
14
|
+
copy_file file, file
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
def done
|
19
|
+
puts "\r\n\r\n!!! IMPORTANT NOTE: Review your existing users since they set to super users as default. Review and assign site roles accordingly."
|
20
|
+
puts "Upgrade complete..."
|
21
|
+
puts "\r\n\r\n"
|
22
|
+
end
|
23
|
+
|
24
|
+
end
|
data/lib/tasks/.keep
ADDED
File without changes
|
@@ -1,11 +1,16 @@
|
|
1
|
+
# http://api.rubyonrails.org/classes/ActionController/TestCase.html
|
1
2
|
require 'test_helper'
|
2
3
|
|
4
|
+
|
3
5
|
class Cms::Fortress::RolesControllerTest < ActionController::TestCase
|
4
|
-
setup
|
6
|
+
def setup
|
7
|
+
@comfy_cms_site = comfy_cms_sites(:default)
|
8
|
+
@cms_fortress_user = cms_fortress_users(:one)
|
5
9
|
@cms_fortress_role = cms_fortress_roles(:one)
|
10
|
+
sign_in Cms::Fortress::User, @cms_fortress_user
|
6
11
|
end
|
7
12
|
|
8
|
-
|
13
|
+
def test_should_get_index
|
9
14
|
get :index
|
10
15
|
assert_response :success
|
11
16
|
assert_not_nil assigns(:cms_fortress_roles)
|
@@ -18,7 +23,7 @@ class Cms::Fortress::RolesControllerTest < ActionController::TestCase
|
|
18
23
|
|
19
24
|
test "should create cms_fortress_role" do
|
20
25
|
assert_difference('Cms::Fortress::Role.count') do
|
21
|
-
post :create, cms_fortress_role: { description: @cms_fortress_role.description,
|
26
|
+
post :create, cms_fortress_role: { description: @cms_fortress_role.description, name: @cms_fortress_role.name }
|
22
27
|
end
|
23
28
|
|
24
29
|
assert_redirected_to cms_fortress_role_path(assigns(:cms_fortress_role))
|
@@ -35,7 +40,7 @@ class Cms::Fortress::RolesControllerTest < ActionController::TestCase
|
|
35
40
|
end
|
36
41
|
|
37
42
|
test "should update cms_fortress_role" do
|
38
|
-
put :update, id: @cms_fortress_role, cms_fortress_role: { description: @cms_fortress_role.description,
|
43
|
+
put :update, id: @cms_fortress_role, cms_fortress_role: { description: @cms_fortress_role.description, name: @cms_fortress_role.name }
|
39
44
|
assert_redirected_to cms_fortress_role_path(assigns(:cms_fortress_role))
|
40
45
|
end
|
41
46
|
|
@@ -1,13 +1,16 @@
|
|
1
|
+
# http://api.rubyonrails.org/classes/ActionController/TestCase.html
|
1
2
|
require 'test_helper'
|
2
3
|
|
3
4
|
class Cms::Fortress::UsersControllerTest < ActionController::TestCase
|
4
|
-
setup
|
5
|
+
def setup
|
6
|
+
@comfy_cms_site = comfy_cms_sites(:default)
|
5
7
|
@cms_fortress_user = cms_fortress_users(:one)
|
8
|
+
@cms_fortress_role_details = cms_fortress_role_details(:one)
|
9
|
+
sign_in Cms::Fortress::User, @cms_fortress_user
|
6
10
|
end
|
7
11
|
|
8
|
-
|
12
|
+
def test_it_should_get_index
|
9
13
|
get :index
|
10
|
-
assert_response :success
|
11
14
|
assert_not_nil assigns(:cms_fortress_users)
|
12
15
|
end
|
13
16
|
|
@@ -18,15 +21,10 @@ class Cms::Fortress::UsersControllerTest < ActionController::TestCase
|
|
18
21
|
|
19
22
|
test "should create cms_fortress_user" do
|
20
23
|
assert_difference('Cms::Fortress::User.count') do
|
21
|
-
post :create, cms_fortress_user: { email: @
|
24
|
+
post :create, cms_fortress_user: { email: 'foo@bar.com', password: 'foobar123', password_confirmation: 'foobar123' }
|
22
25
|
end
|
23
26
|
|
24
|
-
assert_redirected_to
|
25
|
-
end
|
26
|
-
|
27
|
-
test "should show cms_fortress_user" do
|
28
|
-
get :show, id: @cms_fortress_user
|
29
|
-
assert_response :success
|
27
|
+
assert_redirected_to cms_fortress_users_path
|
30
28
|
end
|
31
29
|
|
32
30
|
test "should get edit" do
|
@@ -36,7 +34,8 @@ class Cms::Fortress::UsersControllerTest < ActionController::TestCase
|
|
36
34
|
|
37
35
|
test "should update cms_fortress_user" do
|
38
36
|
put :update, id: @cms_fortress_user, cms_fortress_user: { email: @cms_fortress_user.email, password: @cms_fortress_user.password, password_confirmation: @cms_fortress_user.password_confirmation }
|
39
|
-
assert_redirected_to cms_fortress_user_path(assigns(:cms_fortress_user))
|
37
|
+
#assert_redirected_to cms_fortress_user_path(assigns(:cms_fortress_user))
|
38
|
+
assert_redirected_to cms_fortress_users_path()
|
40
39
|
end
|
41
40
|
|
42
41
|
test "should destroy cms_fortress_user" do
|
@@ -0,0 +1,115 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class Comfy::Admin::Cms::PagesControllerTest < ActionController::TestCase
|
4
|
+
def setup
|
5
|
+
@comfy_cms_site = comfy_cms_sites(:default)
|
6
|
+
@cms_fortress_user = cms_fortress_users(:one)
|
7
|
+
@cms_fortress_role = cms_fortress_roles(:one)
|
8
|
+
sign_in Cms::Fortress::User, @cms_fortress_user
|
9
|
+
end
|
10
|
+
|
11
|
+
test "new page should be drafted" do
|
12
|
+
assert_difference 'Comfy::Cms::Page.count' do
|
13
|
+
assert_difference 'Comfy::Cms::Block.count', 2 do
|
14
|
+
post :create, :site_id => @comfy_cms_site, :page => {
|
15
|
+
:label => 'Test Page',
|
16
|
+
:slug => 'test-page',
|
17
|
+
:parent_id => comfy_cms_pages(:default).id,
|
18
|
+
:layout_id => comfy_cms_layouts(:default).id,
|
19
|
+
:blocks_attributes => [
|
20
|
+
{ :identifier => 'default_page_text',
|
21
|
+
:content => 'content content' },
|
22
|
+
{ :identifier => 'default_field_text',
|
23
|
+
:content => 'title content' }
|
24
|
+
]
|
25
|
+
}, :transition => 'draft'
|
26
|
+
page = Comfy::Cms::Page.last
|
27
|
+
assert_equal @comfy_cms_site, page.site
|
28
|
+
assert page.drafted?
|
29
|
+
assert_redirected_to edit_comfy_admin_cms_site_page_url(id: page, site_id: page.site)
|
30
|
+
assert_equal 'Page created', flash[:success]
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
test "new page should be published" do
|
36
|
+
assert_difference 'Comfy::Cms::Page.count' do
|
37
|
+
assert_difference 'Comfy::Cms::Block.count', 2 do
|
38
|
+
post :create, :site_id => @comfy_cms_site, :page => {
|
39
|
+
:label => 'Test Page',
|
40
|
+
:slug => 'test-page',
|
41
|
+
:parent_id => comfy_cms_pages(:default).id,
|
42
|
+
:layout_id => comfy_cms_layouts(:default).id,
|
43
|
+
:blocks_attributes => [
|
44
|
+
{ :identifier => 'default_page_text',
|
45
|
+
:content => 'content content' },
|
46
|
+
{ :identifier => 'default_field_text',
|
47
|
+
:content => 'title content' }
|
48
|
+
]
|
49
|
+
}, :transition => 'publish'
|
50
|
+
page = Comfy::Cms::Page.last
|
51
|
+
assert_equal @comfy_cms_site, page.site
|
52
|
+
assert page.published?
|
53
|
+
assert_redirected_to edit_comfy_admin_cms_site_page_url(id: page, site_id: page.site)
|
54
|
+
assert_equal 'Page created', flash[:success]
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
test "drafted page should become reviewed" do
|
60
|
+
page = comfy_cms_pages(:drafted)
|
61
|
+
assert_no_difference 'Comfy::Cms::Block.count' do
|
62
|
+
put :update, :site_id => page.site, :id => page, :transition => 'review'
|
63
|
+
assert_response :redirect
|
64
|
+
assert_redirected_to :action => :edit, :id => page
|
65
|
+
assert_equal 'Page updated', flash[:success]
|
66
|
+
assert assigns(:page).reviewed?
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
test "drafted page should become published" do
|
71
|
+
page = comfy_cms_pages(:drafted)
|
72
|
+
assert_no_difference 'Comfy::Cms::Block.count' do
|
73
|
+
put :update, :site_id => page.site, :id => page, :transition => 'publish'
|
74
|
+
assert_response :redirect
|
75
|
+
assert_redirected_to :action => :edit, :id => page
|
76
|
+
assert_equal 'Page updated', flash[:success]
|
77
|
+
assert assigns(:page).published?
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
81
|
+
test "reviewed page should become published" do
|
82
|
+
page = comfy_cms_pages(:reviewed)
|
83
|
+
assert_no_difference 'Comfy::Cms::Block.count' do
|
84
|
+
put :update, :site_id => page.site, :id => page, :transition => 'publish'
|
85
|
+
assert_response :redirect
|
86
|
+
assert_redirected_to :action => :edit, :id => page
|
87
|
+
assert_equal 'Page updated', flash[:success]
|
88
|
+
assert assigns(:page).published?
|
89
|
+
end
|
90
|
+
end
|
91
|
+
|
92
|
+
test "published page should become drafted" do
|
93
|
+
page = comfy_cms_pages(:published)
|
94
|
+
assert_no_difference 'Comfy::Cms::Block.count' do
|
95
|
+
put :update, :site_id => page.site, :id => page, :transition => 'reset'
|
96
|
+
assert_response :redirect
|
97
|
+
assert_redirected_to :action => :edit, :id => page
|
98
|
+
assert_equal 'Page updated', flash[:success]
|
99
|
+
assert assigns(:page).drafted?
|
100
|
+
end
|
101
|
+
end
|
102
|
+
|
103
|
+
test "saving a page should'nt change status of a page" do
|
104
|
+
page = comfy_cms_pages(:drafted)
|
105
|
+
label = 'Arrr'
|
106
|
+
put :update, :site_id => page.site, :id => page, :commit => 'save', :page => {
|
107
|
+
:label => label,
|
108
|
+
}
|
109
|
+
assert_response :redirect
|
110
|
+
assert_redirected_to :action => :edit, :id => page
|
111
|
+
assert_equal 'Page updated', flash[:success]
|
112
|
+
assert assigns(:page).drafted?
|
113
|
+
assert_equal assigns(:page).label, label
|
114
|
+
end
|
115
|
+
end
|