cms-fortress 1.2.2 → 1.3.0.rc1
Sign up to get free protection for your applications and to get access to all the features.
- 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
|