refinerycms-core 2.0.10 → 2.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/assets/javascripts/refinery/admin.js.erb +126 -234
- data/app/assets/javascripts/refinery/ajaxy_pagination.js.coffee +1 -1
- data/app/assets/javascripts/refinery/boot_wym.js.erb +4 -8
- data/app/assets/javascripts/refinery/core.js +1 -1
- data/app/assets/javascripts/refinery/interface.js.coffee.erb +3 -16
- data/app/assets/javascripts/refinery/modal_dialogs.js.erb +0 -3
- data/app/assets/javascripts/refinery/nestedsortables.js +312 -312
- data/app/assets/javascripts/refinery/refinery.js.erb +14 -15
- data/app/assets/javascripts/refinery/site_bar.js +3 -9
- data/app/assets/javascripts/refinery/sortable_list.js +145 -0
- data/app/assets/javascripts/refinery/sortable_menu.js.coffee +3 -4
- data/app/assets/javascripts/refinery/submit_continue.js.coffee.erb +1 -2
- data/app/assets/javascripts/refinery/tree.js +3 -3
- data/app/assets/javascripts/refinery/wymeditor.js +6 -6
- data/{public → app/assets/javascripts}/wymeditor/GPL-license.txt +0 -0
- data/{public → app/assets/javascripts}/wymeditor/MIT-license.txt +0 -0
- data/{public → app/assets/javascripts}/wymeditor/README +0 -0
- data/app/assets/javascripts/wymeditor/browsers/mozilla.js.erb +10 -11
- data/app/assets/javascripts/wymeditor/browsers/webkit.js.erb +17 -18
- data/app/assets/javascripts/wymeditor/classes.js.erb +3 -5
- data/app/assets/javascripts/wymeditor/functions.js.erb +5 -1
- data/app/assets/javascripts/wymeditor/prototypes.js.erb +0 -3
- data/app/assets/javascripts/wymeditor/setup.js.erb +5 -5
- data/app/assets/javascripts/wymeditor/skins/refinery/skin.js +1 -4
- data/app/assets/javascripts/wymeditor/validators.js.erb +3 -2
- data/app/assets/stylesheets/{formatting.css.scss → refinery/formatting.css.scss} +0 -0
- data/app/assets/stylesheets/refinery/layout.css.scss +41 -11
- data/app/assets/stylesheets/{theme.css.scss → refinery/theme.css.scss} +0 -0
- data/app/controllers/refinery/sitemap_controller.rb +1 -5
- data/app/helpers/refinery/admin_helper.rb +6 -0
- data/app/helpers/refinery/image_helper.rb +2 -1
- data/app/helpers/refinery/menu_helper.rb +0 -49
- data/app/helpers/refinery/meta_helper.rb +7 -3
- data/app/helpers/refinery/site_bar_helper.rb +3 -15
- data/app/models/refinery/core/base_model.rb +2 -0
- data/{lib → app/presenters}/refinery/base_presenter.rb +1 -2
- data/app/views/layouts/application.html.erb +8 -7
- data/app/views/refinery/_content_page.html.erb +1 -1
- data/app/views/refinery/_google_analytics.html.erb +12 -5
- data/app/views/refinery/_head.html.erb +11 -15
- data/app/views/refinery/_header.html.erb +1 -4
- data/app/views/refinery/_javascripts.html.erb +14 -8
- data/app/views/refinery/_site_bar.html.erb +4 -4
- data/app/views/refinery/admin/_form_advanced_options_menu.html.erb +12 -0
- data/app/views/refinery/admin/_javascripts.html.erb +13 -1
- data/app/views/refinery/admin/_locale_picker.html.erb +11 -0
- data/app/views/refinery/admin/_make_sortable.html.erb +8 -5
- data/app/views/refinery/admin/_search.html.erb +1 -7
- data/app/views/refinery/admin/_search_header.html.erb +1 -0
- data/app/views/refinery/admin/_wysiwyg.html.erb +16 -0
- data/config/initializers/will_paginate_monkeypatch.rb +1 -1
- data/config/locales/bg.yml +5 -1
- data/config/locales/cs.yml +5 -1
- data/config/locales/da.yml +5 -1
- data/config/locales/de.yml +7 -3
- data/config/locales/el.yml +5 -1
- data/config/locales/en.yml +7 -1
- data/config/locales/es.yml +5 -1
- data/config/locales/fi.yml +5 -1
- data/config/locales/fr.yml +5 -1
- data/config/locales/hu.yml +82 -0
- data/config/locales/it.yml +38 -34
- data/config/locales/ja.yml +5 -1
- data/config/locales/ko.yml +5 -1
- data/config/locales/lt.yml +5 -1
- data/config/locales/lv.yml +5 -1
- data/config/locales/nb.yml +5 -1
- data/config/locales/nl.yml +36 -29
- data/config/locales/pl.yml +8 -1
- data/config/locales/pt-BR.yml +7 -3
- data/config/locales/pt.yml +82 -0
- data/config/locales/rs.yml +5 -1
- data/config/locales/ru.yml +5 -1
- data/config/locales/sk.yml +10 -3
- data/config/locales/sl.yml +5 -1
- data/config/locales/sv.yml +5 -1
- data/config/locales/tr.yml +82 -0
- data/config/locales/uk.yml +77 -0
- data/config/locales/vi.yml +5 -1
- data/config/locales/zh-CN.yml +5 -1
- data/config/locales/zh-TW.yml +5 -1
- data/config/routes.rb +3 -3
- data/lib/generators/refinery/cms/cms_generator.rb +29 -0
- data/lib/generators/refinery/cms/templates/.gitignore +1 -0
- data/lib/generators/refinery/cms/templates/app/views/sitemap/index.xml.builder +13 -13
- data/lib/generators/refinery/core/templates/config/initializers/refinery/core.rb.erb +8 -12
- data/lib/generators/refinery/dummy/templates/rails/database.yml +3 -3
- data/lib/generators/refinery/engine/engine_generator.rb +8 -12
- data/lib/generators/refinery/engine/templates/Gemfile +5 -39
- data/lib/generators/refinery/engine/templates/app/controllers/refinery/namespace/admin/plural_name_controller.rb.erb +4 -4
- data/lib/generators/refinery/engine/templates/app/models/refinery/namespace/singular_name.rb.erb +2 -3
- data/lib/generators/refinery/engine/templates/app/views/refinery/namespace/admin/plural_name/_actions.html.erb +1 -1
- data/lib/generators/refinery/engine/templates/app/views/refinery/namespace/admin/plural_name/_form.html.erb +31 -33
- data/lib/generators/refinery/engine/templates/app/views/refinery/namespace/admin/plural_name/_records.html.erb +1 -3
- data/lib/generators/refinery/engine/templates/app/views/refinery/namespace/admin/plural_name/_singular_name.html.erb +2 -2
- data/lib/generators/refinery/engine/templates/app/views/refinery/namespace/admin/plural_name/index.html.erb +1 -1
- data/lib/generators/refinery/engine/templates/config/locales/cs.yml +28 -0
- data/lib/generators/refinery/engine/templates/config/locales/it.yml +28 -0
- data/lib/generators/refinery/engine/templates/config/locales/nl.yml +6 -6
- data/lib/generators/refinery/engine/templates/config/locales/tr.yml +28 -0
- data/lib/generators/refinery/engine/templates/config/routes.rb.erb +2 -2
- data/lib/generators/refinery/engine/templates/db/seeds.rb.erb +1 -1
- data/lib/generators/refinery/engine/templates/lib/generators/refinery/extension_plural_name_generator.rb.erb +1 -1
- data/lib/generators/refinery/engine/templates/lib/refinery/plural_name/engine.rb.erb +1 -1
- data/lib/generators/refinery/engine/templates/spec/{requests → features}/refinery/namespace/admin/plural_name_spec.rb.erb +1 -1
- data/lib/generators/refinery/engine/templates/spec/spec_helper.rb +25 -49
- data/lib/generators/refinery/form/form_generator.rb +1 -13
- data/lib/generators/refinery/form/templates/app/models/refinery/namespace/singular_name.rb.erb +0 -4
- data/lib/generators/refinery/form/templates/app/views/refinery/namespace/admin/plural_name/_records.html.erb +2 -2
- data/lib/generators/refinery/form/templates/app/views/refinery/namespace/admin/plural_name/spam.html.erb +7 -6
- data/lib/generators/refinery/form/templates/config/locales/nl.yml +29 -29
- data/lib/generators/refinery/form/templates/config/locales/tr.yml +78 -0
- data/lib/generators/refinery/form/templates/config/routes.rb.erb +1 -1
- data/lib/generators/refinery/form/templates/db/migrate/1_create_plural_name.rb.erb +2 -6
- data/lib/generators/refinery/form/templates/db/seeds.rb.erb +1 -1
- data/lib/generators/refinery/form/templates/lib/refinery/plural_name/engine.rb.erb +1 -1
- data/lib/generators/refinery/form/templates/refinerycms-plural_name.gemspec +2 -5
- data/lib/refinery.rb +191 -0
- data/lib/refinery/admin/base_controller.rb +27 -16
- data/lib/refinery/application_controller.rb +15 -47
- data/lib/refinery/cli.rb +48 -27
- data/lib/refinery/core.rb +7 -183
- data/lib/refinery/core/configuration.rb +17 -9
- data/lib/refinery/core/engine.rb +11 -47
- data/lib/refinery/crud.rb +81 -66
- data/lib/refinery/engine.rb +52 -55
- data/lib/refinery/ext/action_view/helpers/form_builder.rb +2 -0
- data/lib/refinery/extension_generation.rb +208 -110
- data/lib/refinery/menu.rb +16 -7
- data/lib/refinery/menu_item.rb +56 -54
- data/lib/refinery/plugin.rb +11 -3
- data/lib/refinery/plugins.rb +14 -1
- data/lib/refinery/version.rb +3 -3
- data/refinerycms-core.gemspec +11 -10
- data/spec/controllers/refinery/admin/dummy_controller_spec.rb +57 -0
- data/spec/controllers/refinery/admin/refinery_core_controller_spec.rb +3 -4
- data/spec/controllers/refinery/sitemap_controller_spec.rb +1 -14
- data/spec/{requests → features}/refinery/admin/custom_assets_spec.rb +1 -1
- data/spec/{requests → features}/refinery/admin/dialogs_spec.rb +1 -1
- data/spec/features/refinery/admin/xhr_paging_spec.rb +55 -0
- data/spec/features/refinery/application_layout_spec.rb +19 -0
- data/spec/features/refinery/core_spec.rb +14 -0
- data/spec/{requests → features}/refinery/site_bar_spec.rb +1 -1
- data/spec/helpers/refinery/meta_helper_spec.rb +25 -0
- data/spec/lib/generators/refinery/cms/cms_generator_spec.rb +61 -0
- data/spec/lib/generators/refinery/engine/engine_generator_multiple_resources_spec.rb +28 -1
- data/spec/lib/generators/refinery/engine/engine_generator_sanity_check_spec.rb +7 -7
- data/spec/lib/generators/refinery/engine/engine_generator_spec.rb +69 -8
- data/spec/lib/generators/refinery/engine/engine_generator_with_i18n_spec.rb +0 -2
- data/spec/lib/generators/refinery/form/form_generator_spec.rb +9 -1
- data/spec/lib/refinery/application_controller_spec.rb +48 -63
- data/spec/lib/refinery/cli_spec.rb +136 -0
- data/spec/lib/refinery/core/configuration_spec.rb +17 -0
- data/spec/lib/refinery/core_spec.rb +19 -13
- data/spec/lib/refinery/crud_spec.rb +0 -4
- data/spec/lib/refinery/menu_spec.rb +16 -26
- data/spec/support/refinery.rb +6 -1
- data/{app → vendor}/assets/javascripts/jquery/GPL-LICENSE.txt +0 -0
- data/{app → vendor}/assets/javascripts/jquery/MIT-LICENSE.txt +0 -0
- data/vendor/assets/javascripts/jquery/jquery.browser.js +49 -0
- data/{app → vendor}/assets/javascripts/jquery/jquery.html5-placeholder-shim.js +0 -0
- data/{app → vendor}/assets/javascripts/jquery/jquery.jcarousel.js +0 -0
- data/{app → vendor}/assets/javascripts/jquery/jquery.textTruncate.js +0 -0
- data/{app → vendor}/assets/javascripts/jquery/jquery.timers.js +0 -0
- data/{app → vendor}/assets/javascripts/modernizr-min.js +0 -0
- metadata +231 -78
- data/app/assets/images/refinery/resolve_digital_footer_logo.png +0 -0
- data/app/assets/javascripts/dd_belatedpng.js +0 -13
- data/app/assets/javascripts/jquery/jquery.corner.js +0 -345
- data/app/assets/stylesheets/application.css.scss +0 -55
- data/app/assets/stylesheets/home.css.scss +0 -3
- data/app/views/refinery/_ie6check.html.erb +0 -63
- data/app/views/refinery/_menu.html.erb +0 -20
- data/app/views/refinery/_menu_branch.html.erb +0 -19
- data/lib/generators/refinery/engine/templates/Guardfile +0 -27
- data/lib/generators/refinery/engine/templates/app/views/refinery/namespace/admin/plural_name/_locale_picker.html.erb +0 -11
- data/lib/refinery/catch_all_routes.rb +0 -3
- data/lib/tasks/yard.rake +0 -30
- data/spec/requests/refinery/admin/controller_restriction_spec.rb +0 -27
- data/spec/requests/refinery/search_spec.rb +0 -71
@@ -0,0 +1,14 @@
|
|
1
|
+
module Refinery
|
2
|
+
module Core
|
3
|
+
describe Engine do
|
4
|
+
describe "#refinery_inclusion!" do
|
5
|
+
it "should be idempotent" do
|
6
|
+
expect { visit(refinery.root_path) }.to_not raise_error
|
7
|
+
Engine.refinery_inclusion!
|
8
|
+
Engine.refinery_inclusion!
|
9
|
+
expect { visit(refinery.root_path) }.to_not raise_error
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
module Refinery
|
4
|
+
describe MetaHelper do
|
5
|
+
|
6
|
+
describe '#canonical_id' do
|
7
|
+
context "when page doesn't exist" do
|
8
|
+
let(:page) { nil }
|
9
|
+
|
10
|
+
it 'returns nothing' do
|
11
|
+
helper.canonical_id(page).should be_nil
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
context 'when page exists' do
|
16
|
+
let(:page) { Page.new :slug => 'testing' }
|
17
|
+
|
18
|
+
it "returns the page's canonical slug with '-page' appended" do
|
19
|
+
helper.canonical_id(page).should == page.canonical_slug << '-page'
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
end
|
25
|
+
end
|
@@ -9,6 +9,37 @@ module Refinery
|
|
9
9
|
|
10
10
|
before do
|
11
11
|
prepare_destination
|
12
|
+
|
13
|
+
dir = "#{destination_root}/config/environments"
|
14
|
+
FileUtils.mkdir_p(dir)
|
15
|
+
File.open("#{dir}/development.rb", "w") do |file|
|
16
|
+
file.write <<-SPEC
|
17
|
+
Dummy::Application.configure do
|
18
|
+
config.action_mailer.test = true
|
19
|
+
end
|
20
|
+
SPEC
|
21
|
+
end
|
22
|
+
|
23
|
+
File.open("#{dir}/test.rb", "w") do |file|
|
24
|
+
file.write <<-SPEC
|
25
|
+
Dummy::Application.configure do
|
26
|
+
# config.action_mailer.test = true
|
27
|
+
end
|
28
|
+
SPEC
|
29
|
+
end
|
30
|
+
|
31
|
+
File.open("#{dir}/production.rb", "w") do |file|
|
32
|
+
file.write <<-SPEC
|
33
|
+
Dummy::Application.configure do
|
34
|
+
config.action_mailer.test = true
|
35
|
+
config.action_mailer.check = {
|
36
|
+
:test => true,
|
37
|
+
:check => true
|
38
|
+
}
|
39
|
+
end
|
40
|
+
SPEC
|
41
|
+
end
|
42
|
+
|
12
43
|
run_generator %w[--skip-db --skip-migrations]
|
13
44
|
end
|
14
45
|
|
@@ -40,5 +71,35 @@ module Refinery
|
|
40
71
|
end
|
41
72
|
}
|
42
73
|
end
|
74
|
+
|
75
|
+
describe "#ensure_environments_are_sane" do
|
76
|
+
it "wraps single line config.action_mailer setting" do
|
77
|
+
File.open("#{destination_root}/config/environments/development.rb") do |file|
|
78
|
+
file.read.should eq <<-SPEC
|
79
|
+
Dummy::Application.configure do
|
80
|
+
if config.respond_to?(:action_mailer)
|
81
|
+
config.action_mailer.test = true
|
82
|
+
end
|
83
|
+
end
|
84
|
+
SPEC
|
85
|
+
end
|
86
|
+
end
|
87
|
+
|
88
|
+
it "wraps multi line config.action_mailer settings" do
|
89
|
+
File.open("#{destination_root}/config/environments/production.rb") do |file|
|
90
|
+
file.read.should eq <<-SPEC
|
91
|
+
Dummy::Application.configure do
|
92
|
+
if config.respond_to?(:action_mailer)
|
93
|
+
config.action_mailer.test = true
|
94
|
+
config.action_mailer.check = {
|
95
|
+
:test => true,
|
96
|
+
:check => true
|
97
|
+
}
|
98
|
+
end
|
99
|
+
end
|
100
|
+
SPEC
|
101
|
+
end
|
102
|
+
end
|
103
|
+
end
|
43
104
|
end
|
44
105
|
end
|
@@ -1,17 +1,44 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
require 'generator_spec/test_case'
|
3
3
|
require 'generators/refinery/engine/engine_generator'
|
4
|
+
require 'tmpdir'
|
4
5
|
|
5
6
|
module Refinery
|
6
7
|
describe EngineGenerator do
|
7
8
|
include GeneratorSpec::TestCase
|
8
|
-
destination
|
9
|
+
destination Dir.mktmpdir
|
9
10
|
|
10
11
|
before do
|
11
12
|
prepare_destination
|
12
13
|
run_generator %w{ rspec_product_test title:string description:text image:image brochure:resource }
|
13
14
|
end
|
14
15
|
|
16
|
+
context "when generating a resource without passing a namespace" do
|
17
|
+
before do
|
18
|
+
run_generator %w{ rspec_item_test title:string --extension rspec_product_tests --skip }
|
19
|
+
end
|
20
|
+
|
21
|
+
it "uses the extension name for the namespace" do
|
22
|
+
destination_root.should have_structure {
|
23
|
+
directory "vendor" do
|
24
|
+
directory "extensions" do
|
25
|
+
directory "rspec_product_tests" do
|
26
|
+
directory "app" do
|
27
|
+
directory "controllers" do
|
28
|
+
directory "refinery" do
|
29
|
+
directory "rspec_product_tests" do
|
30
|
+
file "rspec_item_tests_controller.rb"
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
}
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
15
42
|
context "when generating a resource inside existing extensions dir" do
|
16
43
|
|
17
44
|
before do
|
@@ -6,13 +6,13 @@ module Refinery
|
|
6
6
|
describe EngineGenerator do
|
7
7
|
include GeneratorSpec::TestCase
|
8
8
|
|
9
|
-
it "exits when reserved word is used for
|
9
|
+
it "exits when reserved word is used for extension name" do
|
10
10
|
clash_keywords = YAML.load_file(File.expand_path("../../../../../../lib/generators/refinery/clash_keywords.yml", __FILE__))
|
11
11
|
clash_keywords.each do |word|
|
12
12
|
lambda {
|
13
13
|
STDERR.should_receive(:puts).with("\nPlease choose a different name. The generated code would fail for class '#{word}' as it conflicts with a reserved keyword.\n\n")
|
14
14
|
run_generator [word, "title:string"]
|
15
|
-
}.should raise_error
|
15
|
+
}.should raise_error
|
16
16
|
end
|
17
17
|
end
|
18
18
|
|
@@ -20,28 +20,28 @@ module Refinery
|
|
20
20
|
lambda {
|
21
21
|
STDERR.should_receive(:puts).with("\nPlease specify the singular name 'apple' instead of 'apples'.\n\n")
|
22
22
|
run_generator %w{ apples title:string }
|
23
|
-
}.should raise_error
|
23
|
+
}.should raise_error
|
24
24
|
end
|
25
25
|
|
26
26
|
it "exits when uncountable word is used for extension name" do
|
27
27
|
lambda {
|
28
28
|
STDERR.should_receive(:puts).with("\nThe extension name you specified will not work as the singular name is equal to the plural name.\n\n")
|
29
29
|
run_generator %w{ money title:string }
|
30
|
-
}.should raise_error
|
30
|
+
}.should raise_error
|
31
31
|
end
|
32
32
|
|
33
33
|
it "exits when no attribute provided" do
|
34
34
|
lambda {
|
35
35
|
STDERR.should_receive(:puts).with("\nYou must specify a name and at least one field.\nFor help, run: rails generate refinery:engine\n\n")
|
36
36
|
run_generator %w{ car }
|
37
|
-
}.should raise_error
|
37
|
+
}.should raise_error
|
38
38
|
end
|
39
39
|
|
40
40
|
it "exits when '--extension' option is used but there is no extension by provided name" do
|
41
|
-
lambda {
|
41
|
+
lambda {
|
42
42
|
STDERR.should_receive(:puts).with("\nYou can't use '--extension nonexistent' option because extension with name nonexistent doesn't exist.\n\n")
|
43
43
|
run_generator %w{ car title:string --extension nonexistent }
|
44
|
-
}.should raise_error
|
44
|
+
}.should raise_error
|
45
45
|
end
|
46
46
|
end
|
47
47
|
end
|
@@ -40,12 +40,15 @@ module Refinery
|
|
40
40
|
directory "rspec_product_tests" do
|
41
41
|
directory "admin" do
|
42
42
|
directory "rspec_product_tests" do
|
43
|
+
file "_actions.html.erb"
|
43
44
|
file "_form.html.erb"
|
45
|
+
file "_records.html.erb"
|
46
|
+
file "_rspec_product_test.html.erb"
|
47
|
+
file "_rspec_product_tests.html.erb"
|
44
48
|
file "_sortable_list.html.erb"
|
45
49
|
file "edit.html.erb"
|
46
50
|
file "index.html.erb"
|
47
51
|
file "new.html.erb"
|
48
|
-
file "_rspec_product_test.html.erb"
|
49
52
|
end
|
50
53
|
end
|
51
54
|
directory "rspec_product_tests" do
|
@@ -56,25 +59,83 @@ module Refinery
|
|
56
59
|
end
|
57
60
|
end
|
58
61
|
end
|
62
|
+
directory "config" do
|
63
|
+
directory "locales" do
|
64
|
+
file "cs.yml"
|
65
|
+
file "en.yml"
|
66
|
+
file "es.yml"
|
67
|
+
file "fr.yml"
|
68
|
+
file "it.yml"
|
69
|
+
file "nb.yml"
|
70
|
+
file "nl.yml"
|
71
|
+
file "sk.yml"
|
72
|
+
file "tr.yml"
|
73
|
+
file "zh-CN.yml"
|
74
|
+
end
|
75
|
+
file "routes.rb"
|
76
|
+
end
|
77
|
+
directory "db" do
|
78
|
+
directory "migrate" do
|
79
|
+
file "1_create_rspec_product_tests_rspec_product_tests.rb"
|
80
|
+
end
|
81
|
+
file "seeds.rb"
|
82
|
+
end
|
59
83
|
directory "lib" do
|
84
|
+
directory "generators" do
|
85
|
+
directory "refinery" do
|
86
|
+
file "rspec_product_tests_generator.rb"
|
87
|
+
end
|
88
|
+
end
|
89
|
+
directory "refinery" do
|
90
|
+
directory "rspec_product_tests" do
|
91
|
+
file "engine.rb"
|
92
|
+
end
|
93
|
+
file "rspec_product_tests.rb"
|
94
|
+
end
|
95
|
+
directory "tasks" do
|
96
|
+
directory "refinery" do
|
97
|
+
file "rspec_product_tests.rake"
|
98
|
+
end
|
99
|
+
end
|
60
100
|
file "refinerycms-rspec_product_tests.rb"
|
61
101
|
end
|
102
|
+
directory "script" do
|
103
|
+
file "rails"
|
104
|
+
end
|
62
105
|
directory "spec" do
|
106
|
+
directory "features" do
|
107
|
+
directory "refinery" do
|
108
|
+
directory "rspec_product_tests" do
|
109
|
+
directory "admin" do
|
110
|
+
file "rspec_product_tests_spec.rb"
|
111
|
+
end
|
112
|
+
end
|
113
|
+
end
|
114
|
+
end
|
115
|
+
directory "models" do
|
116
|
+
directory "refinery" do
|
117
|
+
directory "rspec_product_tests" do
|
118
|
+
file "rspec_product_test_spec.rb"
|
119
|
+
end
|
120
|
+
end
|
121
|
+
end
|
122
|
+
directory "support" do
|
123
|
+
directory "factories" do
|
124
|
+
directory "refinery" do
|
125
|
+
file "rspec_product_tests.rb"
|
126
|
+
end
|
127
|
+
end
|
128
|
+
end
|
63
129
|
file "spec_helper.rb"
|
64
130
|
end
|
65
131
|
directory "tasks" do
|
66
132
|
file "testing.rake"
|
67
133
|
file "rspec.rake"
|
68
134
|
end
|
69
|
-
directory "config" do
|
70
|
-
directory "locales" do
|
71
|
-
file "en.yml"
|
72
|
-
end
|
73
|
-
file "routes.rb"
|
74
|
-
end
|
75
|
-
file "Guardfile"
|
76
135
|
file "Gemfile"
|
77
136
|
file "Rakefile"
|
137
|
+
file "readme.md"
|
138
|
+
file "refinerycms-rspec_product_tests.gemspec"
|
78
139
|
end
|
79
140
|
end
|
80
141
|
end
|
@@ -41,7 +41,6 @@ module Refinery
|
|
41
41
|
directory "admin" do
|
42
42
|
directory "rspec_product_tests" do
|
43
43
|
file "_form.html.erb"
|
44
|
-
file "_locale_picker.html.erb"
|
45
44
|
file "_sortable_list.html.erb"
|
46
45
|
file "edit.html.erb"
|
47
46
|
file "index.html.erb"
|
@@ -73,7 +72,6 @@ module Refinery
|
|
73
72
|
end
|
74
73
|
file "routes.rb"
|
75
74
|
end
|
76
|
-
file "Guardfile"
|
77
75
|
file "Gemfile"
|
78
76
|
file "Rakefile"
|
79
77
|
end
|
@@ -5,13 +5,21 @@ require 'generators/refinery/form/form_generator'
|
|
5
5
|
module Refinery
|
6
6
|
describe FormGenerator do
|
7
7
|
include GeneratorSpec::TestCase
|
8
|
-
|
8
|
+
|
9
|
+
temp_dir = Dir.mktmpdir("refinery_rspec_form_test")
|
10
|
+
let(:temp_dir) { temp_dir }
|
11
|
+
|
12
|
+
destination temp_dir
|
9
13
|
|
10
14
|
before do
|
11
15
|
prepare_destination
|
12
16
|
run_generator %w{ rspec_form_test title:string description:text choice:radio another:dropdown enable:checkbox }
|
13
17
|
end
|
14
18
|
|
19
|
+
after do
|
20
|
+
FileUtils.rm_r(temp_dir)
|
21
|
+
end
|
22
|
+
|
15
23
|
specify do
|
16
24
|
destination_root.should have_structure {
|
17
25
|
directory "vendor" do
|
@@ -1,84 +1,69 @@
|
|
1
1
|
require "spec_helper"
|
2
2
|
|
3
3
|
module Refinery
|
4
|
-
describe ApplicationController do
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
4
|
+
describe ApplicationController, :type => :controller do
|
5
|
+
before do
|
6
|
+
Rails.application.routes.draw {
|
7
|
+
mount Refinery::Core::Engine, :at => '/'
|
8
|
+
get "anonymous/index"
|
9
|
+
}
|
10
|
+
end
|
9
11
|
|
10
|
-
|
11
|
-
|
12
|
-
|
12
|
+
after do
|
13
|
+
Rails.application.reload_routes!
|
14
|
+
end
|
13
15
|
|
14
|
-
|
15
|
-
|
16
|
+
controller do
|
17
|
+
include ::Refinery::ApplicationController
|
16
18
|
|
17
|
-
|
18
|
-
|
19
|
-
end
|
19
|
+
def index
|
20
|
+
render :nothing => true
|
20
21
|
end
|
22
|
+
end
|
21
23
|
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
end
|
28
|
-
|
29
|
-
it "matches localised root url" do
|
30
|
-
controller.refinery.stub(:root_path).and_return("/en/")
|
31
|
-
request.stub(:path).and_return("/en")
|
32
|
-
controller.home_page?.should be_true
|
33
|
-
end
|
34
|
-
|
35
|
-
it "escapes regexp" do
|
36
|
-
request.stub(:path).and_return("\/huh)")
|
37
|
-
expect { controller.home_page? }.to_not raise_error(RegexpError)
|
38
|
-
end
|
24
|
+
describe ".home_page?" do
|
25
|
+
it "matches root url" do
|
26
|
+
controller.stub(:root_path).and_return("/")
|
27
|
+
request.stub(:path).and_return("/")
|
28
|
+
controller.home_page?.should be_true
|
39
29
|
end
|
40
30
|
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
it "returns BasePresenter when the instance's class does not have a presenter" do
|
47
|
-
controller.send(:presenter_for, Object.new).should eq(BasePresenter)
|
48
|
-
end
|
49
|
-
|
50
|
-
it "returns the class's presenter when the instance's class has a presenter" do
|
51
|
-
controller.send(:presenter_for, Page.new).should eq(PagePresenter)
|
52
|
-
end
|
31
|
+
it "matches localised root url" do
|
32
|
+
controller.refinery.stub(:root_path).and_return("/en/")
|
33
|
+
request.stub(:path).and_return("/en")
|
34
|
+
controller.home_page?.should be_true
|
53
35
|
end
|
54
36
|
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
it "is false so standard HTTP is used" do
|
62
|
-
Refinery::Core.config.force_ssl = false
|
63
|
-
|
64
|
-
get :index
|
37
|
+
it "matches localised root url with trailing slash" do
|
38
|
+
controller.refinery.stub(:root_path).and_return("/en/")
|
39
|
+
request.stub(:path).and_return("/en/")
|
40
|
+
controller.home_page?.should be_true
|
41
|
+
end
|
65
42
|
|
66
|
-
|
67
|
-
|
43
|
+
it "escapes regexp" do
|
44
|
+
request.stub(:path).and_return("\/huh)")
|
45
|
+
expect { controller.home_page? }.to_not raise_error
|
46
|
+
end
|
68
47
|
|
69
|
-
|
70
|
-
|
71
|
-
|
48
|
+
it "returns false for non root url" do
|
49
|
+
request.stub(:path).and_return("/foo/")
|
50
|
+
controller.should_not be_home_page
|
51
|
+
end
|
52
|
+
end
|
72
53
|
|
73
|
-
|
54
|
+
describe "#presenter_for" do
|
55
|
+
it "returns BasePresenter for nil" do
|
56
|
+
controller.send(:presenter_for, nil).should eq(BasePresenter)
|
57
|
+
end
|
74
58
|
|
75
|
-
|
76
|
-
|
77
|
-
Refinery::Core.config.force_ssl = false
|
78
|
-
end
|
79
|
-
end
|
59
|
+
it "returns BasePresenter when the instance's class does not have a presenter" do
|
60
|
+
controller.send(:presenter_for, Object.new).should eq(BasePresenter)
|
80
61
|
end
|
81
62
|
|
63
|
+
it "returns the class's presenter when the instance's class has a presenter" do
|
64
|
+
model = Refinery::Page.new
|
65
|
+
controller.send(:presenter_for, model).should eq(Refinery::PagePresenter)
|
66
|
+
end
|
82
67
|
end
|
83
68
|
end
|
84
69
|
end
|