liquid_cms 0.3.0.10 → 0.3.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 (53) hide show
  1. data/CHANGELOG.rdoc +12 -0
  2. data/app/controllers/cms/assets_controller.rb +32 -10
  3. data/app/controllers/cms/components_controller.rb +3 -3
  4. data/app/controllers/cms/main_controller.rb +2 -0
  5. data/app/controllers/cms/pages_controller.rb +2 -2
  6. data/app/helpers/cms/pages_helper.rb +0 -12
  7. data/app/liquid/cms_paperclip_extension.rb +1 -1
  8. data/app/liquid/drops/cms_asset_drop.rb +15 -0
  9. data/app/liquid/filters/cms_filters.rb +1 -1
  10. data/app/liquid/tags/asset_search_tag.rb +26 -0
  11. data/app/liquid/tags/cms/tag_common.rb +29 -0
  12. data/app/liquid/tags/data_tag.rb +59 -0
  13. data/app/models/cms/asset.rb +109 -2
  14. data/app/models/cms/component.rb +21 -17
  15. data/app/models/cms/page.rb +1 -3
  16. data/app/models/cms/tag.rb +21 -0
  17. data/app/models/cms/taggable.rb +78 -0
  18. data/app/models/cms/tagging.rb +6 -0
  19. data/app/views/cms/assets/_asset.html.erb +2 -3
  20. data/app/views/cms/assets/_form.html.erb +53 -2
  21. data/app/views/cms/assets/_list.html.erb +16 -1
  22. data/app/views/cms/assets/_meta_field.html.erb +15 -0
  23. data/app/views/cms/documentation/_cms_drops.html.erb +18 -0
  24. data/app/views/cms/documentation/_cms_tags.html.erb +13 -0
  25. data/app/views/cms/pages/_page.html.erb +1 -3
  26. data/app/views/cms/shared/_sidebar.html.erb +30 -28
  27. data/config/initializers/cms/liquid_cms.rb +8 -0
  28. data/config/locales/cms/en.yml +5 -0
  29. data/generators/liquid_cms/templates/migration_rev1.rb +38 -0
  30. data/lib/generators/liquid_cms/install_generator.rb +7 -9
  31. data/lib/generators/liquid_cms/templates/migration_rev1.rb +38 -0
  32. data/lib/generators/liquid_cms/templates/public/cms/stylesheets/sidebar.css +25 -7
  33. data/lib/generators/liquid_cms/templates/public/cms/stylesheets/simple_form.css +79 -4
  34. data/lib/generators/liquid_cms/templates/public/cms/stylesheets/styles.css +0 -8
  35. data/lib/generators/liquid_cms/templates/public/cms/stylesheets/themes/dark.css +3 -0
  36. data/lib/liquid_cms/configuration.rb +12 -0
  37. data/lib/liquid_cms/version.rb +1 -1
  38. data/test/functional/assets_controller_test.rb +64 -16
  39. data/test/functional/components_controller_test.rb +90 -1
  40. data/test/functional/main_controller_test.rb +21 -0
  41. data/test/integration/pages_test.rb +123 -0
  42. data/test/integration/pages_test_no_context.rb +57 -0
  43. data/test/rails_app/db/migrate/20110329201435_create_liquid_cms_upgrade_rev1.rb +38 -0
  44. data/test/test_helper.rb +2 -0
  45. data/test/test_helpers/asset_helpers.rb +6 -4
  46. data/test/test_helpers/component_helpers.rb +37 -0
  47. data/test/test_helpers/file_helpers.rb +11 -0
  48. data/test/unit/asset_test.rb +114 -8
  49. data/test/unit/component_test.rb +64 -1
  50. data/test/unit/helpers/cms/common_helper_test.rb +4 -0
  51. metadata +37 -6
  52. data/app/views/cms/assets/destroy.js.rjs +0 -2
  53. data/test/rails_app/config/initializers/cms/vestal_versions.rb +0 -11
@@ -9,6 +9,51 @@ class Cms::AssetTest < ActiveSupport::TestCase
9
9
  cleanup_assets
10
10
  end
11
11
 
