spree_essential_cms 0.3.0.rc1 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
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