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.
Files changed (99) hide show
  1. data/.gitignore +66 -0
  2. data/Gemfile +2 -17
  3. data/Gemfile.lock +80 -90
  4. data/README.rdoc +11 -0
  5. data/Rakefile +9 -39
  6. data/app/controllers/cms/fortress/admin_controller.rb +5 -0
  7. data/app/controllers/cms/fortress/roles_controller.rb +11 -21
  8. data/app/controllers/cms/fortress/users_controller.rb +48 -31
  9. data/app/helpers/cms/fortress/application_helper.rb +37 -5
  10. data/app/helpers/comfy/admin/cms/pages_helper.rb +22 -0
  11. data/app/models/cms/fortress/error.rb +17 -0
  12. data/app/models/cms/fortress/role.rb +2 -1
  13. data/app/models/cms/fortress/settings.rb +17 -0
  14. data/app/models/cms/fortress/user.rb +17 -0
  15. data/app/models/cms_ability.rb +29 -22
  16. data/app/views/cms/fortress/admin/dashboard.html.haml +12 -0
  17. data/app/views/cms/fortress/shared/_dashboard_widget.html.haml +29 -0
  18. data/app/views/cms/fortress/shared/_menu.html.haml +26 -26
  19. data/app/views/cms/fortress/shared/_navbar.html.haml +1 -1
  20. data/app/views/cms/fortress/shared/_page_extend.html.haml +3 -5
  21. data/app/views/cms/fortress/shared/_page_extend_js.html.haml +2 -14
  22. data/app/views/cms/fortress/themes/wide/_body.html.haml +9 -8
  23. data/app/views/cms/fortress/themes/wide/_menu.html.haml +70 -37
  24. data/app/views/cms/fortress/users/_form.html.haml +6 -1
  25. data/app/views/cms/fortress/users/edit.html.haml +1 -2
  26. data/app/views/cms/fortress/users/index.html.haml +14 -5
  27. data/app/views/cms/fortress/users/new.html.haml +1 -2
  28. data/app/views/comfy/admin/cms/pages/_form.html.haml +10 -4
  29. data/app/views/comfy/admin/cms/pages/edit.html.haml +25 -0
  30. data/app/views/layouts/comfy/admin/cms/_head.html.haml +1 -1
  31. data/app/views/layouts/comfy/admin/cms/_left.html.haml +15 -12
  32. data/bin/bundle +3 -0
  33. data/bin/rails +4 -0
  34. data/bin/rake +4 -0
  35. data/cms-fortress.gemspec +32 -171
  36. data/config.ru +4 -0
  37. data/config/application.rb +34 -0
  38. data/config/boot.rb +5 -0
  39. data/config/cms/fortress/global_settings.yml +12 -0
  40. data/config/cms_routes.rb +7 -0
  41. data/config/database.yml +11 -0
  42. data/config/environment.rb +5 -0
  43. data/config/environments/development.rb +29 -0
  44. data/config/environments/test.rb +36 -0
  45. data/config/initializers/devise.rb +256 -0
  46. data/config/initializers/secret_token.rb +14 -0
  47. data/config/locales/de.yml +28 -1
  48. data/config/locales/devise.en.yml +59 -0
  49. data/config/locales/en.yml +37 -1
  50. data/config/roles.yml +1 -0
  51. data/config/secrets.yml +14 -0
  52. data/db/migrate/06_add_type_to_users.rb +11 -0
  53. data/db/migrate/07_integrate_workflow_into_cms_pages.rb +37 -0
  54. data/db/schema.rb +182 -0
  55. data/lib/assets/.keep +0 -0
  56. data/lib/cms-fortress.rb +10 -1
  57. data/lib/cms/fortress/application_controller_methods.rb +5 -2
  58. data/lib/cms/fortress/page_methods.rb +52 -2
  59. data/lib/cms/fortress/pages_controller_methods.rb +17 -0
  60. data/lib/cms/fortress/rails/engine.rb +12 -3
  61. data/lib/cms/fortress/routes/admin.rb +9 -1
  62. data/lib/cms/fortress/site_methods.rb +29 -0
  63. data/lib/cms/fortress/sites_controller_methods.rb +22 -0
  64. data/lib/generators/cms/comfy/comfy_generator.rb +18 -0
  65. data/lib/generators/cms/fortress/fortress_generator.rb +30 -6
  66. data/lib/generators/cms/fortress/upgrade/USAGE +8 -0
  67. data/lib/generators/cms/fortress/upgrade/upgrade_generator.rb +24 -0
  68. data/lib/tasks/.keep +0 -0
  69. data/test/{functional → controllers}/cms/fortress/roles_controller_test.rb +9 -4
  70. data/test/{functional → controllers}/cms/fortress/users_controller_test.rb +10 -11
  71. data/test/controllers/comfy/admin/cms/pages_controller_test.rb +115 -0
  72. data/test/fixtures/cms/fortress/role_details.yml +89 -8
  73. data/test/fixtures/cms/fortress/roles.yml +17 -0
  74. data/test/fixtures/cms/fortress/users.yml +14 -0
  75. data/test/fixtures/comfy/cms/blocks.yml +12 -0
  76. data/test/fixtures/comfy/cms/categories.yml +4 -0
  77. data/test/fixtures/comfy/cms/categorizations.yml +3 -0
  78. data/test/fixtures/comfy/cms/files.yml +9 -0
  79. data/test/fixtures/comfy/cms/layouts.yml +40 -0
  80. data/test/fixtures/comfy/cms/pages.yml +105 -0
  81. data/test/fixtures/comfy/cms/revisions.yml +21 -0
  82. data/test/fixtures/comfy/cms/sites.yml +6 -0
  83. data/test/fixtures/comfy/cms/snippets.yml +6 -0
  84. data/test/integration/cms/fortress/users_controller_test.rb +16 -0
  85. data/test/models/comfy/cms/page_test.rb +84 -0
  86. data/test/models/comfy/cms/settings_test.rb +16 -0
  87. data/test/test_helper.rb +25 -0
  88. metadata +157 -23
  89. data/app/models/cms/page_workflow.rb +0 -44
  90. data/app/models/error/missing_role_configuration_file.rb +0 -12
  91. data/lib/generators/comfy/cms/cms_generator.rb +0 -60
  92. data/test/fixtures/cms/page_workflows.yml +0 -11
  93. data/test/helper.rb +0 -18
  94. data/test/test_cms-fortress.rb +0 -7
  95. data/test/unit/cms/fortress/role_detail_test.rb +0 -7
  96. data/test/unit/cms/fortress/role_test.rb +0 -7
  97. data/test/unit/cms/fortress/role_user_test.rb +0 -7
  98. data/test/unit/helpers/cms/fortress/roles_helper_test.rb +0 -4
  99. 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
- # Insert Roles
17
- Comfy::Admin::Cms::SitesController.class_eval do
18
+
19
+ Comfy::Admin::Cms::BaseController.class_eval do
18
20
  before_action do
19
- authorize! :manage, Comfy::Cms::Site
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
- resources :users, :as => 'cms_fortress_users'
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
- generate("comfy:cms")
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
- 'config/initializers/cms_fortress.rb'
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,8 @@
1
+ Description:
2
+ Explain the generator
3
+
4
+ Example:
5
+ rails generate upgrade Thing
6
+
7
+ This will create:
8
+ what/will/it/create
@@ -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 do
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
- test "should get index" do
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, title: @cms_fortress_role.title }
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, title: @cms_fortress_role.title }
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 do
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
- test "should get index" do
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: @cms_fortress_user.email, password: @cms_fortress_user.password, password_confirmation: @cms_fortress_user.password_confirmation }
24
+ post :create, cms_fortress_user: { email: 'foo@bar.com', password: 'foobar123', password_confirmation: 'foobar123' }
22
25
  end
23
26
 
24
- assert_redirected_to cms_fortress_user_path(assigns(:cms_fortress_user))
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