refinerycms-core 2.0.10 → 2.1.0

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.
Files changed (181) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/refinery/admin.js.erb +126 -234
  3. data/app/assets/javascripts/refinery/ajaxy_pagination.js.coffee +1 -1
  4. data/app/assets/javascripts/refinery/boot_wym.js.erb +4 -8
  5. data/app/assets/javascripts/refinery/core.js +1 -1
  6. data/app/assets/javascripts/refinery/interface.js.coffee.erb +3 -16
  7. data/app/assets/javascripts/refinery/modal_dialogs.js.erb +0 -3
  8. data/app/assets/javascripts/refinery/nestedsortables.js +312 -312
  9. data/app/assets/javascripts/refinery/refinery.js.erb +14 -15
  10. data/app/assets/javascripts/refinery/site_bar.js +3 -9
  11. data/app/assets/javascripts/refinery/sortable_list.js +145 -0
  12. data/app/assets/javascripts/refinery/sortable_menu.js.coffee +3 -4
  13. data/app/assets/javascripts/refinery/submit_continue.js.coffee.erb +1 -2
  14. data/app/assets/javascripts/refinery/tree.js +3 -3
  15. data/app/assets/javascripts/refinery/wymeditor.js +6 -6
  16. data/{public → app/assets/javascripts}/wymeditor/GPL-license.txt +0 -0
  17. data/{public → app/assets/javascripts}/wymeditor/MIT-license.txt +0 -0
  18. data/{public → app/assets/javascripts}/wymeditor/README +0 -0
  19. data/app/assets/javascripts/wymeditor/browsers/mozilla.js.erb +10 -11
  20. data/app/assets/javascripts/wymeditor/browsers/webkit.js.erb +17 -18
  21. data/app/assets/javascripts/wymeditor/classes.js.erb +3 -5
  22. data/app/assets/javascripts/wymeditor/functions.js.erb +5 -1
  23. data/app/assets/javascripts/wymeditor/prototypes.js.erb +0 -3
  24. data/app/assets/javascripts/wymeditor/setup.js.erb +5 -5
  25. data/app/assets/javascripts/wymeditor/skins/refinery/skin.js +1 -4
  26. data/app/assets/javascripts/wymeditor/validators.js.erb +3 -2
  27. data/app/assets/stylesheets/{formatting.css.scss → refinery/formatting.css.scss} +0 -0
  28. data/app/assets/stylesheets/refinery/layout.css.scss +41 -11
  29. data/app/assets/stylesheets/{theme.css.scss → refinery/theme.css.scss} +0 -0
  30. data/app/controllers/refinery/sitemap_controller.rb +1 -5
  31. data/app/helpers/refinery/admin_helper.rb +6 -0
  32. data/app/helpers/refinery/image_helper.rb +2 -1
  33. data/app/helpers/refinery/menu_helper.rb +0 -49
  34. data/app/helpers/refinery/meta_helper.rb +7 -3
  35. data/app/helpers/refinery/site_bar_helper.rb +3 -15
  36. data/app/models/refinery/core/base_model.rb +2 -0
  37. data/{lib → app/presenters}/refinery/base_presenter.rb +1 -2
  38. data/app/views/layouts/application.html.erb +8 -7
  39. data/app/views/refinery/_content_page.html.erb +1 -1
  40. data/app/views/refinery/_google_analytics.html.erb +12 -5
  41. data/app/views/refinery/_head.html.erb +11 -15
  42. data/app/views/refinery/_header.html.erb +1 -4
  43. data/app/views/refinery/_javascripts.html.erb +14 -8
  44. data/app/views/refinery/_site_bar.html.erb +4 -4
  45. data/app/views/refinery/admin/_form_advanced_options_menu.html.erb +12 -0
  46. data/app/views/refinery/admin/_javascripts.html.erb +13 -1
  47. data/app/views/refinery/admin/_locale_picker.html.erb +11 -0
  48. data/app/views/refinery/admin/_make_sortable.html.erb +8 -5
  49. data/app/views/refinery/admin/_search.html.erb +1 -7
  50. data/app/views/refinery/admin/_search_header.html.erb +1 -0
  51. data/app/views/refinery/admin/_wysiwyg.html.erb +16 -0
  52. data/config/initializers/will_paginate_monkeypatch.rb +1 -1
  53. data/config/locales/bg.yml +5 -1
  54. data/config/locales/cs.yml +5 -1
  55. data/config/locales/da.yml +5 -1
  56. data/config/locales/de.yml +7 -3
  57. data/config/locales/el.yml +5 -1
  58. data/config/locales/en.yml +7 -1
  59. data/config/locales/es.yml +5 -1
  60. data/config/locales/fi.yml +5 -1
  61. data/config/locales/fr.yml +5 -1
  62. data/config/locales/hu.yml +82 -0
  63. data/config/locales/it.yml +38 -34
  64. data/config/locales/ja.yml +5 -1
  65. data/config/locales/ko.yml +5 -1
  66. data/config/locales/lt.yml +5 -1
  67. data/config/locales/lv.yml +5 -1
  68. data/config/locales/nb.yml +5 -1
  69. data/config/locales/nl.yml +36 -29
  70. data/config/locales/pl.yml +8 -1
  71. data/config/locales/pt-BR.yml +7 -3
  72. data/config/locales/pt.yml +82 -0
  73. data/config/locales/rs.yml +5 -1
  74. data/config/locales/ru.yml +5 -1
  75. data/config/locales/sk.yml +10 -3
  76. data/config/locales/sl.yml +5 -1
  77. data/config/locales/sv.yml +5 -1
  78. data/config/locales/tr.yml +82 -0
  79. data/config/locales/uk.yml +77 -0
  80. data/config/locales/vi.yml +5 -1
  81. data/config/locales/zh-CN.yml +5 -1
  82. data/config/locales/zh-TW.yml +5 -1
  83. data/config/routes.rb +3 -3
  84. data/lib/generators/refinery/cms/cms_generator.rb +29 -0
  85. data/lib/generators/refinery/cms/templates/.gitignore +1 -0
  86. data/lib/generators/refinery/cms/templates/app/views/sitemap/index.xml.builder +13 -13
  87. data/lib/generators/refinery/core/templates/config/initializers/refinery/core.rb.erb +8 -12
  88. data/lib/generators/refinery/dummy/templates/rails/database.yml +3 -3
  89. data/lib/generators/refinery/engine/engine_generator.rb +8 -12
  90. data/lib/generators/refinery/engine/templates/Gemfile +5 -39
  91. data/lib/generators/refinery/engine/templates/app/controllers/refinery/namespace/admin/plural_name_controller.rb.erb +4 -4
  92. data/lib/generators/refinery/engine/templates/app/models/refinery/namespace/singular_name.rb.erb +2 -3
  93. data/lib/generators/refinery/engine/templates/app/views/refinery/namespace/admin/plural_name/_actions.html.erb +1 -1
  94. data/lib/generators/refinery/engine/templates/app/views/refinery/namespace/admin/plural_name/_form.html.erb +31 -33
  95. data/lib/generators/refinery/engine/templates/app/views/refinery/namespace/admin/plural_name/_records.html.erb +1 -3
  96. data/lib/generators/refinery/engine/templates/app/views/refinery/namespace/admin/plural_name/_singular_name.html.erb +2 -2
  97. data/lib/generators/refinery/engine/templates/app/views/refinery/namespace/admin/plural_name/index.html.erb +1 -1
  98. data/lib/generators/refinery/engine/templates/config/locales/cs.yml +28 -0
  99. data/lib/generators/refinery/engine/templates/config/locales/it.yml +28 -0
  100. data/lib/generators/refinery/engine/templates/config/locales/nl.yml +6 -6
  101. data/lib/generators/refinery/engine/templates/config/locales/tr.yml +28 -0
  102. data/lib/generators/refinery/engine/templates/config/routes.rb.erb +2 -2
  103. data/lib/generators/refinery/engine/templates/db/seeds.rb.erb +1 -1
  104. data/lib/generators/refinery/engine/templates/lib/generators/refinery/extension_plural_name_generator.rb.erb +1 -1
  105. data/lib/generators/refinery/engine/templates/lib/refinery/plural_name/engine.rb.erb +1 -1
  106. data/lib/generators/refinery/engine/templates/spec/{requests → features}/refinery/namespace/admin/plural_name_spec.rb.erb +1 -1
  107. data/lib/generators/refinery/engine/templates/spec/spec_helper.rb +25 -49
  108. data/lib/generators/refinery/form/form_generator.rb +1 -13
  109. data/lib/generators/refinery/form/templates/app/models/refinery/namespace/singular_name.rb.erb +0 -4
  110. data/lib/generators/refinery/form/templates/app/views/refinery/namespace/admin/plural_name/_records.html.erb +2 -2
  111. data/lib/generators/refinery/form/templates/app/views/refinery/namespace/admin/plural_name/spam.html.erb +7 -6
  112. data/lib/generators/refinery/form/templates/config/locales/nl.yml +29 -29
  113. data/lib/generators/refinery/form/templates/config/locales/tr.yml +78 -0
  114. data/lib/generators/refinery/form/templates/config/routes.rb.erb +1 -1
  115. data/lib/generators/refinery/form/templates/db/migrate/1_create_plural_name.rb.erb +2 -6
  116. data/lib/generators/refinery/form/templates/db/seeds.rb.erb +1 -1
  117. data/lib/generators/refinery/form/templates/lib/refinery/plural_name/engine.rb.erb +1 -1
  118. data/lib/generators/refinery/form/templates/refinerycms-plural_name.gemspec +2 -5
  119. data/lib/refinery.rb +191 -0
  120. data/lib/refinery/admin/base_controller.rb +27 -16
  121. data/lib/refinery/application_controller.rb +15 -47
  122. data/lib/refinery/cli.rb +48 -27
  123. data/lib/refinery/core.rb +7 -183
  124. data/lib/refinery/core/configuration.rb +17 -9
  125. data/lib/refinery/core/engine.rb +11 -47
  126. data/lib/refinery/crud.rb +81 -66
  127. data/lib/refinery/engine.rb +52 -55
  128. data/lib/refinery/ext/action_view/helpers/form_builder.rb +2 -0
  129. data/lib/refinery/extension_generation.rb +208 -110
  130. data/lib/refinery/menu.rb +16 -7
  131. data/lib/refinery/menu_item.rb +56 -54
  132. data/lib/refinery/plugin.rb +11 -3
  133. data/lib/refinery/plugins.rb +14 -1
  134. data/lib/refinery/version.rb +3 -3
  135. data/refinerycms-core.gemspec +11 -10
  136. data/spec/controllers/refinery/admin/dummy_controller_spec.rb +57 -0
  137. data/spec/controllers/refinery/admin/refinery_core_controller_spec.rb +3 -4
  138. data/spec/controllers/refinery/sitemap_controller_spec.rb +1 -14
  139. data/spec/{requests → features}/refinery/admin/custom_assets_spec.rb +1 -1
  140. data/spec/{requests → features}/refinery/admin/dialogs_spec.rb +1 -1
  141. data/spec/features/refinery/admin/xhr_paging_spec.rb +55 -0
  142. data/spec/features/refinery/application_layout_spec.rb +19 -0
  143. data/spec/features/refinery/core_spec.rb +14 -0
  144. data/spec/{requests → features}/refinery/site_bar_spec.rb +1 -1
  145. data/spec/helpers/refinery/meta_helper_spec.rb +25 -0
  146. data/spec/lib/generators/refinery/cms/cms_generator_spec.rb +61 -0
  147. data/spec/lib/generators/refinery/engine/engine_generator_multiple_resources_spec.rb +28 -1
  148. data/spec/lib/generators/refinery/engine/engine_generator_sanity_check_spec.rb +7 -7
  149. data/spec/lib/generators/refinery/engine/engine_generator_spec.rb +69 -8
  150. data/spec/lib/generators/refinery/engine/engine_generator_with_i18n_spec.rb +0 -2
  151. data/spec/lib/generators/refinery/form/form_generator_spec.rb +9 -1
  152. data/spec/lib/refinery/application_controller_spec.rb +48 -63
  153. data/spec/lib/refinery/cli_spec.rb +136 -0
  154. data/spec/lib/refinery/core/configuration_spec.rb +17 -0
  155. data/spec/lib/refinery/core_spec.rb +19 -13
  156. data/spec/lib/refinery/crud_spec.rb +0 -4
  157. data/spec/lib/refinery/menu_spec.rb +16 -26
  158. data/spec/support/refinery.rb +6 -1
  159. data/{app → vendor}/assets/javascripts/jquery/GPL-LICENSE.txt +0 -0
  160. data/{app → vendor}/assets/javascripts/jquery/MIT-LICENSE.txt +0 -0
  161. data/vendor/assets/javascripts/jquery/jquery.browser.js +49 -0
  162. data/{app → vendor}/assets/javascripts/jquery/jquery.html5-placeholder-shim.js +0 -0
  163. data/{app → vendor}/assets/javascripts/jquery/jquery.jcarousel.js +0 -0
  164. data/{app → vendor}/assets/javascripts/jquery/jquery.textTruncate.js +0 -0
  165. data/{app → vendor}/assets/javascripts/jquery/jquery.timers.js +0 -0
  166. data/{app → vendor}/assets/javascripts/modernizr-min.js +0 -0
  167. metadata +231 -78
  168. data/app/assets/images/refinery/resolve_digital_footer_logo.png +0 -0
  169. data/app/assets/javascripts/dd_belatedpng.js +0 -13
  170. data/app/assets/javascripts/jquery/jquery.corner.js +0 -345
  171. data/app/assets/stylesheets/application.css.scss +0 -55
  172. data/app/assets/stylesheets/home.css.scss +0 -3
  173. data/app/views/refinery/_ie6check.html.erb +0 -63
  174. data/app/views/refinery/_menu.html.erb +0 -20
  175. data/app/views/refinery/_menu_branch.html.erb +0 -19
  176. data/lib/generators/refinery/engine/templates/Guardfile +0 -27
  177. data/lib/generators/refinery/engine/templates/app/views/refinery/namespace/admin/plural_name/_locale_picker.html.erb +0 -11
  178. data/lib/refinery/catch_all_routes.rb +0 -3
  179. data/lib/tasks/yard.rake +0 -30
  180. data/spec/requests/refinery/admin/controller_restriction_spec.rb +0 -27
  181. 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
