Clone
require File.expand_path('../../test_helper', File.dirname(__FILE__))
class CmsAdmin::RevisionsControllerTest < ActionController::TestCase
def test_get_index_for_layouts
get :index, :site_id => cms_sites(:default), :layout_id => cms_layouts(:default)
assert_response :redirect
assert_redirected_to :action => :show, :id => cms_revisions(:layout)
end
def test_get_index_for_pages
get :index, :site_id => cms_sites(:default), :page_id => cms_pages(:default)
assert_response :redirect
assert_redirected_to :action => :show, :id => cms_revisions(:page)
end
def test_get_index_for_snippets
get :index, :site_id => cms_sites(:default), :snippet_id => cms_snippets(:default)
assert_response :redirect
assert_redirected_to :action => :show, :id => cms_revisions(:snippet)
end
def test_get_index_for_snippets_with_no_revisions
Cms::Revision.delete_all
get :index, :site_id => cms_sites(:default), :snippet_id => cms_snippets(:default)
assert_response :redirect
assert_redirected_to :action => :show, :id => 0
end
def test_get_show_for_layout
get :show, :site_id => cms_sites(:default), :layout_id => cms_layouts(:default), :id => cms_revisions(:layout)
assert_response :success
assert assigns(:record)
assert assigns(:revision)
assert assigns(:record).is_a?(Cms::Layout)
assert_template :show
end
def test_get_show_for_page
get :show, :site_id => cms_sites(:default), :page_id => cms_pages(:default), :id => cms_revisions(:page)
assert_response :success
assert assigns(:record)
assert assigns(:revision)
assert assigns(:record).is_a?(Cms::Page)
assert_template :show
end
def test_get_show_for_snippet
get :show, :site_id => cms_sites(:default), :snippet_id => cms_snippets(:default), :id => cms_revisions(:snippet)
assert_response :success
assert assigns(:record)
assert assigns(:revision)
assert assigns(:record).is_a?(Cms::Snippet)
assert_template :show
end
def test_get_show_for_bad_type
get :show, :site_id => cms_sites(:default), :snippet_id => 'invalid', :id => cms_revisions(:snippet)
assert_response :redirect
assert_redirected_to cms_admin_path
assert_equal 'Record Not Found', flash[:error]
end
def test_get_show_for_layout_failure
site = cms_sites(:default)
get :show, :site_id => site, :layout_id => cms_layouts(:default), :id => 'invalid'
assert_response :redirect
assert assigns(:record)
assert_redirected_to edit_cms_admin_site_layout_path(site, assigns(:record))
assert_equal 'Revision Not Found', flash[:error]
end
def test_get_show_for_page_failure
site = cms_sites(:default)
get :show, :site_id => site, :page_id => cms_pages(:default), :id => 'invalid'
assert_response :redirect
assert assigns(:record)
assert_redirected_to edit_cms_admin_site_page_path(site, assigns(:record))
assert_equal 'Revision Not Found', flash[:error]
end
def test_get_show_for_snippet_failure
site = cms_sites(:default)
get :show, :site_id => site, :snippet_id => cms_snippets(:default), :id => 'invalid'
assert_response :redirect
assert assigns(:record)
assert_redirected_to edit_cms_admin_site_snippet_path(site, assigns(:record))
assert_equal 'Revision Not Found', flash[:error]
end
def test_revert_for_layout
layout = cms_layouts(:default)
assert_difference 'layout.revisions.count' do
put :revert, :site_id => cms_sites(:default), :layout_id => layout, :id => cms_revisions(:layout)
assert_response :redirect
assert_redirected_to edit_cms_admin_site_layout_path(layout.site, layout)
assert_equal 'Content Reverted', flash[:notice]
layout.reload
assert_equal 'revision {{cms:page:default_page_text}}', layout.content
assert_equal 'revision css', layout.css
assert_equal 'revision js', layout.js
end
end
def test_revert_for_page
page = cms_pages(:default)
assert_difference 'page.revisions.count' do
put :revert, :site_id => cms_sites(:default), :page_id => page, :id => cms_revisions(:page)
assert_response :redirect
assert_redirected_to edit_cms_admin_site_page_path(page.site, page)
assert_equal 'Content Reverted', flash[:notice]
page.reload
assert_equal [
{ :identifier => 'default_field_text', :content => 'revision field content' },
{ :identifier => 'default_page_text', :content => 'revision page content' }
], page.blocks_attributes
end
end
def test_revert_for_snippet
snippet = cms_snippets(:default)
assert_difference 'snippet.revisions.count' do
put :revert, :site_id => cms_sites(:default), :snippet_id => snippet, :id => cms_revisions(:snippet)
assert_response :redirect
assert_redirected_to edit_cms_admin_site_snippet_path(snippet.site, snippet)
assert_equal 'Content Reverted', flash[:notice]
snippet.reload
assert_equal 'revision content', snippet.content
end
end
end