aura 0.0.1.pre10
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +6 -0
- data/.travis.yml +3 -0
- data/Gemfile +2 -0
- data/HISTORY.md +95 -0
- data/README.md +53 -0
- data/Rakefile +27 -0
- data/Scribefile +8 -0
- data/app/css/_utilities.scss +88 -0
- data/app/css/admin.scss +21 -0
- data/app/css/admin/_settings.scss +136 -0
- data/app/css/admin/chrome.scss +208 -0
- data/app/css/admin/common.scss +78 -0
- data/app/css/admin/forms.scss +342 -0
- data/app/css/admin/jquery_wysiwyg.scss +96 -0
- data/app/css/admin/loading.scss +18 -0
- data/app/css/admin/meta.scss +42 -0
- data/app/css/admin/reset.scss +46 -0
- data/app/css/admin/sections.scss +79 -0
- data/app/css/admin/setup.scss +22 -0
- data/app/css/admin/sidebar.scss +136 -0
- data/app/css/admin/slug.scss +78 -0
- data/app/css/admin/uiscreen.scss +22 -0
- data/app/css/admin/wysiwyg_field.scss +11 -0
- data/app/css/admin_watermark.scss +23 -0
- data/app/css/default_home_page.scss +13 -0
- data/app/css/login.scss +47 -0
- data/app/helpers/admin_helpers.rb +59 -0
- data/app/helpers/flash_helpers.rb +86 -0
- data/app/helpers/form_builder_helpers.rb +9 -0
- data/app/helpers/html_helpers.rb +27 -0
- data/app/helpers/jquery_helpers.rb +26 -0
- data/app/helpers/main_helpers.rb +67 -0
- data/app/helpers/page_helpers.rb +92 -0
- data/app/helpers/template_helpers.rb +94 -0
- data/app/helpers/user_helpers.rb +45 -0
- data/app/init/admin.rb +34 -0
- data/app/init/extensions.rb +18 -0
- data/app/init/pistol.rb +11 -0
- data/app/init/sequel.rb +11 -0
- data/app/main.rb +106 -0
- data/app/migrations/page.rb +29 -0
- data/app/migrations/settings.rb +11 -0
- data/app/migrations/user.rb +13 -0
- data/app/models/page.rb +116 -0
- data/app/models/page_seed.rb +47 -0
- data/app/models/settings.rb +59 -0
- data/app/models/user.rb +60 -0
- data/app/routes/admin.rb +44 -0
- data/app/routes/css_js.rb +53 -0
- data/app/routes/design_tests.rb +15 -0
- data/app/routes/editor.rb +152 -0
- data/app/routes/site.rb +33 -0
- data/app/routes/user.rb +48 -0
- data/app/views/admin/_back_to_dashboard.haml +3 -0
- data/app/views/admin/dashboard.haml +46 -0
- data/app/views/admin/layout.haml +73 -0
- data/app/views/admin/settings.haml +40 -0
- data/app/views/admin/settings/database.haml +42 -0
- data/app/views/base/crumbs.haml +50 -0
- data/app/views/base/delete.haml +19 -0
- data/app/views/base/edit.haml +61 -0
- data/app/views/base/errors.haml +10 -0
- data/app/views/base/form.haml +11 -0
- data/app/views/base/list.haml +14 -0
- data/app/views/base/list_actions.haml +4 -0
- data/app/views/base/list_item.haml +7 -0
- data/app/views/base/nav.haml +36 -0
- data/app/views/base/new.haml +36 -0
- data/app/views/base/preview.haml +28 -0
- data/app/views/base/tabs.haml +12 -0
- data/app/views/default_home_page.haml +15 -0
- data/app/views/design_tests/admin_styles.haml +58 -0
- data/app/views/form_builder/builder.haml +29 -0
- data/app/views/page/edit.haml +29 -0
- data/app/views/page/form.haml +22 -0
- data/app/views/page/meta_form.haml +22 -0
- data/app/views/page/new.haml +26 -0
- data/app/views/user/edit.haml +52 -0
- data/app/views/user/form.haml +43 -0
- data/app/views/user/list.haml +11 -0
- data/app/views/user/login.haml +33 -0
- data/app/views/user/new.haml +25 -0
- data/app/views/user/welcome.haml +29 -0
- data/app/views/watermark/watermark.haml +16 -0
- data/aura.gemspec +36 -0
- data/bin/aura +8 -0
- data/config/database.rb +12 -0
- data/config/extensions.rb +5 -0
- data/config/scss.rb +14 -0
- data/config/user.rb +10 -0
- data/default/.gitignore +6 -0
- data/default/Gemfile +11 -0
- data/default/README.md +24 -0
- data/default/Rakefile +8 -0
- data/default/app/README +3 -0
- data/default/app/css/.gitignore +0 -0
- data/default/app/helpers/helpers.rb.example +9 -0
- data/default/app/js/.gitignore +0 -0
- data/default/app/migrations/model.rb.example +20 -0
- data/default/app/models/model.rb.example +11 -0
- data/default/app/models/page-ext.rb.example +17 -0
- data/default/app/routes/site.rb.example +5 -0
- data/default/app/views/hello.haml.example +1 -0
- data/default/config.ru +3 -0
- data/default/config/.gitignore +0 -0
- data/default/config/database.rb.example +30 -0
- data/default/config/extensions.rb +5 -0
- data/default/config/user.rb.example +10 -0
- data/default/db/.gitignore +0 -0
- data/default/init.rb +15 -0
- data/default/public/.gitignore +0 -0
- data/extensions/contact_form/migrations/contact_form.rb +13 -0
- data/extensions/contact_form/models/contact_form.rb +13 -0
- data/extensions/contact_form/routes/contact_form.rb +11 -0
- data/extensions/contact_form/views/contact_form/edit.haml +8 -0
- data/extensions/contact_form/views/contact_form/form.haml +3 -0
- data/extensions/contact_form/views/contact_form/nav.haml +42 -0
- data/extensions/contact_form/views/contact_form/responses.haml +20 -0
- data/extensions/contact_form/views/contact_form/tabs.haml +8 -0
- data/extensions/default_theme/css/theme/_settings.scss +3 -0
- data/extensions/default_theme/css/theme/chrome.scss +66 -0
- data/extensions/default_theme/css/theme/reset.scss +34 -0
- data/extensions/default_theme/css/theme/style.scss +3 -0
- data/extensions/default_theme/info.yml +2 -0
- data/extensions/default_theme/public/browse.png +0 -0
- data/extensions/default_theme/views/base/id_portfolio.haml +32 -0
- data/extensions/default_theme/views/base/show.haml +31 -0
- data/extensions/default_theme/views/errors/error.haml +9 -0
- data/extensions/default_theme/views/errors/not_found.haml +11 -0
- data/extensions/default_theme/views/layout.haml +33 -0
- data/lib/aura.rb +315 -0
- data/lib/aura/admin.rb +41 -0
- data/lib/aura/app.rb +4 -0
- data/lib/aura/cli.rb +19 -0
- data/lib/aura/cli/base.rb +89 -0
- data/lib/aura/cli/helpers.rb +32 -0
- data/lib/aura/editor.rb +30 -0
- data/lib/aura/extension.rb +189 -0
- data/lib/aura/files.rb +38 -0
- data/lib/aura/menu.rb +142 -0
- data/lib/aura/models.rb +80 -0
- data/lib/aura/public.rb +68 -0
- data/lib/aura/rendering.rb +134 -0
- data/lib/aura/seeder.rb +38 -0
- data/lib/aura/slugs.rb +87 -0
- data/lib/aura/subtype.rb +48 -0
- data/lib/aura/tasks.rb +24 -0
- data/lib/aura/tasks/common.rb +17 -0
- data/lib/aura/tasks/db.rake +54 -0
- data/lib/aura/utils.rb +81 -0
- data/lib/aura/version.rb +25 -0
- data/lib/core/hasharray.rb +65 -0
- data/lib/core/object_ext.rb +9 -0
- data/lib/sequel/plugins/aura_custom.rb +16 -0
- data/lib/sequel/plugins/aura_editable.rb +39 -0
- data/lib/sequel/plugins/aura_hierarchy.rb +82 -0
- data/lib/sequel/plugins/aura_model.rb +271 -0
- data/lib/sequel/plugins/aura_renderable.rb +42 -0
- data/lib/sequel/plugins/aura_sluggable.rb +103 -0
- data/lib/sequel/plugins/aura_subtyped.rb +83 -0
- data/lib/terra.rb +185 -0
- data/lib/terra/ext.rb +16 -0
- data/lib/terra/field.rb +98 -0
- data/lib/terra/fields.rb +122 -0
- data/lib/terra/fieldset.rb +93 -0
- data/lib/terra/form.rb +111 -0
- data/manual/configuration.md +42 -0
- data/manual/extensions.md +45 -0
- data/manual/files.md +70 -0
- data/manual/helpers.md +39 -0
- data/manual/index.md +65 -0
- data/manual/models.md +58 -0
- data/manual/recipes.md +38 -0
- data/manual/recipes/bundling_sample_data.md +30 -0
- data/manual/recipes/creating_themes.md +10 -0
- data/manual/recipes/using_markdown_or_textile.md +24 -0
- data/manual/routes.md +39 -0
- data/manual/theming.md +55 -0
- data/manual/views.md +128 -0
- data/public/hi.html +0 -0
- data/public/images/admin/back.png +0 -0
- data/public/images/admin/browse.png +0 -0
- data/public/images/admin/mock-bg.png +0 -0
- data/public/images/admin/top-loader.gif +0 -0
- data/public/images/admin/uiscreen-loader.gif +0 -0
- data/public/images/admin_icons/add.png +0 -0
- data/public/images/admin_icons/contact.png +0 -0
- data/public/images/admin_icons/dashboard.png +0 -0
- data/public/images/admin_icons/generic.png +0 -0
- data/public/images/admin_icons/home-12.png +0 -0
- data/public/images/admin_icons/page.png +0 -0
- data/public/images/admin_icons/settings.png +0 -0
- data/public/images/jquery.wysiwyg.gif +0 -0
- data/public/js/admin.form_builder.js +15 -0
- data/public/js/admin.js +62 -0
- data/public/js/admin.layout.js +53 -0
- data/public/js/admin.nav.js +241 -0
- data/public/js/admin.slug.js +46 -0
- data/public/js/admin.subpage.js +15 -0
- data/public/js/jquery.hashlisten.js +85 -0
- data/public/js/jquery.js +166 -0
- data/public/js/jquery.livenavigate.js +58 -0
- data/public/js/jquery.livequery.js +226 -0
- data/public/js/jquery.quickvalidate.js +164 -0
- data/public/js/jquery.tmpl.js +486 -0
- data/public/js/jquery.uiscreen.js +150 -0
- data/public/js/jquery.wysiwyg.js +2339 -0
- data/public/js/jqueryui.js +766 -0
- data/public/js/lib.dirty.js +11 -0
- data/public/js/lib.loading.js +23 -0
- data/public/js/lib.wysiwyg.js +155 -0
- data/public/js/underscore-1.1.7.js +27 -0
- data/test/app/app/css/test_raw.css +1 -0
- data/test/app/app/css/test_sass.sass +3 -0
- data/test/app/app/damogram.txt +1 -0
- data/test/app/app/js/test_coffee.coffee +4 -0
- data/test/app/app/js/test_javascript.js +4 -0
- data/test/app/init.rb +5 -0
- data/test/stories/admin_css_story.rb +18 -0
- data/test/stories/css_js_story.rb +29 -0
- data/test/stories/first_login_story.rb +29 -0
- data/test/stories/visit_story.rb +39 -0
- data/test/stories_helper.rb +58 -0
- data/test/test_cli_helper.rb +31 -0
- data/test/test_helper.rb +111 -0
- data/test/test_temp_helper.rb +9 -0
- data/test/unit/cli_test.rb +38 -0
- data/test/unit/dump_test.rb +14 -0
- data/test/unit/extensions_test.rb +18 -0
- data/test/unit/files_test.rb +14 -0
- data/test/unit/flash_helper_test.rb +36 -0
- data/test/unit/html_helper_test.rb +29 -0
- data/test/unit/jquery_helper_test.rb +18 -0
- data/test/unit/model_test.rb +34 -0
- data/test/unit/page_helpers_test.rb +36 -0
- data/test/unit/seeder_test.rb +15 -0
- data/test/unit/settings_test.rb +29 -0
- data/test/unit/slug_test.rb +39 -0
- data/test/unit/ss_migration_test.rb +14 -0
- data/test/unit/terra_test.rb +125 -0
- data/test/unit/utils_test.rb +11 -0
- data/vendor/sinatra-sequel/.gitignore +3 -0
- data/vendor/sinatra-sequel/COPYING +18 -0
- data/vendor/sinatra-sequel/README.md +84 -0
- data/vendor/sinatra-sequel/Rakefile +67 -0
- data/vendor/sinatra-sequel/lib/sinatra/sequel.rb +73 -0
- data/vendor/sinatra-sequel/sinatra-sequel.gemspec +39 -0
- data/vendor/sinatra-sequel/spec/spec_sinatra_sequel.rb +70 -0
- metadata +536 -0
data/test/test_helper.rb
ADDED
@@ -0,0 +1,111 @@
|
|
1
|
+
ENV['RACK_ENV'] = 'test'
|
2
|
+
|
3
|
+
ENV['BUNDLE_GEMFILE'] = File.expand_path('../../Gemfile', __FILE__)
|
4
|
+
require 'bundler'
|
5
|
+
Bundler.setup
|
6
|
+
|
7
|
+
require File.expand_path('../app/init.rb', __FILE__)
|
8
|
+
require "rack/test"
|
9
|
+
|
10
|
+
require "test/unit"
|
11
|
+
require "contest"
|
12
|
+
|
13
|
+
require "redcloth"
|
14
|
+
require "rdiscount"
|
15
|
+
|
16
|
+
require File.expand_path('../test_temp_helper', __FILE__)
|
17
|
+
require File.expand_path('../test_cli_helper', __FILE__)
|
18
|
+
|
19
|
+
class Test::Unit::TestCase
|
20
|
+
include Rack::Test::Methods
|
21
|
+
include Rtopia
|
22
|
+
|
23
|
+
include TempHelper
|
24
|
+
include CliHelper
|
25
|
+
|
26
|
+
# Stub
|
27
|
+
unless defined?(::Para)
|
28
|
+
def self.enable_parallel() end
|
29
|
+
def self.disable_parallel() end
|
30
|
+
end
|
31
|
+
|
32
|
+
disable_parallel
|
33
|
+
|
34
|
+
def setup
|
35
|
+
Main.flush!
|
36
|
+
Aura.run_migrations!
|
37
|
+
Main.seed
|
38
|
+
Aura.set 'site.name', 'TESTSITE'
|
39
|
+
end
|
40
|
+
|
41
|
+
def app
|
42
|
+
Main.new
|
43
|
+
end
|
44
|
+
|
45
|
+
def db
|
46
|
+
Main.database
|
47
|
+
end
|
48
|
+
|
49
|
+
def aura(cmd)
|
50
|
+
old, $0 = $0, 'aura_'
|
51
|
+
cli { Aura::CLI.run *cmd.split(' ') }
|
52
|
+
ensure
|
53
|
+
$0 = old
|
54
|
+
end
|
55
|
+
|
56
|
+
def p(what, obj=nil)
|
57
|
+
return unless ENV['verbose']
|
58
|
+
|
59
|
+
what, obj = nil, what if obj.nil?
|
60
|
+
str = obj.is_a?(String) ? obj : obj.inspect
|
61
|
+
|
62
|
+
file, line = p_source
|
63
|
+
basename = File.basename(file)
|
64
|
+
|
65
|
+
if what
|
66
|
+
puts "\n\033[1;32m%20s\033[1;30m:%-3s\033[1;30m %s" % [basename, line, what]
|
67
|
+
puts "\033[0m%-24s %s" % ['', str]
|
68
|
+
else
|
69
|
+
puts "\n\033[1;32m%20s\033[1;30m:%-3s\033[0m %s" % [basename, line, str]
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
# @return [Array] [ app/test/unit/migration_test.rb, 23 ]
|
74
|
+
def p_source
|
75
|
+
backtrace[2].split(':')[0..1]
|
76
|
+
end
|
77
|
+
|
78
|
+
def backtrace
|
79
|
+
raise 1
|
80
|
+
rescue => e
|
81
|
+
e.backtrace[2..-1]
|
82
|
+
end
|
83
|
+
end
|
84
|
+
|
85
|
+
# For testing helpers
|
86
|
+
class MockSinatra
|
87
|
+
def settings; self.class; end
|
88
|
+
def self.settings; self; end
|
89
|
+
def self.production?; @@production; end
|
90
|
+
def self.development?; !@@production; end
|
91
|
+
def session; @session ||= Hash.new; end
|
92
|
+
|
93
|
+
def initialize
|
94
|
+
@@production = true
|
95
|
+
end
|
96
|
+
|
97
|
+
def production(&blk)
|
98
|
+
yield self
|
99
|
+
end
|
100
|
+
|
101
|
+
def development(&blk)
|
102
|
+
@@production = false
|
103
|
+
yield self
|
104
|
+
@@production = true
|
105
|
+
end
|
106
|
+
|
107
|
+
def request
|
108
|
+
require 'ostruct'
|
109
|
+
return OpenStruct.new(:fullpath => '/', :xhr? => false)
|
110
|
+
end
|
111
|
+
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
require File.expand_path('../../test_helper', __FILE__)
|
2
|
+
require 'aura/cli'
|
3
|
+
|
4
|
+
class CLITest < Test::Unit::TestCase
|
5
|
+
BIN_ROOT = File.expand_path('../../../bin', __FILE__)
|
6
|
+
|
7
|
+
test "aura new (success)" do
|
8
|
+
in_temp_dir { |dir|
|
9
|
+
aura "new x"
|
10
|
+
|
11
|
+
assert File.directory?('x/')
|
12
|
+
assert File.file?('x/Gemfile')
|
13
|
+
assert File.file?('x/config.ru')
|
14
|
+
|
15
|
+
aura "new x"
|
16
|
+
assert stderr.include?("already exists")
|
17
|
+
}
|
18
|
+
end
|
19
|
+
|
20
|
+
test "aura -v" do
|
21
|
+
aura "-v"
|
22
|
+
assert stderr.empty?
|
23
|
+
assert stdout.include?(Aura.version)
|
24
|
+
end
|
25
|
+
|
26
|
+
test "aura --version" do
|
27
|
+
aura "--version"
|
28
|
+
assert stderr.empty?
|
29
|
+
assert stdout.include?(Aura.version)
|
30
|
+
end
|
31
|
+
|
32
|
+
test "aura" do
|
33
|
+
aura ""
|
34
|
+
assert stderr.include?("Usage: aura_ <command>")
|
35
|
+
assert stderr.include?("new")
|
36
|
+
assert stderr.include?(Aura::CLI.task(:new).description)
|
37
|
+
end
|
38
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
require File.expand_path('../../test_helper', __FILE__)
|
2
|
+
|
3
|
+
class DumpTest < Test::Unit::TestCase
|
4
|
+
test "dump properly" do
|
5
|
+
dump = Aura.db_dump
|
6
|
+
assert dump.is_a?(Hash)
|
7
|
+
assert dump.keys.include?(:settings)
|
8
|
+
assert dump.keys.include?(:pages)
|
9
|
+
|
10
|
+
require 'yaml'
|
11
|
+
yml = YAML::dump(dump)
|
12
|
+
assert_equal yml, Aura.db_dump_yaml
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require File.expand_path('../../test_helper', __FILE__)
|
2
|
+
|
3
|
+
class ExtensionsTest < Test::Unit::TestCase
|
4
|
+
test "Should load the needed extensions" do
|
5
|
+
|
6
|
+
real_names = Aura::Extension.active.map { |ext| ext.name }
|
7
|
+
needed_names = Main.additional_extensions
|
8
|
+
|
9
|
+
p real_names
|
10
|
+
assert_equal real_names.sort, needed_names.sort
|
11
|
+
end
|
12
|
+
|
13
|
+
test "Extension.all" do
|
14
|
+
all = Aura::Extension.all
|
15
|
+
|
16
|
+
assert_equal 2, all.size
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
require File.expand_path('../../test_helper', __FILE__)
|
2
|
+
|
3
|
+
class FilesTest < Test::Unit::TestCase
|
4
|
+
test "[]" do
|
5
|
+
path = Aura.files['damogram.txt']
|
6
|
+
assert path.is_a?(String)
|
7
|
+
assert_equal "Beedlebrox!", File.read(path).strip
|
8
|
+
end
|
9
|
+
|
10
|
+
test "glob" do
|
11
|
+
paths = Aura.files.glob('d*')
|
12
|
+
assert_equal [ Aura.files['damogram.txt'] ], paths
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
require File.expand_path('../../test_helper', __FILE__)
|
2
|
+
|
3
|
+
class FlashHelperTest < Test::Unit::TestCase
|
4
|
+
setup do
|
5
|
+
@app = MockSinatra.new
|
6
|
+
@app.extend Main::FlashHelpers
|
7
|
+
end
|
8
|
+
|
9
|
+
test "flash errors" do
|
10
|
+
@app.production do |a|
|
11
|
+
assert ! a.flash_errors?
|
12
|
+
|
13
|
+
a.flash_error "Amazing!"
|
14
|
+
assert a.flash_errors?
|
15
|
+
|
16
|
+
# Display the errors
|
17
|
+
errors = a.flash_errors
|
18
|
+
assert errors.is_a? Array
|
19
|
+
assert ! a.flash_errors?
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
test "flash" do
|
24
|
+
@app.production do |a|
|
25
|
+
assert ! a.flash_messages?
|
26
|
+
|
27
|
+
a.flash_message "Amazing!"
|
28
|
+
assert a.flash_messages?
|
29
|
+
|
30
|
+
# Display the messages
|
31
|
+
messages = a.flash_messages
|
32
|
+
assert messages.is_a? Array
|
33
|
+
assert ! a.flash_messages?
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
require File.expand_path('../../test_helper', __FILE__)
|
2
|
+
|
3
|
+
class HtmlHelper < Test::Unit::TestCase
|
4
|
+
include Main::HtmlHelpers
|
5
|
+
|
6
|
+
test "test" do
|
7
|
+
assert_equal "<x></x>", html("<x>")
|
8
|
+
end
|
9
|
+
|
10
|
+
test "markdown pre" do
|
11
|
+
assert_equal html("<pre format=markdown>hi</pre>"), "<p>hi</p>"
|
12
|
+
end
|
13
|
+
|
14
|
+
test "markdown" do
|
15
|
+
assert_equal html("<markdown>hi</markdown>"), "<p>hi</p>"
|
16
|
+
assert_equal html("<markdown>hi</markdown>\n"), "<p>hi</p>"
|
17
|
+
assert_equal html(" \n <markdown>hi</markdown> \n "), "<p>hi</p>"
|
18
|
+
end
|
19
|
+
|
20
|
+
test "stupidity" do
|
21
|
+
assert_equal "<p>hi</p>", html("<p><pre format=markdown>hi</pre>")
|
22
|
+
assert_equal "<p>hi</p>", html("<p></p><pre format=markdown>hi</pre><p></p>")
|
23
|
+
end
|
24
|
+
|
25
|
+
test "textile" do
|
26
|
+
assert_equal html('<textile>"ab":/cd</textile>'), '<p><a href="/cd">ab</a></p>'
|
27
|
+
assert_equal "<h2>Hello</h2>\n<p>Whats up?</p>", html("<textile>\nh2. Hello\n\nWhats up?\n</textile>")
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class JqueryHelperTest < Test::Unit::TestCase
|
4
|
+
setup do
|
5
|
+
@app = MockSinatra.new
|
6
|
+
@app.extend Main::JqueryHelpers
|
7
|
+
end
|
8
|
+
|
9
|
+
should "jquery" do
|
10
|
+
@app.production do |a|
|
11
|
+
assert @app.jquery.match(/googleapis\.com/)
|
12
|
+
end
|
13
|
+
|
14
|
+
@app.development do |a|
|
15
|
+
assert_equal "<script type='text/javascript' src='/js/jquery.js'></script>", @app.jquery
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class ModelTest < Test::Unit::TestCase
|
4
|
+
setup do
|
5
|
+
@main = Page.new(:title => "About us")
|
6
|
+
@main.save
|
7
|
+
|
8
|
+
@sub = Page.new(:title => "Mission and vision", :parent_id => @main.id)
|
9
|
+
@sub.save
|
10
|
+
end
|
11
|
+
|
12
|
+
test "Children" do
|
13
|
+
# Make sure the parenting worked right
|
14
|
+
assert @sub.parent == @main
|
15
|
+
assert @main.children.include?(@sub)
|
16
|
+
assert @main.submenu.include?(@sub)
|
17
|
+
end
|
18
|
+
|
19
|
+
test "Submenu" do
|
20
|
+
assert @main.submenu.include?(@sub)
|
21
|
+
|
22
|
+
@sub.update :shown_in_menu => false
|
23
|
+
assert !@main.submenu.include?(@sub)
|
24
|
+
end
|
25
|
+
|
26
|
+
test "Slugs" do
|
27
|
+
assert @main.slug == 'about-us'
|
28
|
+
assert @sub.slug == 'mission-and-vision'
|
29
|
+
|
30
|
+
new = Page.new(:title => 'about-us')
|
31
|
+
new.save
|
32
|
+
assert new.slug == 'about-us-2'
|
33
|
+
end
|
34
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class PageHelpersTest < Test::Unit::TestCase
|
4
|
+
setup do
|
5
|
+
@app = MockSinatra.new
|
6
|
+
@app.extend Main::PageHelpers
|
7
|
+
end
|
8
|
+
|
9
|
+
test "body_class" do
|
10
|
+
@app.production do |a|
|
11
|
+
a.body_class 'form'
|
12
|
+
a.body_class 'sidebar'
|
13
|
+
assert_equal 'form sidebar', a.body_class
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
test "title" do
|
18
|
+
@app.production do |a|
|
19
|
+
a.title 'hi'
|
20
|
+
assert_equal 'hi', a.title
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
test "link_to" do
|
25
|
+
@app.production do |a|
|
26
|
+
link = a.link_to 'http://google.com'
|
27
|
+
assert_equal '<a href="http://google.com"></a>', link
|
28
|
+
|
29
|
+
link = a.link_to 'http://google.com', "G thing"
|
30
|
+
assert_equal '<a href="http://google.com">G thing</a>', link
|
31
|
+
|
32
|
+
link = a.link_to 'http://google.com', lambda { "Hello" }
|
33
|
+
assert_equal '<a href="http://google.com">Hello</a>', link
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
require File.expand_path('../../test_helper', __FILE__)
|
2
|
+
|
3
|
+
class SeederTest < Test::Unit::TestCase
|
4
|
+
should "seed properly" do
|
5
|
+
Main.flush!
|
6
|
+
Aura.run_migrations!
|
7
|
+
Main.seed!
|
8
|
+
|
9
|
+
assert_equal 1, User.all.size
|
10
|
+
assert_equal Main.default_user, User.all.first.email
|
11
|
+
assert_equal nil, User.all.first.last_login
|
12
|
+
|
13
|
+
assert Aura.site_empty?
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class SettingsTest < Test::Unit::TestCase
|
4
|
+
test "Settings" do
|
5
|
+
Aura.set('site.name', 'Hello')
|
6
|
+
assert_equal 'Hello', Aura.get('site.name')
|
7
|
+
end
|
8
|
+
|
9
|
+
test "Default settings" do
|
10
|
+
assert_equal nil, Aura.get('jiggawatts')
|
11
|
+
|
12
|
+
# Should do it's thing.
|
13
|
+
Aura.default('jiggawatts', 1210)
|
14
|
+
assert_equal 1210, Aura.get('jiggawatts')
|
15
|
+
|
16
|
+
# Should not change.
|
17
|
+
Aura.default('jiggawatts', 31337)
|
18
|
+
assert_equal 1210, Aura.get('jiggawatts')
|
19
|
+
|
20
|
+
# *Should* change.
|
21
|
+
Aura.set('jiggawatts', 31337)
|
22
|
+
assert_equal 31337, Aura.get('jiggawatts')
|
23
|
+
|
24
|
+
# Should delete properly.
|
25
|
+
last = Aura.del('jiggawatts')
|
26
|
+
assert_equal 31337, last
|
27
|
+
assert_equal nil, Aura.get('jiggawatts')
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
require File.expand_path('../../test_helper', __FILE__)
|
2
|
+
|
3
|
+
class SlugTest < Test::Unit::TestCase
|
4
|
+
setup do
|
5
|
+
# With slug
|
6
|
+
@products = Page.new :title => 'Products', :slug => 'products'
|
7
|
+
@products.save
|
8
|
+
|
9
|
+
# No slug
|
10
|
+
@boots = Page.new :title => 'Boots', :parent => @products
|
11
|
+
@boots.save
|
12
|
+
end
|
13
|
+
|
14
|
+
should "save properly without complaints" do
|
15
|
+
assert ! @boots.nil?
|
16
|
+
assert ! @products.nil?
|
17
|
+
end
|
18
|
+
|
19
|
+
should "autoslug" do
|
20
|
+
assert Page[@products.id] == @products
|
21
|
+
assert Page[@products.id].slug == 'products'
|
22
|
+
|
23
|
+
assert Page[@boots.id] == @boots
|
24
|
+
assert Page[@boots.id].slug == 'boots'
|
25
|
+
|
26
|
+
boots_2 = Page.new :title => 'Boots', :parent => @products
|
27
|
+
boots_2.save
|
28
|
+
|
29
|
+
assert_equal 'boots-2', boots_2.slug
|
30
|
+
end
|
31
|
+
|
32
|
+
should "find records by their paths" do
|
33
|
+
page = Aura.find('/products')
|
34
|
+
assert page.id == @products.id
|
35
|
+
|
36
|
+
page = Aura.find('/products/boots')
|
37
|
+
assert page.id == @boots.id
|
38
|
+
end
|
39
|
+
end
|