foreman/test/controllers/ptables_controller_test.rb @ 2d5e52d9
27a04cb4 | Ohad Levy | require 'test_helper'
|
|
class PtablesControllerTest < ActionController::TestCase
|
|||
a154c816 | lizagilman | basic_pagination_per_page_test
|
|
basic_pagination_rendered_test
|
|||
510d53cd | Marek Hulan | def setup
|
|
8c6bc83e | Marek Hulan | @ptable = FactoryBot.create(:ptable)
|
|
510d53cd | Marek Hulan | end
|
|
test 'index' do
|
|||
d041d4bb | Dominic Cleal | get :index, session: set_session_user
|
|
55ed30c7 | Ohad Levy | assert_template 'index'
|
|
f69893d2 | Lucas Tolchinsky | end
|
|
510d53cd | Marek Hulan | test 'new' do
|
|
d041d4bb | Dominic Cleal | get :new, session: set_session_user
|
|
55ed30c7 | Ohad Levy | assert_template 'new'
|
|
f69893d2 | Lucas Tolchinsky | end
|
|
510d53cd | Marek Hulan | test 'create_invalid' do
|
|
55ed30c7 | Ohad Levy | Ptable.any_instance.stubs(:valid?).returns(false)
|
|
d041d4bb | Dominic Cleal | post :create, params: { :ptable => {:name => nil} }, session: set_session_user
|
|
55ed30c7 | Ohad Levy | assert_template 'new'
|
|
f69893d2 | Lucas Tolchinsky | end
|
|
510d53cd | Marek Hulan | test 'create_valid' do
|
|
55ed30c7 | Ohad Levy | Ptable.any_instance.stubs(:valid?).returns(true)
|
|
d041d4bb | Dominic Cleal | post :create, params: { :ptable => { :name => "dummy", :layout => "dummy"} }, session: set_session_user
|
|
f0619ca7 | Ohad Levy | assert_redirected_to ptables_url
|
|
f69893d2 | Lucas Tolchinsky | end
|
|
510d53cd | Marek Hulan | test 'edit' do
|
|
d041d4bb | Dominic Cleal | get :edit, params: { :id => Ptable.first.id }, session: set_session_user
|
|
55ed30c7 | Ohad Levy | assert_template 'edit'
|
|
f69893d2 | Lucas Tolchinsky | end
|
|
510d53cd | Marek Hulan | test 'update_invalid' do
|
|
55ed30c7 | Ohad Levy | Ptable.any_instance.stubs(:valid?).returns(false)
|
|
d041d4bb | Dominic Cleal | put :update, params: { :id => Ptable.first.id, :ptable => {:name => nil} }, session: set_session_user
|
|
55ed30c7 | Ohad Levy | assert_template 'edit'
|
|
end
|
|||
f69893d2 | Lucas Tolchinsky | ||
510d53cd | Marek Hulan | test 'update_valid' do
|
|
55ed30c7 | Ohad Levy | Ptable.any_instance.stubs(:valid?).returns(true)
|
|
d041d4bb | Dominic Cleal | put :update, params: { :id => Ptable.first.id, :ptable => {:name => "UpdatedDummy", :layout => "dummy_layout"} }, session: set_session_user
|
|
f0619ca7 | Ohad Levy | assert_redirected_to ptables_url
|
|
55ed30c7 | Ohad Levy | end
|
|
f69893d2 | Lucas Tolchinsky | ||
510d53cd | Marek Hulan | test 'destroy' do
|
|
55ed30c7 | Ohad Levy | ptable = Ptable.first
|
|
7d1d44cf | Joseph Mitchell Magen | ptable.hosts.delete_all
|
|
ptable.hostgroups.delete_all
|
|||
d041d4bb | Dominic Cleal | delete :destroy, params: { :id => ptable }, session: set_session_user
|
|
55ed30c7 | Ohad Levy | assert_redirected_to ptables_url
|
|
assert !Ptable.exists?(ptable.id)
|
|||
27a04cb4 | Ohad Levy | end
|
|
9fd7478e | Paul Kelly | ||
404ead2a | Marek Hulan | test "export" do
|
|
d041d4bb | Dominic Cleal | get :export, params: { :id => @ptable.to_param }, session: set_session_user
|
|
404ead2a | Marek Hulan | assert_response :success
|
|
assert_equal 'text/plain', response.content_type
|
|||
2d5e52d9 | Ondřej Pražák | User.current = users(:admin)
|
|
404ead2a | Marek Hulan | assert_equal @ptable.to_erb, response.body
|
|
end
|
|||
9fd7478e | Paul Kelly | def setup_view_user
|
|
@request.session[:user] = users(:one).id
|
|||
a2b3be55 | Tomer Brisker | users(:one).roles = [Role.default, Role.find_by_name('Viewer')]
|
|
9fd7478e | Paul Kelly | end
|
|
test 'user with viewer rights should fail to edit a partition table' do
|
|||
setup_view_user
|
|||
d041d4bb | Dominic Cleal | get :edit, params: { :id => @ptable.id }, session: set_session_user.merge(:user => users(:one).id)
|
|
017e1049 | Ohad Levy | assert_equal @response.status, 403
|
|
9fd7478e | Paul Kelly | end
|
|
test 'user with viewer rights should fail to delete a partition table' do
|
|||
setup_view_user
|
|||
d041d4bb | Dominic Cleal | delete :destroy, params: { :id => @ptable.id }, session: set_session_user.merge(:user => users(:one).id)
|
|
017e1049 | Ohad Levy | assert_equal @response.status, 403
|
|
9fd7478e | Paul Kelly | end
|
|
test 'user with viewer rights should fail to create a partition table' do
|
|||
setup_view_user
|
|||
d041d4bb | Dominic Cleal | post :create, params: { :ptable => {:name => "dummy", :layout => "dummy"} }, session: set_session_user.merge(:user => users(:one).id)
|
|
017e1049 | Ohad Levy | assert_equal @response.status, 403
|
|
9fd7478e | Paul Kelly | end
|
|
test 'user with viewer rights should succeed in viewing partition tables' do
|
|||
setup_view_user
|
|||
d041d4bb | Dominic Cleal | get :index, session: set_session_user
|
|
9fd7478e | Paul Kelly | assert_response :success
|
|
end
|
|||
def setup_edit_user
|
|||
@user = User.find_by_login("one")
|
|||
3576f8fb | Marek Hulán | role = FactoryBot.build(:role)
|
|
role.add_permissions!([:view_locations, :assign_locations, :edit_locations, :view_organizations, :assign_organizations, :edit_organizations])
|
|||
@user.roles = [Role.default, Role.find_by_name('Viewer'), Role.find_by_name('Edit partition tables'), role]
|
|||
9fd7478e | Paul Kelly | end
|
|
test 'user with editing rights should succeed in editing a partition table' do
|
|||
setup_edit_user
|
|||
d041d4bb | Dominic Cleal | get :edit, params: { :id => @ptable.id }, session: set_session_user.merge(:user => users(:one).id)
|
|
9fd7478e | Paul Kelly | assert_response :success
|
|
end
|
|||
test 'user with editing rights should succeed in deleting a partition table' do
|
|||
setup_edit_user
|
|||
d041d4bb | Dominic Cleal | delete :destroy, params: { :id => @ptable.id }, session: set_session_user.merge(:user => users(:one).id)
|
|
3dfb6e4c | Dominic Cleal | assert_redirected_to ptables_url
|
|
cf94f62e | Avi Sharvit | assert_equal "Successfully deleted #{@ptable.name}.", flash[:success]
|
|
9fd7478e | Paul Kelly | end
|
|
test 'user with editing rights should succeed in creating a partition table' do
|
|||
setup_edit_user
|
|||
d041d4bb | Dominic Cleal | post :create, params: { :ptable => {:name => "dummy", :layout => "dummy"} }, session: set_session_user.merge(:user => users(:one).id)
|
|
3dfb6e4c | Dominic Cleal | assert_redirected_to ptables_url
|
|
cf94f62e | Avi Sharvit | assert_equal "Successfully created dummy.", flash[:success]
|
|
9fd7478e | Paul Kelly | end
|
|
de9e7ada | Marek Hulan | ||
test 'preview' do
|
|||
8c6bc83e | Marek Hulan | host = FactoryBot.create(:host, :managed, :operatingsystem => FactoryBot.create(:suse, :with_archs, :with_media))
|
|
template = FactoryBot.create(:ptable)
|
|||
de9e7ada | Marek Hulan | ||
# works for given host
|
|||
d041d4bb | Dominic Cleal | post :preview, params: { :preview_host_id => host.id, :template => '<%= @host.name -%>', :id => template }, session: set_session_user
|
|
ee360810 | Michael Moll | assert_equal host.hostname.to_s, @response.body
|
|
de9e7ada | Marek Hulan | ||
# without host specified it uses first one
|
|||
d041d4bb | Dominic Cleal | post :preview, params: { :template => '<%= 1+1 -%>', :id => template }, session: set_session_user
|
|
de9e7ada | Marek Hulan | assert_equal '2', @response.body
|
|
d041d4bb | Dominic Cleal | post :preview, params: { :template => '<%= 1+1 -%>' }, session: set_session_user
|
|
a949e382 | alongoldboim | assert_equal '2', @response.body
|
|
d041d4bb | Dominic Cleal | post :preview, params: { :template => '<%= 1+ -%>', :id => template }, session: set_session_user
|
|
3a766513 | Marek Hulan | assert_includes @response.body, 'parse error on value'
|
|
de9e7ada | Marek Hulan | end
|
|
27a04cb4 | Ohad Levy | end
|