12
+ context "asset field" do
13
+ setup do
14
+ @asset = Factory(:image_asset, :context => @context)
15
+ @fname = File.expand_path('../../rails_app/public/images/rails.png', __FILE__)
16
+ end
17
+
18
+ should "have a valid custom file" do
19
+ %w(original tiny thumb custom).each do |type|
20
+ assert_nil @asset.asset.to_file(type)
21
+ end
22
+
23
+ @asset.asset = nil
24
+ @asset.asset = File.open(@fname)
25
+ @asset.save
26
+
27
+ %w(original tiny thumb custom).each do |type|
28
+ assert_not_nil @asset.asset.to_file(type)
29
+ end
30
+ end
31
+
32
+ should "create an image with a custom size" do
33
+ # check normal size first
34
+ @asset.asset = File.open(@fname)
35
+ @asset.save
36
+
37
+ assert_equal '50x64', Paperclip::Geometry.from_file(@asset.asset.path(:custom)).to_s
38
+
39
+ # assign custom dimensions
40
+ @asset.custom_width = 5
41
+ @asset.custom_height = 5
42
+ @asset.save
43
+
44
+ # check new dimensions
45
+ assert_equal '4x5', Paperclip::Geometry.from_file(@asset.asset.path(:custom)).to_s
46
+ end
47
+
48
+ should "correctly create a custom asset while assigning the asset and dims at the same time" do
49
+ asset_attrs = {:asset => File.open(@fname), :custom_height => '10', :custom_width => '5'}
50
+ @asset.assign_ordered_attributes asset_attrs
51
+ @asset.save
52
+ assert_equal '50x64', Paperclip::Geometry.from_file(@asset.asset.path(:original)).to_s
53
+ assert_equal '5x6', Paperclip::Geometry.from_file(@asset.asset.path(:custom)).to_s
54
+ end
55
+ end
56
+
12
57
  context "type checks" do
13
58
  setup do
14
59
  @asset = Factory(:image_asset, :context => @context)
@@ -29,8 +74,10 @@ class Cms::AssetTest < ActiveSupport::TestCase
29
74
  assert !@asset.editable?
30
75
  end
31
76
  should "not be able to read or write" do
32
- assert_equal '', @asset.read
33
- assert_equal false, @asset.write('test')
77
+ assert_equal '', @asset.file_content
78
+ assert_equal false, @asset.send(:write, 'test')
79
+ assert_equal 'test', @asset.file_content=('test')
80
+ assert_equal '', @asset.file_content
34
81
  end
35
82
  end
36
83
 
@@ -45,8 +92,10 @@ class Cms::AssetTest < ActiveSupport::TestCase
45
92
  assert !@asset.editable?
46
93
  end
47
94
  should "not be able to read or write" do
48
- assert_equal '', @asset.read
49
- assert_equal false, @asset.write('test')
95
+ assert_equal '', @asset.file_content
96
+ assert_equal false, @asset.send(:write, 'test')
97
+ assert_equal 'test', @asset.file_content=('test')
98
+ assert_equal '', @asset.file_content
50
99
  end
51
100
  end
52
101
 
@@ -64,8 +113,10 @@ class Cms::AssetTest < ActiveSupport::TestCase
64
113
  assert !@asset.editable?
65
114
  end
66
115
  should "not be able to read or write" do
67
- assert_equal '', @asset.read
68
- assert_equal false, @asset.write('test')
116
+ assert_equal '', @asset.file_content
117
+ assert_equal false, @asset.send(:write, 'test')
118
+ assert_equal 'test', @asset.file_content=('test')
119
+ assert_equal '', @asset.file_content
69
120
  end
70
121
  end
71
122
 
@@ -85,9 +136,64 @@ class Cms::AssetTest < ActiveSupport::TestCase
85
136
  assert @asset.editable?
86
137
  end
87
138
  should "be able to read or write" do
88
- assert_equal true, @asset.write("alert('test')")
89
- assert_equal "alert('test')\n", @asset.read
139
+ assert_equal true, @asset.send(:write, "alert('test')")
140
+ assert_equal "alert('test')", @asset.file_content=("alert('test')")
141
+ assert_equal "alert('test')\n", @asset.file_content
90
142
  end
91
143
  end
92
144
  end
