comfortable_mexican_sofa 1.4.22 → 1.5.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.travis.yml +2 -2
- data/Gemfile +3 -7
- data/VERSION +1 -1
- data/app/assets/stylesheets/comfortable_mexican_sofa/form.css +44 -1
- data/app/controllers/cms_admin/files_controller.rb +10 -1
- data/app/controllers/cms_admin/layouts_controller.rb +9 -0
- data/app/controllers/cms_admin/pages_controller.rb +1 -1
- data/app/controllers/cms_admin/snippets_controller.rb +10 -1
- data/app/models/cms/block.rb +29 -0
- data/app/models/cms/file.rb +9 -19
- data/app/models/cms/layout.rb +9 -0
- data/app/models/cms/page.rb +3 -4
- data/app/models/cms/snippet.rb +9 -0
- data/app/views/cms_admin/files/_file.html.erb +1 -1
- data/app/views/cms_admin/files/_index.html.erb +1 -12
- data/app/views/cms_admin/files/_page_form.html.erb +12 -0
- data/app/views/cms_admin/files/destroy.js.erb +1 -1
- data/app/views/cms_admin/files/index.html.erb +6 -2
- data/app/views/cms_admin/layouts/_index_branch.html.erb +5 -1
- data/app/views/cms_admin/layouts/index.html.erb +1 -1
- data/app/views/cms_admin/pages/_form_blocks.html.erb +2 -2
- data/app/views/cms_admin/pages/edit.html.erb +1 -1
- data/app/views/cms_admin/pages/new.html.erb +1 -1
- data/app/views/cms_admin/snippets/index.html.erb +6 -2
- data/comfortable_mexican_sofa.gemspec +16 -10
- data/config/initializers/comfortable_mexican_sofa.rb +0 -4
- data/config/initializers/paperclip.rb +25 -0
- data/config/locales/en.yml +2 -0
- data/config/locales/es.yml +2 -0
- data/config/routes.rb +8 -8
- data/db/migrate/01_create_cms.rb +6 -0
- data/db/migrate/upgrades/06_upgrade_to_1_5_0.rb +21 -0
- data/lib/comfortable_mexican_sofa/configuration.rb +14 -19
- data/lib/comfortable_mexican_sofa/form_builder.rb +48 -36
- data/lib/comfortable_mexican_sofa/tag.rb +2 -12
- data/lib/comfortable_mexican_sofa/tags/collection.rb +0 -4
- data/lib/comfortable_mexican_sofa/tags/field_datetime.rb +0 -4
- data/lib/comfortable_mexican_sofa/tags/field_integer.rb +0 -4
- data/lib/comfortable_mexican_sofa/tags/field_string.rb +0 -4
- data/lib/comfortable_mexican_sofa/tags/field_text.rb +0 -4
- data/lib/comfortable_mexican_sofa/tags/file.rb +5 -0
- data/lib/comfortable_mexican_sofa/tags/page_datetime.rb +0 -4
- data/lib/comfortable_mexican_sofa/tags/page_file.rb +44 -0
- data/lib/comfortable_mexican_sofa/tags/page_files.rb +44 -0
- data/lib/comfortable_mexican_sofa/tags/page_integer.rb +0 -4
- data/lib/comfortable_mexican_sofa/tags/page_rich_text.rb +0 -4
- data/lib/comfortable_mexican_sofa/tags/page_string.rb +0 -4
- data/lib/comfortable_mexican_sofa/tags/page_text.rb +0 -4
- data/lib/comfortable_mexican_sofa/tags/snippet.rb +5 -0
- data/lib/comfortable_mexican_sofa/view_methods.rb +6 -1
- data/test/fixtures/cms/files.yml +2 -1
- data/test/fixtures/cms/layouts.yml +4 -1
- data/test/fixtures/cms/snippets.yml +1 -0
- data/test/functional/cms_admin/files_controller_test.rb +17 -19
- data/test/functional/cms_admin/layouts_controller_test.rb +18 -1
- data/test/functional/cms_admin/pages_controller_test.rb +63 -22
- data/test/functional/cms_admin/snippets_controller_test.rb +18 -1
- data/test/gemfiles/Gemfile.rails-3.0.x +10 -0
- data/test/gemfiles/Gemfile.rails-3.1.x +10 -0
- data/test/test_helper.rb +13 -12
- data/test/unit/configuration_test.rb +1 -1
- data/test/unit/models/block_test.rb +112 -1
- data/test/unit/models/file_test.rb +1 -51
- data/test/unit/models/layout_test.rb +1 -0
- data/test/unit/models/snippet_test.rb +14 -0
- data/test/unit/tags/collection_test.rb +5 -5
- data/test/unit/tags/field_datetime_test.rb +2 -2
- data/test/unit/tags/field_integer_test.rb +2 -2
- data/test/unit/tags/field_string_test.rb +2 -2
- data/test/unit/tags/field_text_test.rb +2 -2
- data/test/unit/tags/page_datetime_test.rb +2 -2
- data/test/unit/tags/page_file_test.rb +79 -0
- data/test/unit/tags/page_files_test.rb +72 -0
- data/test/unit/tags/page_integer_test.rb +2 -2
- data/test/unit/tags/page_rich_text_test.rb +2 -2
- data/test/unit/tags/page_string_test.rb +2 -2
- data/test/unit/tags/page_text_test.rb +2 -2
- data/test/unit/view_methods_test.rb +2 -1
- metadata +20 -14
- data/gemfiles/Gemfile.rails-3.0.x +0 -14
- data/gemfiles/Gemfile.rails-3.1.x +0 -14
@@ -0,0 +1,44 @@
|
|
1
|
+
class ComfortableMexicanSofa::Tag::PageFile
|
2
|
+
include ComfortableMexicanSofa::Tag
|
3
|
+
|
4
|
+
# Signature of a tag:
|
5
|
+
# {{ cms:page_file:some_label:type:params }}
|
6
|
+
# Simple tag can be:
|
7
|
+
# {{ cms:page_file:some_label }}
|
8
|
+
def self.regex_tag_signature(label = nil)
|
9
|
+
label ||= /[\w\-]+/
|
10
|
+
/\{\{\s*cms:page_file:(#{label}):?(.*?)\s*\}\}/
|
11
|
+
end
|
12
|
+
|
13
|
+
# Type of the tag controls how file is rendered
|
14
|
+
def type
|
15
|
+
%w(partial url image link).member?(params[0]) ? params[0] : 'url'
|
16
|
+
end
|
17
|
+
|
18
|
+
def content
|
19
|
+
block.files.first
|
20
|
+
end
|
21
|
+
|
22
|
+
def render
|
23
|
+
file = block.files.first
|
24
|
+
case self.type
|
25
|
+
when 'url'
|
26
|
+
return '' unless file
|
27
|
+
file.file.url
|
28
|
+
when 'link'
|
29
|
+
return '' unless file
|
30
|
+
text = params[1] || label
|
31
|
+
"<a href='#{file.file.url}' target='_blank'>#{text}</a>"
|
32
|
+
when 'image'
|
33
|
+
return '' unless file
|
34
|
+
text = params[1] || label
|
35
|
+
"<img src='#{file.file.url}' alt='#{text}' />"
|
36
|
+
when 'partial'
|
37
|
+
path = params[1] || 'partials/page_file'
|
38
|
+
ps = (self.params[2..-1] || []).collect_with_index{|p, i| ":param_#{i+1} => '#{p}'"}.join(', ')
|
39
|
+
ps = ps.present?? ", #{ps}" : ''
|
40
|
+
"<%= render :partial => '#{path}', :locals => {:identifier => #{file.try(:id) || 'nil'}#{ps}} %>"
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
class ComfortableMexicanSofa::Tag::PageFiles
|
2
|
+
include ComfortableMexicanSofa::Tag
|
3
|
+
|
4
|
+
def self.regex_tag_signature(label = nil)
|
5
|
+
label ||= /[\w\-]+/
|
6
|
+
/\{\{\s*cms:page_files:(#{label}):?(.*?)\s*\}\}/
|
7
|
+
end
|
8
|
+
|
9
|
+
def type
|
10
|
+
%w(partial url image link).member?(params[0]) ? params[0] : 'url'
|
11
|
+
end
|
12
|
+
|
13
|
+
def content
|
14
|
+
block.files
|
15
|
+
end
|
16
|
+
|
17
|
+
def render
|
18
|
+
files = block.files
|
19
|
+
case self.type
|
20
|
+
when 'url'
|
21
|
+
return '' if files.blank?
|
22
|
+
files.collect do |file|
|
23
|
+
file.file.url
|
24
|
+
end.join(', ')
|
25
|
+
when 'link'
|
26
|
+
return '' if files.blank?
|
27
|
+
files.collect do |file|
|
28
|
+
"<a href='#{file.file.url}' target='_blank'>#{file.label}</a>"
|
29
|
+
end.join(' ')
|
30
|
+
when 'image'
|
31
|
+
return '' if files.blank?
|
32
|
+
files.collect do |file|
|
33
|
+
"<img src='#{file.file.url}' alt='#{file.label}' />"
|
34
|
+
end.join(' ')
|
35
|
+
when 'partial'
|
36
|
+
path = params[1] || 'partials/page_files'
|
37
|
+
ps = (self.params[2..-1] || []).collect_with_index{|p, i| ":param_#{i+1} => '#{p}'"}.join(', ')
|
38
|
+
ps = ps.present?? ", #{ps}" : ''
|
39
|
+
ids = files.present?? files.collect(&:id).join(',') : ''
|
40
|
+
"<%= render :partial => '#{path}', :locals => {:identifier => [#{ids}]#{ps}} %>"
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
end
|
@@ -6,6 +6,11 @@ class ComfortableMexicanSofa::Tag::Snippet
|
|
6
6
|
/\{\{\s*cms:snippet:(#{label})\s*\}\}/
|
7
7
|
end
|
8
8
|
|
9
|
+
# Find or initialize Cms::Snippet object
|
10
|
+
def snippet
|
11
|
+
page.site.snippets.detect{|s| s.slug == self.label.to_s} || page.site.snippets.build(:slug => self.label.to_s)
|
12
|
+
end
|
13
|
+
|
9
14
|
def content
|
10
15
|
snippet.content
|
11
16
|
end
|
@@ -19,7 +19,12 @@ module ComfortableMexicanSofa::ViewMethods
|
|
19
19
|
# cms_snippet_content(:my_snippet)
|
20
20
|
def cms_snippet_content(snippet_slug, cms_site = nil)
|
21
21
|
return '' unless cms_site ||= (@cms_site || Cms::Site.find_site(request.host.downcase, request.fullpath))
|
22
|
-
|
22
|
+
case snippet_slug
|
23
|
+
when Cms::Snippet
|
24
|
+
snippet = snippet_slug
|
25
|
+
else
|
26
|
+
return '' unless snippet = cms_site.snippets.find_by_slug(snippet_slug)
|
27
|
+
end
|
23
28
|
render :inline => ComfortableMexicanSofa::Tag.process_content(Cms::Page.new, snippet.content)
|
24
29
|
end
|
25
30
|
|
data/test/fixtures/cms/files.yml
CHANGED
@@ -12,6 +12,7 @@ default:
|
|
12
12
|
layout_content_c
|
13
13
|
css: default_css
|
14
14
|
js: default_js
|
15
|
+
position: 0
|
15
16
|
|
16
17
|
nested:
|
17
18
|
site: default
|
@@ -23,6 +24,7 @@ nested:
|
|
23
24
|
{{cms:page:content}}
|
24
25
|
css: nested_css
|
25
26
|
js: nested_js
|
27
|
+
position: 0
|
26
28
|
|
27
29
|
child:
|
28
30
|
site: default
|
@@ -33,4 +35,5 @@ child:
|
|
33
35
|
{{cms:page:left_column}}
|
34
36
|
{{cms:page:right_column}}
|
35
37
|
css: child_css
|
36
|
-
js: child_js
|
38
|
+
js: child_js
|
39
|
+
position: 0
|
@@ -123,25 +123,6 @@ class CmsAdmin::FilesControllerTest < ActionController::TestCase
|
|
123
123
|
end
|
124
124
|
end
|
125
125
|
|
126
|
-
def test_create_as_xhr_with_page_id
|
127
|
-
ComfortableMexicanSofa.config.auto_file_categorization = true
|
128
|
-
request.env['HTTP_X_FILE_NAME'] = 'test.pdf'
|
129
|
-
request.env['CONTENT_TYPE'] = 'application/pdf'
|
130
|
-
|
131
|
-
assert_difference ['Cms::File.count', 'Cms::Category.count', 'Cms::Categorization.count'] do
|
132
|
-
xhr :post, :create, :site_id => cms_sites(:default), :file => {
|
133
|
-
:page_id => cms_pages(:default).id
|
134
|
-
}
|
135
|
-
assert_response :success
|
136
|
-
|
137
|
-
file = Cms::File.last
|
138
|
-
assert_equal 'test.pdf', file.file_file_name
|
139
|
-
assert_equal 1, file.categories.count
|
140
|
-
assert_equal '[page] /', file.categories.first.label
|
141
|
-
assert_equal 'Cms::File', file.categories.first.categorized_type
|
142
|
-
end
|
143
|
-
end
|
144
|
-
|
145
126
|
def test_update
|
146
127
|
file = cms_files(:default)
|
147
128
|
put :update, :site_id => file.site, :id => file, :file => {
|
@@ -184,4 +165,21 @@ class CmsAdmin::FilesControllerTest < ActionController::TestCase
|
|
184
165
|
end
|
185
166
|
end
|
186
167
|
|
168
|
+
def test_reorder
|
169
|
+
file_one = cms_files(:default)
|
170
|
+
file_two = cms_sites(:default).files.create(
|
171
|
+
:file => fixture_file_upload('files/valid_image.jpg')
|
172
|
+
)
|
173
|
+
assert_equal 0, file_one.position
|
174
|
+
assert_equal 1, file_two.position
|
175
|
+
|
176
|
+
post :reorder, :site_id => cms_sites(:default), :cms_file => [file_two.id, file_one.id]
|
177
|
+
assert_response :success
|
178
|
+
file_one.reload
|
179
|
+
file_two.reload
|
180
|
+
|
181
|
+
assert_equal 1, file_one.position
|
182
|
+
assert_equal 0, file_two.position
|
183
|
+
end
|
184
|
+
|
187
185
|
end
|
@@ -34,7 +34,6 @@ class CmsAdmin::LayoutsControllerTest < ActionController::TestCase
|
|
34
34
|
assert assigns(:layout)
|
35
35
|
assert_template :edit
|
36
36
|
assert_select "form[action=/cms-admin/sites/#{layout.site.id}/layouts/#{layout.id}]"
|
37
|
-
assert_select "form[action='/cms-admin/sites/#{layout.site.id}/files?file[layout_id]=#{layout.id}']"
|
38
37
|
end
|
39
38
|
|
40
39
|
def test_get_edit_failure
|
@@ -102,5 +101,23 @@ class CmsAdmin::LayoutsControllerTest < ActionController::TestCase
|
|
102
101
|
assert_equal 'Layout deleted', flash[:notice]
|
103
102
|
end
|
104
103
|
end
|
104
|
+
|
105
|
+
def test_reorder
|
106
|
+
layout_one = cms_layouts(:default)
|
107
|
+
layout_two = cms_sites(:default).layouts.create!(
|
108
|
+
:label => 'test',
|
109
|
+
:slug => 'test'
|
110
|
+
)
|
111
|
+
assert_equal 0, layout_one.position
|
112
|
+
assert_equal 1, layout_two.position
|
113
|
+
|
114
|
+
post :reorder, :site_id => cms_sites(:default), :cms_layout => [layout_two.id, layout_one.id]
|
115
|
+
assert_response :success
|
116
|
+
layout_one.reload
|
117
|
+
layout_two.reload
|
118
|
+
|
119
|
+
assert_equal 1, layout_one.position
|
120
|
+
assert_equal 0, layout_two.position
|
121
|
+
end
|
105
122
|
|
106
123
|
end
|
@@ -49,77 +49,119 @@ class CmsAdmin::PagesControllerTest < ActionController::TestCase
|
|
49
49
|
def test_get_new_with_field_datetime
|
50
50
|
cms_layouts(:default).update_attribute(:content, '{{cms:field:test_label:datetime}}')
|
51
51
|
get :new, :site_id => cms_sites(:default)
|
52
|
-
|
53
|
-
assert_select "input[type='
|
52
|
+
assert_response :success
|
53
|
+
assert_select "input[type='text'][name='page[blocks_attributes][0][content]'][class='datetime']"
|
54
|
+
assert_select "input[type='hidden'][name='page[blocks_attributes][0][label]'][value='test_label']"
|
54
55
|
end
|
55
56
|
|
56
57
|
def test_get_new_with_field_integer
|
57
58
|
cms_layouts(:default).update_attribute(:content, '{{cms:field:test_label:integer}}')
|
58
59
|
get :new, :site_id => cms_sites(:default)
|
59
|
-
|
60
|
-
assert_select "input[type='
|
60
|
+
assert_response :success
|
61
|
+
assert_select "input[type='number'][name='page[blocks_attributes][0][content]']"
|
62
|
+
assert_select "input[type='hidden'][name='page[blocks_attributes][0][label]'][value='test_label']"
|
61
63
|
end
|
62
64
|
|
63
65
|
def test_get_new_with_field_string
|
64
66
|
cms_layouts(:default).update_attribute(:content, '{{cms:field:test_label:string}}')
|
65
67
|
get :new, :site_id => cms_sites(:default)
|
66
|
-
|
67
|
-
assert_select "input[type='
|
68
|
+
assert_response :success
|
69
|
+
assert_select "input[type='text'][name='page[blocks_attributes][0][content]']"
|
70
|
+
assert_select "input[type='hidden'][name='page[blocks_attributes][0][label]'][value='test_label']"
|
68
71
|
end
|
69
72
|
|
70
73
|
def test_get_new_with_field_text
|
71
74
|
cms_layouts(:default).update_attribute(:content, '{{cms:field:test_label:text}}')
|
72
75
|
get :new, :site_id => cms_sites(:default)
|
73
|
-
|
74
|
-
assert_select "
|
76
|
+
assert_response :success
|
77
|
+
assert_select "textarea[name='page[blocks_attributes][0][content]'][class='code']"
|
78
|
+
assert_select "input[type='hidden'][name='page[blocks_attributes][0][label]'][value='test_label']"
|
75
79
|
end
|
76
80
|
|
77
81
|
def test_get_new_with_page_datetime
|
78
82
|
cms_layouts(:default).update_attribute(:content, '{{cms:page:test_label:datetime}}')
|
79
83
|
get :new, :site_id => cms_sites(:default)
|
80
|
-
|
81
|
-
assert_select "input[type='
|
84
|
+
assert_response :success
|
85
|
+
assert_select "input[type='text'][name='page[blocks_attributes][0][content]'][class='datetime']"
|
86
|
+
assert_select "input[type='hidden'][name='page[blocks_attributes][0][label]'][value='test_label']"
|
82
87
|
end
|
83
88
|
|
84
89
|
def test_get_new_with_page_integer
|
85
90
|
cms_layouts(:default).update_attribute(:content, '{{cms:page:test_label:integer}}')
|
86
91
|
get :new, :site_id => cms_sites(:default)
|
87
|
-
|
88
|
-
assert_select "input[type='
|
92
|
+
assert_response :success
|
93
|
+
assert_select "input[type='number'][name='page[blocks_attributes][0][content]']"
|
94
|
+
assert_select "input[type='hidden'][name='page[blocks_attributes][0][label]'][value='test_label']"
|
89
95
|
end
|
90
96
|
|
91
97
|
def test_get_new_with_page_string
|
92
98
|
cms_layouts(:default).update_attribute(:content, '{{cms:page:test_label:string}}')
|
93
99
|
get :new, :site_id => cms_sites(:default)
|
94
|
-
|
95
|
-
assert_select "input[type='
|
100
|
+
assert_response :success
|
101
|
+
assert_select "input[type='text'][name='page[blocks_attributes][0][content]']"
|
102
|
+
assert_select "input[type='hidden'][name='page[blocks_attributes][0][label]'][value='test_label']"
|
96
103
|
end
|
97
104
|
|
98
105
|
def test_get_new_with_page_text
|
99
106
|
cms_layouts(:default).update_attribute(:content, '{{cms:page:test_label}}')
|
100
107
|
get :new, :site_id => cms_sites(:default)
|
101
|
-
|
102
|
-
assert_select "
|
108
|
+
assert_response :success
|
109
|
+
assert_select "textarea[name='page[blocks_attributes][0][content]'][class='code']"
|
110
|
+
assert_select "input[type='hidden'][name='page[blocks_attributes][0][label]'][value='test_label']"
|
111
|
+
end
|
112
|
+
|
113
|
+
def test_get_new_with_page_file
|
114
|
+
cms_layouts(:default).update_attribute(:content, '{{cms:page_file:test_label}}')
|
115
|
+
get :new, :site_id => cms_sites(:default)
|
116
|
+
assert_response :success
|
117
|
+
assert_select "input[type='file'][name='page[blocks_attributes][0][content]']"
|
118
|
+
assert_select "input[type='hidden'][name='page[blocks_attributes][0][label]'][value='test_label']"
|
119
|
+
end
|
120
|
+
|
121
|
+
def test_get_new_with_page_files
|
122
|
+
cms_layouts(:default).update_attribute(:content, '{{cms:page_files:test_label}}')
|
123
|
+
get :new, :site_id => cms_sites(:default)
|
124
|
+
assert_response :success
|
125
|
+
assert_select "input[type='file'][name='page[blocks_attributes][0][content][]'][multiple=multiple]"
|
126
|
+
assert_select "input[type='hidden'][name='page[blocks_attributes][0][label]'][value='test_label']"
|
103
127
|
end
|
104
128
|
|
105
129
|
def test_get_new_with_collection
|
106
130
|
snippet = cms_snippets(:default)
|
107
131
|
cms_layouts(:default).update_attribute(:content, '{{cms:collection:snippet:cms/snippet}}')
|
108
132
|
get :new, :site_id => cms_sites(:default)
|
109
|
-
|
133
|
+
assert_response :success
|
134
|
+
assert_select "select[name='page[blocks_attributes][0][content]']" do
|
110
135
|
assert_select "option[value='']", :html => '---- Select Cms/Snippet ----'
|
111
136
|
assert_select "option[value='#{snippet.id}']", :html => snippet.label
|
112
137
|
end
|
113
|
-
assert_select "input[type='hidden'][name='page[blocks_attributes][][label]'][value='snippet']"
|
138
|
+
assert_select "input[type='hidden'][name='page[blocks_attributes][0][label]'][value='snippet']"
|
114
139
|
end
|
115
140
|
|
116
141
|
def test_get_new_with_rich_page_text
|
117
142
|
cms_layouts(:default).update_attribute(:content, '{{cms:page:test_label:rich_text}}')
|
118
143
|
get :new, :site_id => cms_sites(:default)
|
119
|
-
|
120
|
-
assert_select "
|
144
|
+
assert_response :success
|
145
|
+
assert_select "textarea[name='page[blocks_attributes][0][content]'][class='rich_text']"
|
146
|
+
assert_select "input[type='hidden'][name='page[blocks_attributes][0][label]'][value='test_label']"
|
121
147
|
end
|
122
|
-
|
148
|
+
|
149
|
+
def test_get_new_with_several_tag_fields
|
150
|
+
cms_layouts(:default).update_attribute(:content, '{{cms:page:label_a}}{{cms:page:label_b}}')
|
151
|
+
get :new, :site_id => cms_sites(:default)
|
152
|
+
assert_response :success
|
153
|
+
assert_select "textarea[name='page[blocks_attributes][0][content]']"
|
154
|
+
assert_select "input[type='hidden'][name='page[blocks_attributes][0][label]'][value='label_a']"
|
155
|
+
assert_select "textarea[name='page[blocks_attributes][1][content]']"
|
156
|
+
assert_select "input[type='hidden'][name='page[blocks_attributes][1][label]'][value='label_b']"
|
157
|
+
end
|
158
|
+
|
159
|
+
def test_get_new_with_crashy_tag
|
160
|
+
cms_layouts(:default).update_attribute(:content, '{{cms:collection:label:invalid}}')
|
161
|
+
get :new, :site_id => cms_sites(:default)
|
162
|
+
assert_response :success
|
163
|
+
end
|
164
|
+
|
123
165
|
def test_get_new_as_child_page
|
124
166
|
get :new, :site_id => cms_sites(:default), :parent_id => cms_pages(:default)
|
125
167
|
assert_response :success
|
@@ -136,7 +178,6 @@ class CmsAdmin::PagesControllerTest < ActionController::TestCase
|
|
136
178
|
assert_template :edit
|
137
179
|
assert_select "form[action=/cms-admin/sites/#{page.site.id}/pages/#{page.id}]"
|
138
180
|
assert_select "select[data-url=/cms-admin/sites/#{page.site.id}/pages/#{page.id}/form_blocks]"
|
139
|
-
assert_select "form[action='/cms-admin/sites/#{page.site.id}/files?file[page_id]=#{page.id}']"
|
140
181
|
end
|
141
182
|
|
142
183
|
def test_get_edit_failure
|