tb_cms 1.2.0.beta1 → 1.2.0.beta3
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/controllers/admin/menu_items_controller.rb +0 -3
- data/app/controllers/admin/menus_controller.rb +1 -6
- data/app/controllers/admin/pages_controller.rb +3 -7
- data/app/controllers/admin/snippets_controller.rb +0 -4
- data/app/controllers/cms/sitemaps_controller.rb +0 -4
- data/app/controllers/pages_controller.rb +3 -34
- data/app/helpers/cms/application_helper.rb +2 -18
- data/app/models/concerns/cms_deprecated_multisite.rb +21 -0
- data/app/models/spud_menu.rb +3 -3
- data/app/models/spud_page.rb +12 -20
- data/app/models/spud_snippet.rb +2 -3
- data/app/views/admin/menu_items/_form.html.erb +1 -1
- data/app/views/admin/pages/_form.html.erb +1 -1
- data/db/migrate/20121119030136_change_liquid_tags_to_polymorphic.rb +1 -3
- data/db/migrate/20150108162839_remove_site_id_from_cms_tables.rb +12 -0
- data/lib/spud_cms/engine.rb +0 -4
- data/lib/spud_cms/template_parser.rb +2 -30
- data/lib/spud_cms/version.rb +1 -1
- data/spec/{support/authlogic_helper.rb → authlogic_helper.rb} +1 -1
- data/spec/controllers/admin/menu_items_controller_spec.rb +28 -59
- data/spec/controllers/admin/menus_controller_spec.rb +32 -54
- data/spec/controllers/admin/pages_controller_spec.rb +26 -43
- data/spec/controllers/admin/snippets_controller_spec.rb +2 -2
- data/spec/controllers/pages_controller_spec.rb +11 -63
- data/spec/dummy/config/application.rb +5 -0
- data/spec/dummy/config/environments/production.rb +1 -1
- data/spec/dummy/config/environments/test.rb +1 -1
- data/spec/dummy/db/migrate/{20140110051458_create_spud_liquid_tags.tb_core.rb → 20141231214458_create_tb_liquid_spud_liquid_tags.tb_liquid.rb} +2 -2
- data/spec/dummy/db/migrate/{20140110051483_change_liquid_tags_to_polymorphic.tb_cms.rb → 20141231214480_change_liquid_tags_to_polymorphic.tb_cms.rb} +1 -3
- data/spec/dummy/db/migrate/{20140110051484_drop_spud_page_liquid_tags.tb_cms.rb → 20141231214481_drop_spud_page_liquid_tags.tb_cms.rb} +10 -8
- data/spec/dummy/db/migrate/20150108164814_remove_site_id_from_cms_tables.tb_cms.rb +13 -0
- data/spec/dummy/db/schema.rb +85 -93
- data/spec/helpers/cms/application_helper_spec.rb +23 -74
- data/spec/models/spud_menu_item_spec.rb +6 -6
- data/spec/models/spud_page_partial_revision_spec.rb +2 -2
- data/spec/models/spud_page_partial_spec.rb +9 -9
- data/spec/models/spud_page_spec.rb +20 -44
- data/spec/models/spud_snippet_spec.rb +2 -2
- data/spec/rails_helper.rb +72 -0
- data/spec/spec_helper.rb +77 -32
- metadata +104 -142
- data/spec/controllers/cms/sitemaps_controller_spec.rb +0 -41
- /data/spec/dummy/db/migrate/{20140110051449_create_spud_admin_permissions.tb_core.rb → 20141231214446_create_spud_admin_permissions.tb_core.rb} +0 -0
- /data/spec/dummy/db/migrate/{20140110051450_create_spud_users.tb_core.rb → 20141231214447_create_spud_users.tb_core.rb} +0 -0
- /data/spec/dummy/db/migrate/{20140110051451_add_time_zone_to_spud_user.tb_core.rb → 20141231214448_add_time_zone_to_spud_user.tb_core.rb} +0 -0
- /data/spec/dummy/db/migrate/{20140110051452_add_scope_to_spud_admin_permissions.tb_core.rb → 20141231214449_add_scope_to_spud_admin_permissions.tb_core.rb} +0 -0
- /data/spec/dummy/db/migrate/{20140110051453_create_spud_user_settings.tb_core.rb → 20141231214450_create_spud_user_settings.tb_core.rb} +0 -0
- /data/spec/dummy/db/migrate/{20140110051454_create_spud_roles.tb_core.rb → 20141231214451_create_spud_roles.tb_core.rb} +0 -0
- /data/spec/dummy/db/migrate/{20140110051455_create_spud_permissions.tb_core.rb → 20141231214452_create_spud_permissions.tb_core.rb} +0 -0
- /data/spec/dummy/db/migrate/{20140110051456_create_spud_role_permissions.tb_core.rb → 20141231214453_create_spud_role_permissions.tb_core.rb} +0 -0
- /data/spec/dummy/db/migrate/{20140110051457_drop_spud_admin_permissions.tb_core.rb → 20141231214454_drop_spud_admin_permissions.tb_core.rb} +0 -0
- /data/spec/dummy/db/migrate/{20140110051459_create_spud_permalinks.tb_permalinks.rb → 20141231214455_create_spud_permalinks.tb_permalinks.rb} +0 -0
- /data/spec/dummy/db/migrate/{20140110051460_add_site_id_to_spud_permalinks.tb_permalinks.rb → 20141231214456_add_site_id_to_spud_permalinks.tb_permalinks.rb} +0 -0
- /data/spec/dummy/db/migrate/{20140110051461_modify_site_id_for_spud_permalinks.tb_permalinks.rb → 20141231214457_modify_site_id_for_spud_permalinks.tb_permalinks.rb} +0 -0
- /data/spec/dummy/db/migrate/{20140110051462_create_spud_pages.tb_cms.rb → 20141231214459_create_spud_pages.tb_cms.rb} +0 -0
- /data/spec/dummy/db/migrate/{20140110051463_create_spud_menus.tb_cms.rb → 20141231214460_create_spud_menus.tb_cms.rb} +0 -0
- /data/spec/dummy/db/migrate/{20140110051464_create_spud_menu_items.tb_cms.rb → 20141231214461_create_spud_menu_items.tb_cms.rb} +0 -0
- /data/spec/dummy/db/migrate/{20140110051465_create_spud_templates.tb_cms.rb → 20141231214462_create_spud_templates.tb_cms.rb} +0 -0
- /data/spec/dummy/db/migrate/{20140110051466_create_spud_page_partials.tb_cms.rb → 20141231214463_create_spud_page_partials.tb_cms.rb} +0 -0
- /data/spec/dummy/db/migrate/{20140110051467_add_visibility_to_spud_pages.tb_cms.rb → 20141231214464_add_visibility_to_spud_pages.tb_cms.rb} +0 -0
- /data/spec/dummy/db/migrate/{20140110051468_add_menu_name_to_spud_menu_items.tb_cms.rb → 20141231214465_add_menu_name_to_spud_menu_items.tb_cms.rb} +0 -0
- /data/spec/dummy/db/migrate/{20140110051469_add_use_custom_url_name_to_spud_pages.tb_cms.rb → 20141231214466_add_use_custom_url_name_to_spud_pages.tb_cms.rb} +0 -0
- /data/spec/dummy/db/migrate/{20140110051470_add_notes_to_spud_pages.tb_cms.rb → 20141231214467_add_notes_to_spud_pages.tb_cms.rb} +0 -0
- /data/spec/dummy/db/migrate/{20140110051471_add_menu_id_to_spud_menu_items.tb_cms.rb → 20141231214468_add_menu_id_to_spud_menu_items.tb_cms.rb} +0 -0
- /data/spec/dummy/db/migrate/{20140110051472_add_classes_to_spud_menu_items.tb_cms.rb → 20141231214469_add_classes_to_spud_menu_items.tb_cms.rb} +0 -0
- /data/spec/dummy/db/migrate/{20140110051473_add_site_id_to_spud_pages.tb_cms.rb → 20141231214470_add_site_id_to_spud_pages.tb_cms.rb} +0 -0
- /data/spec/dummy/db/migrate/{20140110051474_add_site_id_to_spud_templates.tb_cms.rb → 20141231214471_add_site_id_to_spud_templates.tb_cms.rb} +0 -0
- /data/spec/dummy/db/migrate/{20140110051475_add_site_id_to_spud_menus.tb_cms.rb → 20141231214472_add_site_id_to_spud_menus.tb_cms.rb} +0 -0
- /data/spec/dummy/db/migrate/{20140110051476_create_spud_page_partial_revisions.tb_cms.rb → 20141231214473_create_spud_page_partial_revisions.tb_cms.rb} +0 -0
- /data/spec/dummy/db/migrate/{20140110051477_add_symbol_name_to_spud_page_partials.tb_cms.rb → 20141231214474_add_symbol_name_to_spud_page_partials.tb_cms.rb} +0 -0
- /data/spec/dummy/db/migrate/{20140110051478_modify_site_id_for_spud_pages.tb_cms.rb → 20141231214475_modify_site_id_for_spud_pages.tb_cms.rb} +0 -0
- /data/spec/dummy/db/migrate/{20140110051479_add_content_processed_to_spud_page_partials.tb_cms.rb → 20141231214476_add_content_processed_to_spud_page_partials.tb_cms.rb} +0 -0
- /data/spec/dummy/db/migrate/{20140110051480_add_layout_to_spud_pages.tb_cms.rb → 20141231214477_add_layout_to_spud_pages.tb_cms.rb} +0 -0
- /data/spec/dummy/db/migrate/{20140110051481_create_spud_page_liquid_tags.tb_cms.rb → 20141231214478_create_spud_page_liquid_tags.tb_cms.rb} +0 -0
- /data/spec/dummy/db/migrate/{20140110051482_create_spud_snippets.tb_cms.rb → 20141231214479_create_spud_snippets.tb_cms.rb} +0 -0
|
@@ -1,146 +1,115 @@
|
|
|
1
|
-
require '
|
|
1
|
+
require 'rails_helper'
|
|
2
2
|
|
|
3
|
-
describe Admin::MenuItemsController do
|
|
3
|
+
describe Admin::MenuItemsController, :type => :controller do
|
|
4
4
|
before(:each) do
|
|
5
5
|
activate_authlogic
|
|
6
6
|
u = SpudUser.new(:login => "testuser",:email => "test@testuser.com",:password => "test",:password_confirmation => "test")
|
|
7
7
|
u.super_admin = true
|
|
8
8
|
u.save
|
|
9
9
|
@user = SpudUserSession.create(u)
|
|
10
|
-
Spud::Core.configure do |config|
|
|
11
|
-
config.site_name = "Test Site"
|
|
12
|
-
config.multisite_mode_enabled = false
|
|
13
|
-
config.multisite_config = []
|
|
14
|
-
end
|
|
15
|
-
|
|
16
10
|
@menu = FactoryGirl.create(:spud_menu)
|
|
17
11
|
end
|
|
18
12
|
|
|
19
13
|
|
|
20
|
-
describe
|
|
14
|
+
describe 'index' do
|
|
21
15
|
it "should return an array of menus" do
|
|
22
16
|
2.times {|x| s = FactoryGirl.create(:spud_menu_item,:spud_menu_id => @menu.id,:parent_id => @menu.id)}
|
|
23
17
|
get :index,:menu_id =>@menu.id
|
|
24
18
|
|
|
25
|
-
assigns(:menu_items).count.
|
|
19
|
+
expect(assigns(:menu_items).count).to be > 1
|
|
26
20
|
end
|
|
27
21
|
it "should redirect if the menu is not found" do
|
|
28
22
|
get :index,:menu_id => @menu.id + 1
|
|
29
|
-
response.
|
|
30
|
-
flash[:error].should_not be_blank
|
|
23
|
+
expect(response).to redirect_to admin_menus_url
|
|
31
24
|
end
|
|
32
25
|
end
|
|
33
26
|
|
|
34
|
-
describe
|
|
27
|
+
describe 'new' do
|
|
35
28
|
it "should assign a new menu" do
|
|
36
29
|
get :new,:menu_id =>@menu.id
|
|
37
|
-
assigns(:menu_item).
|
|
38
|
-
response.
|
|
30
|
+
expect(assigns(:menu_item)).to_not be_blank
|
|
31
|
+
expect(response).to be_success
|
|
39
32
|
end
|
|
40
33
|
end
|
|
41
34
|
|
|
42
|
-
describe
|
|
35
|
+
describe 'create' do
|
|
43
36
|
it "should create a new menu item with a valid form submission" do
|
|
44
|
-
|
|
37
|
+
expect {
|
|
45
38
|
post :create,:menu_id => @menu.id, :spud_menu_item => FactoryGirl.attributes_for(:spud_menu_item,:parent_id => nil).reject{|k,v| k == 'id' || k == :spud_menu_id}
|
|
46
|
-
}.
|
|
47
|
-
response.
|
|
39
|
+
}.to change(SpudMenuItem,:count).by(1)
|
|
40
|
+
expect(response).to be_redirect
|
|
48
41
|
end
|
|
49
42
|
|
|
50
43
|
it "should not create a menu item with an invalid form entry" do
|
|
51
44
|
yamldata = FactoryGirl.attributes_for(:spud_menu_item,:name => nil).reject{|k,v| k == 'id' || k == :spud_menu_id}
|
|
52
45
|
|
|
53
|
-
|
|
46
|
+
expect {
|
|
54
47
|
post :create,:menu_id => @menu.id, :spud_menu_item => FactoryGirl.attributes_for(:spud_menu_item,:name => nil,:parent_id => nil).reject{|k,v| k == 'id' || k == :spud_menu_id}
|
|
55
|
-
}.
|
|
48
|
+
}.to_not change(SpudMenuItem,:count)
|
|
56
49
|
end
|
|
57
50
|
|
|
58
51
|
it "should autoset order if not specified" do
|
|
59
52
|
menuitem = FactoryGirl.create(:spud_menu_item,:parent_id => @menu.id)
|
|
60
53
|
|
|
61
54
|
post :create,:menu_id => @menu.id, :spud_menu_item => FactoryGirl.attributes_for(:spud_menu_item,:menu_order => nil,:parent_id => nil).reject{|k,v| k == 'id' || k == :spud_menu_id}
|
|
62
|
-
assigns(:menu_item).menu_order.
|
|
55
|
+
expect(assigns(:menu_item).menu_order).to eq(1)
|
|
63
56
|
end
|
|
64
57
|
|
|
65
58
|
it "should assign the menu name based on page name if left blank" do
|
|
66
59
|
page = FactoryGirl.create(:spud_page)
|
|
67
60
|
post :create,:menu_id => @menu.id, :spud_menu_item => FactoryGirl.attributes_for(:spud_menu_item,:name => nil,:spud_page_id => page.id).reject{|k,v| k == 'id' || k == :spud_menu_id}
|
|
68
|
-
assigns(:menu_item).name.
|
|
61
|
+
expect(assigns(:menu_item).name).to eq(page.name)
|
|
69
62
|
end
|
|
70
63
|
|
|
71
64
|
it "should set the parent to a submenu if specified" do
|
|
72
65
|
menuitem = FactoryGirl.create(:spud_menu_item,:parent_id => @menu.id)
|
|
73
66
|
post :create,:menu_id => @menu.id, :spud_menu_item => FactoryGirl.attributes_for(:spud_menu_item,:parent_id => menuitem.id).reject{|k,v| k == 'id' || k == :spud_menu_id}
|
|
74
|
-
assigns(:menu_item).parent.
|
|
67
|
+
expect(assigns(:menu_item).parent).to eq(menuitem)
|
|
75
68
|
end
|
|
76
69
|
end
|
|
77
70
|
|
|
78
|
-
describe
|
|
71
|
+
describe 'edit' do
|
|
79
72
|
it "should respond with menu item by id" do
|
|
80
73
|
menu1 = FactoryGirl.create(:spud_menu_item)
|
|
81
74
|
menu2 = FactoryGirl.create(:spud_menu_item)
|
|
82
75
|
get :edit, :menu_id => @menu.id,:id => menu2.id
|
|
83
|
-
assigns(:menu_item).
|
|
76
|
+
expect(assigns(:menu_item)).to eq(menu2)
|
|
84
77
|
end
|
|
85
78
|
|
|
86
79
|
it "should redirect_to index if menu item not found" do
|
|
87
80
|
get :edit,:menu_id => @menu.id,:id => "345"
|
|
88
|
-
response.
|
|
81
|
+
expect(response).to redirect_to admin_menu_menu_items_url(:menu_id => @menu.id)
|
|
89
82
|
end
|
|
90
83
|
end
|
|
91
84
|
|
|
92
|
-
describe
|
|
85
|
+
describe 'update' do
|
|
93
86
|
it "should update the name when the name attribute is changed" do
|
|
94
87
|
menu_item = FactoryGirl.create(:spud_menu_item)
|
|
95
88
|
new_name = 'MyMenu'
|
|
96
|
-
|
|
89
|
+
expect {
|
|
97
90
|
put :update,:menu_id => @menu.id,:id => menu_item.id, :spud_menu_item => menu_item.attributes.merge!(:name => new_name,:parent_id => nil).reject{|k,v| k.to_sym == :spud_menu_id || k == 'id' || k.to_sym == :updated_at || k.to_sym == :created_at}
|
|
98
91
|
menu_item.reload
|
|
99
|
-
}.
|
|
92
|
+
}.to change(menu_item,:name).to(new_name)
|
|
100
93
|
end
|
|
101
94
|
it "should assign a menu to a submenu if parentid is defined" do
|
|
102
95
|
menu_item1 = FactoryGirl.create(:spud_menu_item)
|
|
103
96
|
menu_item = FactoryGirl.create(:spud_menu_item)
|
|
104
97
|
|
|
105
|
-
|
|
98
|
+
expect {
|
|
106
99
|
put :update,:menu_id => @menu.id,:id => menu_item.id, :spud_menu_item => menu_item.attributes.merge!(:parent_id => menu_item1.id).reject{|k,v| k.to_sym == :spud_menu_id || k == 'id' || k.to_sym == :updated_at || k.to_sym == :created_at}
|
|
107
100
|
menu_item.reload
|
|
108
|
-
}.
|
|
101
|
+
}.to change(menu_item,:parent).to(menu_item1)
|
|
109
102
|
end
|
|
110
103
|
end
|
|
111
104
|
|
|
112
105
|
|
|
113
|
-
describe
|
|
106
|
+
describe 'destroy' do
|
|
114
107
|
it "should destroy the menu item" do
|
|
115
108
|
menu_item = FactoryGirl.create(:spud_menu_item,:parent_id => @menu.id)
|
|
116
|
-
|
|
109
|
+
expect {
|
|
117
110
|
delete :destroy,:menu_id => @menu.id,:id => menu_item.id
|
|
118
|
-
}.
|
|
111
|
+
}.to change(SpudMenuItem,:count).by(-1)
|
|
119
112
|
end
|
|
120
113
|
end
|
|
121
114
|
|
|
122
|
-
describe :multisite do
|
|
123
|
-
before(:each) do
|
|
124
|
-
Spud::Core.configure do |config|
|
|
125
|
-
config.site_name = "Test Site"
|
|
126
|
-
config.multisite_mode_enabled = true
|
|
127
|
-
config.multisite_config = [{:hosts => ["test.host"], :site_name =>"Site B", :site_id => 1,:short_name => "siteb"}]
|
|
128
|
-
end
|
|
129
|
-
Spud::Cms.configure do |config|
|
|
130
|
-
config.multisite_config = [{:short_name => "siteb",:default_page_parts => ["Body","Sidebar"]}]
|
|
131
|
-
end
|
|
132
|
-
session[:admin_site] = 1
|
|
133
|
-
end
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
describe :edit do
|
|
137
|
-
it "should not allow editing of a menu_item in a menu that is different from the current admin site" do
|
|
138
|
-
menu_item = FactoryGirl.create(:spud_menu_item)
|
|
139
|
-
get :edit,:id => menu_item.id,:menu_id => @menu.id
|
|
140
|
-
response.should redirect_to admin_menus_url
|
|
141
|
-
flash[:warning].should_not be_blank
|
|
142
|
-
end
|
|
143
|
-
end
|
|
144
|
-
|
|
145
|
-
end
|
|
146
115
|
end
|
|
@@ -1,120 +1,98 @@
|
|
|
1
|
-
require '
|
|
1
|
+
require 'rails_helper'
|
|
2
2
|
|
|
3
|
-
describe Admin::MenusController do
|
|
3
|
+
describe Admin::MenusController, :type => :controller do
|
|
4
4
|
before(:each) do
|
|
5
5
|
activate_authlogic
|
|
6
6
|
u = SpudUser.new(:login => "testuser",:email => "test@testuser.com",:password => "test",:password_confirmation => "test")
|
|
7
7
|
u.super_admin = true
|
|
8
8
|
u.save
|
|
9
9
|
@user = SpudUserSession.create(u)
|
|
10
|
-
Spud::Core.configure do |config|
|
|
11
|
-
config.site_name = "Test Site"
|
|
12
|
-
config.multisite_mode_enabled = false
|
|
13
|
-
config.multisite_config = []
|
|
14
|
-
end
|
|
15
10
|
end
|
|
16
11
|
|
|
17
12
|
|
|
18
|
-
describe
|
|
13
|
+
describe 'index' do
|
|
19
14
|
it "should return an array of menus" do
|
|
20
|
-
2.times {
|
|
15
|
+
2.times { FactoryGirl.create(:spud_menu) }
|
|
21
16
|
get :index
|
|
22
17
|
|
|
23
|
-
assigns(:menus).count.
|
|
18
|
+
expect(assigns(:menus).count).to be > 1
|
|
24
19
|
end
|
|
25
20
|
|
|
26
21
|
end
|
|
27
22
|
|
|
28
|
-
describe
|
|
23
|
+
describe 'new' do
|
|
29
24
|
it "should response with new menu" do
|
|
30
25
|
get :new
|
|
31
|
-
assigns(:menu).
|
|
32
|
-
response.
|
|
26
|
+
expect(assigns(:menu)).to_not be_blank
|
|
27
|
+
expect(response).to be_success
|
|
33
28
|
end
|
|
34
29
|
end
|
|
35
30
|
|
|
36
|
-
describe
|
|
31
|
+
describe 'create' do
|
|
37
32
|
it "should create a new menu with a valid form submission" do
|
|
38
|
-
|
|
39
|
-
post :create, :spud_menu => FactoryGirl.attributes_for(:spud_menu).reject{|k,v| k == '
|
|
40
|
-
}.
|
|
41
|
-
response.
|
|
33
|
+
expect {
|
|
34
|
+
post :create, :spud_menu => FactoryGirl.attributes_for(:spud_menu).reject{|k,v| k == 'id'}
|
|
35
|
+
}.to change(SpudMenu,:count).by(1)
|
|
36
|
+
expect(response).to be_redirect
|
|
42
37
|
end
|
|
43
38
|
|
|
44
39
|
it "should not create a menu with an invalid form entry" do
|
|
45
|
-
|
|
46
|
-
post :create, :spud_menu => FactoryGirl.attributes_for(:spud_menu,:name => nil).reject{|k,v| k == '
|
|
47
|
-
}.
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
end
|
|
51
|
-
end
|
|
52
|
-
|
|
53
|
-
describe :multisite do
|
|
54
|
-
before(:each) do
|
|
55
|
-
Spud::Core.configure do |config|
|
|
56
|
-
config.site_name = "Test Site"
|
|
57
|
-
config.multisite_mode_enabled = true
|
|
58
|
-
config.multisite_config = [{:hosts => ["test.host"], :site_name =>"Site B", :site_id => 1}]
|
|
59
|
-
end
|
|
40
|
+
expect {
|
|
41
|
+
post :create, :spud_menu => FactoryGirl.attributes_for(:spud_menu,:name => nil).reject{|k,v| k == 'id'}
|
|
42
|
+
}.to_not change(SpudMenu,:count)
|
|
60
43
|
|
|
61
|
-
end
|
|
62
|
-
it "should not allow editing of a menu on a different site id" do
|
|
63
|
-
menu2 = FactoryGirl.create(:spud_menu,:site_id => 1)
|
|
64
|
-
get :edit,:id => menu2.id
|
|
65
44
|
|
|
66
|
-
response.should redirect_to admin_menus_url
|
|
67
45
|
end
|
|
68
46
|
end
|
|
69
47
|
|
|
70
|
-
describe
|
|
48
|
+
describe 'edit' do
|
|
71
49
|
it "should response with menu by id" do
|
|
72
50
|
menu1 = FactoryGirl.create(:spud_menu)
|
|
73
51
|
menu2 = FactoryGirl.create(:spud_menu)
|
|
74
52
|
get :edit,:id => menu2.id
|
|
75
|
-
assigns(:menu).
|
|
53
|
+
expect(assigns(:menu)).to eq(menu2)
|
|
76
54
|
end
|
|
77
55
|
it "should redirect to index if menu not found" do
|
|
78
56
|
get :edit,:id => 3
|
|
79
|
-
response.
|
|
57
|
+
expect(response).to redirect_to admin_menus_url
|
|
80
58
|
end
|
|
81
59
|
|
|
82
60
|
end
|
|
83
61
|
|
|
84
|
-
describe
|
|
62
|
+
describe 'update' do
|
|
85
63
|
it "should update the name when the name attribute is changed" do
|
|
86
64
|
menu = FactoryGirl.create(:spud_menu)
|
|
87
65
|
new_name = 'MyMenu'
|
|
88
|
-
|
|
89
|
-
put :update,:id => menu.id, :spud_menu => menu.attributes.merge!(:name => new_name).reject{|k,v| k == '
|
|
66
|
+
expect {
|
|
67
|
+
put :update,:id => menu.id, :spud_menu => menu.attributes.merge!(:name => new_name).reject{|k,v| k == 'id'}
|
|
90
68
|
menu.reload
|
|
91
|
-
}.
|
|
69
|
+
}.to change(menu,:name).to(new_name)
|
|
92
70
|
|
|
93
71
|
end
|
|
94
72
|
|
|
95
73
|
it "should redirect to the admin menus after a successful update" do
|
|
96
74
|
menu = FactoryGirl.create(:spud_menu)
|
|
97
|
-
put :update,:id => menu.id,:spud_menu => menu.attributes.merge!(:name => "MyMenu").reject{|k,v| k == '
|
|
75
|
+
put :update,:id => menu.id,:spud_menu => menu.attributes.merge!(:name => "MyMenu").reject{|k,v| k == 'id'}
|
|
98
76
|
|
|
99
|
-
response.
|
|
77
|
+
expect(response).to redirect_to(admin_menu_menu_items_url(:menu_id => menu.id))
|
|
100
78
|
end
|
|
101
79
|
end
|
|
102
80
|
|
|
103
|
-
describe
|
|
81
|
+
describe 'destroy' do
|
|
104
82
|
it "should destroy the menu" do
|
|
105
83
|
menu = FactoryGirl.create(:spud_menu)
|
|
106
|
-
|
|
84
|
+
expect {
|
|
107
85
|
delete :destroy, :id => menu.id
|
|
108
|
-
}.
|
|
109
|
-
response.
|
|
86
|
+
}.to change(SpudMenu,:count).by(-1)
|
|
87
|
+
expect(response).to be_redirect
|
|
110
88
|
end
|
|
111
89
|
|
|
112
90
|
it "should not destroy the menu with a wrong id" do
|
|
113
91
|
menu = FactoryGirl.create(:spud_menu)
|
|
114
|
-
|
|
92
|
+
expect {
|
|
115
93
|
delete :destroy,:id => "23532"
|
|
116
|
-
}.
|
|
117
|
-
response.
|
|
94
|
+
}.to_not change(SpudMenu,:count)
|
|
95
|
+
expect(response).to be_redirect
|
|
118
96
|
end
|
|
119
97
|
|
|
120
98
|
end
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
require '
|
|
1
|
+
require 'rails_helper'
|
|
2
2
|
|
|
3
|
-
describe Admin::PagesController do
|
|
3
|
+
describe Admin::PagesController, :type => :controller do
|
|
4
4
|
before(:each) do
|
|
5
5
|
activate_authlogic
|
|
6
6
|
u = SpudUser.new(:login => "testuser",:email => "test@testuser.com",:password => "test",:password_confirmation => "test")
|
|
@@ -9,20 +9,12 @@ describe Admin::PagesController do
|
|
|
9
9
|
@user = SpudUserSession.create(u)
|
|
10
10
|
end
|
|
11
11
|
|
|
12
|
-
|
|
13
|
-
Spud::Cms.configure do |config|
|
|
14
|
-
config.multisite_config = [{:short_name => "siteb",:site_name => "Test Site B",:site_id => 2}]
|
|
15
|
-
end
|
|
16
|
-
|
|
17
|
-
Spud::Cms.site_config_for_short_name(:siteb)[:site_id].should == 2
|
|
18
|
-
end
|
|
19
|
-
|
|
20
|
-
describe :index do
|
|
12
|
+
describe 'index' do
|
|
21
13
|
it "should return an array of parent pages" do
|
|
22
14
|
2.times {|x| s = FactoryGirl.create(:spud_page)}
|
|
23
15
|
get :index
|
|
24
16
|
|
|
25
|
-
assigns(:pages).count.
|
|
17
|
+
expect(assigns(:pages).count).to be > 1
|
|
26
18
|
end
|
|
27
19
|
|
|
28
20
|
it "should only return parent pages" do
|
|
@@ -30,89 +22,80 @@ describe Admin::PagesController do
|
|
|
30
22
|
FactoryGirl.create(:spud_page,:spud_page_id => 1)
|
|
31
23
|
|
|
32
24
|
get :index
|
|
33
|
-
assigns(:pages).count.
|
|
25
|
+
expect(assigns(:pages).count).to eq(2)
|
|
34
26
|
end
|
|
35
27
|
end
|
|
36
28
|
|
|
37
|
-
describe
|
|
29
|
+
describe 'show' do
|
|
38
30
|
it "should respond successfully" do
|
|
39
31
|
p = FactoryGirl.create(:spud_page)
|
|
40
32
|
get :show ,:id => p.id
|
|
41
|
-
assigns(:layout).
|
|
42
|
-
response.
|
|
33
|
+
expect(assigns(:layout)).to render_template(:layout => "layouts/#{Spud::Cms.default_page_layout}")
|
|
34
|
+
expect(response).to be_success
|
|
43
35
|
end
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
# it "should redirect if no id specified" do
|
|
48
|
-
# get :show,:id => nil
|
|
49
|
-
|
|
50
|
-
# response.should redirect_to admin_pages_url
|
|
51
|
-
# end
|
|
52
|
-
|
|
53
36
|
end
|
|
54
37
|
|
|
55
|
-
describe
|
|
38
|
+
describe 'new' do
|
|
56
39
|
it "should respond successfully" do
|
|
57
40
|
get :new
|
|
58
41
|
|
|
59
|
-
response.
|
|
42
|
+
expect(response).to be_success
|
|
60
43
|
end
|
|
61
44
|
|
|
62
45
|
it "should build a page object for the form" do
|
|
63
46
|
get :new
|
|
64
47
|
|
|
65
|
-
assigns(:page).
|
|
48
|
+
expect(assigns(:page)).to_not be_blank
|
|
66
49
|
end
|
|
67
50
|
end
|
|
68
51
|
|
|
69
|
-
describe
|
|
52
|
+
describe 'edit' do
|
|
70
53
|
context "HTML format" do
|
|
71
54
|
it "should load the correct page for the edit form" do
|
|
72
55
|
page = FactoryGirl.create(:spud_page)
|
|
73
56
|
get :edit, :id => page.id
|
|
74
57
|
|
|
75
|
-
assigns(:page).id.
|
|
58
|
+
expect(assigns(:page).id).to eq(page.id)
|
|
76
59
|
end
|
|
77
60
|
end
|
|
78
61
|
|
|
79
62
|
end
|
|
80
63
|
|
|
81
64
|
|
|
82
|
-
describe
|
|
65
|
+
describe 'update' do
|
|
83
66
|
it "should update the name when the attribute is changed" do
|
|
84
67
|
page = FactoryGirl.create(:spud_page)
|
|
85
68
|
new_name = "Adam"
|
|
86
|
-
|
|
87
|
-
put :update, :id => page.id, :spud_page => page.attributes.merge!(:name => new_name).reject{ |key,value| key == 'id' || key == 'created_at' || key == 'updated_at'
|
|
69
|
+
expect {
|
|
70
|
+
put :update, :id => page.id, :spud_page => page.attributes.merge!(:name => new_name).reject{ |key,value| key == 'id' || key == 'created_at' || key == 'updated_at'}
|
|
88
71
|
page.reload
|
|
89
|
-
}.
|
|
72
|
+
}.to change(page, :name).to(new_name)
|
|
90
73
|
end
|
|
91
74
|
|
|
92
75
|
it "should redirect to the page root index after a successful update" do
|
|
93
76
|
page = FactoryGirl.create(:spud_page)
|
|
94
77
|
new_name = "Adam"
|
|
95
|
-
put :update, :id => page.id, :spud_page => page.attributes.merge!(:name => new_name).reject{ |key,value| key == 'id' || key == 'created_at' || key == 'updated_at'
|
|
78
|
+
put :update, :id => page.id, :spud_page => page.attributes.merge!(:name => new_name).reject{ |key,value| key == 'id' || key == 'created_at' || key == 'updated_at'}
|
|
96
79
|
|
|
97
|
-
response.
|
|
80
|
+
expect(response).to redirect_to(admin_pages_url)
|
|
98
81
|
end
|
|
99
82
|
end
|
|
100
83
|
|
|
101
|
-
describe
|
|
84
|
+
describe 'destroy' do
|
|
102
85
|
it "should destroy the page" do
|
|
103
86
|
page = FactoryGirl.create(:spud_page)
|
|
104
|
-
|
|
87
|
+
expect {
|
|
105
88
|
delete :destroy, :id => page.id
|
|
106
|
-
}.
|
|
107
|
-
response.
|
|
89
|
+
}.to change(SpudPage, :count).by(-1)
|
|
90
|
+
expect(response).to be_redirect
|
|
108
91
|
end
|
|
109
92
|
|
|
110
93
|
it "should destroy the user with the wrong id" do
|
|
111
94
|
page = FactoryGirl.create(:spud_page)
|
|
112
|
-
|
|
95
|
+
expect {
|
|
113
96
|
delete :destroy, :id => "23532"
|
|
114
|
-
}.
|
|
115
|
-
response.
|
|
97
|
+
}.to_not change(SpudPage, :count)
|
|
98
|
+
expect(response).to be_redirect
|
|
116
99
|
end
|
|
117
100
|
end
|
|
118
101
|
|
|
@@ -1,29 +1,20 @@
|
|
|
1
|
-
require '
|
|
1
|
+
require 'rails_helper'
|
|
2
|
+
|
|
3
|
+
describe PagesController, :type => :controller do
|
|
4
|
+
describe 'show' do
|
|
2
5
|
|
|
3
|
-
describe PagesController do
|
|
4
|
-
describe :show do
|
|
5
|
-
before(:each) do
|
|
6
|
-
Spud::Core.configure do |config|
|
|
7
|
-
config.site_name = "Test Site"
|
|
8
|
-
config.multisite_mode_enabled = false
|
|
9
|
-
config.multisite_config = []
|
|
10
|
-
end
|
|
11
|
-
Spud::Cms.configure do |config|
|
|
12
|
-
config.cache_mode = false
|
|
13
|
-
end
|
|
14
|
-
end
|
|
15
6
|
it "should render a page" do
|
|
16
7
|
page = FactoryGirl.create(:spud_page)
|
|
17
8
|
get :show ,:id => page.url_name
|
|
18
|
-
assigns(:layout).
|
|
19
|
-
response.
|
|
9
|
+
expect(assigns(:layout)).to render_template(:layout => "layouts/#{Spud::Cms.default_page_layout}")
|
|
10
|
+
expect(response).to be_success
|
|
20
11
|
end
|
|
21
12
|
|
|
22
13
|
it "should render home page if id is blank" do
|
|
23
14
|
page = FactoryGirl.create(:spud_page,:name => "home")
|
|
24
15
|
get :show
|
|
25
|
-
assigns(:page).
|
|
26
|
-
response.
|
|
16
|
+
expect(assigns(:page)).to eq(page)
|
|
17
|
+
expect(response).to be_success
|
|
27
18
|
end
|
|
28
19
|
|
|
29
20
|
it "should redirect to new page url from old page url if it was changed" do
|
|
@@ -33,27 +24,15 @@ describe PagesController do
|
|
|
33
24
|
|
|
34
25
|
get :show, :id => "about"
|
|
35
26
|
|
|
36
|
-
response.
|
|
27
|
+
expect(response).to redirect_to page_url(:id => "about-us")
|
|
37
28
|
|
|
38
29
|
end
|
|
39
30
|
|
|
40
|
-
|
|
41
|
-
|
|
42
31
|
it "should not allow access to private pages when logged out" do
|
|
43
32
|
page = FactoryGirl.create(:spud_page,:name => "about",:visibility => 1)
|
|
44
33
|
|
|
45
34
|
get :show, :id => "about"
|
|
46
|
-
response.
|
|
47
|
-
end
|
|
48
|
-
|
|
49
|
-
describe "page caching" do
|
|
50
|
-
before(:each) do
|
|
51
|
-
Spud::Cms.configure do |config|
|
|
52
|
-
config.cache_mode = nil
|
|
53
|
-
end
|
|
54
|
-
end
|
|
55
|
-
|
|
56
|
-
|
|
35
|
+
expect(response).to redirect_to login_path(:return_to => '/about')
|
|
57
36
|
end
|
|
58
37
|
|
|
59
38
|
describe "authorized login" do
|
|
@@ -69,40 +48,9 @@ describe PagesController do
|
|
|
69
48
|
page = FactoryGirl.create(:spud_page,:name => "about",:visibility => 1)
|
|
70
49
|
|
|
71
50
|
get :show, :id => "about"
|
|
72
|
-
response.
|
|
51
|
+
expect(response).to be_success
|
|
73
52
|
end
|
|
74
53
|
end
|
|
75
54
|
|
|
76
|
-
describe "multisite enabled" do
|
|
77
|
-
before(:each) do
|
|
78
|
-
Spud::Core.configure do |config|
|
|
79
|
-
config.site_name = "Test Site"
|
|
80
|
-
config.multisite_mode_enabled = true
|
|
81
|
-
config.multisite_config = [{:hosts => ["test.host"], :site_name =>"Site B", :site_id => 1}]
|
|
82
|
-
end
|
|
83
|
-
end
|
|
84
|
-
|
|
85
|
-
it "should not show a page on a different site" do
|
|
86
|
-
page = FactoryGirl.create(:spud_page,:name => "about",:site_id => 0)
|
|
87
|
-
get :show,:id=>"about"
|
|
88
|
-
response.response_code.should == 404
|
|
89
|
-
end
|
|
90
|
-
|
|
91
|
-
it "should show the right page" do
|
|
92
|
-
page = FactoryGirl.create(:spud_page,:name => "about",:site_id => 0)
|
|
93
|
-
page2 = FactoryGirl.create(:spud_page,:name => "about",:site_id => 1)
|
|
94
|
-
get :show,:id=>"about"
|
|
95
|
-
assigns(:page).should == page2
|
|
96
|
-
end
|
|
97
|
-
|
|
98
|
-
it "should return the homepage of the current site" do
|
|
99
|
-
page = FactoryGirl.create(:spud_page,:name => "home",:site_id => 0)
|
|
100
|
-
page_site1 = FactoryGirl.create(:spud_page,:name => "home",:site_id => 1)
|
|
101
|
-
|
|
102
|
-
get :show
|
|
103
|
-
assigns(:page).should == page_site1
|
|
104
|
-
end
|
|
105
|
-
|
|
106
|
-
end
|
|
107
55
|
end
|
|
108
56
|
end
|
|
@@ -7,6 +7,11 @@ require "tb_cms"
|
|
|
7
7
|
|
|
8
8
|
module Dummy
|
|
9
9
|
class Application < Rails::Application
|
|
10
|
+
|
|
11
|
+
Spud::Core.configure do |config|
|
|
12
|
+
config.site_name = "Test Site"
|
|
13
|
+
end
|
|
14
|
+
|
|
10
15
|
# Settings in config/environments/* take precedence over those specified here.
|
|
11
16
|
# Application configuration should go into files in config/initializers
|
|
12
17
|
# -- all .rb files in that directory are automatically loaded.
|
|
@@ -9,7 +9,7 @@ Dummy::Application.configure do
|
|
|
9
9
|
config.action_controller.perform_caching = true
|
|
10
10
|
|
|
11
11
|
# Disable Rails's static asset server (Apache or nginx will already do this)
|
|
12
|
-
config.
|
|
12
|
+
config.serve_static_files = false
|
|
13
13
|
|
|
14
14
|
# Compress JavaScripts and CSS
|
|
15
15
|
config.assets.compress = true
|
|
@@ -8,7 +8,7 @@ Dummy::Application.configure do
|
|
|
8
8
|
config.cache_classes = true
|
|
9
9
|
|
|
10
10
|
# Configure static asset server for tests with Cache-Control for performance
|
|
11
|
-
config.
|
|
11
|
+
config.serve_static_files = true
|
|
12
12
|
config.static_cache_control = "public, max-age=3600"
|
|
13
13
|
|
|
14
14
|
# Deprecated
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
# This migration comes from
|
|
2
|
-
class
|
|
1
|
+
# This migration comes from tb_liquid (originally 20140110142037)
|
|
2
|
+
class CreateTbLiquidSpudLiquidTags < ActiveRecord::Migration
|
|
3
3
|
def change
|
|
4
4
|
create_table :spud_liquid_tags do |t|
|
|
5
5
|
t.integer :attachment_id
|
|
@@ -3,9 +3,7 @@ class ChangeLiquidTagsToPolymorphic < ActiveRecord::Migration
|
|
|
3
3
|
def up
|
|
4
4
|
rename_column :spud_page_liquid_tags, :spud_page_partial_id, :attachment_id
|
|
5
5
|
add_column :spud_page_liquid_tags, :attachment_type, :string
|
|
6
|
-
|
|
7
|
-
add_index :spud_page_liquid_tags, [:attachment_type,:attachment_id]
|
|
8
|
-
|
|
6
|
+
add_index :spud_page_liquid_tags, [:attachment_type, :attachment_id], :name => 'inde_spud_page_liquid_tags_on_attachment'
|
|
9
7
|
if defined?(SpudPageLiquidTag)
|
|
10
8
|
SpudPageLiquidTag.all.each do |f|
|
|
11
9
|
f.update_attributes(:attachment_type => "SpudPagePartial")
|