145
+
146
+ context "tags" do
147
+ setup do
148
+ @asset = Factory(:image_asset, :context => @context)
149
+ end
150
+
151
+ should "be untagged" do
152
+ assert_nil @context.assets.tagged.find_by_id(@asset.id)
153
+ assert_not_nil @context.assets.untagged.find_by_id(@asset.id)
154
+ end
155
+
156
+ should "be tagged" do
157
+ @asset.tag_list = "test, this stuff"
158
+ @asset.save
159
+
160
+ assert_not_nil @context.assets.tagged.find_by_id(@asset.id)
161
+ assert_not_nil @context.assets.tagged_with('test').find_by_id(@asset.id)
162
+ assert_not_nil @context.assets.tagged_with('this').find_by_id(@asset.id)
163
+ assert_not_nil @context.assets.tagged_with('stuff').find_by_id(@asset.id)
164
+ assert_nil @context.assets.tagged_with('notthis').find_by_id(@asset.id)
165
+ assert_nil @context.assets.untagged.find_by_id(@asset.id)
166
+ end
167
+ end
168
+
169
+ context "meta data" do
170
+ setup do
171
+ @asset = Factory(:image_asset, :context => @context)
172
+ end
173
+
174
+ should "assign meta data" do
175
+ @asset.meta = {'new_1' => {:name => 'test name 1', :value => 'test value 1'}, 'new_2' => {:name => ' ', :value => 'test value 2'}}
176
+ assert @asset.meta_data.is_a?(Array)
177
+ assert_equal 2, @asset.meta_data.length
178
+ end
179
+
180
+ should "validate" do
181
+ @asset.meta = {'new_1' => {:name => 'test name 1', :value => 'test value 1'}, 'new_2' => {:name => ' ', :value => 'test value 2'}}
182
+ assert !@asset.valid?
183
+ assert_equal "is invalid", @asset.errors[:meta_data].first
184
+ assert_equal "is an invalid format", @asset.meta[0].errors[:name].first
185
+ assert_equal "must be set", @asset.meta[1].errors[:name].first
186
+
187
+ @asset.meta = {'new_1' => {:name => 'test_name', :value => 'test value 1'}, 'new_2' => {:name => 'new_$', :value => 'test value 2'}}
188
+ assert !@asset.valid?
189
+ assert_equal "is invalid", @asset.errors[:meta_data].first
190
+ assert @asset.meta[0].errors.empty?
191
+ assert_equal "is an invalid format", @asset.meta[1].errors[:name].first
192
+
193
+ @asset.meta = {'new_1' => {:name => 'test_name', :value => 'test value 1'}, 'new_2' => {:name => 'new_2', :value => 'test value 2'}}
194
+ assert @asset.valid?
195
+ assert @asset.meta[0].errors.empty?
196
+ assert @asset.meta[1].errors.empty?
197
+ end
198
+ end
93
199
  end
@@ -2,7 +2,70 @@ require File.expand_path('../../test_helper', __FILE__)
2
2
 
3
3
  class Cms::ComponentTest < ActiveSupport::TestCase
4
4
  def setup
5
+ @context = Cms::Context.new(nil)
5
6
  end
7
+
8
+ context "no context" do
9
+ should "have valid paths" do
10
+ assert_equal 'cms/components', Cms::Component.base_path(@context).to_s
11
+ assert_equal Rails.root.to_s + '/public/cms/components', Cms::Component.full_path(@context).to_s
12
+ assert_equal 'zipdir/test.jpg', Cms::Component.component_path(@context, Cms::Component.full_path(@context).join('zipdir', 'test.jpg')).to_s
13
+ assert_equal '', Cms::Component.component_path(@context, Cms::Component.full_path(@context).join('..', 'zipdir', 'test.jpg')).to_s
14
+ end
6
15
 
