goldberg_generator 0.2.2
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.
- data/USAGE +34 -0
- data/goldberg_generator.rb +463 -0
- data/templates/README_GOLDBERG +22 -0
- data/templates/app/views/layouts/application.rhtml +80 -0
- data/templates/layouts/ewnf/README +8 -0
- data/templates/layouts/ewnf/app/views/layouts/application.rhtml +74 -0
- data/templates/layouts/ewnf/public/images/bg.gif +0 -0
- data/templates/layouts/ewnf/public/images/daddy_rightarrow.gif +0 -0
- data/templates/layouts/ewnf/public/images/sample.jpg +0 -0
- data/templates/layouts/ewnf/public/images/title_img.jpg +0 -0
- data/templates/layouts/ewnf/public/stylesheets/layout.css +223 -0
- data/templates/layouts/snooker/app/views/layouts/application.rhtml +74 -0
- data/templates/layouts/snooker/public/images/column_200.png +0 -0
- data/templates/layouts/snooker/public/images/daddy_rightarrow.gif +0 -0
- data/templates/layouts/snooker/public/images/footer_bg.png +0 -0
- data/templates/layouts/snooker/public/images/logo.jpg +0 -0
- data/templates/layouts/snooker/public/stylesheets/layout.css +183 -0
- data/templates/layouts/spoiled_brat/LICENSE.txt +211 -0
- data/templates/layouts/spoiled_brat/README +8 -0
- data/templates/layouts/spoiled_brat/app/views/layouts/application.rhtml +71 -0
- data/templates/layouts/spoiled_brat/public/images/blockquote-bg.gif +0 -0
- data/templates/layouts/spoiled_brat/public/images/body-bg.jpg +0 -0
- data/templates/layouts/spoiled_brat/public/images/centerColumn-bg.jpg +0 -0
- data/templates/layouts/spoiled_brat/public/images/daddy_leftarrow.gif +0 -0
- data/templates/layouts/spoiled_brat/public/images/h2-bg.gif +0 -0
- data/templates/layouts/spoiled_brat/public/images/h3-bg.gif +0 -0
- data/templates/layouts/spoiled_brat/public/images/header-bg.jpg +0 -0
- data/templates/layouts/spoiled_brat/public/images/hr-bg.jpg +0 -0
- data/templates/layouts/spoiled_brat/public/images/logo.jpg +0 -0
- data/templates/layouts/spoiled_brat/public/stylesheets/layout.css +379 -0
- data/templates/public/goldberg/images/action.png +0 -0
- data/templates/public/goldberg/images/add.png +0 -0
- data/templates/public/goldberg/images/bodybg.jpg +0 -0
- data/templates/public/goldberg/images/delete.png +0 -0
- data/templates/public/goldberg/images/down.png +0 -0
- data/templates/public/goldberg/images/footerbg.jpg +0 -0
- data/templates/public/goldberg/images/logo_right.jpg +0 -0
- data/templates/public/goldberg/images/menuhover.jpg +0 -0
- data/templates/public/goldberg/images/page.png +0 -0
- data/templates/public/goldberg/images/permission.png +0 -0
- data/templates/public/goldberg/images/role.png +0 -0
- data/templates/public/goldberg/images/up.png +0 -0
- data/templates/public/goldberg/javascripts/suckerfish.js +12 -0
- data/templates/public/goldberg/stylesheets/goldberg.css +142 -0
- data/templates/public/goldberg/stylesheets/layout.css +321 -0
- data/templates/public/goldberg/stylesheets/suckerfish.css +124 -0
- data/templates/vendor/plugins/goldberg/app/controllers/goldberg/auth_controller.rb +104 -0
- data/templates/vendor/plugins/goldberg/app/controllers/goldberg/content_pages_controller.rb +197 -0
- data/templates/vendor/plugins/goldberg/app/controllers/goldberg/controller_actions_controller.rb +134 -0
- data/templates/vendor/plugins/goldberg/app/controllers/goldberg/menu_items_controller.rb +184 -0
- data/templates/vendor/plugins/goldberg/app/controllers/goldberg/permissions_controller.rb +60 -0
- data/templates/vendor/plugins/goldberg/app/controllers/goldberg/roles_controller.rb +85 -0
- data/templates/vendor/plugins/goldberg/app/controllers/goldberg/roles_permissions_controller.rb +65 -0
- data/templates/vendor/plugins/goldberg/app/controllers/goldberg/site_controllers_controller.rb +157 -0
- data/templates/vendor/plugins/goldberg/app/controllers/goldberg/system_settings_controller.rb +75 -0
- data/templates/vendor/plugins/goldberg/app/controllers/goldberg/users_controller.rb +293 -0
- data/templates/vendor/plugins/goldberg/app/helpers/goldberg/auth_helper.rb +4 -0
- data/templates/vendor/plugins/goldberg/app/helpers/goldberg/content_pages_helper.rb +23 -0
- data/templates/vendor/plugins/goldberg/app/helpers/goldberg/controller_actions_helper.rb +5 -0
- data/templates/vendor/plugins/goldberg/app/helpers/goldberg/menu_items_helper.rb +4 -0
- data/templates/vendor/plugins/goldberg/app/helpers/goldberg/permissions_helper.rb +4 -0
- data/templates/vendor/plugins/goldberg/app/helpers/goldberg/roles_helper.rb +4 -0
- data/templates/vendor/plugins/goldberg/app/helpers/goldberg/roles_permissions_helper.rb +4 -0
- data/templates/vendor/plugins/goldberg/app/helpers/goldberg/site_controllers_helper.rb +4 -0
- data/templates/vendor/plugins/goldberg/app/helpers/goldberg/system_settings_helper.rb +4 -0
- data/templates/vendor/plugins/goldberg/app/helpers/goldberg/users_helper.rb +4 -0
- data/templates/vendor/plugins/goldberg/app/models/goldberg/content_page.rb +134 -0
- data/templates/vendor/plugins/goldberg/app/models/goldberg/controller_action.rb +86 -0
- data/templates/vendor/plugins/goldberg/app/models/goldberg/credentials.rb +128 -0
- data/templates/vendor/plugins/goldberg/app/models/goldberg/menu.rb +198 -0
- data/templates/vendor/plugins/goldberg/app/models/goldberg/menu_item.rb +127 -0
- data/templates/vendor/plugins/goldberg/app/models/goldberg/permission.rb +37 -0
- data/templates/vendor/plugins/goldberg/app/models/goldberg/role.rb +68 -0
- data/templates/vendor/plugins/goldberg/app/models/goldberg/roles_permission.rb +18 -0
- data/templates/vendor/plugins/goldberg/app/models/goldberg/site_controller.rb +59 -0
- data/templates/vendor/plugins/goldberg/app/models/goldberg/system_settings.rb +112 -0
- data/templates/vendor/plugins/goldberg/app/models/goldberg/user.rb +69 -0
- data/templates/vendor/plugins/goldberg/app/models/goldberg/user_mailer.rb +43 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/auth/_login.rhtml +15 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/auth/login.rhtml +22 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/auth/logout.rhtml +2 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/content_pages/_fck_create_folder.rxml +6 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/content_pages/_fck_files.rxml +19 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/content_pages/_form.rhtml +32 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/content_pages/edit.rhtml +10 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/content_pages/fck_speller_pages.rhtml +58 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/content_pages/list.rhtml +22 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/content_pages/new.rhtml +8 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/content_pages/show.rhtml +57 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/content_pages/view.rhtml +1 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/content_pages/view_default.rhtml +1 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/controller_actions/_form.rhtml +53 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/controller_actions/edit.rhtml +9 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/controller_actions/list.rhtml +27 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/controller_actions/new.rhtml +10 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/controller_actions/show.rhtml +13 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/layouts/_tabpanel_js.rhtml +52 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/layouts/_tabpanel_list.rhtml +7 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/menu_items/_breadcrumbs.rhtml +5 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/menu_items/_form.rhtml +42 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/menu_items/_item_list.rhtml +52 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/menu_items/_item_parent_list.rhtml +15 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/menu_items/_menubar.rhtml +21 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/menu_items/_suckerfish.rhtml +14 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/menu_items/edit.rhtml +10 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/menu_items/list-original.rhtml +27 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/menu_items/list.rhtml +16 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/menu_items/new.rhtml +9 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/menu_items/show.rhtml +8 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/permissions/_form.rhtml +7 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/permissions/edit.rhtml +9 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/permissions/list.rhtml +14 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/permissions/new.rhtml +8 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/permissions/show.rhtml +38 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/roles/_form.rhtml +18 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/roles/edit.rhtml +9 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/roles/list.rhtml +21 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/roles/new.rhtml +8 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/roles/show.rhtml +79 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/roles_permissions/_form.rhtml +13 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/roles_permissions/edit.rhtml +9 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/roles_permissions/list.rhtml +24 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/roles_permissions/new.rhtml +8 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/roles_permissions/new_permission_for_role.rhtml +8 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/roles_permissions/show.rhtml +8 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/site_controllers/_form.rhtml +15 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/site_controllers/_list.rhtml +26 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/site_controllers/edit.rhtml +9 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/site_controllers/list.rhtml +107 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/site_controllers/new.rhtml +8 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/site_controllers/show.rhtml +38 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/system_settings/_form.rhtml +71 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/system_settings/edit.rhtml +9 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/system_settings/list.rhtml +27 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/system_settings/new.rhtml +8 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/system_settings/show.rhtml +189 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/user_mailer/confirmation_request.rhtml +19 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/user_mailer/reset_password.rhtml +17 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/user_mailer/reset_password_request.rhtml +23 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/users/_form.rhtml +53 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/users/confirm_registration.rhtml +26 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/users/confirm_registration_submit.rhtml +4 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/users/create.rhtml +19 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/users/edit.rhtml +11 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/users/forgot_password.rhtml +27 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/users/forgot_password_submit.rhtml +4 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/users/list.rhtml +18 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/users/new.rhtml +19 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/users/reset_password.rhtml +11 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/users/reset_password_submit.rhtml +3 -0
- data/templates/vendor/plugins/goldberg/app/views/goldberg/users/show.rhtml +33 -0
- data/templates/vendor/plugins/goldberg/db/ContentPage.yml +466 -0
- data/templates/vendor/plugins/goldberg/db/ControllerAction.yml +162 -0
- data/templates/vendor/plugins/goldberg/db/MenuItem.yml +109 -0
- data/templates/vendor/plugins/goldberg/db/Permission.yml +21 -0
- data/templates/vendor/plugins/goldberg/db/Role.yml +493 -0
- data/templates/vendor/plugins/goldberg/db/RolesPermission.yml +26 -0
- data/templates/vendor/plugins/goldberg/db/SiteController.yml +61 -0
- data/templates/vendor/plugins/goldberg/db/SystemSettings.yml +21 -0
- data/templates/vendor/plugins/goldberg/db/User.yml +15 -0
- data/templates/vendor/plugins/goldberg/db/migrate/001_initial_setup.rb +128 -0
- data/templates/vendor/plugins/goldberg/db/migrate/002_menu_rest_items_users_cached_content_pages.rb +26 -0
- data/templates/vendor/plugins/goldberg/db/migrate/003_self_registration.rb +54 -0
- data/templates/vendor/plugins/goldberg/db/migrate/004_column_fixes.rb +119 -0
- data/templates/vendor/plugins/goldberg/init.rb +13 -0
- data/templates/vendor/plugins/goldberg/lib/goldberg.rb +37 -0
- data/templates/vendor/plugins/goldberg/lib/goldberg/controller.rb +11 -0
- data/templates/vendor/plugins/goldberg/lib/goldberg/filters.rb +197 -0
- data/templates/vendor/plugins/goldberg/lib/goldberg/helper.rb +66 -0
- data/templates/vendor/plugins/goldberg/lib/goldberg/migration.rb +113 -0
- data/templates/vendor/plugins/goldberg/lib/goldberg/migrator.rb +128 -0
- data/templates/vendor/plugins/goldberg/lib/goldberg/model.rb +110 -0
- data/templates/vendor/plugins/goldberg/lib/goldberg/routes.rb +49 -0
- data/templates/vendor/plugins/goldberg/lib/goldberg/test_helper.rb +82 -0
- data/templates/vendor/plugins/goldberg/tasks/goldberg_tasks.rake +47 -0
- data/templates/vendor/plugins/goldberg/test/functional/content_pages_controller_test.rb +31 -0
- data/templates/vendor/plugins/goldberg/test/integration/security_test.rb +134 -0
- data/templates/vendor/plugins/goldberg/test/test_helper.rb +40 -0
- data/templates/vendor/plugins/goldberg/test/unit/content_page_test.rb +87 -0
- data/templates/vendor/plugins/goldberg/test/unit/controller_action_test.rb +85 -0
- data/templates/vendor/plugins/goldberg/test/unit/menu_item_test.rb +46 -0
- data/templates/vendor/plugins/goldberg/test/unit/permission_test.rb +35 -0
- data/templates/vendor/plugins/goldberg/test/unit/site_controller_test.rb +53 -0
- data/templates/vendor/plugins/goldberg/test/unit/system_settings_test.rb +71 -0
- data/templates/vendor/plugins/goldberg/test/unit/user_test.rb +104 -0
- metadata +310 -0
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
ENV["RAILS_ENV"] = "test"
|
|
2
|
+
require File.expand_path(File.dirname(__FILE__) +
|
|
3
|
+
"/../../../../config/environment")
|
|
4
|
+
|
|
5
|
+
require 'test_help'
|
|
6
|
+
|
|
7
|
+
class Test::Unit::TestCase
|
|
8
|
+
# Transactional fixtures accelerate your tests by wrapping each test method
|
|
9
|
+
# in a transaction that's rolled back on completion. This ensures that the
|
|
10
|
+
# test database remains unchanged so your fixtures don't have to be reloaded
|
|
11
|
+
# between every test method. Fewer database queries means faster tests.
|
|
12
|
+
#
|
|
13
|
+
# Read Mike Clark's excellent walkthrough at
|
|
14
|
+
# http://clarkware.com/cgi/blosxom/2005/10/24#Rails10FastTesting
|
|
15
|
+
#
|
|
16
|
+
# Every Active Record database supports transactions except MyISAM tables
|
|
17
|
+
# in MySQL. Turn off transactional fixtures in this case; however, if you
|
|
18
|
+
# don't care one way or the other, switching from MyISAM to InnoDB tables
|
|
19
|
+
# is recommended.
|
|
20
|
+
#
|
|
21
|
+
# The only drawback to using transactional fixtures is when you actually
|
|
22
|
+
# need to test transactions. Since your test is bracketed by a transaction,
|
|
23
|
+
# any transactions started in your code will be automatically rolled back.
|
|
24
|
+
self.use_transactional_fixtures = true
|
|
25
|
+
|
|
26
|
+
# Instantiated fixtures are slow, but give you @david where otherwise you
|
|
27
|
+
# would need people(:david). If you don't want to migrate your existing
|
|
28
|
+
# test cases which use the @david style and don't mind the speed hit (each
|
|
29
|
+
# instantiated fixtures translates to a database query per test method),
|
|
30
|
+
# then set this back to true.
|
|
31
|
+
self.use_instantiated_fixtures = false
|
|
32
|
+
|
|
33
|
+
# Setup all fixtures in test/fixtures/*.(yml|csv) for all tests in alphabetical order.
|
|
34
|
+
#
|
|
35
|
+
# Note: You'll currently still have to declare fixtures explicitly in integration tests
|
|
36
|
+
# -- they do not yet inherit this setting
|
|
37
|
+
# fixtures :all
|
|
38
|
+
|
|
39
|
+
# Add more helper methods to be used by all tests here...
|
|
40
|
+
end
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
require File.dirname(__FILE__) + '/../test_helper'
|
|
2
|
+
|
|
3
|
+
class ContentPageTest < Test::Unit::TestCase
|
|
4
|
+
include Goldberg::TestHelper
|
|
5
|
+
|
|
6
|
+
def setup
|
|
7
|
+
@permission = Goldberg::Permission.find :first
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def test_all_fields
|
|
11
|
+
page = Goldberg::ContentPage.new(:name => 'test', :title => 'A test')
|
|
12
|
+
page.permission = @permission
|
|
13
|
+
page.markup_style = 'Raw HTML'
|
|
14
|
+
page.content = 'This is a test'
|
|
15
|
+
assert page.save
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
# Test that HTML content is generated when it's accessed
|
|
19
|
+
def test_content_cached_on_access
|
|
20
|
+
page = new_page()
|
|
21
|
+
page.content = 'This is a test'
|
|
22
|
+
# No content yet
|
|
23
|
+
assert_nil page.content_cache
|
|
24
|
+
# Calling #content_html triggers HTML generation
|
|
25
|
+
assert_not_nil page.content_html
|
|
26
|
+
assert_not_nil page.content_cache
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
# Test that HTML content is generated when the page is saved
|
|
30
|
+
def test_content_cached_on_save
|
|
31
|
+
page = new_page()
|
|
32
|
+
page.content = 'This is a test'
|
|
33
|
+
# No content yet
|
|
34
|
+
assert_nil page.content_cache
|
|
35
|
+
page.save
|
|
36
|
+
# Saving triggers HTML generation
|
|
37
|
+
assert_not_nil page.content_cache
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
def test_minimal_fields
|
|
41
|
+
page = Goldberg::ContentPage.new(:name => 'test', :title => 'A test')
|
|
42
|
+
page.permission = @permission
|
|
43
|
+
assert page.save
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
def test_no_fields
|
|
47
|
+
page = Goldberg::ContentPage.new
|
|
48
|
+
assert !page.valid?
|
|
49
|
+
# name, title and permission_id are compulsory
|
|
50
|
+
[:name, :title, :permission_id].each do |attr|
|
|
51
|
+
assert page.errors.on(attr)
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
# Test that name is unique
|
|
56
|
+
def test_uniqueness_of
|
|
57
|
+
# Create a page named 'test' and save it
|
|
58
|
+
page1 = new_page()
|
|
59
|
+
assert page1.save
|
|
60
|
+
|
|
61
|
+
# Duplicate page name won't work
|
|
62
|
+
page2 = new_page()
|
|
63
|
+
assert !page2.save
|
|
64
|
+
assert page2.errors.on(:name)
|
|
65
|
+
|
|
66
|
+
# Fix name and it should work
|
|
67
|
+
page2.name = 'test2'
|
|
68
|
+
assert page2.save
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
# Test that the URL generated for the page equals the name preceded
|
|
72
|
+
# with a slash
|
|
73
|
+
def test_url_generation
|
|
74
|
+
page = new_page()
|
|
75
|
+
assert_equal page.url, '/test'
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
protected
|
|
80
|
+
|
|
81
|
+
def new_page
|
|
82
|
+
page = Goldberg::ContentPage.new(:name => 'test',
|
|
83
|
+
:title => 'This is a test')
|
|
84
|
+
page.permission = @permission
|
|
85
|
+
return page
|
|
86
|
+
end
|
|
87
|
+
end
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
require File.dirname(__FILE__) + '/../test_helper'
|
|
2
|
+
|
|
3
|
+
class ControllerActionTest < Test::Unit::TestCase
|
|
4
|
+
include Goldberg::TestHelper
|
|
5
|
+
|
|
6
|
+
def setup
|
|
7
|
+
# Some associated records (two of each will do)
|
|
8
|
+
(@sc1, @sc2) = Goldberg::SiteController.find :all
|
|
9
|
+
(@p1, @p2) = Goldberg::Permission.find :all
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def test_no_fields
|
|
13
|
+
ca = Goldberg::ControllerAction.new
|
|
14
|
+
assert !ca.valid?
|
|
15
|
+
# name, and site_controller_id are compulsory
|
|
16
|
+
[:name, :site_controller_id].each do |attr|
|
|
17
|
+
assert ca.errors.on(attr)
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def test_minimal_fields
|
|
22
|
+
ca = Goldberg::ControllerAction.new(:name => 'test')
|
|
23
|
+
ca.site_controller = @sc1
|
|
24
|
+
assert ca.save
|
|
25
|
+
|
|
26
|
+
# All fields
|
|
27
|
+
ca.permission = @p1
|
|
28
|
+
assert ca.save
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def test_all_fields
|
|
32
|
+
ca = Goldberg::ControllerAction.new(:name => 'test')
|
|
33
|
+
ca.site_controller = @sc1
|
|
34
|
+
ca.permission = @p1
|
|
35
|
+
assert ca.save
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
# The name of the controller action should be unique within the
|
|
39
|
+
# scope of the site controller.
|
|
40
|
+
def test_name_unique_within_scope_of_site_controller
|
|
41
|
+
ca1 = Goldberg::ControllerAction.new(:name => 'test')
|
|
42
|
+
ca2 = Goldberg::ControllerAction.new(:name => 'test')
|
|
43
|
+
ca1.site_controller = @sc1
|
|
44
|
+
ca2.site_controller = @sc1
|
|
45
|
+
ca1.save
|
|
46
|
+
|
|
47
|
+
# Error: name not unique within scope of controller
|
|
48
|
+
assert !ca2.save
|
|
49
|
+
assert ca2.errors.on(:name)
|
|
50
|
+
|
|
51
|
+
# Should work: same name, different controllers
|
|
52
|
+
ca2.site_controller = @sc2
|
|
53
|
+
assert ca2.save
|
|
54
|
+
|
|
55
|
+
# Should work: different names, same controller
|
|
56
|
+
ca2.name = 'test2'
|
|
57
|
+
ca2.site_controller = @sc1
|
|
58
|
+
assert ca2.save
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
# The effective permission is the permission of the controller
|
|
62
|
+
# action, if specified; otherwise it is the permission of the
|
|
63
|
+
# action's site controller.
|
|
64
|
+
def test_effective_permission
|
|
65
|
+
# Make sure we know the permission on the site controller
|
|
66
|
+
@sc1.permission = @p1
|
|
67
|
+
@sc1.save!
|
|
68
|
+
|
|
69
|
+
ca = Goldberg::ControllerAction.new(:name => 'test')
|
|
70
|
+
ca.site_controller = @sc1
|
|
71
|
+
ca.save!
|
|
72
|
+
|
|
73
|
+
# No explicit permission: effective permission should be the same
|
|
74
|
+
# as site controller
|
|
75
|
+
assert_nil ca.permission
|
|
76
|
+
assert_equal @p1.id, ca.effective_permission.id
|
|
77
|
+
|
|
78
|
+
# Explicit permission: should override permission of site
|
|
79
|
+
# controller
|
|
80
|
+
ca.permission = @p2
|
|
81
|
+
ca.save!
|
|
82
|
+
assert_not_nil ca.permission
|
|
83
|
+
assert_equal @p2.id, ca.effective_permission.id
|
|
84
|
+
end
|
|
85
|
+
end
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
require File.dirname(__FILE__) + '/../test_helper'
|
|
2
|
+
|
|
3
|
+
class MenuItemTest < Test::Unit::TestCase
|
|
4
|
+
include Goldberg::TestHelper
|
|
5
|
+
|
|
6
|
+
def test_name_is_unique
|
|
7
|
+
name_1 = 'THIS_IS_NAME_1'
|
|
8
|
+
name_2 = 'THIS_IS_NAME_2'
|
|
9
|
+
name_1.freeze
|
|
10
|
+
name_2.freeze
|
|
11
|
+
|
|
12
|
+
menu_item_1 = Goldberg::MenuItem.new(:content_page_id => 1)
|
|
13
|
+
menu_item_2 = Goldberg::MenuItem.new(:content_page_id => 1)
|
|
14
|
+
|
|
15
|
+
menu_item_1.name = name_1
|
|
16
|
+
menu_item_1.label = 'This is name 1'
|
|
17
|
+
menu_item_2.name = name_2
|
|
18
|
+
menu_item_2.label = 'This is name 2'
|
|
19
|
+
|
|
20
|
+
assert(menu_item_1.save)
|
|
21
|
+
assert(menu_item_2.save)
|
|
22
|
+
|
|
23
|
+
menu_item_2.name = name_1
|
|
24
|
+
|
|
25
|
+
assert(!menu_item_2.save)
|
|
26
|
+
assert(menu_item_2.errors.invalid?(:name))
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
def test_name_is_required
|
|
31
|
+
mi = Goldberg::MenuItem.new(:content_page_id => 1)
|
|
32
|
+
assert(!mi.valid?)
|
|
33
|
+
assert(mi.errors.invalid?(:name))
|
|
34
|
+
assert(!mi.save)
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
def test_must_have_content_page_or_controller_action
|
|
39
|
+
mi = Goldberg::MenuItem.new(:name => 'test', :label => 'Test')
|
|
40
|
+
assert(!mi.valid?)
|
|
41
|
+
assert(mi.errors.invalid?(:content_page_id))
|
|
42
|
+
assert(mi.errors.invalid?(:controller_action_id))
|
|
43
|
+
assert(!mi.save)
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
end
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
require File.dirname(__FILE__) + '/../test_helper'
|
|
2
|
+
|
|
3
|
+
class PermissionTest < Test::Unit::TestCase
|
|
4
|
+
include Goldberg::TestHelper
|
|
5
|
+
|
|
6
|
+
def test_invalid_without_name
|
|
7
|
+
permission = Goldberg::Permission.new
|
|
8
|
+
assert(!permission.valid?)
|
|
9
|
+
assert(permission.errors.invalid?(:name))
|
|
10
|
+
assert(!permission.save)
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
def test_uniqueness_of_name
|
|
15
|
+
name_1 = 'THIS_IS_NAME_1'
|
|
16
|
+
name_2 = 'THIS_IS_NAME_2'
|
|
17
|
+
name_1.freeze
|
|
18
|
+
name_2.freeze
|
|
19
|
+
|
|
20
|
+
permission_1 = Goldberg::Permission.new
|
|
21
|
+
permission_2 = Goldberg::Permission.new
|
|
22
|
+
|
|
23
|
+
permission_1.name = name_1
|
|
24
|
+
permission_2.name = name_2
|
|
25
|
+
|
|
26
|
+
assert(permission_1.save)
|
|
27
|
+
assert(permission_2.save)
|
|
28
|
+
|
|
29
|
+
permission_2.name = name_1
|
|
30
|
+
|
|
31
|
+
assert(!permission_2.save)
|
|
32
|
+
assert(permission_2.errors.invalid?(:name))
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
end
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
require File.dirname(__FILE__) + '/../test_helper'
|
|
2
|
+
|
|
3
|
+
class SiteControllerTest < Test::Unit::TestCase
|
|
4
|
+
include Goldberg::TestHelper
|
|
5
|
+
|
|
6
|
+
def setup
|
|
7
|
+
@p = Goldberg::Permission.find :first
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def test_invalid_without_name
|
|
11
|
+
site_controller = Goldberg::SiteController.new
|
|
12
|
+
assert(!site_controller.valid?)
|
|
13
|
+
assert(site_controller.errors.invalid?(:name))
|
|
14
|
+
assert(!site_controller.save)
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
def test_uniqueness_of_name
|
|
19
|
+
name_1 = 'THIS_IS_NAME_1'
|
|
20
|
+
name_2 = 'THIS_IS_NAME_2'
|
|
21
|
+
name_1.freeze
|
|
22
|
+
name_2.freeze
|
|
23
|
+
|
|
24
|
+
site_controller_1 = Goldberg::SiteController.new
|
|
25
|
+
site_controller_1.permission = @p
|
|
26
|
+
site_controller_2 = Goldberg::SiteController.new
|
|
27
|
+
site_controller_2.permission = @p
|
|
28
|
+
|
|
29
|
+
site_controller_1.name = name_1
|
|
30
|
+
site_controller_2.name = name_2
|
|
31
|
+
|
|
32
|
+
assert(site_controller_1.save)
|
|
33
|
+
assert(site_controller_2.save)
|
|
34
|
+
|
|
35
|
+
site_controller_2.name = name_1
|
|
36
|
+
|
|
37
|
+
assert(!site_controller_2.save)
|
|
38
|
+
assert(site_controller_2.errors.invalid?(:name))
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
#create so the classes method can be tested...
|
|
43
|
+
class ThereShouldBeNoSuchRealClassNameGoldbergTestController < ApplicationController
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
def test_classes_finds_direct_controller_derivatives
|
|
48
|
+
classes = Goldberg::SiteController.classes
|
|
49
|
+
assert(classes.has_value?(SiteControllerTest::ThereShouldBeNoSuchRealClassNameGoldbergTestController))
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
end
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
require File.dirname(__FILE__) + '/../test_helper'
|
|
2
|
+
|
|
3
|
+
class SystemSettingsTest < Test::Unit::TestCase
|
|
4
|
+
include Goldberg::TestHelper
|
|
5
|
+
|
|
6
|
+
def test_public_role
|
|
7
|
+
public_role = Goldberg::Role.find :first
|
|
8
|
+
ss = Goldberg::SystemSettings.create(:public_role_id => public_role.id)
|
|
9
|
+
assert_equal(public_role, ss.public_role)
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def test_public_role_raises_when_role_not_found
|
|
13
|
+
ss = Goldberg::SystemSettings.create
|
|
14
|
+
assert_raise(ActiveRecord::RecordNotFound) {ss.public_role}
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def test_site_default_page
|
|
18
|
+
page = Goldberg::ContentPage.find :first
|
|
19
|
+
ss = Goldberg::SystemSettings.create(:site_default_page_id => page.id)
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
def test_site_default_page_raises_when_page_not_found
|
|
24
|
+
ss = Goldberg::SystemSettings.create
|
|
25
|
+
assert_raise(ActiveRecord::RecordNotFound) {ss.site_default_page}
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
def test_not_found_page
|
|
30
|
+
page = Goldberg::ContentPage.find :first
|
|
31
|
+
ss = Goldberg::SystemSettings.create(:not_found_page_id => page.id)
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
def test_not_found_page_raises_when_page_not_found
|
|
36
|
+
ss = Goldberg::SystemSettings.create
|
|
37
|
+
assert_raise(ActiveRecord::RecordNotFound) {ss.not_found_page}
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
def test_permission_denied_page
|
|
42
|
+
page = Goldberg::ContentPage.find :first
|
|
43
|
+
ss = Goldberg::SystemSettings.create(:permission_denied_page_id => page.id)
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
def test_permission_denied_page_raises_when_page_permission_denied
|
|
48
|
+
ss = Goldberg::SystemSettings.create
|
|
49
|
+
assert_raise(ActiveRecord::RecordNotFound) {ss.permission_denied_page}
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
def test_session_expired_page
|
|
54
|
+
page = Goldberg::ContentPage.find :first
|
|
55
|
+
ss = Goldberg::SystemSettings.create(:session_expired_page_id => page.id)
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
def test_session_expired_page_raises_when_page_session_expired
|
|
60
|
+
ss = Goldberg::SystemSettings.create
|
|
61
|
+
assert_raise(ActiveRecord::RecordNotFound) {ss.session_expired_page}
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
def test_system_pages_returns_nil_when_tested_page_not_system_page
|
|
66
|
+
ss = Goldberg::SystemSettings.create
|
|
67
|
+
page = Goldberg::ContentPage.find :first
|
|
68
|
+
assert_nil(ss.system_pages(page.id))
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
end
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
require File.dirname(__FILE__) + '/../test_helper'
|
|
2
|
+
|
|
3
|
+
class UserTest < Test::Unit::TestCase
|
|
4
|
+
include Goldberg::TestHelper
|
|
5
|
+
|
|
6
|
+
def setup
|
|
7
|
+
@role = Goldberg::Role.find :first
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def test_requires_name
|
|
11
|
+
user = Goldberg::User.new
|
|
12
|
+
assert(!user.valid?)
|
|
13
|
+
assert(user.errors.invalid?(:name))
|
|
14
|
+
assert(!user.save)
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
def test_name_unique
|
|
19
|
+
name_1 = 'NAME1'
|
|
20
|
+
name_2 = 'NAME2'
|
|
21
|
+
name_1.freeze
|
|
22
|
+
name_2.freeze
|
|
23
|
+
|
|
24
|
+
user_1 = Goldberg::User.new(:name => name_1)
|
|
25
|
+
user_1.role = @role
|
|
26
|
+
user_1.clear_password = 'fred'
|
|
27
|
+
user_2 = Goldberg::User.new(:name => name_2)
|
|
28
|
+
user_2.role = @role
|
|
29
|
+
user_2.clear_password = 'fred'
|
|
30
|
+
|
|
31
|
+
assert(user_1.save)
|
|
32
|
+
assert(user_2.save)
|
|
33
|
+
|
|
34
|
+
user_2.name = name_1
|
|
35
|
+
assert(!user_2.save)
|
|
36
|
+
assert(!user_2.valid?)
|
|
37
|
+
assert(user_2.errors.invalid?(:name))
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
def test_password_updated_on_save_when_clear_password_set
|
|
42
|
+
user = Goldberg::User.new(:name => 'name')
|
|
43
|
+
user.role = @role
|
|
44
|
+
user.clear_password = 'fred'
|
|
45
|
+
assert(user.save)
|
|
46
|
+
|
|
47
|
+
saved_password = user.password
|
|
48
|
+
saved_salt = user.password_salt
|
|
49
|
+
|
|
50
|
+
user.clear_password = 'test123'
|
|
51
|
+
assert(user.save)
|
|
52
|
+
|
|
53
|
+
assert_not_equal(saved_password, user.password)
|
|
54
|
+
assert_not_equal(saved_salt, user.password_salt)
|
|
55
|
+
|
|
56
|
+
saved_password = user.password
|
|
57
|
+
saved_salt = user.password_salt
|
|
58
|
+
|
|
59
|
+
user.name = 'haha'
|
|
60
|
+
assert(user.name)
|
|
61
|
+
|
|
62
|
+
assert_equal(saved_password, user.password)
|
|
63
|
+
assert_equal(saved_salt, user.password_salt)
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
def test_clear_password_set_nil_on_save
|
|
68
|
+
new_pass = 'test123'
|
|
69
|
+
new_pass.freeze
|
|
70
|
+
|
|
71
|
+
user = Goldberg::User.new(:name => 'name')
|
|
72
|
+
user.role = @role
|
|
73
|
+
assert(!user.save)
|
|
74
|
+
|
|
75
|
+
user.clear_password = new_pass
|
|
76
|
+
assert_equal(new_pass, user.clear_password)
|
|
77
|
+
assert(user.save)
|
|
78
|
+
assert_nil(user.clear_password)
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
def test_check_password
|
|
83
|
+
first_pass = 'test'
|
|
84
|
+
new_pass = 'test1'
|
|
85
|
+
first_pass.freeze
|
|
86
|
+
new_pass.freeze
|
|
87
|
+
|
|
88
|
+
assert_not_equal(first_pass, new_pass)
|
|
89
|
+
|
|
90
|
+
user = Goldberg::User.new(:name => 'user')
|
|
91
|
+
user.role = @role
|
|
92
|
+
user.clear_password = first_pass
|
|
93
|
+
assert(user.save)
|
|
94
|
+
|
|
95
|
+
assert(user.check_password(first_pass))
|
|
96
|
+
assert(!user.check_password(new_pass))
|
|
97
|
+
|
|
98
|
+
user.clear_password = new_pass
|
|
99
|
+
assert(user.save)
|
|
100
|
+
|
|
101
|
+
assert(user.check_password(new_pass))
|
|
102
|
+
assert(!user.check_password(first_pass))
|
|
103
|
+
end
|
|
104
|
+
end
|