qbrick 2.5.0.pre
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 +7 -0
- data/README.md +423 -0
- data/Rakefile +82 -0
- data/app/assets/javascripts/ckeditor/plugins/adv_link/LICENSE.txt +674 -0
- data/app/assets/javascripts/ckeditor/plugins/adv_link/README.md +62 -0
- data/app/assets/javascripts/ckeditor/plugins/adv_link/dialogs/anchor.js.coffee +81 -0
- data/app/assets/javascripts/ckeditor/plugins/adv_link/dialogs/link.js.coffee +1353 -0
- data/app/assets/javascripts/ckeditor/plugins/adv_link/images/anchor.png +0 -0
- data/app/assets/javascripts/ckeditor/plugins/adv_link/images/hidpi/anchor.png +0 -0
- data/app/assets/javascripts/ckeditor/plugins/adv_link/lang/de.js +68 -0
- data/app/assets/javascripts/ckeditor/plugins/adv_link/lang/en.js +68 -0
- data/app/assets/javascripts/ckeditor/plugins/adv_link/plugin.js.coffee +282 -0
- data/app/assets/javascripts/kuhsaft/application.js.coffee +7 -0
- data/app/assets/javascripts/kuhsaft/cms/application.js.coffee.erb +136 -0
- data/app/assets/javascripts/kuhsaft/views/read_more_view.js.coffee +17 -0
- data/app/assets/stylesheets/kuhsaft/application.css.sass +1 -0
- data/app/assets/stylesheets/kuhsaft/cms/application.css.sass +204 -0
- data/app/assets/stylesheets/kuhsaft/modules/_text_brick.css.sass +16 -0
- data/app/controllers/kuhsaft/api/pages_controller.rb +14 -0
- data/app/controllers/kuhsaft/cms/admin_controller.rb +18 -0
- data/app/controllers/kuhsaft/cms/assets_controller.rb +38 -0
- data/app/controllers/kuhsaft/cms/bricks_controller.rb +61 -0
- data/app/controllers/kuhsaft/cms/ckimages_controller.rb +26 -0
- data/app/controllers/kuhsaft/cms/pages_controller.rb +71 -0
- data/app/controllers/kuhsaft/pages_controller.rb +38 -0
- data/app/controllers/kuhsaft/sitemaps_controller.rb +12 -0
- data/app/helpers/cms_helper.rb +27 -0
- data/app/helpers/kuhsaft/admin_helper.rb +20 -0
- data/app/helpers/kuhsaft/cms/admin_helper.rb +21 -0
- data/app/helpers/kuhsaft/cms/pages_helper.rb +17 -0
- data/app/helpers/pages_helper.rb +49 -0
- data/app/helpers/sitemaps_helper.rb +12 -0
- data/app/models/kuhsaft/accordion_brick.rb +15 -0
- data/app/models/kuhsaft/accordion_item_brick.rb +21 -0
- data/app/models/kuhsaft/anchor_brick.rb +17 -0
- data/app/models/kuhsaft/asset.rb +29 -0
- data/app/models/kuhsaft/asset_brick.rb +26 -0
- data/app/models/kuhsaft/brick.rb +137 -0
- data/app/models/kuhsaft/brick_type.rb +7 -0
- data/app/models/kuhsaft/brick_type_filter.rb +18 -0
- data/app/models/kuhsaft/ckimage.rb +5 -0
- data/app/models/kuhsaft/cms.rb +7 -0
- data/app/models/kuhsaft/column_brick.rb +22 -0
- data/app/models/kuhsaft/image_brick.rb +16 -0
- data/app/models/kuhsaft/image_size.rb +51 -0
- data/app/models/kuhsaft/link_brick.rb +21 -0
- data/app/models/kuhsaft/page.rb +160 -0
- data/app/models/kuhsaft/page_type.rb +11 -0
- data/app/models/kuhsaft/partition.rb +18 -0
- data/app/models/kuhsaft/placeholder_brick.rb +23 -0
- data/app/models/kuhsaft/publish_state.rb +24 -0
- data/app/models/kuhsaft/slider_brick.rb +18 -0
- data/app/models/kuhsaft/text_brick.rb +23 -0
- data/app/models/kuhsaft/two_column_brick.rb +46 -0
- data/app/models/kuhsaft/video_brick.rb +22 -0
- data/app/uploaders/kuhsaft/asset_brick_asset_uploader.rb +43 -0
- data/app/uploaders/kuhsaft/asset_uploader.rb +50 -0
- data/app/uploaders/kuhsaft/ckimage_uploader.rb +16 -0
- data/app/uploaders/kuhsaft/image_brick_image_uploader.rb +35 -0
- data/app/views/kuhsaft/accordion_bricks/_accordion_brick.html.haml +3 -0
- data/app/views/kuhsaft/accordion_bricks/accordion_brick/_edit.html.haml +0 -0
- data/app/views/kuhsaft/accordion_item_bricks/_accordion_item_brick.html.haml +8 -0
- data/app/views/kuhsaft/accordion_item_bricks/accordion_item_brick/_edit.html.haml +1 -0
- data/app/views/kuhsaft/anchor_bricks/_anchor_brick.html.haml +1 -0
- data/app/views/kuhsaft/anchor_bricks/anchor_brick/_edit.html.haml +1 -0
- data/app/views/kuhsaft/asset_bricks/_asset_brick.html.haml +2 -0
- data/app/views/kuhsaft/asset_bricks/asset_brick/_edit.html.haml +8 -0
- data/app/views/kuhsaft/cms/admin/_brick_type_dropdown.html.haml +14 -0
- data/app/views/kuhsaft/cms/admin/_content_language_switch.html.haml +7 -0
- data/app/views/kuhsaft/cms/admin/_empty_state.html.haml +5 -0
- data/app/views/kuhsaft/cms/admin/_flash.html.haml +7 -0
- data/app/views/kuhsaft/cms/admin/_main_navigation.html.haml +6 -0
- data/app/views/kuhsaft/cms/assets/_form.html.haml +15 -0
- data/app/views/kuhsaft/cms/assets/_list.html.haml +11 -0
- data/app/views/kuhsaft/cms/assets/edit.html.haml +2 -0
- data/app/views/kuhsaft/cms/assets/index.html.haml +3 -0
- data/app/views/kuhsaft/cms/assets/new.html.haml +2 -0
- data/app/views/kuhsaft/cms/bricks/_brick_header.html.haml +43 -0
- data/app/views/kuhsaft/cms/bricks/_brick_item.html.haml +25 -0
- data/app/views/kuhsaft/cms/bricks/_brick_list.html.haml +4 -0
- data/app/views/kuhsaft/cms/bricks/_new.html.haml +41 -0
- data/app/views/kuhsaft/cms/bricks/_sort_form.html.haml +3 -0
- data/app/views/kuhsaft/cms/bricks/create.js.erb +11 -0
- data/app/views/kuhsaft/cms/bricks/destroy.js.erb +10 -0
- data/app/views/kuhsaft/cms/bricks/new.js.erb +14 -0
- data/app/views/kuhsaft/cms/bricks/update.js.erb +8 -0
- data/app/views/kuhsaft/cms/ckimages/create.html.haml +11 -0
- data/app/views/kuhsaft/cms/ckimages/destroy.js.erb +2 -0
- data/app/views/kuhsaft/cms/ckimages/index.html.haml +13 -0
- data/app/views/kuhsaft/cms/pages/_branch.html.haml +19 -0
- data/app/views/kuhsaft/cms/pages/_form.html.haml +45 -0
- data/app/views/kuhsaft/cms/pages/edit.html.haml +16 -0
- data/app/views/kuhsaft/cms/pages/index.html.haml +14 -0
- data/app/views/kuhsaft/cms/pages/new.html.haml +1 -0
- data/app/views/kuhsaft/cms/pages/show.html.haml +0 -0
- data/app/views/kuhsaft/cms/pages/sort.js.erb +0 -0
- data/app/views/kuhsaft/column_bricks/_column_brick.html.haml +3 -0
- data/app/views/kuhsaft/column_bricks/column_brick/_edit.html.haml +0 -0
- data/app/views/kuhsaft/image_bricks/_image_brick.html.haml +11 -0
- data/app/views/kuhsaft/image_bricks/image_brick/_edit.html.haml +13 -0
- data/app/views/kuhsaft/link_bricks/_link_brick.html.haml +2 -0
- data/app/views/kuhsaft/link_bricks/link_brick/_edit.html.haml +4 -0
- data/app/views/kuhsaft/pages/index.html.haml +7 -0
- data/app/views/kuhsaft/pages/show.html.haml +11 -0
- data/app/views/kuhsaft/placeholder_bricks/_placeholder_brick.html.haml +2 -0
- data/app/views/kuhsaft/placeholder_bricks/placeholder_brick/_edit.html.haml +1 -0
- data/app/views/kuhsaft/search/_form.html.haml +2 -0
- data/app/views/kuhsaft/search/_results.html.haml +8 -0
- data/app/views/kuhsaft/search/_results_entry.html.haml +13 -0
- data/app/views/kuhsaft/sitemaps/index.xml.haml +9 -0
- data/app/views/kuhsaft/slider_bricks/_slider_brick.html.haml +10 -0
- data/app/views/kuhsaft/slider_bricks/slider_brick/_edit.html.haml +0 -0
- data/app/views/kuhsaft/text_bricks/_text_brick.html.haml +11 -0
- data/app/views/kuhsaft/text_bricks/text_brick/_edit.html.haml +2 -0
- data/app/views/kuhsaft/two_column_bricks/_two_column_brick.html.haml +3 -0
- data/app/views/kuhsaft/two_column_bricks/two_column_brick/_childs.html.haml +5 -0
- data/app/views/kuhsaft/two_column_bricks/two_column_brick/_edit.html.haml +1 -0
- data/app/views/kuhsaft/video_bricks/_video_brick.html.haml +9 -0
- data/app/views/kuhsaft/video_bricks/video_brick/_edit.html.haml +8 -0
- data/app/views/layouts/kuhsaft/cms/application.html.haml +25 -0
- data/app/views/layouts/kuhsaft/cms/ckimages.html.haml +18 -0
- data/config/initializers/simple_form.rb +142 -0
- data/config/initializers/simple_form_bootstrap.rb +45 -0
- data/config/locales/de.yml +207 -0
- data/config/locales/en.yml +211 -0
- data/config/locales/models/kuhsaft/accordion_brick/de.yml +4 -0
- data/config/locales/models/kuhsaft/accordion_brick/en.yml +4 -0
- data/config/locales/models/kuhsaft/accordion_item_brick/de.yml +7 -0
- data/config/locales/models/kuhsaft/accordion_item_brick/en.yml +7 -0
- data/config/locales/models/kuhsaft/anchor_brick/de.yml +7 -0
- data/config/locales/models/kuhsaft/anchor_brick/en.yml +7 -0
- data/config/locales/models/kuhsaft/asset_brick/de.yml +9 -0
- data/config/locales/models/kuhsaft/asset_brick/en.yml +9 -0
- data/config/locales/models/kuhsaft/brick/de.yml +5 -0
- data/config/locales/models/kuhsaft/brick/en.yml +5 -0
- data/config/locales/models/kuhsaft/column_brick/de.yml +4 -0
- data/config/locales/models/kuhsaft/column_brick/en.yml +4 -0
- data/config/locales/models/kuhsaft/image_brick/de.yml +11 -0
- data/config/locales/models/kuhsaft/image_brick/en.yml +11 -0
- data/config/locales/models/kuhsaft/image_size/de.yml +13 -0
- data/config/locales/models/kuhsaft/image_size/en.yml +13 -0
- data/config/locales/models/kuhsaft/link_brick/de.yml +10 -0
- data/config/locales/models/kuhsaft/link_brick/en.yml +10 -0
- data/config/locales/models/kuhsaft/page/de.yml +19 -0
- data/config/locales/models/kuhsaft/page/en.yml +19 -0
- data/config/locales/models/kuhsaft/placeholder_brick/de.yml +8 -0
- data/config/locales/models/kuhsaft/placeholder_brick/en.yml +8 -0
- data/config/locales/models/kuhsaft/slider_brick/de.yml +4 -0
- data/config/locales/models/kuhsaft/slider_brick/en.yml +4 -0
- data/config/locales/models/kuhsaft/text_brick/de.yml +11 -0
- data/config/locales/models/kuhsaft/text_brick/en.yml +11 -0
- data/config/locales/models/kuhsaft/two_column_brick/de.yml +7 -0
- data/config/locales/models/kuhsaft/two_column_brick/en.yml +7 -0
- data/config/locales/models/kuhsaft/video_brick/de.yml +9 -0
- data/config/locales/models/kuhsaft/video_brick/en.yml +9 -0
- data/config/locales/simple_form.en.yml +26 -0
- data/config/locales/views/kuhsaft/cms/admin/de.yml +13 -0
- data/config/locales/views/kuhsaft/cms/admin/en.yml +12 -0
- data/config/locales/views/kuhsaft/cms/bricks/de.yml +18 -0
- data/config/locales/views/kuhsaft/cms/bricks/en.yml +18 -0
- data/config/locales/views/kuhsaft/cms/pages/de.yml +31 -0
- data/config/locales/views/kuhsaft/cms/pages/en.yml +31 -0
- data/config/locales/views/kuhsaft/image_brick/de.yml +6 -0
- data/config/locales/views/kuhsaft/image_brick/en.yml +6 -0
- data/config/locales/views/kuhsaft/search/de.yml +12 -0
- data/config/locales/views/kuhsaft/search/en.yml +12 -0
- data/config/locales/views/kuhsaft/text_brick/de.yml +6 -0
- data/config/locales/views/kuhsaft/text_brick/en.yml +6 -0
- data/config/locales/views/kuhsaft/video_brick/de.yml +7 -0
- data/config/locales/views/kuhsaft/video_brick/en.yml +7 -0
- data/config/routes.rb +30 -0
- data/db/migrate/01_create_kuhsaft_pages.rb +31 -0
- data/db/migrate/02_create_kuhsaft_bricks.rb +23 -0
- data/db/migrate/03_create_kuhsaft_brick_types.rb +12 -0
- data/db/migrate/04_create_kuhsaft_assets.rb +10 -0
- data/db/migrate/05_remove_cms_admin.rb +9 -0
- data/db/migrate/06_add_template_name_to_kuhsaft_bricks.rb +7 -0
- data/db/migrate/07_add_default_value_to_brick_type_enabled.rb +6 -0
- data/db/migrate/08_add_display_styles_to_bricks.rb +5 -0
- data/db/migrate/09_add_additional_fields_to_kuhsaft_bricks.rb +6 -0
- data/db/migrate/10_add_redirect_url_to_kuhsaft_pages.rb +7 -0
- data/db/migrate/11_update_url_and_redirect_url_value.rb +45 -0
- data/db/migrate/12_regenerate_fulltext.rb +12 -0
- data/db/migrate/13_add_page_title_to_pages.rb +7 -0
- data/db/migrate/14_move_kuhsaft_assets.rb +22 -0
- data/db/migrate/15_add_alt_text_to_bricks.rb +5 -0
- data/db/migrate/16_update_default_value_for_page_type.rb +9 -0
- data/db/migrate/17_set_page_type_to_content_for_empty_fields.rb +7 -0
- data/db/migrate/18_add_identifier_to_kuhsaft_pages.rb +6 -0
- data/db/migrate/19_add_col_count_to_bricks.rb +5 -0
- data/db/migrate/20_create_kuhsaft_ckimages.rb +9 -0
- data/db/seeds.rb +20 -0
- data/lib/generators/kuhsaft/assets/install_generator.rb +25 -0
- data/lib/generators/kuhsaft/translations/add_generator.rb +41 -0
- data/lib/kuhsaft.rb +22 -0
- data/lib/kuhsaft/brick_list.rb +87 -0
- data/lib/kuhsaft/engine.rb +27 -0
- data/lib/kuhsaft/gridded.rb +20 -0
- data/lib/kuhsaft/image_uploader_mounting.rb +22 -0
- data/lib/kuhsaft/orderable.rb +71 -0
- data/lib/kuhsaft/page_tree.rb +14 -0
- data/lib/kuhsaft/partial_extractor.rb +21 -0
- data/lib/kuhsaft/searchable.rb +69 -0
- data/lib/kuhsaft/touch_placeholders.rb +31 -0
- data/lib/kuhsaft/translatable.rb +54 -0
- data/lib/kuhsaft/version.rb +3 -0
- data/lib/tasks/kuhsaft_tasks.rake +22 -0
- data/lib/templates/kuhsaft/assets/ck-config.js.coffee +48 -0
- data/lib/templates/kuhsaft/assets/customizations.css.sass +0 -0
- data/lib/templates/kuhsaft/assets/customizations.js.coffee +0 -0
- data/lib/templates/kuhsaft/translations/add_translation.erb +8 -0
- data/spec/controllers/kuhsaft/api/pages_controller_spec.rb +70 -0
- data/spec/controllers/kuhsaft/pages_controller_spec.rb +90 -0
- data/spec/controllers/kuhsaft/sitemaps_controller_spec.rb +13 -0
- data/spec/dummy/Rakefile +7 -0
- data/spec/dummy/app/assets/images/spec-image.png +0 -0
- data/spec/dummy/app/assets/javascripts/application.js +15 -0
- data/spec/dummy/app/assets/javascripts/kuhsaft/cms/ck-config.js.coffee +48 -0
- data/spec/dummy/app/assets/javascripts/kuhsaft/cms/customizations.js.coffee +0 -0
- data/spec/dummy/app/assets/stylesheets/application.css +13 -0
- data/spec/dummy/app/assets/stylesheets/kuhsaft/cms/customizations.css.sass +0 -0
- data/spec/dummy/app/controllers/application_controller.rb +4 -0
- data/spec/dummy/app/helpers/application_helper.rb +2 -0
- data/spec/dummy/app/views/layouts/application.html.erb +14 -0
- data/spec/dummy/bin/bundle +3 -0
- data/spec/dummy/bin/rails +4 -0
- data/spec/dummy/bin/rake +4 -0
- data/spec/dummy/config.ru +4 -0
- data/spec/dummy/config/application.rb +26 -0
- data/spec/dummy/config/boot.rb +3 -0
- data/spec/dummy/config/database.yml +19 -0
- data/spec/dummy/config/environment.rb +5 -0
- data/spec/dummy/config/environments/development.rb +29 -0
- data/spec/dummy/config/environments/production.rb +81 -0
- data/spec/dummy/config/environments/test.rb +36 -0
- data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/spec/dummy/config/initializers/filter_parameter_logging.rb +4 -0
- data/spec/dummy/config/initializers/inflections.rb +16 -0
- data/spec/dummy/config/initializers/kuhsaft.rb +5 -0
- data/spec/dummy/config/initializers/mime_types.rb +5 -0
- data/spec/dummy/config/initializers/secret_token.rb +12 -0
- data/spec/dummy/config/initializers/session_store.rb +3 -0
- data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
- data/spec/dummy/config/locales/en.yml +23 -0
- data/spec/dummy/config/routes.rb +3 -0
- data/spec/dummy/db/.gitkeep +0 -0
- data/spec/dummy/lib/assets/.gitkeep +0 -0
- data/spec/dummy/log/.gitkeep +0 -0
- data/spec/dummy/public/404.html +26 -0
- data/spec/dummy/public/422.html +26 -0
- data/spec/dummy/public/500.html +25 -0
- data/spec/dummy/public/favicon.ico +0 -0
- data/spec/dummy/public/stylesheets/.gitkeep +0 -0
- data/spec/dummy/script/rails +6 -0
- data/spec/factories.rb +26 -0
- data/spec/features/cms_pages_spec.rb +76 -0
- data/spec/features/search_spec.rb +78 -0
- data/spec/helpers/kuhsaft/cms/admin_helper_spec.rb +25 -0
- data/spec/helpers/kuhsaft/cms/pages_helper_spec.rb +46 -0
- data/spec/helpers/kuhsaft/pages_helper_spec.rb +21 -0
- data/spec/kuhsaft_spec.rb +7 -0
- data/spec/lib/brick_list_spec.rb +50 -0
- data/spec/lib/engine_spec.rb +25 -0
- data/spec/lib/gridded_spec.rb +24 -0
- data/spec/lib/image_uploader_mounting_spec.rb +14 -0
- data/spec/lib/page_tree_spec.rb +38 -0
- data/spec/lib/searchable_spec.rb +30 -0
- data/spec/lib/touch_placeholders_spec.rb +44 -0
- data/spec/lib/translatable_spec.rb +155 -0
- data/spec/models/accordion_brick_spec.rb +38 -0
- data/spec/models/accordion_item_brick_spec.rb +50 -0
- data/spec/models/anchor_brick_spec.rb +26 -0
- data/spec/models/asset_brick_spec.rb +45 -0
- data/spec/models/asset_spec.rb +41 -0
- data/spec/models/brick_spec.rb +134 -0
- data/spec/models/brick_type_filter_spec.rb +64 -0
- data/spec/models/column_brick_spec.rb +32 -0
- data/spec/models/image_brick_spec.rb +49 -0
- data/spec/models/image_size_spec.rb +36 -0
- data/spec/models/link_brick_spec.rb +51 -0
- data/spec/models/page_spec.rb +472 -0
- data/spec/models/placeholder_brick_spec.rb +46 -0
- data/spec/models/publish_state_spec.rb +33 -0
- data/spec/models/slider_brick_spec.rb +26 -0
- data/spec/models/text_brick_spec.rb +30 -0
- data/spec/models/two_column_brick_spec.rb +82 -0
- data/spec/models/video_brick_spec.rb +32 -0
- data/spec/spec_helper.rb +81 -0
- data/spec/support/kuhsaft_spec_helper.rb +8 -0
- data/spec/support/write_expectation.rb +57 -0
- data/spec/views/kuhsaft/sitemaps/index.xml.haml_spec.rb +67 -0
- data/vendor/assets/javascripts/bootstrap-modal-v2.js +376 -0
- data/vendor/assets/javascripts/bootstrap-modalmanager.js +423 -0
- data/vendor/assets/javascripts/jquery.nestable.js +485 -0
- data/vendor/assets/stylesheets/bootstrap_modal.css +214 -0
- data/vendor/assets/stylesheets/nestable.css +84 -0
- metadata +870 -0
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
require 'fileutils'
|
|
3
|
+
|
|
4
|
+
describe Kuhsaft::PlaceholderBrick do
|
|
5
|
+
|
|
6
|
+
let :placeholder_brick do
|
|
7
|
+
Kuhsaft::PlaceholderBrick.new
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
before do
|
|
11
|
+
FileUtils.mkdir_p("#{Rails.root}/app/views/kuhsaft/placeholder_bricks/partials")
|
|
12
|
+
FileUtils.touch("#{Rails.root}/app/views/kuhsaft/placeholder_bricks/partials/_valid_partial.html.haml")
|
|
13
|
+
FileUtils.touch("#{Rails.root}/app/views/kuhsaft/placeholder_bricks/partials/not_a_partial.html.haml")
|
|
14
|
+
FileUtils.touch("#{Rails.root}/app/views/kuhsaft/placeholder_bricks/partials/_not_a_haml_file.txt")
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
after do
|
|
18
|
+
FileUtils.rm_rf(Dir.glob("#{Rails.root}/app/views/kuhsaft"))
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
describe 'available partials' do
|
|
22
|
+
it 'returns haml files' do
|
|
23
|
+
Kuhsaft::PlaceholderBrick.available_partials.flatten.should include('valid_partial')
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
it 'returns only partials' do
|
|
27
|
+
Kuhsaft::PlaceholderBrick.available_partials.flatten.should_not include('not_a_partial')
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
it 'does not return other files' do
|
|
31
|
+
Kuhsaft::PlaceholderBrick.available_partials.flatten.should_not include('not_a_haml_file')
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
describe '#bricks' do
|
|
36
|
+
it 'can not have childs' do
|
|
37
|
+
placeholder_brick.should_not respond_to(:bricks)
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
describe '#user_can_add_childs?' do
|
|
42
|
+
it 'returns false' do
|
|
43
|
+
placeholder_brick.user_can_add_childs?.should be_false
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
end
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
describe Kuhsaft::PublishState do
|
|
4
|
+
context 'unpublished' do
|
|
5
|
+
before do
|
|
6
|
+
@publish_state = Kuhsaft::PublishState.new(name: 'unpublished', value: Kuhsaft::PublishState::UNPUBLISHED)
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
it 'should be UNPUBLISHED' do
|
|
10
|
+
@publish_state.value.should be(Kuhsaft::PublishState::UNPUBLISHED)
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
context 'published' do
|
|
15
|
+
before do
|
|
16
|
+
@publish_state = Kuhsaft::PublishState.new(name: 'published', value: Kuhsaft::PublishState::PUBLISHED)
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
it 'should be PUBLISHED' do
|
|
20
|
+
@publish_state.value.should be(Kuhsaft::PublishState::PUBLISHED)
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
context 'published_at' do
|
|
25
|
+
before do
|
|
26
|
+
@publish_state = Kuhsaft::PublishState.new(name: 'published_at', value: Kuhsaft::PublishState::PUBLISHED_AT)
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
it 'should be PUBLISHED_AT' do
|
|
30
|
+
@publish_state.value.should be(Kuhsaft::PublishState::PUBLISHED_AT)
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
describe Kuhsaft::SliderBrick do
|
|
4
|
+
|
|
5
|
+
let :slider_brick do
|
|
6
|
+
Kuhsaft::SliderBrick.new
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
describe '#bricks' do
|
|
10
|
+
it 'can have childs' do
|
|
11
|
+
slider_brick.should respond_to(:bricks)
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
describe '#to_style_class' do
|
|
16
|
+
it 'includes the bootstrap styles' do
|
|
17
|
+
slider_brick.to_style_class.should == 'kuhsaft-slider-brick carousel slide'
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
describe '#allowed_brick_types' do
|
|
22
|
+
it 'only allows ImageBricks and VideoBricks' do
|
|
23
|
+
slider_brick.allowed_brick_types.should == %w(Kuhsaft::ImageBrick Kuhsaft::VideoBrick)
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
describe Kuhsaft::TextBrick do
|
|
4
|
+
let :text_brick do
|
|
5
|
+
Kuhsaft::TextBrick.new
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
describe '#bricks' do
|
|
9
|
+
it 'can not have childs' do
|
|
10
|
+
text_brick.should_not respond_to(:bricks)
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
describe '#user_can_add_childs?' do
|
|
15
|
+
it 'returns false' do
|
|
16
|
+
text_brick.user_can_add_childs?.should be_false
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
describe '#collect_fulltext' do
|
|
21
|
+
before do
|
|
22
|
+
text_brick.text = '<div><b>foo</b> <b>bar</b></div>'
|
|
23
|
+
text_brick.read_more_text = '<div><span>foo</span><span>bar</span></div>'
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
it 'sanitizes text and read_more_text' do
|
|
27
|
+
text_brick.collect_fulltext.should == 'foo bar foobar'
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
describe Kuhsaft::TwoColumnBrick do
|
|
4
|
+
|
|
5
|
+
let :two_column_brick do
|
|
6
|
+
Kuhsaft::TwoColumnBrick.new
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
describe '#user_can_add_childs?' do
|
|
10
|
+
it 'returns false' do
|
|
11
|
+
two_column_brick.user_can_add_childs?.should be_false
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
describe '#user_can_delete?' do
|
|
16
|
+
it 'returns true' do
|
|
17
|
+
two_column_brick.user_can_delete?.should be_true
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
describe '#user_can_save?' do
|
|
22
|
+
it 'returns true' do
|
|
23
|
+
two_column_brick.user_can_save?.should be_true
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
describe '#renders_own_childs?' do
|
|
28
|
+
it 'returns true' do
|
|
29
|
+
two_column_brick.renders_own_childs?.should be_true
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
describe '#partitioning' do
|
|
34
|
+
context 'when no partition is set' do
|
|
35
|
+
it 'returns 0 (50/50)' do
|
|
36
|
+
two_column_brick.partitioning.should be(0)
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
context 'when the partition is set' do
|
|
41
|
+
it 'returns the value' do
|
|
42
|
+
two_column_brick.partitioning = 1
|
|
43
|
+
two_column_brick.partitioning.should be(1)
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
describe '.partitionings' do
|
|
49
|
+
it 'returns the 3 default partitions' do
|
|
50
|
+
Kuhsaft::TwoColumnBrick.partitionings.should have(3).items
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
describe '#create' do
|
|
55
|
+
it 'creates two single columns as childs' do
|
|
56
|
+
two_column_brick.save
|
|
57
|
+
two_column_brick.bricks.should be_all { |brick| brick.should be_a(Kuhsaft::ColumnBrick) }
|
|
58
|
+
end
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
describe '#bricks' do
|
|
62
|
+
it 'can have childs' do
|
|
63
|
+
two_column_brick.should respond_to(:bricks)
|
|
64
|
+
end
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
describe '#to_style_class' do
|
|
68
|
+
it 'adds the row class to the default styles' do
|
|
69
|
+
Kuhsaft::TwoColumnBrick.new.to_style_class.should == 'kuhsaft-two-column-brick row-fluid'
|
|
70
|
+
end
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
describe '#add_columns' do
|
|
74
|
+
it 'sets the position of the first column brick to 1' do
|
|
75
|
+
Kuhsaft::TwoColumnBrick.new.send(:add_columns).to_a.first.position.should == 1
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
it 'sets the position of the second column brick to 2' do
|
|
79
|
+
Kuhsaft::TwoColumnBrick.new.send(:add_columns).to_a.second.position.should == 2
|
|
80
|
+
end
|
|
81
|
+
end
|
|
82
|
+
end
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
describe Kuhsaft::VideoBrick do
|
|
4
|
+
|
|
5
|
+
let :video_brick do
|
|
6
|
+
Kuhsaft::VideoBrick.new
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
describe '#valid' do
|
|
10
|
+
before do
|
|
11
|
+
video_brick.valid?
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
context 'without any video source' do
|
|
15
|
+
it 'has en error' do
|
|
16
|
+
video_brick.should have(1).error_on(:any_source)
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
describe '#bricks' do
|
|
22
|
+
it 'can not have childs' do
|
|
23
|
+
video_brick.should_not respond_to(:bricks)
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
describe '#user_can_add_childs?' do
|
|
28
|
+
it 'returns false' do
|
|
29
|
+
video_brick.user_can_add_childs?.should be_false
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
end
|
data/spec/spec_helper.rb
ADDED
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
# This file is copied to spec/ when you run 'rails generate rspec:install'
|
|
2
|
+
ENV['RAILS_ENV'] = 'test'
|
|
3
|
+
require_relative File.expand_path('../dummy/config/environment.rb', __FILE__)
|
|
4
|
+
require 'rspec/rails'
|
|
5
|
+
require 'rspec/autorun'
|
|
6
|
+
|
|
7
|
+
[
|
|
8
|
+
'factory_girl',
|
|
9
|
+
'capybara/rails',
|
|
10
|
+
'pry-debugger',
|
|
11
|
+
'database_cleaner'
|
|
12
|
+
].each { |lib| require lib }
|
|
13
|
+
|
|
14
|
+
FactoryGirl.find_definitions
|
|
15
|
+
|
|
16
|
+
ActionMailer::Base.delivery_method = :test
|
|
17
|
+
ActionMailer::Base.perform_deliveries = true
|
|
18
|
+
ActionMailer::Base.default_url_options[:host] = 'test.com'
|
|
19
|
+
|
|
20
|
+
# Requires supporting ruby files with custom matchers and macros, etc,
|
|
21
|
+
# in spec/support/ and its subdirectories.
|
|
22
|
+
Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require_relative f }
|
|
23
|
+
|
|
24
|
+
# Checks for pending migrations before tests are run.
|
|
25
|
+
# If you are not using ActiveRecord, you can remove this line.
|
|
26
|
+
ActiveRecord::Migration.check_pending! if defined?(ActiveRecord::Migration)
|
|
27
|
+
|
|
28
|
+
RSpec.configure do |config|
|
|
29
|
+
|
|
30
|
+
# Remove this line if you don't want RSpec's should and should_not
|
|
31
|
+
# methods or matchers
|
|
32
|
+
require 'rspec/expectations'
|
|
33
|
+
require 'carrierwave/test/matchers'
|
|
34
|
+
require 'rails/generators'
|
|
35
|
+
|
|
36
|
+
config.include RSpec::Matchers
|
|
37
|
+
config.include CarrierWave::Test::Matchers
|
|
38
|
+
config.include KuhsaftSpecHelper
|
|
39
|
+
config.include FactoryGirl::Syntax::Methods
|
|
40
|
+
|
|
41
|
+
config.before :suite do
|
|
42
|
+
DatabaseCleaner.strategy = :transaction
|
|
43
|
+
DatabaseCleaner.clean_with :truncation
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
config.before do
|
|
47
|
+
DatabaseCleaner.start
|
|
48
|
+
I18n.available_locales = [:en, :de]
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
config.after do
|
|
52
|
+
DatabaseCleaner.clean
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
# ## Mock Framework
|
|
56
|
+
#
|
|
57
|
+
# If you prefer to use mocha, flexmock or RR, uncomment the appropriate line:
|
|
58
|
+
#
|
|
59
|
+
# config.mock_with :mocha
|
|
60
|
+
# config.mock_with :flexmock
|
|
61
|
+
# config.mock_with :rr
|
|
62
|
+
|
|
63
|
+
# Remove this line if you're not using ActiveRecord or ActiveRecord fixtures
|
|
64
|
+
config.fixture_path = "#{::Rails.root}/spec/fixtures"
|
|
65
|
+
|
|
66
|
+
# If you're not using ActiveRecord, or you'd prefer not to run each of your
|
|
67
|
+
# examples within a transaction, remove the following line or assign false
|
|
68
|
+
# instead of true.
|
|
69
|
+
config.use_transactional_fixtures = true
|
|
70
|
+
|
|
71
|
+
# If true, the base class of anonymous controllers will be inferred
|
|
72
|
+
# automatically. This will be the default behavior in future versions of
|
|
73
|
+
# rspec-rails.
|
|
74
|
+
config.infer_base_class_for_anonymous_controllers = false
|
|
75
|
+
|
|
76
|
+
# Run specs in random order to surface order dependencies. If you find an
|
|
77
|
+
# order dependency and want to debug it, you can fix the order by providing
|
|
78
|
+
# the seed, which is printed after each run.
|
|
79
|
+
# --seed 1234
|
|
80
|
+
config.order = 'random'
|
|
81
|
+
end
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
RSpec::Matchers.define :write do |message|
|
|
2
|
+
chain(:to) do |io|
|
|
3
|
+
@io = io
|
|
4
|
+
end
|
|
5
|
+
|
|
6
|
+
match do |block|
|
|
7
|
+
output =
|
|
8
|
+
case io
|
|
9
|
+
when :output then fake_stdout(&block)
|
|
10
|
+
when :error then fake_stderr(&block)
|
|
11
|
+
else raise("Allowed values for `to` are :output and :error, got `#{io.inspect}`")
|
|
12
|
+
end
|
|
13
|
+
output.include? message
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
description do
|
|
17
|
+
"write \"#{message}\" #{io_name}"
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
failure_message_for_should do
|
|
21
|
+
"expected to #{description}"
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
failure_message_for_should_not do
|
|
25
|
+
"expected to not #{description}"
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
# Fake STDERR and return a string written to it.
|
|
29
|
+
def fake_stderr
|
|
30
|
+
original_stderr = $stderr
|
|
31
|
+
$stderr = StringIO.new
|
|
32
|
+
yield
|
|
33
|
+
$stderr.string
|
|
34
|
+
ensure
|
|
35
|
+
$stderr = original_stderr
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
# Fake STDOUT and return a string written to it.
|
|
39
|
+
def fake_stdout
|
|
40
|
+
original_stdout = $stdout
|
|
41
|
+
$stdout = StringIO.new
|
|
42
|
+
yield
|
|
43
|
+
$stdout.string
|
|
44
|
+
ensure
|
|
45
|
+
$stdout = original_stdout
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
# default IO is standard output
|
|
49
|
+
def io
|
|
50
|
+
@io ||= :output
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
# IO name is used for description message
|
|
54
|
+
def io_name
|
|
55
|
+
{ output: 'standard output', error: 'standard error' }[io]
|
|
56
|
+
end
|
|
57
|
+
end
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
include SitemapsHelper
|
|
3
|
+
|
|
4
|
+
describe 'kuhsaft/sitemaps/index.xml.haml' do
|
|
5
|
+
describe 'structure' do
|
|
6
|
+
before :each do
|
|
7
|
+
@page = create(:page)
|
|
8
|
+
@pages = [@page]
|
|
9
|
+
render
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
it 'renders valid xml' do
|
|
13
|
+
expect { Hash.from_xml(rendered) }.not_to raise_error
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
it 'renders the XML template' do
|
|
17
|
+
expect(rendered).to include "<?xml version='1.0' encoding='utf-8' ?>"
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
it 'includes the loc tag content' do
|
|
21
|
+
expect(rendered).to include "<loc>http://#{@request.host}/#{@page.url}</loc>"
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
it 'includes the lastmod tag content' do
|
|
25
|
+
expect(rendered).to include "<lastmod>#{@page.created_at.utc}</lastmod>"
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
it 'includes the changefreq tag content' do
|
|
29
|
+
expect(rendered).to include '<changefreq>monthly</changefreq>'
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
it 'includes the priority tag content' do
|
|
33
|
+
expect(rendered).to include '<priority>0.5</priority>'
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
describe 'count of records'do
|
|
38
|
+
before do
|
|
39
|
+
I18n.stub(:available_locales).and_return([:de, :en])
|
|
40
|
+
|
|
41
|
+
I18n.with_locale(:de) do
|
|
42
|
+
@page = create(:page, title: 'Dummy Page 1 DE')
|
|
43
|
+
@page_de = create(:page, title: 'German Page')
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
I18n.with_locale(:en) do
|
|
47
|
+
@page.update_attributes(title: 'Dummy Page 1 EN')
|
|
48
|
+
@page_en = create(:page, title: 'English Page')
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
@pages = [@page, @page_de, @page_en]
|
|
52
|
+
render
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
it 'has the same count of entry as pages are there' do
|
|
56
|
+
response.body.should have_xpath('//url', count: 4)
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
it 'has a record for the german url' do
|
|
60
|
+
expect(rendered).to include "<loc>http://#{@request.host}/de/dummy-page-1-de</loc>"
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
it 'has a record for the english url' do
|
|
64
|
+
expect(rendered).to include "<loc>http://#{@request.host}/en/dummy-page-1-en</loc>"
|
|
65
|
+
end
|
|
66
|
+
end
|
|
67
|
+
end
|