spree_essential_cms 0.3.0.rc1 → 0.4.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 (69) hide show
  1. data/.gitignore +8 -0
  2. data/.travis.yml +15 -0
  3. data/Gemfile +2 -0
  4. data/LICENSE +1 -1
  5. data/README.md +64 -5
  6. data/Versionfile +8 -0
  7. data/app/controllers/spree/admin/contents_controller.rb +4 -4
  8. data/app/controllers/spree/admin/pages_controller.rb +6 -12
  9. data/app/controllers/spree/base_controller_decorator.rb +15 -0
  10. data/app/controllers/spree/home_controller_decorator.rb +23 -0
  11. data/app/controllers/spree/pages_controller.rb +2 -11
  12. data/app/models/spree/content.rb +40 -39
  13. data/app/models/spree/page.rb +21 -10
  14. data/app/models/spree/page_image.rb +10 -15
  15. data/app/views/spree/admin/contents/_form.html.erb +9 -4
  16. data/app/views/spree/admin/contents/edit.html.erb +0 -2
  17. data/app/views/spree/admin/contents/index.html.erb +22 -23
  18. data/app/views/spree/admin/contents/new.html.erb +0 -2
  19. data/app/views/spree/admin/contents/show.html.erb +0 -1
  20. data/app/views/spree/admin/page_images/edit.html.erb +1 -3
  21. data/app/views/spree/admin/page_images/index.html.erb +25 -25
  22. data/app/views/spree/admin/page_images/new.html.erb +3 -1
  23. data/app/views/spree/admin/pages/edit.html.erb +0 -2
  24. data/app/views/spree/admin/pages/index.html.erb +26 -26
  25. data/app/views/spree/admin/pages/new.html.erb +1 -1
  26. data/app/views/spree/admin/pages/show.html.erb +0 -2
  27. data/app/views/spree/pages/home.html.erb +10 -0
  28. data/app/views/spree/shared/_main_menu.html.erb +3 -7
  29. data/app/views/spree/shared/_main_menu_items.html.erb +6 -0
  30. data/config/locales/en.yml +1 -0
  31. data/config/locales/it.yml +63 -0
  32. data/config/routes.rb +10 -12
  33. data/{lib/generators/templates/db/migrate/create_pages.rb → db/migrate/20120306185628_create_pages.rb} +0 -0
  34. data/{lib/generators/templates/db/migrate/create_contents.rb → db/migrate/20120306185638_create_contents.rb} +0 -0
  35. data/{lib/generators/templates/db/migrate/add_spree_namespace.rb → db/migrate/20120306185648_add_spree_namespace.rb} +0 -0
  36. data/lib/generators/spree_essentials/cms_generator.rb +3 -8
  37. data/lib/spree_essential_cms.rb +5 -19
  38. data/lib/spree_essential_cms/engine.rb +16 -0
  39. data/lib/spree_essential_cms/version.rb +1 -1
  40. data/lib/tasks/sample.rake +9 -13
  41. data/spree_essential_cms.gemspec +34 -0
  42. data/test/dummy_hooks/after_app_generator.rb +17 -0
  43. data/test/dummy_hooks/after_migrate.rb.sample +1 -0
  44. data/test/dummy_hooks/before_migrate.rb +11 -0
  45. data/test/dummy_hooks/templates/assets/javascripts/admin/all.js +1 -0
  46. data/test/dummy_hooks/templates/assets/javascripts/store/all.js +1 -0
  47. data/test/dummy_hooks/templates/assets/stylesheets/admin/all.css +3 -0
  48. data/test/dummy_hooks/templates/assets/stylesheets/store/all.css +3 -0
  49. data/test/dummy_hooks/templates/assets/stylesheets/store/screen.css +749 -0
  50. data/test/dummy_hooks/templates/initializers/spree_user_error_fix.rb +3 -0
  51. data/test/dummy_hooks/templates/overrides/main_menu.rb +6 -0
  52. data/test/integration/spree/admin/contents_integration_test.rb +116 -0
  53. data/test/integration/spree/admin/page_images_integration_test.rb +94 -0
  54. data/test/integration/spree/admin/pages_integration_test.rb +131 -0
  55. data/test/integration/spree/home_integration_test.rb +54 -0
  56. data/test/integration/spree/pages_integration_test.rb +122 -0
  57. data/test/support/factories.rb +21 -0
  58. data/test/support/files/1.jpg +0 -0
  59. data/test/support/files/2.jpg +0 -0
  60. data/test/support/helpers.rb +13 -0
  61. data/test/test_helper.rb +19 -0
  62. data/test/unit/spree/content_test.rb +39 -0
  63. data/test/unit/spree/essential_test.rb +9 -0
  64. data/test/unit/spree/page_image_test.rb +47 -0
  65. data/test/unit/spree/page_test.rb +53 -0
  66. metadata +117 -48
  67. data/app/assets/stylesheets/essentials/cms.css +0 -39
  68. data/app/controllers/spree/page_controller.rb +0 -20
  69. data/app/controllers/spree/spree_base_controller_decorator.rb +0 -12