7
- should "add component tests"
16
+ should "verify valid extensions" do
17
+ assert Cms::Component.valid_ext?('test.jpg')
18
+ assert Cms::Component.valid_ext?('test.JPG')
19
+ assert !Cms::Component.valid_ext?('test.bmp')
20
+
21
+ Cms.valid_component_exts += %w(.bmp)
22
+
23
+ assert Cms::Component.valid_ext?('test.jpg')
24
+ assert Cms::Component.valid_ext?('test.JPG')
25
+ assert Cms::Component.valid_ext?('test.bmp')
26
+ end
27
+
28
+ should "check for being editable" do
29
+ assert !Cms::Component.editable?('test.jpg')
30
+ assert !Cms::Component.editable?('test.JPG')
31
+ assert Cms::Component.editable?('test.txt')
32
+ assert Cms::Component.editable?('test.TXT')
33
+ assert !Cms::Component.editable?('test.xhtml')
34
+
35
+ Cms.editable_component_exts += %w(.xhtml)
36
+
37
+ assert Cms::Component.editable?('test.xhtml')
38
+ end
39
+
40
+ context "component instance" do
41
+ setup do
42
+ file = File.join('path', 'to', 'file.js')
43
+ setup_component Cms::Component.full_path(@context).join(file)
44
+ @component = Cms::Component.new(@context, file)
45
+ end
46
+
47
+ teardown do
48
+ cleanup_components
49
+ end
50
+
51
+ should "be able to perform file operations" do
52
+ assert_equal true, @component.write("alert('test')")
53
+ assert_equal "alert('test')\n", @component.read
54
+ assert_equal true, @component.delete
55
+ end
56
+
57
+ should "expand a zip file" do
58
+ create_zip 'test.zip' do |path|
59
+ Cms::Component.expand @context, path
60
+
61
+ assert File.exist?(Cms::Component.full_path(@context).join('test.txt'))
62
+ assert !File.exist?(Cms::Component.full_path(@context).join('test.ext'))
63
+ assert File.exist?(Cms::Component.full_path(@context).join('dir', 'test.txt'))
64
+ assert !File.exist?(Cms::Component.full_path(@context).join('dir', 'test.exe'))
65
+ assert !File.exist?(Cms::Component.full_path(@context).join('../../dir', 'test.exe'))
66
+ assert !File.exist?(Cms::Component.full_path(@context).join('../../dir', 'test.txt'))
67
+ end
68
+ end
69
+ end
70
+ end
8
71
  end
@@ -0,0 +1,4 @@
1
+ require File.expand_path('../../../../test_helper', __FILE__)
2
+
3
+ class Cms::CommonHelperTest < ActionView::TestCase
4
+ end
metadata CHANGED
@@ -1,13 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: liquid_cms
3
3
  version: !ruby/object:Gem::Version
4
+ hash: 83
4
5
  prerelease: false
5
6
  segments:
6
7
  - 0
7
8
  - 3
9
+ - 1
8
10
  - 0
9
- - 10
10
- version: 0.3.0.10
11
+ version: 0.3.1.0
11
12
  platform: ruby
12
13
  authors:
13
14
  - Andrew Kaspick
@@ -16,7 +17,7 @@ autorequire:
16
17
  bindir: bin
17
18
  cert_chain: []
18
19
 
19
- date: 2011-03-09 00:00:00 -06:00
20
+ date: 2011-05-09 00:00:00 -05:00
20
21
  default_executable:
21
22
  dependencies:
22
23
  - !ruby/object:Gem::Dependency
@@ -27,6 +28,7 @@ dependencies:
27
28
  requirements:
28
29
  - - ">="
29
30
  - !ruby/object:Gem::Version
31
+ hash: 23
30
32
  segments:
31
33
  - 1
32
34
  - 0
@@ -42,6 +44,7 @@ dependencies:
42
44
  requirements:
43
45
  - - ~>
44
46
  - !ruby/object:Gem::Version
47
+ hash: 7
45
48
  segments:
46
49
  - 3
47
50
  - 0
@@ -57,6 +60,7 @@ dependencies:
57
60
  requirements:
58
61
  - - ~>
59
62
  - !ruby/object:Gem::Version
63
+ hash: 1
60
64
  segments:
61
65
  - 2
62
66
  - 3
@@ -72,6 +76,7 @@ dependencies:
72
76
  requirements:
73
77
  - - ~>
74
78
  - !ruby/object:Gem::Version
79
+ hash: 31
75
80
  segments:
76
81
  - 1
77
82
  - 2
@@ -87,6 +92,7 @@ dependencies:
87
92
  requirements:
88
93
  - - ~>
89
94
  - !ruby/object:Gem::Version
95
+ hash: 57
90
96
  segments:
91
97
  - 0
92
98
  - 9
@@ -102,6 +108,7 @@ dependencies:
102
108
  requirements:
103
109
  - - ~>
104
110
  - !ruby/object:Gem::Version
111
+ hash: 27
105
112
  segments:
106
113
  - 2
107
114
  - 3
@@ -117,6 +124,7 @@ dependencies:
117
124
  requirements:
118
125
  - - ">="
