alchemy_cms 2.0.7 → 2.1.beta1
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +1 -4
- data/.travis.yml +1 -1
- data/Gemfile +7 -2
- data/README.md +6 -6
- data/Rakefile +26 -18
- data/alchemy_cms.gemspec +14 -14
- data/{assets/stylesheets → app/assets/images/alchemy}/Jcrop.gif +0 -0
- data/{assets/images → app/assets/images/alchemy}/ajax_loader.gif +0 -0
- data/{assets/images → app/assets/images/alchemy}/alchemy-logo.png +0 -0
- data/{assets/images → app/assets/images/alchemy}/flags.png +0 -0
- data/{assets/images → app/assets/images/alchemy}/gui/navi-tab.png +0 -0
- data/{assets/images → app/assets/images/alchemy}/gui/shading_90.png +0 -0
- data/{assets/images → app/assets/images/alchemy}/gui/toggle.png +0 -0
- data/{assets/images → app/assets/images/alchemy}/icons.png +0 -0
- data/{assets/images → app/assets/images/alchemy}/image_loader.gif +0 -0
- data/{assets/images → app/assets/images/alchemy}/jquery-sb/select_arrow.gif +0 -0
- data/{assets/images → app/assets/images/alchemy}/jquery-sb/select_arrow_bg.gif +0 -0
- data/{assets/images → app/assets/images/alchemy}/jquery-sb/select_arrow_bg_hover.gif +0 -0
- data/{assets/images → app/assets/images/alchemy}/placeholder.png +0 -0
- data/{assets/images/gui → app/assets/images/alchemy}/shading.png +0 -0
- data/{assets/images → app/assets/images/alchemy}/swfupload/browse_button.png +0 -0
- data/{assets/stylesheets/default/img → app/assets/images/alchemy}/tabs.gif +0 -0
- data/{assets/images/jquery-ui → app/assets/images/alchemy}/ui-icons_666666_256x240.png +0 -0
- data/app/assets/javascripts/alchemy/alchemy.base.js +212 -0
- data/app/assets/javascripts/alchemy/alchemy.buttons.js +36 -0
- data/app/assets/javascripts/alchemy/alchemy.dirty.js +91 -0
- data/app/assets/javascripts/alchemy/alchemy.dragndrop.js +114 -0
- data/{assets/javascripts → app/assets/javascripts/alchemy}/alchemy.element_editor_selector.js +0 -0
- data/{assets/javascripts → app/assets/javascripts/alchemy}/alchemy.growler.js +0 -0
- data/{assets/javascripts → app/assets/javascripts/alchemy}/alchemy.image_cropper.js +0 -0
- data/app/assets/javascripts/alchemy/alchemy.js +26 -0
- data/app/assets/javascripts/alchemy/alchemy.js_extensions.js +17 -0
- data/{assets/javascripts → app/assets/javascripts/alchemy}/alchemy.link_overlay.js +1 -1
- data/{assets/javascripts → app/assets/javascripts/alchemy}/alchemy.page_sorter.js +0 -0
- data/{assets/javascripts → app/assets/javascripts/alchemy}/alchemy.preview.js +0 -0
- data/app/assets/javascripts/alchemy/alchemy.windows.js +438 -0
- data/app/assets/stylesheets/alchemy/_defaults.scss +160 -0
- data/app/assets/stylesheets/alchemy/alchemy.css +9 -0
- data/{assets/stylesheets/alchemy.css → app/assets/stylesheets/alchemy/base.css.scss} +216 -353
- data/{assets/stylesheets/elements.css → app/assets/stylesheets/alchemy/elements.css.scss} +41 -70
- data/{assets/stylesheets/flags.css → app/assets/stylesheets/alchemy/flags.css.scss} +1 -1
- data/{assets/stylesheets/jquery-ui-1.8.7.alchemy.css → app/assets/stylesheets/alchemy/jquery-ui.alchemy.css} +15 -15
- data/{assets/stylesheets/jquery.Jcrop.css → app/assets/stylesheets/alchemy/jquery.Jcrop.css.scss} +3 -3
- data/{assets/stylesheets/jquery.sb.css → app/assets/stylesheets/alchemy/jquery.sb.css.scss} +19 -29
- data/{assets/stylesheets → app/assets/stylesheets/alchemy}/print.css +6 -1
- data/{assets/stylesheets → app/assets/stylesheets/alchemy}/standard_set.css +0 -0
- data/{assets/stylesheets/alchemy_tinymce_content.css → app/assets/stylesheets/alchemy/tinymce_content.css} +0 -0
- data/{assets/stylesheets/alchemy_tinymce_dialog.css → app/assets/stylesheets/alchemy/tinymce_dialog.css} +2 -2
- data/app/controllers/admin/attachments_controller.rb +2 -8
- data/app/controllers/admin/clipboard_controller.rb +2 -2
- data/app/controllers/admin/contents_controller.rb +4 -16
- data/app/controllers/admin/elements_controller.rb +2 -2
- data/app/controllers/admin/essence_audios_controller.rb +0 -3
- data/app/controllers/admin/essence_files_controller.rb +0 -11
- data/app/controllers/admin/essence_flashes_controller.rb +0 -3
- data/app/controllers/admin/essence_pictures_controller.rb +2 -7
- data/app/controllers/admin/essence_videos_controller.rb +0 -3
- data/app/controllers/admin/languages_controller.rb +4 -10
- data/app/controllers/admin/pages_controller.rb +6 -4
- data/app/controllers/admin/pictures_controller.rb +13 -18
- data/app/controllers/admin/trash_controller.rb +0 -5
- data/app/controllers/admin/users_controller.rb +2 -3
- data/app/controllers/alchemy_controller.rb +18 -30
- data/app/controllers/pages_controller.rb +21 -24
- data/app/helpers/admin/elements_helper.rb +5 -0
- data/app/helpers/admin/pages_helper.rb +36 -1
- data/app/helpers/alchemy_helper.rb +39 -17
- data/app/models/attachment.rb +2 -2
- data/app/models/essence_file.rb +1 -1
- data/app/models/page.rb +1 -1
- data/app/sweepers/pages_sweeper.rb +10 -0
- data/app/views/admin/attachments/destroy.js.erb +4 -0
- data/app/views/admin/clipboard/insert.js.erb +12 -19
- data/app/views/admin/contents/create.js.erb +1 -1
- data/app/views/admin/contents/destroy.js.erb +7 -0
- data/app/views/admin/contents/order.js.erb +6 -0
- data/app/views/admin/elements/_element.html.erb +4 -2
- data/app/views/admin/elements/create.js.erb +19 -26
- data/app/views/admin/elements/fold.js.erb +1 -1
- data/app/views/admin/elements/index.html.erb +1 -1
- data/app/views/admin/essence_files/assign.js.erb +8 -0
- data/app/views/admin/essence_pictures/save_link.js.erb +3 -0
- data/app/views/admin/index.html.erb +37 -27
- data/app/views/admin/languages/destroy.js.erb +1 -0
- data/app/views/admin/pages/_page.html.erb +1 -1
- data/app/views/admin/pages/_sitemap.html.erb +1 -1
- data/app/views/admin/pages/edit.html.erb +2 -2
- data/app/views/admin/pages/update.js.erb +1 -1
- data/app/views/admin/partials/_upload_form.html.erb +11 -11
- data/app/views/admin/pictures/archive_overlay.js.erb +1 -0
- data/app/views/admin/pictures/flush.js.erb +2 -0
- data/app/views/admin/pictures/update.js.erb +1 -0
- data/app/views/admin/trash/clear.js.erb +3 -0
- data/app/views/alchemy/error_notice.js.erb +1 -0
- data/app/views/alchemy/permission_denied.js.erb +2 -0
- data/app/views/alchemy/redirect.js.erb +1 -0
- data/app/views/alchemy/remote_errors.js.erb +3 -0
- data/app/views/alchemy/update.js.erb +5 -0
- data/app/views/essences/_essence_file_editor.html.erb +0 -1
- data/app/views/essences/_essence_file_view.html.erb +1 -5
- data/app/views/essences/_essence_picture_tools.html.erb +1 -1
- data/app/views/layouts/alchemy.html.erb +22 -9
- data/app/views/pages/show.rss.builder +1 -1
- data/config/alchemy/elements.yml +0 -5
- data/config/alchemy/page_layouts.yml +1 -1
- data/config/asset_packages.yml +17 -19
- data/config/authorization_rules.rb +1 -0
- data/config/locales/de.yml +0 -1
- data/config/routes.rb +1 -1
- data/lib/alchemy/tinymce.rb +51 -0
- data/lib/alchemy/version.rb +3 -3
- data/lib/alchemy_cms.rb +4 -2
- data/script/rails +6 -0
- data/spec/controllers/admin/clipboard_controller_spec.rb +15 -13
- data/spec/controllers/admin/contents_controller_spec.rb +4 -4
- data/spec/controllers/admin/trash_controller_spec.rb +6 -9
- data/spec/controllers/pages_controller_spec.rb +9 -8
- data/spec/dummy/Rakefile +1 -1
- data/spec/dummy/app/assets/javascripts/application.js +9 -0
- data/spec/dummy/app/assets/stylesheets/application.css +7 -0
- data/spec/dummy/app/mailers/.gitkeep +0 -0
- data/spec/dummy/app/models/.gitkeep +0 -0
- data/spec/dummy/app/views/layouts/application.html.erb +3 -3
- data/spec/dummy/config/application.rb +12 -6
- data/spec/dummy/config/database.yml +3 -0
- data/spec/dummy/config/environments/development.rb +7 -3
- data/spec/dummy/config/environments/production.rb +23 -12
- data/spec/dummy/config/environments/test.rb +5 -1
- data/spec/dummy/config/initializers/secret_token.rb +1 -1
- data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
- data/spec/dummy/config/locales/en.yml +1 -1
- data/spec/dummy/config/routes.rb +1 -1
- data/spec/dummy/lib/assets/.gitkeep +0 -0
- data/spec/factories.rb +8 -8
- data/spec/helpers/admin/elements_helper_spec.rb +2 -2
- data/spec/helpers/contents_helper_spec.rb +1 -1
- data/spec/helpers/elements_helper_spec.rb +6 -6
- data/spec/helpers/essences_helper_spec.rb +1 -1
- data/spec/helpers/pages_helper_spec.rb +37 -37
- data/spec/integration/pages_controller_spec.rb +29 -26
- data/spec/integration/security_spec.rb +2 -1
- data/spec/models/content_spec.rb +1 -1
- data/spec/models/element_spec.rb +11 -11
- data/spec/models/language_spec.rb +5 -5
- data/spec/models/page_spec.rb +54 -54
- data/spec/models/user_spec.rb +2 -1
- data/spec/routing_spec.rb +1 -1
- data/{assets/javascripts/jquery.js → vendor/assets/javascripts/jquery-1.6.2.min.js} +0 -0
- data/{assets/javascripts/jquery-ui.js → vendor/assets/javascripts/jquery-ui-custom-1.8.16.min.js} +0 -0
- data/{assets/javascripts → vendor/assets/javascripts/jquery_plugins}/jquery.Jcrop.min.js +0 -0
- data/{assets/javascripts → vendor/assets/javascripts/jquery_plugins}/jquery.dialogextend.min.js +7 -7
- data/{assets/javascripts → vendor/assets/javascripts/jquery_plugins}/jquery.in-place-edit.js +0 -0
- data/{assets/javascripts → vendor/assets/javascripts/jquery_plugins}/jquery.sb.min.js +0 -0
- data/{assets/javascripts → vendor/assets/javascripts/jquery_plugins}/jquery.scrollTo-1.4.2-min.js +10 -10
- data/{assets/javascripts → vendor/assets/javascripts/jquery_plugins}/jquery.ui.nestedSortable.js +0 -0
- data/{assets/javascripts → vendor/assets/javascripts/jquery_plugins}/jquery.ui.tabspaging.js +0 -0
- data/{assets → vendor/assets}/javascripts/swfupload/fileprogress.js +202 -202
- data/{assets → vendor/assets}/javascripts/swfupload/handlers.js +171 -171
- data/{assets → vendor/assets}/javascripts/swfupload/queue.js +97 -97
- data/{assets → vendor/assets}/javascripts/swfupload/swfupload.js +980 -980
- data/{assets → vendor/assets}/javascripts/swfupload/swfupload.swf +0 -0
- data/{assets → vendor/assets}/javascripts/tiny_mce/jquery.tinymce.js +0 -0
- data/{assets → vendor/assets}/javascripts/tiny_mce/langs/de.js +0 -0
- data/{assets → vendor/assets}/javascripts/tiny_mce/langs/en.js +0 -0
- data/{assets → vendor/assets}/javascripts/tiny_mce/license.txt +504 -504
- data/{assets → vendor/assets}/javascripts/tiny_mce/plugins/alchemy_link/editor_plugin.js +0 -0
- data/{assets → vendor/assets}/javascripts/tiny_mce/plugins/alchemy_link/langs/de.js +0 -0
- data/{assets → vendor/assets}/javascripts/tiny_mce/plugins/alchemy_link/langs/en.js +0 -0
- data/{assets → vendor/assets}/javascripts/tiny_mce/plugins/autoresize/editor_plugin.js +0 -0
- data/{assets → vendor/assets}/javascripts/tiny_mce/plugins/fullscreen/editor_plugin.js +0 -0
- data/{assets → vendor/assets}/javascripts/tiny_mce/plugins/fullscreen/fullscreen.htm +110 -110
- data/{assets → vendor/assets}/javascripts/tiny_mce/plugins/inlinepopups/editor_plugin.js +0 -0
- data/{assets/javascripts/tiny_mce/plugins/inlinepopups/skins/alchemy/window.css → vendor/assets/javascripts/tiny_mce/plugins/inlinepopups/skins/alchemy/window.css.erb} +8 -8
- data/{assets → vendor/assets}/javascripts/tiny_mce/plugins/inlinepopups/template.htm +387 -387
- data/{assets → vendor/assets}/javascripts/tiny_mce/plugins/paste/editor_plugin.js +0 -0
- data/{assets → vendor/assets}/javascripts/tiny_mce/plugins/paste/js/pastetext.js +36 -36
- data/{assets → vendor/assets}/javascripts/tiny_mce/plugins/paste/js/pasteword.js +51 -51
- data/{assets → vendor/assets}/javascripts/tiny_mce/plugins/paste/langs/de_dlg.js +0 -0
- data/{assets → vendor/assets}/javascripts/tiny_mce/plugins/paste/langs/en_dlg.js +0 -0
- data/{assets → vendor/assets}/javascripts/tiny_mce/plugins/paste/pastetext.htm +26 -26
- data/{assets → vendor/assets}/javascripts/tiny_mce/plugins/paste/pasteword.htm +21 -21
- data/{assets → vendor/assets}/javascripts/tiny_mce/plugins/table/cell.htm +180 -180
- data/{assets → vendor/assets}/javascripts/tiny_mce/plugins/table/css/cell.css +16 -16
- data/{assets → vendor/assets}/javascripts/tiny_mce/plugins/table/css/row.css +25 -25
- data/{assets → vendor/assets}/javascripts/tiny_mce/plugins/table/css/table.css +13 -13
- data/{assets → vendor/assets}/javascripts/tiny_mce/plugins/table/editor_plugin.js +0 -0
- data/{assets → vendor/assets}/javascripts/tiny_mce/plugins/table/js/cell.js +319 -319
- data/{assets → vendor/assets}/javascripts/tiny_mce/plugins/table/js/merge_cells.js +27 -27
- data/{assets → vendor/assets}/javascripts/tiny_mce/plugins/table/js/row.js +237 -237
- data/{assets → vendor/assets}/javascripts/tiny_mce/plugins/table/js/table.js +450 -450
- data/{assets → vendor/assets}/javascripts/tiny_mce/plugins/table/langs/de_dlg.js +0 -0
- data/{assets → vendor/assets}/javascripts/tiny_mce/plugins/table/langs/en_dlg.js +0 -0
- data/{assets → vendor/assets}/javascripts/tiny_mce/plugins/table/merge_cells.htm +32 -32
- data/{assets → vendor/assets}/javascripts/tiny_mce/plugins/table/row.htm +158 -158
- data/{assets → vendor/assets}/javascripts/tiny_mce/plugins/table/table.htm +188 -188
- data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/about.htm +52 -52
- data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/anchor.htm +26 -26
- data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/charmap.htm +51 -51
- data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/color_picker.htm +74 -74
- data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/editor_template.js +0 -0
- data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/image.htm +80 -80
- data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/img/colorpicker.jpg +0 -0
- data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/img/flash.gif +0 -0
- data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/img/icons.gif +0 -0
- data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/img/iframe.gif +0 -0
- data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/img/pagebreak.gif +0 -0
- data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/img/quicktime.gif +0 -0
- data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/img/realmedia.gif +0 -0
- data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/img/shockwave.gif +0 -0
- data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/img/trans.gif +0 -0
- data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/img/video.gif +0 -0
- data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/img/windowsmedia.gif +0 -0
- data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/js/about.js +73 -73
- data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/js/anchor.js +43 -43
- data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/js/charmap.js +355 -355
- data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/js/color_picker.js +329 -329
- data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/js/image.js +251 -251
- data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/js/link.js +153 -153
- data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/js/source_editor.js +56 -56
- data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/langs/de.js +0 -0
- data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/langs/de_dlg.js +0 -0
- data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/langs/en.js +0 -0
- data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/langs/en_dlg.js +0 -0
- data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/link.htm +57 -57
- data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/shortcuts.htm +47 -47
- data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/skins/default/content.css +50 -50
- data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/skins/default/dialog.css +117 -117
- data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/skins/default/img/buttons.png +0 -0
- data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/skins/default/img/items.gif +0 -0
- data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/skins/default/img/menu_arrow.gif +0 -0
- data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/skins/default/img/menu_check.gif +0 -0
- data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/skins/default/img/progress.gif +0 -0
- data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/skins/default/img/tabs.gif +0 -0
- data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/skins/default/ui.css +214 -214
- data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/skins/o2k7/content.css +48 -48
- data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/skins/o2k7/dialog.css +117 -117
- data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/skins/o2k7/img/button_bg.png +0 -0
- data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/skins/o2k7/img/button_bg_black.png +0 -0
- data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/skins/o2k7/img/button_bg_silver.png +0 -0
- data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/skins/o2k7/ui.css +217 -217
- data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/skins/o2k7/ui_black.css +7 -7
- data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/skins/o2k7/ui_silver.css +5 -5
- data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/source_editor.htm +25 -25
- data/{assets → vendor/assets}/javascripts/tiny_mce/tiny_mce.js +0 -0
- data/{assets → vendor/assets}/javascripts/tiny_mce/tiny_mce_popup.js +0 -0
- data/{assets → vendor/assets}/javascripts/tiny_mce/utils/editable_selects.js +70 -70
- data/{assets → vendor/assets}/javascripts/tiny_mce/utils/form_utils.js +210 -210
- data/{assets → vendor/assets}/javascripts/tiny_mce/utils/mctabs.js +161 -161
- data/{assets → vendor/assets}/javascripts/tiny_mce/utils/validate.js +252 -252
- metadata +338 -369
- data/app/views/elements/_download_editor.html.erb +0 -1
- data/app/views/elements/_download_view.html.erb +0 -3
- data/assets/javascripts/alchemy.js +0 -903
- data/assets/javascripts/jquery.rails.js +0 -315
- data/assets/stylesheets/ie6.css +0 -18
- data/config/initializers/tinymce_hammer.rb +0 -31
@@ -3,17 +3,17 @@ require 'spec_helper'
|
|
3
3
|
describe PagesHelper do
|
4
4
|
|
5
5
|
it "should render the current page layout" do
|
6
|
-
@page =
|
6
|
+
@page = Factory(:public_page)
|
7
7
|
helper.stub(:configuration).and_return(true)
|
8
8
|
render_page_layout.should have_selector('div#content')
|
9
9
|
end
|
10
10
|
|
11
11
|
context "navigation and meta data" do
|
12
|
-
|
12
|
+
|
13
13
|
before(:each) do
|
14
14
|
@language = Language.get_default
|
15
|
-
@root_page =
|
16
|
-
@page =
|
15
|
+
@root_page = Factory(:language_root_page, :language => @language, :name => 'Home')
|
16
|
+
@page = Factory(:public_page, :language => @language, :parent_id => @root_page.id, :visible => true)
|
17
17
|
helper.stub(:multi_language?).and_return(false)
|
18
18
|
end
|
19
19
|
|
@@ -24,7 +24,7 @@ describe PagesHelper do
|
|
24
24
|
it "should render a breadcrumb to current page" do
|
25
25
|
helper.render_breadcrumb.should have_selector('a.active.last[href="/a-public-page"]')
|
26
26
|
end
|
27
|
-
|
27
|
+
|
28
28
|
it "should render meta tags for current page" do
|
29
29
|
helper.render_meta_data(:title_prefix => 'Peters Petshop').should have_selector('title[contains("Peters Petshop | A Public Page")]')
|
30
30
|
end
|
@@ -39,7 +39,7 @@ describe PagesHelper do
|
|
39
39
|
|
40
40
|
before :each do
|
41
41
|
@default_language = Language.get_default
|
42
|
-
@klingonian =
|
42
|
+
@klingonian = Factory(:language)
|
43
43
|
# simulates link_to_public_child = true
|
44
44
|
helper.stub(:configuration).and_return(true)
|
45
45
|
helper.stub(:multi_language?).and_return(true)
|
@@ -53,88 +53,88 @@ describe PagesHelper do
|
|
53
53
|
context "with two public languages and two language_roots" do
|
54
54
|
|
55
55
|
before :each do
|
56
|
-
@default_language_root =
|
57
|
-
@klingonian_language_root =
|
56
|
+
@default_language_root = Factory(:language_root_page, :language => @default_language, :name => 'Default Language Root')
|
57
|
+
@klingonian_language_root = Factory(:language_root_page)
|
58
58
|
end
|
59
|
-
|
59
|
+
|
60
60
|
context "and config redirect_to_public_child is set to TRUE" do
|
61
|
-
|
61
|
+
|
62
62
|
before :each do
|
63
63
|
# simulates link_to_public_child = true
|
64
64
|
helper.stub(:configuration).and_return(true)
|
65
65
|
end
|
66
|
-
|
66
|
+
|
67
67
|
it "should return nil if only one language_root is public and both do not have children" do
|
68
68
|
@klingonian_language_root.update_attributes(:public => false)
|
69
69
|
helper.language_switches.should == nil
|
70
70
|
end
|
71
|
-
|
71
|
+
|
72
72
|
it "should return nil if only one language_root is public and both have none public children" do
|
73
73
|
@klingonian_language_root.update_attributes(:public => false)
|
74
|
-
@default_first_public_child =
|
75
|
-
@klingonian_first_public_child =
|
74
|
+
@default_first_public_child = Factory(:page, :language => @default_language, :parent_id => @default_language_root.id, :public => false, :name => "child1")
|
75
|
+
@klingonian_first_public_child = Factory(:page, :language => @klingonian, :parent_id => @klingonian_language_root.id, :public => false, :name => "child1")
|
76
76
|
helper.language_switches.should == nil
|
77
77
|
end
|
78
|
-
|
78
|
+
|
79
79
|
it "should render two links when having two public language_root pages" do
|
80
80
|
helper.language_switches.should have_selector('a', :count => 2)
|
81
81
|
end
|
82
|
-
|
82
|
+
|
83
83
|
it "should render two links when having just one public language_root but a public children in both language_roots" do
|
84
84
|
@klingonian_language_root.update_attributes(:public => false)
|
85
|
-
@default_first_public_child =
|
86
|
-
@klingonian_first_public_child =
|
85
|
+
@default_first_public_child = Factory(:page, :language => @default_language, :parent_id => @default_language_root.id, :public => true, :name => "child1")
|
86
|
+
@klingonian_first_public_child = Factory(:page, :language => @klingonian, :parent_id => @klingonian_language_root.id, :public => true, :name => "child1")
|
87
87
|
helper.language_switches.should have_selector('a', :count => 2)
|
88
88
|
end
|
89
|
-
|
89
|
+
|
90
90
|
it "should render two links when having two not public language_roots but a public children in both" do
|
91
91
|
@default_language_root.update_attributes(:public => false)
|
92
92
|
@klingonian_language_root.update_attributes(:public => false)
|
93
|
-
@default_first_public_child =
|
94
|
-
@klingonian_first_public_child =
|
93
|
+
@default_first_public_child = Factory(:page, :language => @default_language, :parent_id => @default_language_root.id, :public => true, :name => "child1")
|
94
|
+
@klingonian_first_public_child = Factory(:page, :language => @klingonian, :parent_id => @klingonian_language_root.id, :public => true, :name => "child1")
|
95
95
|
helper.language_switches.should have_selector('a', :count => 2)
|
96
96
|
end
|
97
|
-
|
97
|
+
|
98
98
|
it "should return nil when having two not public language_roots and a public children in only one of them" do
|
99
99
|
@default_language_root.update_attributes(:public => false)
|
100
100
|
@klingonian_language_root.update_attributes(:public => false)
|
101
|
-
@default_first_public_child =
|
102
|
-
@klingonian_first_public_child =
|
101
|
+
@default_first_public_child = Factory(:page, :language => @default_language, :parent_id => @default_language_root.id, :public => false, :name => "child1")
|
102
|
+
@klingonian_first_public_child = Factory(:page, :language => @klingonian, :parent_id => @klingonian_language_root.id, :public => true, :name => "child1")
|
103
103
|
helper.language_switches.should == nil
|
104
104
|
end
|
105
|
-
|
105
|
+
|
106
106
|
end
|
107
|
-
|
107
|
+
|
108
108
|
context "and config redirect_to_public_child is set to FALSE" do
|
109
|
-
|
109
|
+
|
110
110
|
before :each do
|
111
111
|
# simulates link_to_public_child = false
|
112
112
|
helper.stub(:configuration).and_return(false)
|
113
113
|
end
|
114
|
-
|
114
|
+
|
115
115
|
it "should render two links when having two public language_root pages" do
|
116
116
|
helper.language_switches.should have_selector('a', :count => 2)
|
117
117
|
end
|
118
|
-
|
118
|
+
|
119
119
|
it "should render nil when having just one public language_root but a public children in both language_roots" do
|
120
120
|
@klingonian_language_root.update_attributes(:public => false)
|
121
|
-
@default_first_public_child =
|
122
|
-
@klingonian_first_public_child =
|
121
|
+
@default_first_public_child = Factory(:page, :language => @default_language, :parent_id => @default_language_root.id, :public => true, :name => "child1")
|
122
|
+
@klingonian_first_public_child = Factory(:page, :language => @klingonian, :parent_id => @klingonian_language_root.id, :public => true, :name => "child1")
|
123
123
|
helper.language_switches.should == nil
|
124
124
|
end
|
125
|
-
|
125
|
+
|
126
126
|
it "should render nil when having two not public language_roots but a public children in both" do
|
127
127
|
@default_language_root.update_attributes(:public => false)
|
128
128
|
@klingonian_language_root.update_attributes(:public => false)
|
129
|
-
@default_first_public_child =
|
130
|
-
@klingonian_first_public_child =
|
129
|
+
@default_first_public_child = Factory(:page, :language => @default_language, :parent_id => @default_language_root.id, :public => true, :name => "child1")
|
130
|
+
@klingonian_first_public_child = Factory(:page, :language => @klingonian, :parent_id => @klingonian_language_root.id, :public => true, :name => "child1")
|
131
131
|
helper.language_switches.should == nil
|
132
132
|
end
|
133
|
-
|
133
|
+
|
134
134
|
end
|
135
|
-
|
135
|
+
|
136
136
|
end
|
137
|
-
|
137
|
+
|
138
138
|
end
|
139
139
|
|
140
140
|
end
|
@@ -4,15 +4,18 @@ describe PagesController do
|
|
4
4
|
|
5
5
|
before(:each) do
|
6
6
|
# We need an user or the signup view will show up
|
7
|
-
|
7
|
+
|
8
|
+
user = Factory.build(:admin_user)
|
9
|
+
user.save_without_session_maintenance
|
10
|
+
|
8
11
|
@default_language = Language.get_default
|
9
|
-
@default_language_root =
|
12
|
+
@default_language_root = Factory(:language_root_page, :language => @default_language, :name => 'Home')
|
10
13
|
end
|
11
14
|
|
12
15
|
context "rendering a page" do
|
13
16
|
|
14
17
|
it "should including all its elements and contents" do
|
15
|
-
p =
|
18
|
+
p = Factory(:public_page, :language => @default_language)
|
16
19
|
article = p.elements.find_by_name('article')
|
17
20
|
article.content_by_name('intro').essence.update_attributes(:body => 'Welcome to Peters Petshop', :public => true)
|
18
21
|
visit '/a-public-page'
|
@@ -21,8 +24,8 @@ describe PagesController do
|
|
21
24
|
|
22
25
|
it "should have show the navigation with all visible pages" do
|
23
26
|
pages = [
|
24
|
-
|
25
|
-
|
27
|
+
Factory(:public_page, :language => @default_language, :visible => true, :name => 'Page 1', :parent_id => @default_language_root.id),
|
28
|
+
Factory(:public_page, :language => @default_language, :visible => true, :name => 'Page 2', :parent_id => @default_language_root.id)
|
26
29
|
]
|
27
30
|
visit '/'
|
28
31
|
within('div#navigation ul') { page.should have_selector('li a[href="/page-1"], li a[href="/page-2"]') }
|
@@ -31,34 +34,34 @@ describe PagesController do
|
|
31
34
|
end
|
32
35
|
|
33
36
|
context "performing a fulltext search" do
|
34
|
-
|
37
|
+
|
35
38
|
before(:each) do
|
36
|
-
@page =
|
37
|
-
@element =
|
39
|
+
@page = Factory(:public_page, :language => @default_language, :visible => true, :name => 'Page 1', :parent_id => @default_language_root.id)
|
40
|
+
@element = Factory(:element, :name => 'article', :page => @page)
|
38
41
|
end
|
39
|
-
|
42
|
+
|
40
43
|
it "should display search results for richtext essences" do
|
41
44
|
@element.content_by_name('text').essence.update_attributes(:body => '<p>Welcome to Peters Petshop</p>', :public => true)
|
42
|
-
search_result_page =
|
45
|
+
search_result_page = Factory(:public_page, :language => @default_language, :name => 'Suche', :page_layout => 'search', :parent_id => @default_language_root.id)
|
43
46
|
visit('/suche?query=Petshop')
|
44
47
|
within('div#content .searchresult') { page.should have_content('Petshop') }
|
45
48
|
end
|
46
|
-
|
49
|
+
|
47
50
|
it "should display search results for text essences" do
|
48
51
|
@element.content_by_name('intro').essence.update_attributes(:body => 'Welcome to Peters Petshop', :public => true)
|
49
|
-
search_result_page =
|
52
|
+
search_result_page = Factory(:public_page, :language => @default_language, :name => 'Suche', :page_layout => 'search', :parent_id => @default_language_root.id)
|
50
53
|
visit('/suche?query=Petshop')
|
51
54
|
within('div#content .searchresult') { page.should have_content('Petshop') }
|
52
55
|
end
|
53
|
-
|
56
|
+
|
54
57
|
end
|
55
58
|
|
56
59
|
context "redirecting" do
|
57
|
-
|
60
|
+
|
58
61
|
context "in multi language mode" do
|
59
62
|
|
60
63
|
before(:each) do
|
61
|
-
@page =
|
64
|
+
@page = Factory(:public_page)
|
62
65
|
end
|
63
66
|
|
64
67
|
it "should redirect to url with nested language code" do
|
@@ -67,12 +70,12 @@ describe PagesController do
|
|
67
70
|
end
|
68
71
|
|
69
72
|
context "should redirect to public child" do
|
70
|
-
|
73
|
+
|
71
74
|
before(:each) do
|
72
75
|
@page.update_attributes(:public => false, :name => 'Not Public', :urlname => '')
|
73
|
-
@child =
|
76
|
+
@child = Factory(:public_page, :name => 'Public Child', :parent_id => @page.id)
|
74
77
|
end
|
75
|
-
|
78
|
+
|
76
79
|
it ", if requested page is unpublished" do
|
77
80
|
visit '/kl/not-public'
|
78
81
|
page.current_path.should == '/kl/public-child'
|
@@ -82,7 +85,7 @@ describe PagesController do
|
|
82
85
|
visit '/not-public'
|
83
86
|
page.current_path.should == '/kl/public-child'
|
84
87
|
end
|
85
|
-
|
88
|
+
|
86
89
|
end
|
87
90
|
|
88
91
|
it "should redirect to pages url, if requested url is index url" do
|
@@ -101,11 +104,11 @@ describe PagesController do
|
|
101
104
|
end
|
102
105
|
|
103
106
|
end
|
104
|
-
|
107
|
+
|
105
108
|
context "not in multi language mode" do
|
106
109
|
|
107
110
|
before(:each) do
|
108
|
-
@page =
|
111
|
+
@page = Factory(:public_page, :language => @default_language, :parent_id => @default_language_root.id)
|
109
112
|
end
|
110
113
|
|
111
114
|
it "should redirect from nested language code url to normal url" do
|
@@ -114,12 +117,12 @@ describe PagesController do
|
|
114
117
|
end
|
115
118
|
|
116
119
|
context "should redirect to public child" do
|
117
|
-
|
120
|
+
|
118
121
|
before(:each) do
|
119
122
|
@page.update_attributes(:public => false, :name => 'Not Public', :urlname => '')
|
120
|
-
@child =
|
123
|
+
@child = Factory(:public_page, :name => 'Public Child', :parent_id => @page.id, :language => @default_language)
|
121
124
|
end
|
122
|
-
|
125
|
+
|
123
126
|
it ", if requested page is unpublished" do
|
124
127
|
visit '/not-public'
|
125
128
|
page.current_path.should == '/public-child'
|
@@ -129,7 +132,7 @@ describe PagesController do
|
|
129
132
|
visit '/de/not-public'
|
130
133
|
page.current_path.should == '/public-child'
|
131
134
|
end
|
132
|
-
|
135
|
+
|
133
136
|
end
|
134
137
|
|
135
138
|
it "should redirect to pages url, if requested url is index url" do
|
@@ -143,7 +146,7 @@ describe PagesController do
|
|
143
146
|
end
|
144
147
|
|
145
148
|
end
|
146
|
-
|
149
|
+
|
147
150
|
end
|
148
151
|
|
149
152
|
end
|
@@ -16,7 +16,8 @@ describe "Security: " do
|
|
16
16
|
|
17
17
|
context "If on or more users are present" do
|
18
18
|
it "a visitor should not be able to signup" do
|
19
|
-
@user = User.
|
19
|
+
@user = User.new({:login => 'foo', :email => 'foo@bar.com', :password => 's3cr3t', :password_confirmation => 's3cr3t'})
|
20
|
+
@user.save_without_session_maintenance
|
20
21
|
visit '/admin/signup'
|
21
22
|
within('#alchemy_greeting') { page.should_not have_content('have to signup') }
|
22
23
|
end
|
data/spec/models/content_spec.rb
CHANGED
@@ -3,7 +3,7 @@ require 'spec_helper'
|
|
3
3
|
describe Content do
|
4
4
|
|
5
5
|
it "should return the ingredient from its essence" do
|
6
|
-
|
6
|
+
Factory(:element)
|
7
7
|
EssenceText.first.update_attributes(:body => "Hello")
|
8
8
|
Content.first.ingredient.should == EssenceText.first.ingredient
|
9
9
|
end
|
data/spec/models/element_spec.rb
CHANGED
@@ -9,19 +9,19 @@ describe Element do
|
|
9
9
|
end
|
10
10
|
|
11
11
|
it "should return all public elements" do
|
12
|
-
elements = [
|
12
|
+
elements = [Factory(:element, :public => true), Factory(:element, :public => true)]
|
13
13
|
Element.published.all.should == elements
|
14
14
|
end
|
15
15
|
|
16
16
|
it "should return all elements by name" do
|
17
|
-
elements = [
|
17
|
+
elements = [Factory(:element, :name => 'article'), Factory(:element, :name => 'article')]
|
18
18
|
Element.named(['article']).all.should == elements
|
19
19
|
end
|
20
20
|
|
21
21
|
it "should return all elements but excluded ones" do
|
22
|
-
|
23
|
-
|
24
|
-
excluded = [
|
22
|
+
Factory(:element, :name => 'article')
|
23
|
+
Factory(:element, :name => 'article')
|
24
|
+
excluded = [Factory(:element, :name => 'claim')]
|
25
25
|
Element.excluded(['article']).all.should == excluded
|
26
26
|
end
|
27
27
|
|
@@ -47,7 +47,7 @@ describe Element do
|
|
47
47
|
context "retrieving contents, essences and ingredients" do
|
48
48
|
|
49
49
|
before(:each) do
|
50
|
-
@element =
|
50
|
+
@element = Factory(:element, :name => 'news')
|
51
51
|
end
|
52
52
|
|
53
53
|
it "should return an ingredient by name" do
|
@@ -65,7 +65,7 @@ describe Element do
|
|
65
65
|
end
|
66
66
|
|
67
67
|
it "should return a collection of trashed elements" do
|
68
|
-
@element =
|
68
|
+
@element = Factory(:element)
|
69
69
|
@element.trash
|
70
70
|
Element.trashed.should include(@element)
|
71
71
|
end
|
@@ -73,14 +73,14 @@ describe Element do
|
|
73
73
|
context "trashed" do
|
74
74
|
|
75
75
|
before(:each) do
|
76
|
-
@element =
|
76
|
+
@element = Factory(:element)
|
77
77
|
@element.trash
|
78
78
|
end
|
79
|
-
|
79
|
+
|
80
80
|
it "should be not public" do
|
81
81
|
@element.public.should be_false
|
82
82
|
end
|
83
|
-
|
83
|
+
|
84
84
|
it "should have no page" do
|
85
85
|
@element.page.should == nil
|
86
86
|
end
|
@@ -88,7 +88,7 @@ describe Element do
|
|
88
88
|
it "should be folded" do
|
89
89
|
@element.folded.should == true
|
90
90
|
end
|
91
|
-
|
91
|
+
|
92
92
|
end
|
93
93
|
|
94
94
|
it "should raise error if all_for_page method has no page" do
|
@@ -3,25 +3,25 @@ require 'spec_helper'
|
|
3
3
|
describe Language do
|
4
4
|
|
5
5
|
before(:all) do
|
6
|
-
@language =
|
6
|
+
@language = Factory(:language)
|
7
7
|
end
|
8
|
-
|
8
|
+
|
9
9
|
after(:all) do
|
10
10
|
@language.destroy if @language
|
11
11
|
end
|
12
12
|
|
13
13
|
it "should return a label for code" do
|
14
14
|
@language.label(:code).should == 'kl'
|
15
|
-
end
|
15
|
+
end
|
16
16
|
|
17
17
|
it "should return a label for name" do
|
18
18
|
@language.label(:name).should == 'Klingonian'
|
19
19
|
end
|
20
|
-
|
20
|
+
|
21
21
|
it "should not be deletable if it is the default language" do
|
22
22
|
@default_language = Language.find_by_default(true)
|
23
23
|
if !@default_language
|
24
|
-
@default_language =
|
24
|
+
@default_language = Factory(:language, :name => "default", :code => "aa", :frontpage_name => "intro", :default => true)
|
25
25
|
end
|
26
26
|
expect { @default_language.destroy }.should raise_error
|
27
27
|
end
|
data/spec/models/page_spec.rb
CHANGED
@@ -3,58 +3,58 @@
|
|
3
3
|
require 'spec_helper'
|
4
4
|
|
5
5
|
describe Page do
|
6
|
-
|
6
|
+
|
7
7
|
before(:each) do
|
8
8
|
@rootpage = Page.rootpage
|
9
9
|
@language = Language.get_default
|
10
|
-
@language_root =
|
10
|
+
@language_root = Factory(:page, :parent_id => @rootpage.id, :language => @language, :language_root => true, :page_layout => 'intro')
|
11
11
|
end
|
12
|
-
|
12
|
+
|
13
13
|
describe ".layout_description" do
|
14
|
-
|
14
|
+
|
15
15
|
context "for a language root page" do
|
16
|
-
|
16
|
+
|
17
17
|
it "should return the page layout description as hash" do
|
18
18
|
@language_root.layout_description['name'].should == 'intro'
|
19
19
|
end
|
20
|
-
|
20
|
+
|
21
21
|
it "should return an empty hash for root page" do
|
22
22
|
@rootpage.layout_description.should == {}
|
23
23
|
end
|
24
|
-
|
24
|
+
|
25
25
|
end
|
26
|
-
|
26
|
+
|
27
27
|
it "should raise Exception if the page_layout could not be found in the definition file" do
|
28
28
|
@page = mock(:page, :page_layout => 'foo')
|
29
29
|
expect { @page.layout_description }.to raise_error
|
30
30
|
end
|
31
|
-
|
31
|
+
|
32
32
|
end
|
33
|
-
|
33
|
+
|
34
34
|
it "should contain one rootpage" do
|
35
35
|
Page.rootpage.should be_instance_of(Page)
|
36
36
|
end
|
37
37
|
|
38
38
|
it "should return all rss feed elements" do
|
39
|
-
@page =
|
39
|
+
@page = Factory(:public_page, :page_layout => 'news', :parent_id => @language_root.id, :language => @language)
|
40
40
|
@page.feed_elements.should == Element.find_all_by_name('news')
|
41
41
|
end
|
42
|
-
|
42
|
+
|
43
43
|
context "finding elements" do
|
44
|
-
|
44
|
+
|
45
45
|
before(:each) do
|
46
|
-
@page =
|
46
|
+
@page = Factory(:public_page)
|
47
47
|
@non_public_elements = [
|
48
|
-
|
49
|
-
|
48
|
+
Factory(:element, :public => false, :page => @page),
|
49
|
+
Factory(:element, :public => false, :page => @page)
|
50
50
|
]
|
51
51
|
end
|
52
|
-
|
52
|
+
|
53
53
|
it "should return the collection of elements if passed an array into options[:collection]" do
|
54
54
|
options = {:collection => @page.elements}
|
55
55
|
@page.find_elements(options).all.should == @page.elements.all
|
56
56
|
end
|
57
|
-
|
57
|
+
|
58
58
|
context "with show_non_public argument TRUE" do
|
59
59
|
|
60
60
|
it "should return all elements from empty options" do
|
@@ -78,7 +78,7 @@ describe Page do
|
|
78
78
|
end
|
79
79
|
|
80
80
|
end
|
81
|
-
|
81
|
+
|
82
82
|
context "with show_non_public argument FALSE" do
|
83
83
|
|
84
84
|
it "should return all elements from empty arguments" do
|
@@ -102,56 +102,56 @@ describe Page do
|
|
102
102
|
end
|
103
103
|
|
104
104
|
end
|
105
|
-
|
105
|
+
|
106
106
|
end
|
107
|
-
|
107
|
+
|
108
108
|
context "create" do
|
109
109
|
it "the rootpage with page_layout rootpage does not need a parent_id" do
|
110
110
|
@rootpage.rootpage?.should be_true
|
111
111
|
end
|
112
|
-
|
112
|
+
|
113
113
|
it "all pages except the rootpage must have a parent_id" do
|
114
|
-
page =
|
114
|
+
page = Factory.build(:page, :page_layout => "anypage", :parent_id => nil, :language => @language)
|
115
115
|
page.valid?
|
116
116
|
page.should have(1).error_on(:parent_id)
|
117
117
|
end
|
118
|
-
|
118
|
+
|
119
119
|
it "must not be created if the page_layout is set to 'rootpage' and a page already exists with this page_layout and parent_id = nil" do
|
120
|
-
page =
|
120
|
+
page = Factory.build(:page, :name => "anypage", :page_layout => "rootpage", :parent_id => @language_root.id, :language => @language)
|
121
121
|
page.valid?
|
122
122
|
page.should have(1).error_on(:page_layout)
|
123
123
|
end
|
124
|
-
|
124
|
+
|
125
125
|
it "should get a webfriendly urlname on create" do
|
126
|
-
page =
|
126
|
+
page = Factory(:page, :name => 'klingon$&stößel ', :language => @language, :parent_id => @language_root.id)
|
127
127
|
page.urlname.should == 'klingon-stoessel'
|
128
128
|
end
|
129
129
|
|
130
130
|
it "should generate a three letter urlname from two letter name" do
|
131
|
-
page =
|
131
|
+
page = Factory(:page, :name => 'Au', :language => @language, :parent_id => @language_root.id)
|
132
132
|
page.urlname.should == '-au'
|
133
133
|
end
|
134
134
|
|
135
135
|
it "should generate a three letter urlname from two letter name with umlaut" do
|
136
|
-
page =
|
136
|
+
page = Factory(:page, :name => 'Aü', :language => @language, :parent_id => @language_root.id)
|
137
137
|
page.urlname.should == 'aue'
|
138
138
|
end
|
139
139
|
|
140
140
|
it "should generate a three letter urlname from one letter name" do
|
141
|
-
page =
|
141
|
+
page = Factory(:page, :name => 'A', :language => @language, :parent_id => @language_root.id)
|
142
142
|
page.urlname.should == '--a'
|
143
143
|
end
|
144
144
|
end
|
145
|
-
|
145
|
+
|
146
146
|
context "with children" do
|
147
147
|
before(:each) do
|
148
|
-
@first_child =
|
148
|
+
@first_child = Factory(:page, :name => "First child", :language => @language, :public => false, :parent_id => @language_root.id)
|
149
149
|
@first_child.move_to_child_of(@language_root)
|
150
|
-
|
151
|
-
@first_public_child =
|
150
|
+
|
151
|
+
@first_public_child = Factory(:page, :name => "First public child", :language => @language, :parent_id => @language_root.id, :public => true)
|
152
152
|
@first_public_child.move_to_child_of(@language_root)
|
153
153
|
end
|
154
|
-
|
154
|
+
|
155
155
|
it "should return a page object (or nil if no public child exists) for first_public_child" do
|
156
156
|
if @language_root.children.any?
|
157
157
|
@language_root.first_public_child.should == @first_public_child
|
@@ -160,63 +160,63 @@ describe Page do
|
|
160
160
|
end
|
161
161
|
end
|
162
162
|
end
|
163
|
-
|
163
|
+
|
164
164
|
context ".public" do
|
165
165
|
it "should return 2 pages that are public" do
|
166
|
-
|
167
|
-
|
166
|
+
Factory(:public_page, :name => 'First Public Child', :parent_id => @language_root.id, :language => @language)
|
167
|
+
Factory(:public_page, :name => 'Second Public Child', :parent_id => @language_root.id, :language => @language)
|
168
168
|
Page.published.should have(2).pages
|
169
169
|
end
|
170
170
|
end
|
171
|
-
|
171
|
+
|
172
172
|
context ".not_locked" do
|
173
173
|
it "should return 3 pages that are not blocked by a user at the moment" do
|
174
|
-
|
175
|
-
|
174
|
+
Factory(:public_page, :locked => true, :name => 'First Public Child', :parent_id => @language_root.id, :language => @language)
|
175
|
+
Factory(:public_page, :name => 'Second Public Child', :parent_id => @language_root.id, :language => @language)
|
176
176
|
Page.not_locked.should have(3).pages
|
177
177
|
end
|
178
178
|
end
|
179
179
|
context ".all_locked" do
|
180
180
|
it "should return 1 page that is blocked by a user at the moment" do
|
181
|
-
|
181
|
+
Factory(:public_page, :locked => true, :name => 'First Public Child', :parent_id => @language_root.id, :language => @language)
|
182
182
|
Page.all_locked.should have(1).pages
|
183
183
|
end
|
184
184
|
end
|
185
|
-
|
185
|
+
|
186
186
|
context ".language_roots" do
|
187
187
|
it "should return 1 language_root" do
|
188
|
-
|
188
|
+
Factory(:public_page, :name => 'First Public Child', :parent_id => @language_root.id, :language => @language)
|
189
189
|
Page.language_roots.should have(1).pages
|
190
190
|
end
|
191
191
|
end
|
192
|
-
|
193
|
-
|
192
|
+
|
193
|
+
|
194
194
|
context ".layoutpages" do
|
195
195
|
it "should return 1 layoutpage" do
|
196
|
-
|
196
|
+
Factory(:public_page, :layoutpage => true, :name => 'Layoutpage', :parent_id => @rootpage.id, :language => @language)
|
197
197
|
Page.layoutpages.should have(1).pages
|
198
198
|
end
|
199
199
|
end
|
200
|
-
|
200
|
+
|
201
201
|
context ".visible" do
|
202
202
|
it "should return 1 visible page" do
|
203
|
-
|
203
|
+
Factory(:public_page, :name => 'First Public Child', :visible => true, :parent_id => @language_root.id, :language => @language)
|
204
204
|
Page.visible.should have(1).pages
|
205
205
|
end
|
206
206
|
end
|
207
|
-
|
207
|
+
|
208
208
|
context ".accessable" do
|
209
209
|
it "should return 2 accessable pages" do
|
210
|
-
|
210
|
+
Factory(:public_page, :name => 'First Public Child', :restricted => true, :parent_id => @language_root.id, :language => @language)
|
211
211
|
Page.accessable.should have(2).pages
|
212
212
|
end
|
213
213
|
end
|
214
|
-
|
214
|
+
|
215
215
|
context ".restricted" do
|
216
216
|
it "should return 1 restricted page" do
|
217
|
-
|
217
|
+
Factory(:public_page, :name => 'First Public Child', :restricted => true, :parent_id => @language_root.id, :language => @language)
|
218
218
|
Page.restricted.should have(1).pages
|
219
219
|
end
|
220
220
|
end
|
221
|
-
|
221
|
+
|
222
222
|
end
|