setting all instance variables during preview

Oleg committed Sep 26, 2011
commit acde628dca4c4548555ba1a9f0e27c77a73d14a7
Showing 2 changed files with 17 additions and 2 deletions
app/controllers/cms_admin/pages_controller.rb +3 -0
@@ @@ -101,6 +101,9 @@ protected
def preview_cms_page
if params[:preview]
layout = @page.layout.app_layout.blank?? false : @page.layout.app_layout
+ @cms_site = @page.site
+ @cms_layout = @page.layout
+ @cms_page = @page
render :inline => @page.content(true), :layout => layout
end
end
test/functional/cms_admin/pages_controller_test.rb +14 -2
@@ @@ -280,12 +280,15 @@ class CmsAdmin::PagesControllerTest < ActionController::TestCase
end
def test_creation_preview
+ site = cms_sites(:default)
+ layout = cms_layouts(:default)
+
assert_no_difference 'Cms::Page.count' do
- post :create, :site_id => cms_sites(:default), :preview => 'Preview', :page => {
+ post :create, :site_id => site, :preview => 'Preview', :page => {
:label => 'Test Page',
:slug => 'test-page',
:parent_id => cms_pages(:default).id,
- :layout_id => cms_layouts(:default).id,
+ :layout_id => layout.id,
:blocks_attributes => [
{ :label => 'default_page_text',
:content => 'preview content' }
@@ @@ -293,6 +296,11 @@ class CmsAdmin::PagesControllerTest < ActionController::TestCase
}
assert_response :success
assert_match /preview content/, response.body
+
+ assert_equal site, assigns(:cms_site)
+ assert_equal layout, assigns(:cms_layout)
+ assert assigns(:cms_page)
+ assert assigns(:cms_page).new_record?
end
end
@@ @@ -311,6 +319,10 @@ class CmsAdmin::PagesControllerTest < ActionController::TestCase
assert_match /preview content/, response.body
page.reload
assert_not_equal 'Updated Label', page.label
+
+ assert_equal page.site, assigns(:cms_site)
+ assert_equal page.layout, assigns(:cms_layout)
+ assert_equal page, assigns(:cms_page)
end
end