119
126
  - !ruby/object:Gem::Version
127
+ hash: 3
120
128
  segments:
121
129
  - 0
122
130
  version: "0"
@@ -130,6 +138,7 @@ dependencies:
130
138
  requirements:
131
139
  - - ">="
132
140
  - !ruby/object:Gem::Version
141
+ hash: 3
133
142
  segments:
134
143
  - 0
135
144
  version: "0"
@@ -143,6 +152,7 @@ dependencies:
143
152
  requirements:
144
153
  - - ~>
145
154
  - !ruby/object:Gem::Version
155
+ hash: 27
146
156
  segments:
147
157
  - 1
148
158
  - 3
@@ -158,6 +168,7 @@ dependencies:
158
168
  requirements:
159
169
  - - ~>
160
170
  - !ruby/object:Gem::Version
171
+ hash: 33
161
172
  segments:
162
173
  - 2
163
174
  - 10
@@ -173,6 +184,7 @@ dependencies:
173
184
  requirements:
174
185
  - - ">="
175
186
  - !ruby/object:Gem::Version
187
+ hash: 3
176
188
  segments:
177
189
  - 0
178
190
  version: "0"
@@ -205,18 +217,25 @@ files:
205
217
  - app/helpers/cms/components_helper.rb
206
218
  - app/helpers/cms/pages_helper.rb
207
219
  - app/liquid/cms_paperclip_extension.rb
220
+ - app/liquid/drops/cms_asset_drop.rb
208
221
  - app/liquid/drops/cms_common_drop.rb
209
222
  - app/liquid/drops/cms_params_drop.rb
210
223
  - app/liquid/filters/cms_filters.rb
224
+ - app/liquid/tags/asset_search_tag.rb
225
+ - app/liquid/tags/cms/tag_common.rb
211
226
  - app/liquid/tags/cms_include_tag.rb
227
+ - app/liquid/tags/data_tag.rb
212
228
  - app/models/cms/asset.rb
213
229
  - app/models/cms/component.rb
214
230
  - app/models/cms/editable.rb
215
231
  - app/models/cms/page.rb
232
+ - app/models/cms/tag.rb
233
+ - app/models/cms/taggable.rb
234
+ - app/models/cms/tagging.rb
216
235
  - app/views/cms/assets/_asset.html.erb
217
236
  - app/views/cms/assets/_form.html.erb
218
237
  - app/views/cms/assets/_list.html.erb
219
- - app/views/cms/assets/destroy.js.rjs
238
+ - app/views/cms/assets/_meta_field.html.erb
220
239
  - app/views/cms/assets/edit.html.erb
221
240
  - app/views/cms/assets/new.html.erb
222
241
  - app/views/cms/assets/show.html.erb
@@ -256,8 +275,10 @@ files:
256
275
  - config/initializers/cms/vestal_versions.rb
257
276
  - config/locales/cms/en.yml
258
277
  - config/routes.rb
278
+ - generators/liquid_cms/templates/migration_rev1.rb
259
279
  - lib/generators/liquid_cms/install_generator.rb
260
280
  - lib/generators/liquid_cms/templates/migration.rb
281
+ - lib/generators/liquid_cms/templates/migration_rev1.rb
261
282
  - lib/generators/liquid_cms/templates/public/cms/codemirror/LICENSE
262
283
  - lib/generators/liquid_cms/templates/public/cms/codemirror/css/csscolors.css
263
284
  - lib/generators/liquid_cms/templates/public/cms/codemirror/css/docs.css
@@ -1425,6 +1446,7 @@ files:
1425
1446
  - test/functional/main_controller_test.rb
1426
1447
  - test/functional/pages_controller_test.rb
1427
1448
  - test/integration/pages_test.rb
1449
+ - test/integration/pages_test_no_context.rb
1428
1450
  - test/no_context_test_helper.rb
1429
1451
  - test/rails_app/Gemfile
1430
1452
  - test/rails_app/Gemfile.lock
@@ -1449,7 +1471,6 @@ files:
1449
1471
  - test/rails_app/config/initializers/cms/remote_indicator.rb
1450
1472
  - test/rails_app/config/initializers/cms/simple_form.rb
1451
1473
  - test/rails_app/config/initializers/cms/simple_form_updates.rb
1452
- - test/rails_app/config/initializers/cms/vestal_versions.rb
1453
1474
  - test/rails_app/config/initializers/inflections.rb
