zen 0.2.7 → 0.2.8
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +15 -0
- data/.mailmap +2 -0
- data/.rvmrc +2 -0
- data/.travis.yml +8 -3
- data/AUTHORS +1 -2
- data/CHANGELOG.md +48 -17
- data/README.md +44 -39
- data/Rakefile +4 -0
- data/bin/zen +5 -30
- data/lib/zen.rb +13 -19
- data/lib/zen/asset.rb +99 -64
- data/lib/zen/bin/create.rb +94 -0
- data/lib/zen/bin/runner.rb +118 -0
- data/lib/zen/controller/admin_controller.rb +52 -36
- data/lib/zen/controller/base_controller.rb +5 -5
- data/lib/zen/controller/frontend_controller.rb +7 -7
- data/lib/zen/controller/main_controller.rb +12 -10
- data/lib/zen/controller/preview.rb +15 -11
- data/lib/zen/helper/acl.rb +73 -53
- data/lib/zen/helper/blue_form_vendor.rb +689 -0
- data/lib/zen/helper/breadcrumb.rb +23 -19
- data/lib/zen/helper/message.rb +3 -3
- data/lib/zen/helper/theme.rb +18 -13
- data/lib/zen/language.rb +62 -58
- data/lib/zen/language/en/zen_general.yml +2 -4
- data/lib/zen/language/nl/zen_general.yml +2 -4
- data/lib/zen/layout/admin.xhtml +3 -12
- data/lib/zen/layout/login.xhtml +1 -6
- data/lib/zen/model/methods.rb +6 -6
- data/lib/zen/model/settings.rb +5 -4
- data/lib/zen/package.rb +47 -38
- data/lib/zen/package/all.rb +3 -5
- data/lib/zen/package/base.rb +7 -7
- data/lib/zen/package/categories/lib/categories.rb +8 -3
- data/lib/zen/package/categories/lib/categories/controller/categories.rb +81 -55
- data/lib/zen/package/categories/lib/categories/controller/category_groups.rb +45 -44
- data/lib/zen/package/categories/lib/categories/helper/category.rb +88 -0
- data/lib/zen/package/categories/lib/categories/language/en/categories.yml +5 -4
- data/lib/zen/package/categories/lib/categories/language/en/category_groups.yml +5 -4
- data/lib/zen/package/categories/lib/categories/language/nl/categories.yml +5 -4
- data/lib/zen/package/categories/lib/categories/language/nl/category_groups.yml +5 -4
- data/lib/zen/package/categories/lib/categories/model/category.rb +15 -13
- data/lib/zen/package/categories/lib/categories/model/category_group.rb +3 -3
- data/lib/zen/package/categories/lib/categories/plugin/categories.rb +36 -25
- data/lib/zen/package/categories/lib/categories/view/admin/categories/form.xhtml +49 -56
- data/lib/zen/package/categories/lib/categories/view/admin/categories/index.xhtml +48 -35
- data/lib/zen/package/categories/lib/categories/view/admin/category-groups/form.xhtml +36 -29
- data/lib/zen/package/categories/lib/categories/view/admin/category-groups/index.xhtml +42 -37
- data/lib/zen/package/comments/lib/comments.rb +4 -1
- data/lib/zen/package/comments/lib/comments/controller/comments.rb +39 -32
- data/lib/zen/package/comments/lib/comments/controller/comments_form.rb +45 -26
- data/lib/zen/package/comments/lib/comments/helper/comment.rb +35 -0
- data/lib/zen/package/comments/lib/comments/language/en/comments.yml +9 -7
- data/lib/zen/package/comments/lib/comments/language/nl/comments.yml +10 -8
- data/lib/zen/package/comments/lib/comments/model/comment.rb +31 -17
- data/lib/zen/package/comments/lib/comments/model/comment_status.rb +15 -0
- data/lib/zen/package/comments/lib/comments/plugin/anti_spam.rb +27 -18
- data/lib/zen/package/comments/lib/comments/plugin/comments.rb +25 -20
- data/lib/zen/package/comments/lib/comments/view/admin/comments/form.xhtml +61 -54
- data/lib/zen/package/comments/lib/comments/view/admin/comments/index.xhtml +38 -23
- data/lib/zen/package/comments/migrations/1308774099_comment_status.rb +60 -0
- data/lib/zen/package/custom_fields/lib/custom_fields.rb +33 -7
- data/lib/zen/package/custom_fields/lib/custom_fields/blue_form_parameters.rb +209 -0
- data/lib/zen/package/custom_fields/lib/custom_fields/controller/custom_field_groups.rb +50 -47
- data/lib/zen/package/custom_fields/lib/custom_fields/controller/custom_field_types.rb +215 -0
- data/lib/zen/package/custom_fields/lib/custom_fields/controller/custom_fields.rb +111 -73
- data/lib/zen/package/custom_fields/lib/custom_fields/helper/custom_field.rb +79 -0
- data/lib/zen/package/custom_fields/lib/custom_fields/language/en/custom_field_groups.yml +20 -19
- data/lib/zen/package/custom_fields/lib/custom_fields/language/en/custom_field_types.yml +40 -0
- data/lib/zen/package/custom_fields/lib/custom_fields/language/en/custom_fields.yml +34 -32
- data/lib/zen/package/custom_fields/lib/custom_fields/language/nl/custom_field_groups.yml +5 -4
- data/lib/zen/package/custom_fields/lib/custom_fields/language/nl/custom_field_types.yml +40 -0
- data/lib/zen/package/custom_fields/lib/custom_fields/language/nl/custom_fields.yml +18 -16
- data/lib/zen/package/custom_fields/lib/custom_fields/model/custom_field.rb +31 -11
- data/lib/zen/package/custom_fields/lib/custom_fields/model/custom_field_method.rb +15 -0
- data/lib/zen/package/custom_fields/lib/custom_fields/model/custom_field_type.rb +50 -0
- data/lib/zen/package/custom_fields/lib/custom_fields/model/custom_field_value.rb +28 -7
- data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-field-groups/form.xhtml +33 -28
- data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-field-groups/index.xhtml +48 -46
- data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-field-types/form.xhtml +61 -0
- data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-field-types/index.xhtml +93 -0
- data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-fields/form.xhtml +105 -99
- data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-fields/index.xhtml +43 -39
- data/lib/zen/package/custom_fields/migrations/1295255665_create_schema.rb +47 -16
- data/lib/zen/package/custom_fields/migrations/1310659580_custom_field_types.rb +148 -0
- data/lib/zen/package/custom_fields/migrations/1311694920_rename_css_class.rb +11 -0
- data/lib/zen/package/menus/lib/menus/controller/menu_items.rb +40 -35
- data/lib/zen/package/menus/lib/menus/controller/menus.rb +47 -43
- data/lib/zen/package/menus/lib/menus/helper/{menu_item.rb → menu.rb} +42 -15
- data/lib/zen/package/menus/lib/menus/language/en/menu_items.yml +5 -5
- data/lib/zen/package/menus/lib/menus/language/en/menus.yml +9 -8
- data/lib/zen/package/menus/lib/menus/language/nl/menu_items.yml +8 -8
- data/lib/zen/package/menus/lib/menus/language/nl/menus.yml +11 -10
- data/lib/zen/package/menus/lib/menus/model/menu.rb +5 -5
- data/lib/zen/package/menus/lib/menus/model/menu_item.rb +6 -5
- data/lib/zen/package/menus/lib/menus/plugin/menus.rb +41 -43
- data/lib/zen/package/menus/lib/menus/view/admin/menu-items/form.xhtml +59 -63
- data/lib/zen/package/menus/lib/menus/view/admin/menu-items/index.xhtml +35 -30
- data/lib/zen/package/menus/lib/menus/view/admin/menus/form.xhtml +46 -37
- data/lib/zen/package/menus/lib/menus/view/admin/menus/index.xhtml +37 -37
- data/lib/zen/package/menus/migrations/1297184342_create_schema.rb +5 -5
- data/lib/zen/package/menus/migrations/1308671733_rename_order_column.rb +11 -0
- data/lib/zen/package/menus/migrations/1311695030_rename_css_class.rb +17 -0
- data/lib/zen/package/sections/lib/sections.rb +18 -11
- data/lib/zen/package/sections/lib/sections/controller/section_entries.rb +115 -109
- data/lib/zen/package/sections/lib/sections/controller/sections.rb +72 -50
- data/lib/zen/package/sections/lib/sections/helper/section.rb +53 -0
- data/lib/zen/package/sections/lib/sections/language/en/section_entries.yml +5 -4
- data/lib/zen/package/sections/lib/sections/language/en/sections.yml +5 -4
- data/lib/zen/package/sections/lib/sections/language/nl/section_entries.yml +5 -4
- data/lib/zen/package/sections/lib/sections/language/nl/sections.yml +5 -4
- data/lib/zen/package/sections/lib/sections/model/section.rb +17 -9
- data/lib/zen/package/sections/lib/sections/model/section_entry.rb +192 -13
- data/lib/zen/package/sections/lib/sections/model/section_entry_status.rb +13 -0
- data/lib/zen/package/sections/lib/sections/plugin/section_entries.rb +60 -39
- data/lib/zen/package/sections/lib/sections/plugin/sections.rb +14 -11
- data/lib/zen/package/sections/lib/sections/view/admin/form.xhtml +100 -97
- data/lib/zen/package/sections/lib/sections/view/admin/index.xhtml +41 -39
- data/lib/zen/package/sections/lib/sections/view/admin/section-entries/form.xhtml +95 -215
- data/lib/zen/package/sections/lib/sections/view/admin/section-entries/index.xhtml +48 -40
- data/lib/zen/package/sections/migrations/1308672298_use_id_for_default_section.rb +40 -0
- data/lib/zen/package/sections/migrations/1308813320_section_entry_statuses.rb +58 -0
- data/lib/zen/package/settings/lib/settings/controller/settings.rb +5 -8
- data/lib/zen/package/settings/lib/settings/model/setting.rb +2 -37
- data/lib/zen/package/settings/lib/settings/plugin/setting_base.rb +18 -1
- data/lib/zen/package/settings/lib/settings/plugin/settings.rb +13 -7
- data/lib/zen/package/settings/lib/settings/view/admin/settings/index.xhtml +2 -1
- data/lib/zen/package/users/lib/users.rb +3 -1
- data/lib/zen/package/users/lib/users/controller/access_rules.rb +77 -60
- data/lib/zen/package/users/lib/users/controller/user_groups.rb +41 -36
- data/lib/zen/package/users/lib/users/controller/users.rb +48 -42
- data/lib/zen/package/users/lib/users/helper/users.rb +72 -0
- data/lib/zen/package/users/lib/users/language/en/access_rules.yml +6 -5
- data/lib/zen/package/users/lib/users/language/en/user_groups.yml +5 -4
- data/lib/zen/package/users/lib/users/language/en/users.yml +1 -0
- data/lib/zen/package/users/lib/users/language/nl/access_rules.yml +5 -4
- data/lib/zen/package/users/lib/users/language/nl/user_groups.yml +5 -4
- data/lib/zen/package/users/lib/users/language/nl/users.yml +1 -0
- data/lib/zen/package/users/lib/users/model/access_rule.rb +5 -1
- data/lib/zen/package/users/lib/users/model/user.rb +17 -10
- data/lib/zen/package/users/lib/users/public/admin/js/users/access_rules.js +10 -37
- data/lib/zen/package/users/lib/users/public/admin/js/users/lib/access_rules.js +49 -0
- data/lib/zen/package/users/lib/users/view/admin/access-rules/form.xhtml +105 -96
- data/lib/zen/package/users/lib/users/view/admin/access-rules/index.xhtml +48 -41
- data/lib/zen/package/users/lib/users/view/admin/user-groups/form.xhtml +42 -32
- data/lib/zen/package/users/lib/users/view/admin/user-groups/index.xhtml +43 -38
- data/lib/zen/package/users/lib/users/view/admin/users/form.xhtml +76 -67
- data/lib/zen/package/users/lib/users/view/admin/users/index.xhtml +43 -41
- data/lib/zen/package/users/lib/users/view/admin/users/login.xhtml +12 -9
- data/lib/zen/package/users/migrations/1295281013_create_schema.rb +2 -2
- data/lib/zen/plugin.rb +56 -50
- data/lib/zen/plugin/markup/lib/markup/markup.rb +33 -21
- data/lib/zen/public/admin/css/zen/buttons.css +11 -7
- data/lib/zen/public/admin/css/zen/datepicker.css +6 -6
- data/lib/zen/public/admin/css/zen/forms.css +2 -1
- data/lib/zen/public/admin/css/zen/general.css +15 -10
- data/lib/zen/public/admin/css/zen/layout.css +51 -20
- data/lib/zen/public/admin/css/zen/tables.css +39 -11
- data/lib/zen/public/admin/css/zen/tabs.css +6 -4
- data/lib/zen/public/admin/css/zen/window.css +11 -11
- data/lib/zen/public/{favicon.ico → admin/favicon.ico} +0 -0
- data/lib/zen/public/admin/images/zen/icons/asc.png +0 -0
- data/lib/zen/public/admin/images/zen/icons/desc.png +0 -0
- data/lib/zen/public/admin/js/vendor/datepicker.js +0 -11
- data/lib/zen/public/admin/js/{mootools → vendor/mootools}/core.js +0 -1
- data/lib/zen/public/admin/js/{mootools → vendor/mootools}/more.js +100 -29
- data/lib/zen/public/admin/js/zen/index.js +48 -0
- data/lib/zen/public/admin/js/zen/lib/asset.js +111 -0
- data/lib/zen/public/admin/js/zen/{editor.js → lib/editor.js} +107 -127
- data/lib/zen/public/admin/js/zen/{editor → lib/editor}/markdown.js +7 -9
- data/lib/zen/public/admin/js/zen/{editor → lib/editor}/textile.js +7 -9
- data/lib/zen/public/admin/js/zen/lib/html_table.js +143 -0
- data/lib/zen/public/admin/js/zen/{tabs.js → lib/tabs.js} +40 -37
- data/lib/zen/public/admin/js/zen/{window.js → lib/window.js} +24 -20
- data/lib/zen/spec/bacon/color_output.rb +39 -0
- data/lib/zen/spec/helper.rb +152 -0
- data/lib/zen/spec/simplecov.rb +22 -0
- data/lib/zen/task/build.rake +20 -43
- data/lib/zen/task/clean.rake +2 -6
- data/lib/zen/task/db.rake +8 -12
- data/lib/zen/task/package.rake +4 -10
- data/lib/zen/task/plugin.rake +3 -9
- data/lib/zen/task/proto.rake +0 -62
- data/lib/zen/task/test.rake +6 -3
- data/lib/zen/task/theme.rake +4 -11
- data/lib/zen/theme.rb +22 -24
- data/lib/zen/validation.rb +34 -27
- data/lib/zen/version.rb +2 -8
- data/lib/zen/view/head.xhtml +7 -0
- data/lib/zen/view/main.xhtml +7 -22
- data/{proto/package/migrations → pkg}/.gitkeep +0 -0
- data/proto/app/app.rb +1 -0
- data/proto/app/config/config.rb +5 -4
- data/proto/app/config/database.rb +19 -41
- data/proto/app/config/middlewares.rb +32 -29
- data/proto/{package/lib/package/view/admin/package/index.xhtml → app/log/database/dev/.gitkeep} +0 -0
- data/proto/app/log/database/live/.gitkeep +0 -0
- data/spec/Rakefile +26 -0
- data/spec/fixtures/zen/asset.rb +18 -0
- data/spec/fixtures/zen/helper/acl.rb +39 -0
- data/spec/fixtures/zen/helper/message.rb +19 -0
- data/spec/fixtures/zen/language/en/spec.yml +10 -0
- data/spec/fixtures/zen/language/nl/spec.yml +7 -0
- data/spec/fixtures/zen/package.rb +17 -0
- data/spec/fixtures/zen/package/comments/controller/comments_form.rb +27 -0
- data/spec/fixtures/zen/package/settings/plugin/settings.rb +20 -0
- data/spec/fixtures/zen/plugin.rb +7 -0
- data/spec/fixtures/zen/theme/404.xhtml +1 -0
- data/spec/fixtures/zen/theme/default-section/index.xhtml +1 -0
- data/spec/fixtures/zen/theme/helper/404.xhtml +1 -0
- data/spec/fixtures/zen/theme/helper/partial.xhtml +1 -0
- data/spec/fixtures/zen/theme/helper/wrong_partial.xhtml +1 -0
- data/spec/fixtures/zen/theme/partials/partial.xhtml +1 -0
- data/spec/fixtures/zen/theme/theme.rb +11 -0
- data/spec/fixtures/zen/validation.rb +22 -0
- data/spec/helper.rb +41 -0
- data/spec/zen/all.rb +5 -0
- data/spec/zen/asset.rb +97 -0
- data/spec/zen/bin/create.rb +89 -0
- data/spec/zen/bin/runner.rb +47 -0
- data/spec/zen/controller/admin_controller.rb +26 -0
- data/spec/zen/controller/main_controller.rb +81 -0
- data/spec/zen/controller/preview.rb +33 -0
- data/spec/zen/helper/acl.rb +149 -0
- data/spec/zen/helper/breadcrumb.rb +38 -0
- data/spec/zen/helper/message.rb +31 -0
- data/spec/zen/helper/theme.rb +58 -0
- data/spec/zen/language.rb +55 -0
- data/spec/zen/package.rb +23 -0
- data/spec/zen/package/categories/controller/categories.rb +123 -0
- data/spec/zen/package/categories/controller/category_groups.rb +108 -0
- data/spec/zen/package/categories/helper/category.rb +75 -0
- data/spec/zen/package/categories/plugin/categories.rb +92 -0
- data/spec/zen/package/comments/controller/comments.rb +134 -0
- data/spec/zen/package/comments/controller/comments_form.rb +343 -0
- data/spec/zen/package/comments/helper/comment.rb +47 -0
- data/spec/zen/package/comments/plugin/anti_spam.rb +59 -0
- data/spec/zen/package/comments/plugin/comments.rb +107 -0
- data/spec/zen/package/custom_fields/blue_form_parameters.rb +183 -0
- data/spec/zen/package/custom_fields/controller/custom_field_groups.rb +120 -0
- data/spec/zen/package/custom_fields/controller/custom_field_types.rb +169 -0
- data/spec/zen/package/custom_fields/controller/custom_fields.rb +158 -0
- data/spec/zen/package/custom_fields/helper/custom_field.rb +86 -0
- data/spec/zen/package/menus/controller/menu_items.rb +110 -0
- data/spec/zen/package/menus/controller/menus.rb +110 -0
- data/spec/zen/package/menus/helper/menu.rb +75 -0
- data/spec/zen/package/menus/plugin/menus.rb +120 -0
- data/spec/zen/package/sections/controller/section_entries.rb +201 -0
- data/spec/zen/package/sections/controller/sections.rb +116 -0
- data/spec/zen/package/sections/helper/section.rb +74 -0
- data/spec/zen/package/sections/plugin/section_entries.rb +161 -0
- data/spec/zen/package/sections/plugin/sections.rb +75 -0
- data/spec/zen/package/settings/controller/settings.rb +36 -0
- data/spec/zen/package/settings/plugin/settings.rb +33 -0
- data/spec/zen/package/users/controller/access_rules.rb +90 -0
- data/spec/zen/package/users/controller/user_groups.rb +101 -0
- data/spec/zen/package/users/controller/users.rb +130 -0
- data/spec/zen/package/users/helper/users.rb +97 -0
- data/spec/zen/plugin.rb +64 -0
- data/spec/zen/plugin/helper.rb +11 -0
- data/spec/zen/plugin/markup.rb +44 -0
- data/spec/zen/theme.rb +41 -0
- data/spec/zen/validation.rb +63 -0
- data/zen.gemspec +36 -0
- metadata +159 -113
- data/MANIFEST +0 -266
- data/lib/zen/bin/app.rb +0 -40
- data/lib/zen/ext/string.rb +0 -185
- data/lib/zen/helper/common.rb +0 -106
- data/lib/zen/package/categories/lib/categories/view/admin/categories/edit.xhtml +0 -7
- data/lib/zen/package/categories/lib/categories/view/admin/categories/new.xhtml +0 -7
- data/lib/zen/package/categories/lib/categories/view/admin/category-groups/edit.xhtml +0 -7
- data/lib/zen/package/categories/lib/categories/view/admin/category-groups/new.xhtml +0 -7
- data/lib/zen/package/comments/lib/comments/view/admin/comments/edit.xhtml +0 -7
- data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-field-groups/edit.xhtml +0 -7
- data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-field-groups/new.xhtml +0 -7
- data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-fields/edit.xhtml +0 -7
- data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-fields/new.xhtml +0 -7
- data/lib/zen/package/menus/lib/menus/view/admin/menu-items/edit.xhtml +0 -7
- data/lib/zen/package/menus/lib/menus/view/admin/menu-items/new.xhtml +0 -7
- data/lib/zen/package/menus/lib/menus/view/admin/menus/edit.xhtml +0 -7
- data/lib/zen/package/menus/lib/menus/view/admin/menus/new.xhtml +0 -7
- data/lib/zen/package/sections/lib/sections/view/admin/edit.xhtml +0 -7
- data/lib/zen/package/sections/lib/sections/view/admin/new.xhtml +0 -7
- data/lib/zen/package/sections/lib/sections/view/admin/section-entries/edit.xhtml +0 -7
- data/lib/zen/package/sections/lib/sections/view/admin/section-entries/new.xhtml +0 -7
- data/lib/zen/package/users/lib/users/view/admin/access-rules/edit.xhtml +0 -7
- data/lib/zen/package/users/lib/users/view/admin/access-rules/new.xhtml +0 -7
- data/lib/zen/package/users/lib/users/view/admin/user-groups/edit.xhtml +0 -7
- data/lib/zen/package/users/lib/users/view/admin/user-groups/new.xhtml +0 -7
- data/lib/zen/package/users/lib/users/view/admin/users/edit.xhtml +0 -7
- data/lib/zen/package/users/lib/users/view/admin/users/new.xhtml +0 -7
- data/lib/zen/plugin/controller.rb +0 -59
- data/lib/zen/public/admin/css/zen/notifications.css +0 -84
- data/lib/zen/public/admin/images/zen/icons/large/error.png +0 -0
- data/lib/zen/public/admin/images/zen/icons/large/notice.png +0 -0
- data/lib/zen/public/admin/images/zen/icons/large/success.png +0 -0
- data/lib/zen/public/admin/js/zen/core.js +0 -73
- data/lib/zen/public/admin/js/zen/init.js +0 -80
- data/proto/package/lib/package.rb +0 -21
- data/proto/package/lib/package/controller/controllers.rb +0 -50
- data/proto/package/lib/package/language/en/languages.yml +0 -4
- data/proto/package/lib/package/model/model.rb +0 -12
data/proto/{package/lib/package/view/admin/package/index.xhtml → app/log/database/dev/.gitkeep}
RENAMED
File without changes
|
File without changes
|
data/spec/Rakefile
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
module Zen
|
2
|
+
RakeTask = true
|
3
|
+
end
|
4
|
+
|
5
|
+
require File.expand_path('../helper', __FILE__)
|
6
|
+
import __DIR__('../lib/zen/task/db.rake')
|
7
|
+
|
8
|
+
namespace :db do
|
9
|
+
|
10
|
+
desc 'Creates the user for all the tests'
|
11
|
+
task :test_user do
|
12
|
+
# Create a default user and group
|
13
|
+
group = Users::Model::UserGroup.new(
|
14
|
+
:name => 'Administrators',
|
15
|
+
:slug => 'administrators', :super_group => true
|
16
|
+
).save
|
17
|
+
|
18
|
+
user = Users::Model::User.new(
|
19
|
+
:email => 'spec@domain.tld', :name => 'Spec',
|
20
|
+
:password => 'spec' , :status => 'open'
|
21
|
+
).save
|
22
|
+
|
23
|
+
user.user_group_pks = [group.id]
|
24
|
+
end
|
25
|
+
|
26
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
class AssetController < Zen::Controller::AdminController
|
2
|
+
map '/spec/asset'
|
3
|
+
|
4
|
+
javascript ['spec']
|
5
|
+
stylesheet ['reset']
|
6
|
+
|
7
|
+
javascript ['specific'], :method => :specific
|
8
|
+
javascript ['array'] , :method => [:array, :array_1]
|
9
|
+
|
10
|
+
def index; end
|
11
|
+
|
12
|
+
def javascripts; Zen::Asset.build(:javascript); end
|
13
|
+
def stylesheets; Zen::Asset.build(:stylesheet); end
|
14
|
+
|
15
|
+
def specific ; Zen::Asset.build(:javascript); end
|
16
|
+
def array ; Zen::Asset.build(:javascript); end
|
17
|
+
def array_1 ; Zen::Asset.build(:javascript); end
|
18
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
class SpecACLHelper < Zen::Controller::AdminController
|
2
|
+
map '/admin/spec-acl-helper'
|
3
|
+
|
4
|
+
# Hash used to store the data in for each spec rather than returning it and
|
5
|
+
# having to encode/decode it using Marshal.
|
6
|
+
SpecData = {
|
7
|
+
:permissions => nil
|
8
|
+
}
|
9
|
+
|
10
|
+
# Don't cache the access rules in the session.
|
11
|
+
after_all do
|
12
|
+
session.delete(:access_rules) if session[:access_rules]
|
13
|
+
end
|
14
|
+
|
15
|
+
# returns all permissions
|
16
|
+
def index
|
17
|
+
SpecData[:permissions] = extension_permissions
|
18
|
+
end
|
19
|
+
|
20
|
+
def require_all
|
21
|
+
if user_authorized?([:create, :read], true, 'Users::Controller::Users')
|
22
|
+
return 'authorized'
|
23
|
+
else
|
24
|
+
return 'not authorized'
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
def require_one
|
29
|
+
if user_authorized?([:create, :delete], false, 'Users::Controller::Users')
|
30
|
+
return 'authorized'
|
31
|
+
else
|
32
|
+
return 'not authorized'
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
def require_permissions_block
|
37
|
+
require_permissions(:delete, :update)
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
class SpecMessageHelper < Zen::Controller::AdminController
|
2
|
+
map '/admin/spec-message-helper'
|
3
|
+
|
4
|
+
def index
|
5
|
+
return display_messages
|
6
|
+
end
|
7
|
+
|
8
|
+
def success
|
9
|
+
message(:success, 'success message')
|
10
|
+
end
|
11
|
+
|
12
|
+
def info
|
13
|
+
message(:info, 'info message')
|
14
|
+
end
|
15
|
+
|
16
|
+
def error
|
17
|
+
message(:error, 'error message')
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
class SpecPackage < Zen::Controller::AdminController
|
2
|
+
map '/admin/spec'
|
3
|
+
|
4
|
+
def index
|
5
|
+
Zen::Package.build_menu('spec_menu', extension_permissions)
|
6
|
+
end
|
7
|
+
end
|
8
|
+
|
9
|
+
Zen::Package.add do |p|
|
10
|
+
p.name = 'spec'
|
11
|
+
p.author = 'Yorick Peterse'
|
12
|
+
p.about = 'A spec extension'
|
13
|
+
p.url = 'http://zen-cms.com/'
|
14
|
+
p.directory = __DIR__
|
15
|
+
p.menu = [{:title => 'Spec', :url => '/admin/spec'} ]
|
16
|
+
p.controllers = {'Spec' => SpecPackage}
|
17
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
class SpecCommentsForm < Zen::Controller::FrontendController
|
2
|
+
map '/spec-comments-form'
|
3
|
+
helper :message
|
4
|
+
|
5
|
+
def index
|
6
|
+
body = <<-HTML
|
7
|
+
#{display_messages}
|
8
|
+
|
9
|
+
<form action="#{Comments::Controller::CommentsForm.r(:save)}"
|
10
|
+
method="post" id="spec_comments_form">
|
11
|
+
<input name="csrf_token" value="#{get_csrf_token}" type="hidden" />
|
12
|
+
|
13
|
+
<input id="section_entry" name="section_entry" type="text" />
|
14
|
+
<input id="user_id" name="user_id" type="text" />
|
15
|
+
<input id="name" name="name" type="text" />
|
16
|
+
<input id="website" name="website" type="text" />
|
17
|
+
<input id="email" name="email" type="text" />
|
18
|
+
|
19
|
+
<textarea id="comment" name="comment"></textarea>
|
20
|
+
|
21
|
+
<input type="submit" value="Submit" />
|
22
|
+
</form>
|
23
|
+
HTML
|
24
|
+
|
25
|
+
return body
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
plugin(:settings, :register_group) do |group|
|
2
|
+
group.name = 'general_spec'
|
3
|
+
group.title = 'General Spec'
|
4
|
+
end
|
5
|
+
|
6
|
+
plugin(:settings, :register) do |setting|
|
7
|
+
setting.name = 'spec'
|
8
|
+
setting.title = 'Spec'
|
9
|
+
setting.group = 'general_spec'
|
10
|
+
setting.type = 'select'
|
11
|
+
setting.values = [1,2,3]
|
12
|
+
setting.description = 'An example of a setting with a select box.'
|
13
|
+
end
|
14
|
+
|
15
|
+
plugin(:settings, :register) do |setting|
|
16
|
+
setting.name = 'spec_textbox'
|
17
|
+
setting.title = 'Spec Textbox'
|
18
|
+
setting.group = 'general_spec'
|
19
|
+
setting.type = 'textbox'
|
20
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
The requested page could not be found!
|
@@ -0,0 +1 @@
|
|
1
|
+
This is the homepage.
|
@@ -0,0 +1 @@
|
|
1
|
+
<?r show_404 ?>
|
@@ -0,0 +1 @@
|
|
1
|
+
#{partial(:partial)}
|
@@ -0,0 +1 @@
|
|
1
|
+
#{partial(:wrong_partial)}
|
@@ -0,0 +1 @@
|
|
1
|
+
This is a partial.
|
@@ -0,0 +1,11 @@
|
|
1
|
+
Zen::Theme.add do |theme|
|
2
|
+
theme.name = 'spec_theme'
|
3
|
+
theme.author = 'Yorick Peterse'
|
4
|
+
theme.url = 'http://zen-cms.com/'
|
5
|
+
theme.about = 'A theme for all the tests'
|
6
|
+
|
7
|
+
# Add all directories
|
8
|
+
theme.template_dir = __DIR__
|
9
|
+
theme.partial_dir = __DIR__('partials')
|
10
|
+
end
|
11
|
+
|
@@ -0,0 +1,22 @@
|
|
1
|
+
class ValidationObject
|
2
|
+
include ::Zen::Validation
|
3
|
+
|
4
|
+
attr_accessor :name
|
5
|
+
attr_accessor :file
|
6
|
+
|
7
|
+
def presence
|
8
|
+
validates_presence(:name)
|
9
|
+
end
|
10
|
+
|
11
|
+
def length
|
12
|
+
validates_length(:name, :min => 3, :max => 5)
|
13
|
+
end
|
14
|
+
|
15
|
+
def format
|
16
|
+
validates_format(:name, /[a-z]+/)
|
17
|
+
end
|
18
|
+
|
19
|
+
def exists
|
20
|
+
validates_filepath(:file)
|
21
|
+
end
|
22
|
+
end
|
data/spec/helper.rb
ADDED
@@ -0,0 +1,41 @@
|
|
1
|
+
if ENV.key?('COVERAGE') and ENV['COVERAGE'] === 'true'
|
2
|
+
require File.expand_path('../../lib/zen/spec/simplecov', __FILE__)
|
3
|
+
end
|
4
|
+
|
5
|
+
require File.expand_path('../../lib/zen', __FILE__)
|
6
|
+
|
7
|
+
Ramaze.setup(:verbose => false) do
|
8
|
+
gem 'sqlite3' , ['~> 1.3.4']
|
9
|
+
gem 'rdiscount', ['~> 1.6.8']
|
10
|
+
gem 'defensio' , ['~> 0.9.1']
|
11
|
+
end
|
12
|
+
|
13
|
+
# Update all paths
|
14
|
+
Ramaze.options.roots = [__DIR__]
|
15
|
+
Ramaze.options.mode = :dev
|
16
|
+
Zen.root = __DIR__
|
17
|
+
|
18
|
+
Zen::Language.options.paths.push(__DIR__('fixtures/zen'))
|
19
|
+
|
20
|
+
# Configure the database
|
21
|
+
Zen.database = Sequel.connect(
|
22
|
+
:adapter => 'sqlite',
|
23
|
+
:database => __DIR__('database.db'),
|
24
|
+
:test => true,
|
25
|
+
:encoding => 'utf8'
|
26
|
+
)
|
27
|
+
|
28
|
+
# Start Zen
|
29
|
+
Zen.init
|
30
|
+
|
31
|
+
# Require all packages
|
32
|
+
require __DIR__('../lib/zen/package/all')
|
33
|
+
|
34
|
+
Zen.post_init
|
35
|
+
|
36
|
+
module Zen
|
37
|
+
Fixtures = __DIR__('fixtures/zen')
|
38
|
+
end
|
39
|
+
|
40
|
+
# Load Capybara?
|
41
|
+
require __DIR__('../lib/zen/spec/helper') if !Zen.const_defined?(:RakeTask)
|
data/spec/zen/all.rb
ADDED
data/spec/zen/asset.rb
ADDED
@@ -0,0 +1,97 @@
|
|
1
|
+
require File.expand_path('../../helper', __FILE__)
|
2
|
+
require File.join(Zen::Fixtures, 'asset')
|
3
|
+
|
4
|
+
describe('Zen::Asset') do
|
5
|
+
behaves_like :capybara
|
6
|
+
|
7
|
+
it('Load a single stylesheet') do
|
8
|
+
Zen::Asset.stylesheet(['reset'], :global => true)
|
9
|
+
|
10
|
+
path = File.join(
|
11
|
+
'/', Zen::Asset.options.prefix, Zen::Asset.options.stylesheet_prefix
|
12
|
+
) + '/reset.css'
|
13
|
+
|
14
|
+
Zen::Asset::Stylesheets[:global].length.should > 1
|
15
|
+
Zen::Asset::Stylesheets[:global].include?(path).should === true
|
16
|
+
end
|
17
|
+
|
18
|
+
it('Load two stylesheets') do
|
19
|
+
Zen::Asset.stylesheet(['reset', 'text'], :global => true)
|
20
|
+
|
21
|
+
Zen::Asset::Stylesheets[:global].length.should > 2
|
22
|
+
Zen::Asset::Stylesheets[:global].last.include?('text').should === true
|
23
|
+
end
|
24
|
+
|
25
|
+
it('Load a set of action specific files') do
|
26
|
+
visit('/spec/asset/index')
|
27
|
+
|
28
|
+
Zen::Asset::Javascripts[:'AssetController'][:__all] \
|
29
|
+
.length.should === 1
|
30
|
+
|
31
|
+
Zen::Asset::Javascripts[:'AssetController'][:specific] \
|
32
|
+
.length.should === 1
|
33
|
+
|
34
|
+
Zen::Asset::Javascripts[:'AssetController'][:__all][0] \
|
35
|
+
.include?('spec').should === true
|
36
|
+
|
37
|
+
Zen::Asset::Stylesheets[:'AssetController'] \
|
38
|
+
.length.should === 1
|
39
|
+
|
40
|
+
Zen::Asset::Stylesheets[:'AssetController'][:__all][0] \
|
41
|
+
.include?('reset').should === true
|
42
|
+
end
|
43
|
+
|
44
|
+
it('Build all Javascript files') do
|
45
|
+
visit('/spec/asset/javascripts')
|
46
|
+
|
47
|
+
path = File.join(
|
48
|
+
'/',
|
49
|
+
Zen::Asset.options.prefix,
|
50
|
+
Zen::Asset.options.javascript_prefix
|
51
|
+
) + '/spec.js'
|
52
|
+
|
53
|
+
page.body.strip.include?(path).should === true
|
54
|
+
page.body.strip.include?('specific.js').should === false
|
55
|
+
end
|
56
|
+
|
57
|
+
it('Build all Stylesheets') do
|
58
|
+
visit('/spec/asset/stylesheets')
|
59
|
+
|
60
|
+
path = File.join(
|
61
|
+
'/',
|
62
|
+
Zen::Asset.options.prefix,
|
63
|
+
Zen::Asset.options.stylesheet_prefix
|
64
|
+
) + '/reset.css'
|
65
|
+
|
66
|
+
page.body.strip.include?(path).should === true
|
67
|
+
end
|
68
|
+
|
69
|
+
it('Build a set of method specific Javascript files') do
|
70
|
+
visit('/spec/asset/specific')
|
71
|
+
|
72
|
+
path = File.join(
|
73
|
+
'/',
|
74
|
+
Zen::Asset.options.prefix,
|
75
|
+
Zen::Asset.options.javascript_prefix
|
76
|
+
) + '/specific.js'
|
77
|
+
|
78
|
+
page.body.strip.include?(path).should === true
|
79
|
+
page.body.strip.include?('spec.js').should === false
|
80
|
+
end
|
81
|
+
|
82
|
+
it('Build a set of Javascript files using an array of methods') do
|
83
|
+
path = File.join(
|
84
|
+
'/',
|
85
|
+
Zen::Asset.options.prefix,
|
86
|
+
Zen::Asset.options.javascript_prefix
|
87
|
+
) + '/array.js'
|
88
|
+
|
89
|
+
[:array, :array_1].each do |method|
|
90
|
+
visit("/spec/asset/#{method}")
|
91
|
+
|
92
|
+
page.body.strip.include?(path).should === true
|
93
|
+
page.body.strip.include?('spec.js').should === false
|
94
|
+
end
|
95
|
+
end
|
96
|
+
|
97
|
+
end
|
@@ -0,0 +1,89 @@
|
|
1
|
+
require File.expand_path('../../../helper', __FILE__)
|
2
|
+
require __DIR__('../../../lib/zen/bin/runner')
|
3
|
+
require 'fileutils'
|
4
|
+
|
5
|
+
describe('Zen::Bin::Create') do
|
6
|
+
@bin_path = __DIR__('../../../bin/zen')
|
7
|
+
|
8
|
+
it('Show the help message') do
|
9
|
+
output = catch_output do
|
10
|
+
Zen::Bin::Create.new.run
|
11
|
+
end
|
12
|
+
|
13
|
+
output[:stdout].include?(Zen::Bin::Create::Banner).should === true
|
14
|
+
end
|
15
|
+
|
16
|
+
it('Show the help message using -h') do
|
17
|
+
output = catch_output do
|
18
|
+
Zen::Bin::Create.new.run(['-h'])
|
19
|
+
end
|
20
|
+
|
21
|
+
output[:stdout].include?(Zen::Bin::Create::Banner).should === true
|
22
|
+
end
|
23
|
+
|
24
|
+
it('Create a new application prototype') do
|
25
|
+
app_dir = '/tmp/zen'
|
26
|
+
|
27
|
+
if File.directory?(app_dir)
|
28
|
+
FileUtils.rm_rf(app_dir)
|
29
|
+
end
|
30
|
+
|
31
|
+
output = catch_output do
|
32
|
+
Zen::Bin::Create.new.run([app_dir])
|
33
|
+
end
|
34
|
+
|
35
|
+
output[:stdout].strip \
|
36
|
+
.should === "The application has been generated and saved in #{app_dir}"
|
37
|
+
|
38
|
+
File.directory?(app_dir).should === true
|
39
|
+
|
40
|
+
# Check various directories
|
41
|
+
File.directory?(File.join(app_dir, 'config')).should === true
|
42
|
+
File.directory?(File.join(app_dir, 'log')).should === true
|
43
|
+
File.directory?(File.join(app_dir, 'log', 'database', 'dev')).should === true
|
44
|
+
File.directory?(File.join(app_dir, 'public')).should === true
|
45
|
+
|
46
|
+
# Check if the config files are correct
|
47
|
+
config_generated = File.read(File.join(app_dir, 'config', 'config.rb'))
|
48
|
+
config_proto = File.read(__DIR__('../../../proto/app/config/config.rb'))
|
49
|
+
|
50
|
+
config_generated.should === config_proto
|
51
|
+
|
52
|
+
# Remove the application directory
|
53
|
+
FileUtils.rm_rf(app_dir)
|
54
|
+
end
|
55
|
+
|
56
|
+
it('Create a new application using -f') do
|
57
|
+
app_dir = '/tmp/zen'
|
58
|
+
|
59
|
+
if File.directory?(app_dir)
|
60
|
+
FileUtils.rm_rf(app_dir)
|
61
|
+
end
|
62
|
+
|
63
|
+
output = catch_output do
|
64
|
+
Zen::Bin::Create.new.run([app_dir])
|
65
|
+
end
|
66
|
+
|
67
|
+
output[:stdout].strip \
|
68
|
+
.should === "The application has been generated and saved in #{app_dir}"
|
69
|
+
|
70
|
+
# Warn that it exists
|
71
|
+
output = catch_output do
|
72
|
+
Zen::Bin::Create.new.run([app_dir])
|
73
|
+
end
|
74
|
+
|
75
|
+
output[:stderr].strip.should \
|
76
|
+
=== "The application #{app_dir} already exists, use -f to overwrite it."
|
77
|
+
|
78
|
+
# Force it
|
79
|
+
output = catch_output do
|
80
|
+
Zen::Bin::Create.new.run([app_dir, '-f'])
|
81
|
+
end
|
82
|
+
|
83
|
+
output[:stdout].strip \
|
84
|
+
.should === "The application has been generated and saved in #{app_dir}"
|
85
|
+
|
86
|
+
FileUtils.rm_rf(app_dir)
|
87
|
+
end
|
88
|
+
|
89
|
+
end
|