@@ -0,0 +1,21 @@
1
+ FactoryGirl.define do
2
+
3
+ factory :spree_page, :class => Spree::Page do
4
+ title "Just a page"
5
+ meta_title { self.title }
6
+ meta_description { "Nothing too cool here except the title: #{title}." }
7
+ meta_keywords { "just, something, in, a, list, #{title.downcase}" }
8
+ end
9
+
10
+ factory :spree_content, :class => Spree::Content do
11
+ page { Spree::Page.first }
12
+ title "Just some content"
13
+ body { "Nothing too cool here except the title: #{title}." }
14
+ end
15
+
16
+ factory :spree_page_image, :class => Spree::PageImage do
17
+ viewable { Spree::Page.first }
18
+ attachment { sample_image }
19
+ end
20
+
21
+ end
Binary file
Binary file
@@ -0,0 +1,13 @@
1
+ def sample_image(path=nil)
2
+ File.open(sample_image_path(path))
3
+ end
4
+
5
+ def sample_image_path(path=nil)
6
+ path ||= "1.jpg"
7
+ File.expand_path("../files/#{path}", __FILE__)
8
+ end
9
+
10
+ def setup_action_controller_behaviour(controller_class)
11
+ @routes = Spree::Core::Engine.routes
12
+ @controller = controller_class.new
13
+ end
@@ -0,0 +1,19 @@
1
+ begin
2
+ require "simplecov"
3
+ SimpleCov.start "rails"
4
+ rescue LoadError => e
5
+ end
6
+
7
+ # Configure Rails Envinronment
8
+ ENV["RAILS_ENV"] = "test"
9
+ ENV["RAILS_ROOT"] = File.expand_path("../dummy", __FILE__)
10
+
11
+ require "spree_essentials/testing/test_helper"
12
+ require "spree_essentials/testing/integration_case"
13
+
14
+ begin require "turn"; rescue LoadError => e; end
15
+
16
+ # We'll use ActionConroller's xhr method for faking drag & drops
17
+ SpreeEssentials::IntegrationCase.send(:include, ActionController::TestCase::Behavior)
18
+
19
+ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
@@ -0,0 +1,39 @@
1
+ require 'test_helper'
2
+
3
+ class Spree::ContentTest < ActiveSupport::TestCase
4
+
5
+ should validate_presence_of(:page)
6
+ should validate_presence_of(:title)
7
+
8
+ context "An existing piece of content" do
9
+
10
+ setup do
11
+ Spree::Page.destroy_all
12
+ @page = Factory(:spree_page)
13
+ @content = Factory(:spree_content, :page => @page)
14
+ end
15
+
16
+ context "with an image attached" do
17
+
18
+ setup do
19
+ @image = File.expand_path("../../../support/files/1.jpg", __FILE__)
20
+ @content.update_attribute(:attachment, File.open(@image))
21
+ end
22
+
23
+ should "reprocess image when context changes" do
24
+ assert !@content.attachment.exists?(:slide)
25
+ @content.update_attribute(:context, "slideshow")
26
+ assert @content.reload.attachment.exists?(:slide)
27
+ end
28
+
29
+ should "delete attachment" do
30
+ @content.update_attribute(:delete_attachment, true)
31
+ assert !@content.reload.attachment.exists?
32
+ assert @content.attachment_file_name.blank?
33
+ end
34
+
35
+ end
36
+
37
+ end
38
+
39
+ end
@@ -0,0 +1,9 @@
1
+ require 'test_helper'
2
+
3
+ class Spree::EssentialTest < ActiveSupport::TestCase
4
+
5
+ should "register with spree_essentials" do
6
+ assert SpreeEssentials.has?(:cms)
7
+ end
8
+
9
+ end
@@ -0,0 +1,47 @@
1
+ require 'test_helper'
2
+
3
+ class Spree::PageImageTest < ActiveSupport::TestCase
4
+
5
+ should belong_to(:viewable)
6
+
7
+ setup do
8
+ @page_image = Spree::PageImage.new
9
+ end
10
+
11
+ should validate_attachment_presence(:attachment)
12
+
13
+ %w(image/jpeg image/gif image/png image/tiff).each do |mime|
14
+ should "return true for #{mime} as image content" do
15
+ @page_image.attachment_content_type = mime
16
+ assert @page_image.image_content?
17
+ end
18
+ end
19
+
20
+ %w(application/pdf text/css).each do |mime|
21
+ should "return false for #{mime} as image content" do
22
+ @page_image.attachment_content_type = mime
23
+ assert !@page_image.image_content?
24
+ end
25
+ end
26
+
27
+ should "have blank attachment sizes hash if page is not image content" do
28
+ hash = {}
29
+ assert_equal hash, @page_image.attachment_sizes
30
+ end
31
+
32
+ %w(image/jpeg image/gif image/png image/tiff).each do |mime|
33
+ should "have attachment sizes hash for #{mime}" do
34
+ @page_image.attachment_content_type = mime
35
+ hash = { :mini => '48x48>', :small => '150x150>', :medium => '420x300>', :large => '900x650>' }
36
+ assert_equal hash, @page_image.attachment_sizes
37
+ end
38
+ end
39
+
40
+ should "have slide attachment size if page is root" do
41
+ @page_image.viewable = Spree::Page.new(:path => "/")
42
+ @page_image.attachment_content_type = "image/jpeg"
43
+ hash = { :mini => '48x48>', :small => '150x150>', :medium => '420x300>', :large => '900x650>', :slide => '950x250#'}
44
+ assert_equal hash, @page_image.attachment_sizes
45
+ end
46
+
47
+ end
@@ -0,0 +1,53 @@
1
+ require 'test_helper'
2
+
3
+ class Spree::PageTest < ActiveSupport::TestCase
4
+
5
+ def setup
6
+ Spree::Page.destroy_all
7
+ end
8
+
9
+ should validate_presence_of(:title)
10
+ should validate_presence_of(:path)
11
+ should have_many(:contents).dependent(:destroy)
12
+ should have_many(:images).dependent(:destroy)
13
+
14
+ should "return true if root" do
15
+ page = Factory.create(:spree_page, :path => "/")
16
+ assert page.root?
17
+ end
18
+
19
+ should "return false unless root" do
20
+ page = Factory.create(:spree_page, :path => "/another")
21
+ assert !page.root?
22
+ end
23
+
24
+ context "With a new page" do
25
+
26
+ setup do
27
+ @page = Spree::Page.new
28
+ end
29
+
30
+ should "strip trailing slashes when setting page" do
31
+ %w(/path /path/ /path//).each do |path|
32
+ @page.path = path
33
+ assert_equal "/path", @page.path
34
+ end
35
+ end
36
+
37
+ should "strip trailing dashes when setting page" do
38
+ %w(/path /path- /path--).each do |path|
39
+ @page.path = path
40
+ assert_equal "/path", @page.path
41
+ end
42
+ end
43
+
44
+ should "strip trailing underscores when setting page" do
45
+ %w(/path /path_ /path__).each do |path|
46
+ @page.path = path
47
+ assert_equal "/path", @page.path
48
+ end
49
+ end
50
+
51
+ end
52
+
53
+ end
metadata CHANGED
@@ -1,82 +1,93 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spree_essential_cms
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0.rc1
5
- prerelease: 6
4
+ version: 0.4.0
5
+ prerelease:
6
6
  platform: ruby
7
7
  authors:
8
8
  - Spencer Steffen
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-01-17 00:00:00.000000000Z
12
+ date: 2012-05-01 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: spree_essentials
16
- requirement: &70176245146400 !ruby/object:Gem::Requirement
16
+ requirement: &70232065545440 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
- - - ! '>='
19
+ - - ~>
20
20
  - !ruby/object:Gem::Version
21
- version: 0.4.0.rc1
21
+ version: 0.5.0
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70176245146400
24
+ version_requirements: *70232065545440
25
+ - !ruby/object:Gem::Dependency
26
+ name: spree_sample
27
+ requirement: &70232065544940 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ~>
31
+ - !ruby/object:Gem::Version
32
+ version: 1.1.0
33
+ type: :development
34
+ prerelease: false
35
+ version_requirements: *70232065544940
25
36
  - !ruby/object:Gem::Dependency
26
37
  name: dummier
27
- requirement: &70176245145720 !ruby/object:Gem::Requirement
38
+ requirement: &70232065544480 !ruby/object:Gem::Requirement
28
39
  none: false
29
40
  requirements:
30
- - - ! '>='
41
+ - - ~>
31
42
  - !ruby/object:Gem::Version
32
- version: 0.2.4
43
+ version: 0.3.2
33
44
  type: :development
34
45
  prerelease: false
35
- version_requirements: *70176245145720
46
+ version_requirements: *70232065544480
36
47
  - !ruby/object:Gem::Dependency
37
48
  name: shoulda
38
- requirement: &70176245145160 !ruby/object:Gem::Requirement
49
+ requirement: &70232065544020 !ruby/object:Gem::Requirement
39
50
  none: false
40
51
  requirements:
41
- - - ! '>='
52
+ - - ~>
42
53
  - !ruby/object:Gem::Version
43
- version: 3.0.0.beta2
54
+ version: 3.0.0
44
55
  type: :development
45
56
  prerelease: false
46
- version_requirements: *70176245145160
57
+ version_requirements: *70232065544020
47
58
  - !ruby/object:Gem::Dependency
48
59
  name: factory_girl
49
- requirement: &70176245144400 !ruby/object:Gem::Requirement
60
+ requirement: &70232065543560 !ruby/object:Gem::Requirement
50
61
  none: false
51
62
  requirements:
52
- - - ! '>='
63
+ - - ~>
53
64
  - !ruby/object:Gem::Version
54
- version: 2.3.2
65
+ version: 2.6.0
55
66
  type: :development
56
67
  prerelease: false
57
- version_requirements: *70176245144400
68
+ version_requirements: *70232065543560
58
69
  - !ruby/object:Gem::Dependency
59
70
  name: capybara
60
- requirement: &70176245143220 !ruby/object:Gem::Requirement
71
+ requirement: &70232065543100 !ruby/object:Gem::Requirement
61
72
  none: false
62
73
  requirements:
63
- - - ! '>='
74
+ - - ~>
64
75
  - !ruby/object:Gem::Version
65
76
  version: 1.1.2
66
77
  type: :development
67
78
  prerelease: false
68
- version_requirements: *70176245143220
79
+ version_requirements: *70232065543100
69
80
  - !ruby/object:Gem::Dependency
70
81
  name: sqlite3
71
- requirement: &70176245142740 !ruby/object:Gem::Requirement
82
+ requirement: &70232065542640 !ruby/object:Gem::Requirement
72
83
  none: false
73
84
  requirements:
74
- - - ! '>='
85
+ - - ~>
75
86
  - !ruby/object:Gem::Version
76
87
  version: 1.3.5
77
88
  type: :development
78
89
  prerelease: false
79
- version_requirements: *70176245142740
90
+ version_requirements: *70232065542640
80
91
  description: SpreeEssentialCms is a full featured content management system for Spree
81
92
  Commerce. It's designed to be used with the spree_essentials base.
82
93
  email:
@@ -85,27 +96,19 @@ executables: []
85
96
  extensions: []
86
97
  extra_rdoc_files: []
87
98
  files:
88
- - README.md
99
+ - .gitignore
100
+ - .travis.yml
101
+ - Gemfile
89
102
  - LICENSE
90
- - config/locales/en.yml
91
- - config/routes.rb
92
- - lib/generators/spree_essentials/cms_generator.rb
93
- - lib/generators/templates/db/migrate/add_spree_namespace.rb
94
- - lib/generators/templates/db/migrate/create_contents.rb
95
- - lib/generators/templates/db/migrate/create_pages.rb
96
- - lib/spree_essential_cms/version.rb
97
- - lib/spree_essential_cms.rb
98
- - lib/tasks/sample/sailing.jpg
99
- - lib/tasks/sample/sailing2.jpg
100
- - lib/tasks/sample/sailing3.jpg
101
- - lib/tasks/sample.rake
102
- - app/assets/stylesheets/essentials/cms.css
103
+ - README.md
104
+ - Rakefile
105
+ - Versionfile
103
106
  - app/controllers/spree/admin/contents_controller.rb
104
107
  - app/controllers/spree/admin/page_images_controller.rb
105
108
  - app/controllers/spree/admin/pages_controller.rb
106
- - app/controllers/spree/page_controller.rb
109
+ - app/controllers/spree/base_controller_decorator.rb
110
+ - app/controllers/spree/home_controller_decorator.rb
107
111
  - app/controllers/spree/pages_controller.rb
108
- - app/controllers/spree/spree_base_controller_decorator.rb
109
112
  - app/models/spree/content.rb
110
113
  - app/models/spree/page.rb
111
114
  - app/models/spree/page_image.rb
@@ -128,9 +131,48 @@ files:
128
131
  - app/views/spree/pages/show.html.erb
129
132
  - app/views/spree/shared/_content.html.erb
130
133
  - app/views/spree/shared/_main_menu.html.erb
134
+ - app/views/spree/shared/_main_menu_items.html.erb
131
135
  - app/views/spree/shared/_slideshow.html.erb
132
- - Rakefile
133
- homepage: http://github.com/citrus/spree_essential_cms
136
+ - config/locales/en.yml
137
+ - config/locales/it.yml
138
+ - config/routes.rb
139
+ - db/migrate/20120306185628_create_pages.rb
140
+ - db/migrate/20120306185638_create_contents.rb
141
+ - db/migrate/20120306185648_add_spree_namespace.rb
142
+ - lib/generators/spree_essentials/cms_generator.rb
143
+ - lib/spree_essential_cms.rb
144
+ - lib/spree_essential_cms/engine.rb
145
+ - lib/spree_essential_cms/version.rb
146
+ - lib/tasks/sample.rake
147
+ - lib/tasks/sample/sailing.jpg
148
+ - lib/tasks/sample/sailing2.jpg
149
+ - lib/tasks/sample/sailing3.jpg
150
+ - spree_essential_cms.gemspec
151
+ - test/dummy_hooks/after_app_generator.rb
152
+ - test/dummy_hooks/after_migrate.rb.sample
153
+ - test/dummy_hooks/before_migrate.rb
154
+ - test/dummy_hooks/templates/assets/javascripts/admin/all.js
155
+ - test/dummy_hooks/templates/assets/javascripts/store/all.js
156
+ - test/dummy_hooks/templates/assets/stylesheets/admin/all.css
157
+ - test/dummy_hooks/templates/assets/stylesheets/store/all.css
158
+ - test/dummy_hooks/templates/assets/stylesheets/store/screen.css
159
+ - test/dummy_hooks/templates/initializers/spree_user_error_fix.rb
160
+ - test/dummy_hooks/templates/overrides/main_menu.rb
161
+ - test/integration/spree/admin/contents_integration_test.rb
162
+ - test/integration/spree/admin/page_images_integration_test.rb
163
+ - test/integration/spree/admin/pages_integration_test.rb
164
+ - test/integration/spree/home_integration_test.rb
165
+ - test/integration/spree/pages_integration_test.rb
166
+ - test/support/factories.rb
167
+ - test/support/files/1.jpg
168
+ - test/support/files/2.jpg
169
+ - test/support/helpers.rb
170
+ - test/test_helper.rb
171
+ - test/unit/spree/content_test.rb
172
+ - test/unit/spree/essential_test.rb
173
+ - test/unit/spree/page_image_test.rb
174
+ - test/unit/spree/page_test.rb
175
+ homepage: https://github.com/citrus/spree_essential_cms
134
176
  licenses: []
135
177
  post_install_message:
136
178
  rdoc_options: []
@@ -144,18 +186,45 @@ required_ruby_version: !ruby/object:Gem::Requirement
144
186
  version: '0'
145
187
  segments:
146
188
  - 0
147
- hash: 1544382525842900464
189
+ hash: 3437526586172275470
148
190
  required_rubygems_version: !ruby/object:Gem::Requirement
149
191
  none: false
150
192
  requirements:
151
- - - ! '>'
193
+ - - ! '>='
152
194
  - !ruby/object:Gem::Version
153
- version: 1.3.1
195
+ version: '0'
196
+ segments:
197
+ - 0
198
+ hash: 3437526586172275470
154
199
  requirements: []
155
200
  rubyforge_project:
156
- rubygems_version: 1.8.10
201
+ rubygems_version: 1.8.17
157
202
  signing_key:
158
203
  specification_version: 3
159
204
  summary: SpreeEssentialCms is a full featured content management system for Spree
160
205
  Commerce.
161
- test_files: []
206
+ test_files:
207
+ - test/dummy_hooks/after_app_generator.rb
208
+ - test/dummy_hooks/after_migrate.rb.sample
209
+ - test/dummy_hooks/before_migrate.rb
210
+ - test/dummy_hooks/templates/assets/javascripts/admin/all.js
211
+ - test/dummy_hooks/templates/assets/javascripts/store/all.js
212
+ - test/dummy_hooks/templates/assets/stylesheets/admin/all.css
213
+ - test/dummy_hooks/templates/assets/stylesheets/store/all.css
214
+ - test/dummy_hooks/templates/assets/stylesheets/store/screen.css
215
+ - test/dummy_hooks/templates/initializers/spree_user_error_fix.rb
216
+ - test/dummy_hooks/templates/overrides/main_menu.rb
217
+ - test/integration/spree/admin/contents_integration_test.rb
218
+ - test/integration/spree/admin/page_images_integration_test.rb
219
+ - test/integration/spree/admin/pages_integration_test.rb
220
+ - test/integration/spree/home_integration_test.rb
221
+ - test/integration/spree/pages_integration_test.rb
222
+ - test/support/factories.rb
223
+ - test/support/files/1.jpg
224
+ - test/support/files/2.jpg
225
+ - test/support/helpers.rb
226
+ - test/test_helper.rb
227
+ - test/unit/spree/content_test.rb
228
+ - test/unit/spree/essential_test.rb
229
+ - test/unit/spree/page_image_test.rb
230
+ - test/unit/spree/page_test.rb