@@ -2,7 +2,7 @@ require "spec_helper"
2
2
 
3
3
  module Refinery
4
4
  describe "site bar" do
5
- login_refinery_user
5
+ refinery_login_with :refinery_user
6
6
 
7
7
  it "have logout link" do
8
8
  visit refinery.admin_dashboard_path
@@ -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 File.expand_path("../../../../../../tmp", __FILE__)
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 extnesion name" do
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(SystemExit)
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(SystemExit)
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(SystemExit)
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(SystemExit)
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(SystemExit)
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
- destination File.expand_path("../../../../../../tmp", __FILE__)
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
- describe "DummyController", :type => :controller do
6
- before do
7
- Rails.application.routes.draw { get "anonymous/index" }
8
- end
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
- after do
11
- Rails.application.reload_routes!
12
- end
12
+ after do
13
+ Rails.application.reload_routes!
14
+ end
13
15
 
14
- controller do
15
- include ::Refinery::ApplicationController
16
+ controller do
17
+ include ::Refinery::ApplicationController
16
18
 
17
- def index
18
- render :nothing => true
19
- end
19
+ def index
20
+ render :nothing => true
20
21
  end
22
+ end
21
23
 
22
- describe ".home_page?" do
23
- it "matches root url" do
24
- controller.stub(:root_path).and_return("/")
25
- request.stub(:path).and_return("/")
26
- controller.home_page?.should be_true
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
- describe "#presenter_for" do
42
- it "returns BasePresenter for nil" do
43
- controller.send(:presenter_for, nil).should eq(BasePresenter)
44
- end
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
- describe "force_ssl" do
56
- before(:each) do
57
- controller.stub(:admin?).and_return(true)
58
- controller.stub(:refinery_user_required?).and_return(false)
59
- end
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
- response.should_not be_redirect
67
- end
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
- it "is true so HTTPS is used" do
70
- begin
71
- Refinery::Core.config.force_ssl = true
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
- get :index
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
- response.should be_redirect
76
- ensure
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