Clone
require File.expand_path('../../test_helper', File.dirname(__FILE__))
class CmsAdmin::SnippetsControllerTest < ActionController::TestCase
def test_get_index
get :index, :site_id => cms_sites(:default)
assert_response :success
assert assigns(:snippets)
assert_template :index
end
def test_get_index_with_no_snippets
Cms::Snippet.delete_all
get :index, :site_id => cms_sites(:default)
assert_response :redirect
assert_redirected_to :action => :new
end
def test_get_index_with_category
category = cms_sites(:default).categories.create!(:label => 'Test Category', :categorized_type => 'Cms::Snippet')
category.categorizations.create!(:categorized => cms_snippets(:default))
get :index, :site_id => cms_sites(:default), :category => category.label
assert_response :success
assert assigns(:snippets)
assert_equal 1, assigns(:snippets).count
assert assigns(:snippets).first.categories.member? category
end
def test_get_index_with_category_invalid
get :index, :site_id => cms_sites(:default), :category => 'invalid'
assert_response :success
assert assigns(:snippets)
assert_equal 0, assigns(:snippets).count
end
def test_get_new
site = cms_sites(:default)
get :new, :site_id => site
assert_response :success
assert assigns(:snippet)
assert_template :new
assert_select "form[action=/cms-admin/sites/#{site.id}/snippets]"
assert_select "form[action='/cms-admin/sites/#{site.id}/files']"
end
def test_get_edit
snippet = cms_snippets(:default)
get :edit, :site_id => snippet.site, :id => snippet
assert_response :success
assert assigns(:snippet)
assert_template :edit
assert_select "form[action=/cms-admin/sites/#{snippet.site.id}/snippets/#{snippet.id}]"
end
def test_get_edit_failure
get :edit, :site_id => cms_sites(:default), :id => 'not_found'
assert_response :redirect
assert_redirected_to :action => :index
assert_equal 'Snippet not found', flash[:error]
end
def test_create
assert_difference 'Cms::Snippet.count' do
post :create, :site_id => cms_sites(:default), :snippet => {
:label => 'Test Snippet',
:identifier => 'test-snippet',
:content => 'Test Content'
}
assert_response :redirect
snippet = Cms::Snippet.last
assert_equal cms_sites(:default), snippet.site
assert_redirected_to :action => :edit, :id => snippet
assert_equal 'Snippet created', flash[:notice]
end
end
def test_creation_failure
assert_no_difference 'Cms::Snippet.count' do
post :create, :site_id => cms_sites(:default), :snippet => { }
assert_response :success
assert_template :new
assert_equal 'Failed to create snippet', flash[:error]
end
end
def test_update
snippet = cms_snippets(:default)
put :update, :site_id => snippet.site, :id => snippet, :snippet => {
:label => 'New-Snippet',
:content => 'New Content'
}
assert_response :redirect
assert_redirected_to :action => :edit, :site_id => snippet.site, :id => snippet
assert_equal 'Snippet updated', flash[:notice]
snippet.reload
assert_equal 'New-Snippet', snippet.label
assert_equal 'New Content', snippet.content
end
def test_update_failure
snippet = cms_snippets(:default)
put :update, :site_id => snippet.site, :id => snippet, :snippet => {
:identifier => ''
}
assert_response :success
assert_template :edit
snippet.reload
assert_not_equal '', snippet.identifier
assert_equal 'Failed to update snippet', flash[:error]
end
def test_destroy
assert_difference 'Cms::Snippet.count', -1 do
delete :destroy, :site_id => cms_sites(:default), :id => cms_snippets(:default)
assert_response :redirect
assert_redirected_to :action => :index
assert_equal 'Snippet deleted', flash[:notice]
end
end
def test_reorder
snippet_one = cms_snippets(:default)
snippet_two = cms_sites(:default).snippets.create!(
:label => 'test',
:identifier => 'test'
)
assert_equal 0, snippet_one.position
assert_equal 1, snippet_two.position
post :reorder, :site_id => cms_sites(:default), :cms_snippet => [snippet_two.id, snippet_one.id]
assert_response :success
snippet_one.reload
snippet_two.reload
assert_equal 1, snippet_one.position
assert_equal 0, snippet_two.position
end
end