1454
1475
  - test/rails_app/config/initializers/mime_types.rb
1455
1476
  - test/rails_app/config/initializers/secret_token.rb
@@ -1458,6 +1479,7 @@ files:
1458
1479
  - test/rails_app/config/locales/en.yml
1459
1480
  - test/rails_app/config/routes.rb
1460
1481
  - test/rails_app/db/migrate/20101018211856_create_liquid_cms_setup.rb
1482
+ - test/rails_app/db/migrate/20110329201435_create_liquid_cms_upgrade_rev1.rb
1461
1483
  - test/rails_app/db/seeds.rb
1462
1484
  - test/rails_app/public/404.html
1463
1485
  - test/rails_app/public/422.html
@@ -1475,9 +1497,12 @@ files:
1475
1497
  - test/test_helper.rb
1476
1498
  - test/test_helpers/asset_helpers.rb
1477
1499
  - test/test_helpers/cache_helper.rb
1500
+ - test/test_helpers/component_helpers.rb
1501
+ - test/test_helpers/file_helpers.rb
1478
1502
  - test/test_helpers/login_methods.rb
1479
1503
  - test/unit/asset_test.rb
1480
1504
  - test/unit/component_test.rb
1505
+ - test/unit/helpers/cms/common_helper_test.rb
1481
1506
  - test/unit/page_test.rb
1482
1507
  has_rdoc: true
1483
1508
  homepage: http://rubygems.org/gems/liquid_cms
@@ -1493,6 +1518,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
1493
1518
  requirements:
1494
1519
  - - ">="
1495
1520
  - !ruby/object:Gem::Version
1521
+ hash: 3
1496
1522
  segments:
1497
1523
  - 0
1498
1524
  version: "0"
@@ -1501,6 +1527,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
1501
1527
  requirements:
1502
1528
  - - ">="
1503
1529
  - !ruby/object:Gem::Version
1530
+ hash: 23
1504
1531
  segments:
1505
1532
  - 1
1506
1533
  - 3
@@ -1525,6 +1552,7 @@ test_files:
1525
1552
  - test/functional/main_controller_test.rb
1526
1553
  - test/functional/pages_controller_test.rb
1527
1554
  - test/integration/pages_test.rb
1555
+ - test/integration/pages_test_no_context.rb
1528
1556
  - test/no_context_test_helper.rb
1529
1557
  - test/rails_app/Gemfile
1530
1558
  - test/rails_app/Gemfile.lock
@@ -1549,7 +1577,6 @@ test_files:
1549
1577
  - test/rails_app/config/initializers/cms/remote_indicator.rb
1550
1578
  - test/rails_app/config/initializers/cms/simple_form.rb
1551
1579
  - test/rails_app/config/initializers/cms/simple_form_updates.rb
1552
- - test/rails_app/config/initializers/cms/vestal_versions.rb
1553
1580
  - test/rails_app/config/initializers/inflections.rb
1554
1581
  - test/rails_app/config/initializers/mime_types.rb
1555
1582
  - test/rails_app/config/initializers/secret_token.rb
@@ -1558,6 +1585,7 @@ test_files:
1558
1585
  - test/rails_app/config/locales/en.yml
1559
1586
  - test/rails_app/config/routes.rb
1560
1587
  - test/rails_app/db/migrate/20101018211856_create_liquid_cms_setup.rb
1588
+ - test/rails_app/db/migrate/20110329201435_create_liquid_cms_upgrade_rev1.rb
1561
1589
  - test/rails_app/db/seeds.rb
1562
1590
  - test/rails_app/public/404.html
1563
1591
  - test/rails_app/public/422.html
@@ -1575,7 +1603,10 @@ test_files:
1575
1603
  - test/test_helper.rb
1576
1604
  - test/test_helpers/asset_helpers.rb
1577
1605
  - test/test_helpers/cache_helper.rb
1606
+ - test/test_helpers/component_helpers.rb
1607
+ - test/test_helpers/file_helpers.rb
1578
1608
  - test/test_helpers/login_methods.rb
1579
1609
  - test/unit/asset_test.rb
1580
1610
  - test/unit/component_test.rb
1611
+ - test/unit/helpers/cms/common_helper_test.rb
1581
1612
  - test/unit/page_test.rb