foreman_datacenter 1.22.1 → 1.24.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/app/controllers/foreman_datacenter/application_controller.rb +2 -0
- data/app/controllers/foreman_datacenter/racks_controller.rb +8 -1
- data/app/models/foreman_datacenter/rack.rb +36 -0
- data/app/views/foreman_datacenter/device_roles/show.html.erb +1 -2
- data/app/views/foreman_datacenter/device_types/show.html.erb +1 -2
- data/app/views/foreman_datacenter/manufacturers/show.html.erb +1 -2
- data/app/views/foreman_datacenter/platforms/show.html.erb +1 -2
- data/app/views/foreman_datacenter/rack_groups/show.html.erb +1 -2
- data/app/views/foreman_datacenter/racks/_device_position.html.erb +10 -1
- data/app/views/foreman_datacenter/racks/show.html.erb +1 -2
- data/app/views/foreman_datacenter/sites/show.html.erb +1 -2
- data/config/routes.rb +21 -1
- data/lib/foreman_datacenter/version.rb +1 -1
- data/test/controllers/foreman_datacenter/device_roles_controller_test.rb +133 -0
- data/test/controllers/foreman_datacenter/device_types_contoller_test.rb +108 -47
- data/test/controllers/foreman_datacenter/devices_controller_test.rb +132 -0
- data/test/controllers/foreman_datacenter/manufacturers_controller_test.rb +133 -0
- data/test/controllers/foreman_datacenter/platforms_contoller_test.rb +91 -48
- data/test/controllers/foreman_datacenter/rack_groups_contoller_test.rb +90 -43
- data/test/controllers/foreman_datacenter/racks_contoller_test.rb +111 -42
- data/test/controllers/foreman_datacenter/sites_contoller_test.rb +108 -81
- data/test/datacenter_helper.rb +8 -1
- data/test/factories/device.rb +5 -0
- data/test/factories/device_role.rb +6 -0
- data/test/factories/device_type.rb +30 -0
- data/test/factories/rack_group.rb +13 -14
- data/test/fixtures/foreman_datacenter/device_roles.yml +0 -1
- data/test/integration/foreman_datacenter/device_role_test.rb +35 -0
- data/test/integration/foreman_datacenter/device_type_test.rb +33 -0
- data/test/integration/foreman_datacenter/manufacturer_test.rb +33 -0
- data/test/integration/foreman_datacenter/platform_test.rb +35 -0
- data/test/integration/foreman_datacenter/rack_group_test.rb +35 -25
- data/test/integration/foreman_datacenter/rack_test.rb +37 -25
- data/test/integration/foreman_datacenter/site_test.rb +39 -29
- data/test/unit/foreman_datacenter_test.rb +1 -1
- metadata +56 -37
@@ -0,0 +1,132 @@
|
|
1
|
+
require_relative '../../test_plugin_helper'
|
2
|
+
|
3
|
+
module ForemanDatacenter
|
4
|
+
class DevicesControllerTest < ActionController::TestCase
|
5
|
+
describe ForemanDatacenter::DevicesController do
|
6
|
+
setup do
|
7
|
+
@model = ForemanDatacenter::Device.first
|
8
|
+
end
|
9
|
+
|
10
|
+
basic_index_test 'devices'
|
11
|
+
basic_new_test
|
12
|
+
basic_edit_test 'device'
|
13
|
+
basic_pagination_per_page_test
|
14
|
+
basic_pagination_rendered_test
|
15
|
+
|
16
|
+
# def test_create_invalid
|
17
|
+
# ForemanDatacenter::Device.any_instance.stubs(:valid?).returns(false)
|
18
|
+
# post :create, params: { device: { name: nil } }, session: set_session_user
|
19
|
+
# assert_template 'new'
|
20
|
+
# end
|
21
|
+
|
22
|
+
# def test_create_valid(name = "test rg")
|
23
|
+
# ForemanDatacenter::Device.any_instance.stubs(:valid?).returns(true)
|
24
|
+
# post :create, params: { device: { name: name } }, session: set_session_user
|
25
|
+
# assert_redirected_to devices_url
|
26
|
+
# end
|
27
|
+
|
28
|
+
# def test_update_invalid
|
29
|
+
# ForemanDatacenter::Device.any_instance.stubs(:valid?).returns(false)
|
30
|
+
# put :update, params: { id: @model.to_param, device: { name: '3243' } }, session: set_session_user
|
31
|
+
# assert_template 'edit'
|
32
|
+
# end
|
33
|
+
|
34
|
+
# def test_update_valid
|
35
|
+
# ForemanDatacenter::Device.any_instance.stubs(:valid?).returns(true)
|
36
|
+
# put :update, params: { id: @model.to_param, device: { name: @model.name } }, session: set_session_user
|
37
|
+
# assert_redirected_to devices_url
|
38
|
+
# end
|
39
|
+
|
40
|
+
# def test_destroy
|
41
|
+
# test_create_valid "tobedeleted_test"
|
42
|
+
# @new_rg = ForemanDatacenter::Device.find_by_name("tobedeleted_test")
|
43
|
+
# delete :destroy, params: { id: @new_rg.id }, session: set_session_user
|
44
|
+
# assert_redirected_to devices_url
|
45
|
+
# assert !ForemanDatacenter::Device.exists?(@new_rg.id)
|
46
|
+
# end
|
47
|
+
|
48
|
+
# test "should not get index when not permitted" do
|
49
|
+
# setup_user
|
50
|
+
# get :index, session: { :user => users(:one).id, :expires_at => 5.minutes.from_now }
|
51
|
+
# assert_response :forbidden
|
52
|
+
# assert_includes @response.body, 'view_devices'
|
53
|
+
# end
|
54
|
+
|
55
|
+
# test 'should not get show when not permitted' do
|
56
|
+
# setup_user
|
57
|
+
# get :show, params: { :id => @model.id }, session: {:user => users(:one).id, :expires_at => 5.minutes.from_now}
|
58
|
+
# assert_response :forbidden
|
59
|
+
# assert_includes @response.body, 'view_devices'
|
60
|
+
# end
|
61
|
+
|
62
|
+
# test 'should not get edit when not permitted' do
|
63
|
+
# setup_user
|
64
|
+
# get :edit, params: { :id => @model.id }, session: {:user => users(:one).id, :expires_at => 5.minutes.from_now}
|
65
|
+
# assert_response :forbidden
|
66
|
+
# assert_includes @response.body, 'edit_devices'
|
67
|
+
# end
|
68
|
+
|
69
|
+
# test "should get index" do
|
70
|
+
# setup_user("Viewer")
|
71
|
+
# get :index, session: set_session_user
|
72
|
+
# assert_response :success
|
73
|
+
# assert_template 'index'
|
74
|
+
# end
|
75
|
+
|
76
|
+
# test 'should get show' do
|
77
|
+
# setup_user("Viewer")
|
78
|
+
# get :show, params: { :id => @model.id }, session: set_session_user
|
79
|
+
# assert_response :success
|
80
|
+
# assert_template 'show'
|
81
|
+
# end
|
82
|
+
|
83
|
+
# test 'should not get edit with viewer permissions' do
|
84
|
+
# setup_user("Viewer")
|
85
|
+
# get :edit, params: { :id => @model.id }, session: {:user => users(:one).id, :expires_at => 5.minutes.from_now}
|
86
|
+
# assert_response :forbidden
|
87
|
+
# assert_includes @response.body, 'edit_devices'
|
88
|
+
# end
|
89
|
+
|
90
|
+
# test 'should get edit' do
|
91
|
+
# get :edit, params: { :id => @model.id }, session: set_session_user
|
92
|
+
# assert_response :success
|
93
|
+
# assert_template 'edit'
|
94
|
+
# end
|
95
|
+
|
96
|
+
# def setup_user(role = "")
|
97
|
+
# @request.session[:user] = users(:one).id
|
98
|
+
# users(:one).roles = [Role.default]
|
99
|
+
# users(:one).roles << Role.find_by_name(role) if role != ""
|
100
|
+
# # users(:one).roles = [Role.default, Role.find_by_name("Viewer")]
|
101
|
+
# end
|
102
|
+
|
103
|
+
# test "should_render_404_when_rack_is_not_found" do
|
104
|
+
# get :show, params: { id: 'no.such.rack.group' }, session: set_session_user
|
105
|
+
# assert_response :not_found
|
106
|
+
# assert_template 'common/404'
|
107
|
+
# end
|
108
|
+
|
109
|
+
# test "should_not_destroy_device_when_not_permitted" do
|
110
|
+
# setup_user
|
111
|
+
# assert_difference('ForemanDatacenter::Device.count', 0) do
|
112
|
+
# delete :destroy, params: { :id => @model.id }, session: {:user => users(:one).id, :expires_at => 5.minutes.from_now}
|
113
|
+
# end
|
114
|
+
# assert_response :forbidden
|
115
|
+
# end
|
116
|
+
|
117
|
+
# test "should search by name" do
|
118
|
+
# get :index, params: {:search => "name=\"device_1\""}, session: set_session_user
|
119
|
+
# assert_response :success
|
120
|
+
# refute_empty assigns(:devices)
|
121
|
+
# assert assigns(:devices).include?(devices(:one))
|
122
|
+
# end
|
123
|
+
|
124
|
+
# test "should search by site" do
|
125
|
+
# get :index, params: {:search => "site=\"site_1\""}, session: set_session_user
|
126
|
+
# assert_response :success
|
127
|
+
# refute_empty assigns(:devices)
|
128
|
+
# assert assigns(:devices).include?(devices(:one))
|
129
|
+
# end
|
130
|
+
end
|
131
|
+
end
|
132
|
+
end
|
@@ -0,0 +1,133 @@
|
|
1
|
+
require_relative '../../test_plugin_helper'
|
2
|
+
|
3
|
+
module ForemanDatacenter
|
4
|
+
class ManufacturersControllerTest < ActionController::TestCase
|
5
|
+
describe ForemanDatacenter::ManufacturersController do
|
6
|
+
setup do
|
7
|
+
@model = ForemanDatacenter::Manufacturer.first
|
8
|
+
end
|
9
|
+
|
10
|
+
basic_index_test 'manufacturers'
|
11
|
+
basic_new_test
|
12
|
+
basic_edit_test 'manufacturer'
|
13
|
+
basic_pagination_per_page_test
|
14
|
+
basic_pagination_rendered_test
|
15
|
+
|
16
|
+
def test_create_invalid
|
17
|
+
ForemanDatacenter::Manufacturer.any_instance.stubs(:valid?).returns(false)
|
18
|
+
post :create, params: { :manufacturer => {:name => nil} }, session: set_session_user
|
19
|
+
assert_template 'new'
|
20
|
+
end
|
21
|
+
|
22
|
+
def test_create_valid(name = "test manufacturer")
|
23
|
+
ForemanDatacenter::Manufacturer.any_instance.stubs(:valid?).returns(true)
|
24
|
+
post :create, params: { :manufacturer => {:name => name} }, session: set_session_user
|
25
|
+
assert_redirected_to manufacturers_url
|
26
|
+
end
|
27
|
+
|
28
|
+
def test_update_invalid
|
29
|
+
ForemanDatacenter::Manufacturer.any_instance.stubs(:valid?).returns(false)
|
30
|
+
put :update, params: { :id => @model.to_param, :manufacturer => {:name => "3243"} }, session: set_session_user
|
31
|
+
assert_template 'edit'
|
32
|
+
end
|
33
|
+
|
34
|
+
def test_update_valid
|
35
|
+
ForemanDatacenter::Manufacturer.any_instance.stubs(:valid?).returns(true)
|
36
|
+
put :update, params: { :id => @model.to_param, :manufacturer => {:name => @model.name} }, session: set_session_user
|
37
|
+
assert_redirected_to manufacturers_url
|
38
|
+
end
|
39
|
+
|
40
|
+
def test_destroy
|
41
|
+
test_create_valid "tobedeleted_test"
|
42
|
+
@new_manufacturer = ForemanDatacenter::Manufacturer.find_by_name("tobedeleted_test")
|
43
|
+
delete :destroy, params: { :id => @new_manufacturer.id }, session: set_session_user
|
44
|
+
assert_redirected_to manufacturers_url
|
45
|
+
assert !ForemanDatacenter::Manufacturer.exists?(@new_manufacturer.id)
|
46
|
+
end
|
47
|
+
|
48
|
+
def test_destroy
|
49
|
+
test_create_valid "tobedeleted_test"
|
50
|
+
@new_manufacturer = ForemanDatacenter::Manufacturer.find_by_name("tobedeleted_test")
|
51
|
+
delete :destroy, params: { :id => @new_manufacturer.id }, session: set_session_user
|
52
|
+
assert_redirected_to manufacturers_url
|
53
|
+
assert !ForemanDatacenter::Manufacturer.exists?(@new_manufacturer.id)
|
54
|
+
end
|
55
|
+
|
56
|
+
test "should not get index when not permitted" do
|
57
|
+
setup_user
|
58
|
+
get :index, session: { :user => users(:one).id, :expires_at => 5.minutes.from_now }
|
59
|
+
assert_response :forbidden
|
60
|
+
assert_includes @response.body, 'view_manufacturers'
|
61
|
+
end
|
62
|
+
|
63
|
+
test 'should not get show when not permitted' do
|
64
|
+
setup_user
|
65
|
+
get :show, params: { :id => @model.id }, session: {:user => users(:one).id, :expires_at => 5.minutes.from_now}
|
66
|
+
assert_response :forbidden
|
67
|
+
assert_includes @response.body, 'view_manufacturers'
|
68
|
+
end
|
69
|
+
|
70
|
+
test 'should not get edit when not permitted' do
|
71
|
+
setup_user
|
72
|
+
get :edit, params: { :id => @model.id }, session: {:user => users(:one).id, :expires_at => 5.minutes.from_now}
|
73
|
+
assert_response :forbidden
|
74
|
+
assert_includes @response.body, 'edit_manufacturers'
|
75
|
+
end
|
76
|
+
|
77
|
+
test "should get index" do
|
78
|
+
setup_user("Viewer")
|
79
|
+
get :index, session: set_session_user
|
80
|
+
assert_response :success
|
81
|
+
assert_template 'index'
|
82
|
+
end
|
83
|
+
|
84
|
+
test 'should get show' do
|
85
|
+
setup_user("Viewer")
|
86
|
+
get :show, params: { :id => @model.id }, session: set_session_user
|
87
|
+
assert_response :success
|
88
|
+
assert_template 'show'
|
89
|
+
end
|
90
|
+
|
91
|
+
test 'should not get edit with viewer permissions' do
|
92
|
+
setup_user("Viewer")
|
93
|
+
get :edit, params: { :id => @model.id }, session: {:user => users(:one).id, :expires_at => 5.minutes.from_now}
|
94
|
+
assert_response :forbidden
|
95
|
+
assert_includes @response.body, 'edit_manufacturers'
|
96
|
+
end
|
97
|
+
|
98
|
+
test 'should get edit' do
|
99
|
+
get :edit, params: { :id => @model.id }, session: set_session_user
|
100
|
+
assert_response :success
|
101
|
+
assert_template 'edit'
|
102
|
+
end
|
103
|
+
|
104
|
+
def setup_user(role = "")
|
105
|
+
@request.session[:user] = users(:one).id
|
106
|
+
users(:one).roles = [Role.default]
|
107
|
+
users(:one).roles << Role.find_by_name(role) if role != ""
|
108
|
+
# users(:one).roles = [Role.default, Role.find_by_name("Viewer")]
|
109
|
+
end
|
110
|
+
|
111
|
+
test "should_render_404_when_manufacturer_is_not_found" do
|
112
|
+
get :show, params: { id: 'no.such.manufacturer' }, session: set_session_user
|
113
|
+
assert_response :not_found
|
114
|
+
assert_template 'common/404'
|
115
|
+
end
|
116
|
+
|
117
|
+
test "should_not_destroy_manufacturer_when_not_permitted" do
|
118
|
+
setup_user
|
119
|
+
assert_difference('ForemanDatacenter::Manufacturer.count', 0) do
|
120
|
+
delete :destroy, params: { :id => @model.id }, session: {:user => users(:one).id, :expires_at => 5.minutes.from_now}
|
121
|
+
end
|
122
|
+
assert_response :forbidden
|
123
|
+
end
|
124
|
+
|
125
|
+
test "should search by name" do
|
126
|
+
get :index, params: {:search => "name=\"manufacturer_1\""}, session: set_session_user
|
127
|
+
assert_response :success
|
128
|
+
refute_empty assigns(:manufacturers)
|
129
|
+
assert assigns(:manufacturers).include?(manufacturers(:one))
|
130
|
+
end
|
131
|
+
end
|
132
|
+
end
|
133
|
+
end
|
@@ -13,84 +13,127 @@ module ForemanDatacenter
|
|
13
13
|
basic_pagination_per_page_test
|
14
14
|
basic_pagination_rendered_test
|
15
15
|
|
16
|
-
def test_new_submit_button_id
|
17
|
-
get :new, session: set_session_user
|
18
|
-
assert_select "[data-id='aid_datacenter_platforms']"
|
19
|
-
end
|
20
|
-
|
21
|
-
def test_new_cancel_button_id
|
22
|
-
get :new, session: set_session_user
|
23
|
-
assert_select "[data-id='aid_datacenter_platforms']"
|
24
|
-
end
|
25
|
-
|
26
|
-
def test_show_edit_button_id
|
27
|
-
get :show, params: { :id => ForemanDatacenter::Platform.first.to_param }, session: set_session_user
|
28
|
-
assert_select "[data-id='aid_platforms_#{ForemanDatacenter::Platform.first.id}_edit']"
|
29
|
-
end
|
30
|
-
|
31
|
-
def test_show_delete_button_id
|
32
|
-
get :show, params: { :id => ForemanDatacenter::Platform.first.to_param }, session: set_session_user
|
33
|
-
assert_select "[data-id='aid_datacenter_platforms_#{ForemanDatacenter::Platform.first.id}']"
|
34
|
-
end
|
35
|
-
|
36
|
-
test "should_show_platform" do
|
37
|
-
setup_user
|
38
|
-
get :show, params: { :id => ForemanDatacenter::Platform.first.to_param }, session: set_session_user
|
39
|
-
assert_response :success
|
40
|
-
end
|
41
|
-
|
42
16
|
def test_create_invalid
|
43
17
|
ForemanDatacenter::Platform.any_instance.stubs(:valid?).returns(false)
|
44
18
|
post :create, params: { :platform => {:name => nil} }, session: set_session_user
|
45
19
|
assert_template 'new'
|
46
20
|
end
|
47
21
|
|
48
|
-
def test_create_valid
|
22
|
+
def test_create_valid(name = "test platform")
|
49
23
|
ForemanDatacenter::Platform.any_instance.stubs(:valid?).returns(true)
|
50
|
-
post :create, params: { :platform => {:name =>
|
24
|
+
post :create, params: { :platform => {:name => name} }, session: set_session_user
|
51
25
|
assert_redirected_to platforms_url
|
52
26
|
end
|
53
27
|
|
54
|
-
def test_edit_submit_button_id
|
55
|
-
get :edit, params: { :id => ForemanDatacenter::Platform.first }, session: set_session_user
|
56
|
-
assert_select "[data-id='aid_update_foreman_datacenter_platform']"
|
57
|
-
end
|
58
|
-
|
59
28
|
def test_update_invalid
|
60
29
|
ForemanDatacenter::Platform.any_instance.stubs(:valid?).returns(false)
|
61
|
-
put :update, params: { :id =>
|
30
|
+
put :update, params: { :id => @model.to_param, :platform => {:name => "3243"} }, session: set_session_user
|
62
31
|
assert_template 'edit'
|
63
32
|
end
|
64
33
|
|
65
34
|
def test_update_valid
|
66
35
|
ForemanDatacenter::Platform.any_instance.stubs(:valid?).returns(true)
|
67
|
-
put :update, params: { :id =>
|
36
|
+
put :update, params: { :id => @model.to_param, :platform => {:name => @model.name} }, session: set_session_user
|
68
37
|
assert_redirected_to platforms_url
|
69
38
|
end
|
70
39
|
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
# end
|
40
|
+
def test_destroy
|
41
|
+
test_create_valid "tobedeleted_test"
|
42
|
+
@new_platform = ForemanDatacenter::Platform.find_by_name("tobedeleted_test")
|
43
|
+
delete :destroy, params: { :id => @new_platform.id }, session: set_session_user
|
44
|
+
assert_redirected_to platforms_url
|
45
|
+
assert !ForemanDatacenter::Platform.exists?(@new_platform.id)
|
46
|
+
end
|
79
47
|
|
80
48
|
test '403 response contains missing permissions' do
|
81
49
|
setup_user
|
82
|
-
get :edit, params: { :id =>
|
50
|
+
get :edit, params: { :id => @model.id }, session: {:user => users(:one).id, :expires_at => 5.minutes.from_now}
|
83
51
|
assert_response :forbidden
|
84
52
|
assert_includes @response.body, 'edit_platforms'
|
85
53
|
end
|
86
54
|
|
87
|
-
|
55
|
+
|
56
|
+
test "should not get index when not permitted" do
|
57
|
+
setup_user
|
58
|
+
get :index, session: { :user => users(:one).id, :expires_at => 5.minutes.from_now }
|
59
|
+
assert_response :forbidden
|
60
|
+
assert_includes @response.body, 'view_platforms'
|
61
|
+
end
|
62
|
+
|
63
|
+
test 'should not get show when not permitted' do
|
64
|
+
setup_user
|
65
|
+
get :show, params: { :id => @model.id }, session: {:user => users(:one).id, :expires_at => 5.minutes.from_now}
|
66
|
+
assert_response :forbidden
|
67
|
+
assert_includes @response.body, 'view_platforms'
|
68
|
+
end
|
69
|
+
|
70
|
+
test 'should not get edit when not permitted' do
|
71
|
+
setup_user
|
72
|
+
get :edit, params: { :id => @model.id }, session: {:user => users(:one).id, :expires_at => 5.minutes.from_now}
|
73
|
+
assert_response :forbidden
|
74
|
+
assert_includes @response.body, 'edit_platforms'
|
75
|
+
end
|
76
|
+
|
77
|
+
test "should get index" do
|
78
|
+
setup_user("Viewer")
|
79
|
+
get :index, session: set_session_user
|
80
|
+
assert_response :success
|
81
|
+
assert_template 'index'
|
82
|
+
end
|
83
|
+
|
84
|
+
test 'should get show' do
|
85
|
+
setup_user("Viewer")
|
86
|
+
get :show, params: { :id => @model.id }, session: set_session_user
|
87
|
+
assert_response :success
|
88
|
+
assert_template 'show'
|
89
|
+
end
|
90
|
+
|
91
|
+
test 'should not get edit with viewer permissions' do
|
92
|
+
setup_user("Viewer")
|
93
|
+
get :edit, params: { :id => @model.id }, session: {:user => users(:one).id, :expires_at => 5.minutes.from_now}
|
94
|
+
assert_response :forbidden
|
95
|
+
assert_includes @response.body, 'edit_platforms'
|
96
|
+
end
|
97
|
+
|
98
|
+
test 'should get edit' do
|
99
|
+
get :edit, params: { :id => @model.id }, session: set_session_user
|
100
|
+
assert_response :success
|
101
|
+
assert_template 'edit'
|
102
|
+
end
|
103
|
+
|
104
|
+
def setup_user(role = "")
|
88
105
|
@request.session[:user] = users(:one).id
|
89
|
-
users(:one).roles = [Role.default
|
106
|
+
users(:one).roles = [Role.default]
|
107
|
+
users(:one).roles << Role.find_by_name(role) if role != ""
|
108
|
+
# users(:one).roles = [Role.default, Role.find_by_name("Viewer")]
|
90
109
|
end
|
91
110
|
|
92
|
-
|
93
|
-
:platform
|
111
|
+
test "should_render_404_when_platform_is_not_found" do
|
112
|
+
get :show, params: { id: 'no.such.platform' }, session: set_session_user
|
113
|
+
assert_response :not_found
|
114
|
+
assert_template 'common/404'
|
115
|
+
end
|
116
|
+
|
117
|
+
test "should_not_destroy_rack_when_not_permitted" do
|
118
|
+
setup_user
|
119
|
+
assert_difference('ForemanDatacenter::Platform.count', 0) do
|
120
|
+
delete :destroy, params: { :id => @model.id }, session: {:user => users(:one).id, :expires_at => 5.minutes.from_now}
|
121
|
+
end
|
122
|
+
assert_response :forbidden
|
123
|
+
end
|
124
|
+
|
125
|
+
test "should search by name" do
|
126
|
+
get :index, params: {:search => "name=\"platform_1\""}, session: set_session_user
|
127
|
+
assert_response :success
|
128
|
+
refute_empty assigns(:platforms)
|
129
|
+
assert assigns(:platforms).include?(platforms(:one))
|
130
|
+
end
|
131
|
+
|
132
|
+
test "should search by rpc client" do
|
133
|
+
get :index, params: {:search => "rpc_client=\"Juniper Junos (NETCONF)\""}, session: set_session_user
|
134
|
+
assert_response :success
|
135
|
+
refute_empty assigns(:platforms)
|
136
|
+
assert assigns(:platforms).include?(platforms(:one))
|
94
137
|
end
|
95
138
|
end
|
96
139
|
end
|
@@ -5,7 +5,6 @@ module ForemanDatacenter
|
|
5
5
|
describe ForemanDatacenter::RackGroupsController do
|
6
6
|
setup do
|
7
7
|
@model = ForemanDatacenter::RackGroup.first
|
8
|
-
# @factory_options = :with_site
|
9
8
|
end
|
10
9
|
|
11
10
|
basic_index_test 'rack_groups'
|
@@ -14,71 +13,119 @@ module ForemanDatacenter
|
|
14
13
|
basic_pagination_per_page_test
|
15
14
|
basic_pagination_rendered_test
|
16
15
|
|
17
|
-
def test_new_submit_button_id
|
18
|
-
get :new, session: set_session_user
|
19
|
-
assert_select "[data-id='aid_datacenter_rack_groups']"
|
20
|
-
end
|
21
|
-
|
22
|
-
def test_new_cancel_button_id
|
23
|
-
get :new, session: set_session_user
|
24
|
-
assert_select "[data-id='aid_datacenter_rack_groups']"
|
25
|
-
end
|
26
|
-
|
27
|
-
def test_show_edit_button_id
|
28
|
-
get :show, params: { :id => ForemanDatacenter::RackGroup.first.to_param }, session: set_session_user
|
29
|
-
assert_select "[data-id='aid_rack_groups_#{ForemanDatacenter::RackGroup.first.id}_edit']"
|
30
|
-
end
|
31
|
-
|
32
|
-
def test_show_delete_button_id
|
33
|
-
get :show, params: { :id => ForemanDatacenter::RackGroup.first.to_param }, session: set_session_user
|
34
|
-
assert_select "[data-id='aid_datacenter_rack_groups_#{ForemanDatacenter::RackGroup.first.id}']"
|
35
|
-
end
|
36
|
-
|
37
16
|
def test_create_invalid
|
38
17
|
ForemanDatacenter::RackGroup.any_instance.stubs(:valid?).returns(false)
|
39
|
-
post :create, params: { :
|
18
|
+
post :create, params: { rack_group: { name: nil } }, session: set_session_user
|
40
19
|
assert_template 'new'
|
41
20
|
end
|
42
21
|
|
43
|
-
def test_create_valid
|
22
|
+
def test_create_valid(name = "test rg")
|
44
23
|
ForemanDatacenter::RackGroup.any_instance.stubs(:valid?).returns(true)
|
45
|
-
post :create, params: { :
|
24
|
+
post :create, params: { rack_group: { name: name } }, session: set_session_user
|
46
25
|
assert_redirected_to rack_groups_url
|
47
26
|
end
|
48
27
|
|
49
|
-
def test_edit_submit_button_id
|
50
|
-
get :edit, params: { :id => ForemanDatacenter::RackGroup.first }, session: set_session_user
|
51
|
-
assert_select "[data-id='aid_update_foreman_datacenter_rack_group']"
|
52
|
-
end
|
53
|
-
|
54
28
|
def test_update_invalid
|
55
29
|
ForemanDatacenter::RackGroup.any_instance.stubs(:valid?).returns(false)
|
56
|
-
put :update, params: { :
|
30
|
+
put :update, params: { id: @model.to_param, rack_group: { name: '3243' } }, session: set_session_user
|
57
31
|
assert_template 'edit'
|
58
32
|
end
|
59
33
|
|
60
34
|
def test_update_valid
|
61
35
|
ForemanDatacenter::RackGroup.any_instance.stubs(:valid?).returns(true)
|
62
|
-
put :update, params: { :
|
36
|
+
put :update, params: { id: @model.to_param, rack_group: { name: @model.name } }, session: set_session_user
|
37
|
+
assert_redirected_to rack_groups_url
|
38
|
+
end
|
39
|
+
|
40
|
+
def test_destroy
|
41
|
+
test_create_valid "tobedeleted_test"
|
42
|
+
@new_rg = ForemanDatacenter::RackGroup.find_by_name("tobedeleted_test")
|
43
|
+
delete :destroy, params: { id: @new_rg.id }, session: set_session_user
|
63
44
|
assert_redirected_to rack_groups_url
|
45
|
+
assert !ForemanDatacenter::RackGroup.exists?(@new_rg.id)
|
64
46
|
end
|
65
47
|
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
48
|
+
test "should not get index when not permitted" do
|
49
|
+
setup_user
|
50
|
+
get :index, session: { :user => users(:one).id, :expires_at => 5.minutes.from_now }
|
51
|
+
assert_response :forbidden
|
52
|
+
assert_includes @response.body, 'view_rack_groups'
|
53
|
+
end
|
54
|
+
|
55
|
+
test 'should not get show when not permitted' do
|
56
|
+
setup_user
|
57
|
+
get :show, params: { :id => @model.id }, session: {:user => users(:one).id, :expires_at => 5.minutes.from_now}
|
58
|
+
assert_response :forbidden
|
59
|
+
assert_includes @response.body, 'view_rack_groups'
|
60
|
+
end
|
74
61
|
|
75
|
-
|
62
|
+
test 'should not get edit when not permitted' do
|
63
|
+
setup_user
|
64
|
+
get :edit, params: { :id => @model.id }, session: {:user => users(:one).id, :expires_at => 5.minutes.from_now}
|
65
|
+
assert_response :forbidden
|
66
|
+
assert_includes @response.body, 'edit_rack_groups'
|
67
|
+
end
|
68
|
+
|
69
|
+
test "should get index" do
|
70
|
+
setup_user("Viewer")
|
71
|
+
get :index, session: set_session_user
|
72
|
+
assert_response :success
|
73
|
+
assert_template 'index'
|
74
|
+
end
|
75
|
+
|
76
|
+
test 'should get show' do
|
77
|
+
setup_user("Viewer")
|
78
|
+
get :show, params: { :id => @model.id }, session: set_session_user
|
79
|
+
assert_response :success
|
80
|
+
assert_template 'show'
|
81
|
+
end
|
82
|
+
|
83
|
+
test 'should not get edit with viewer permissions' do
|
84
|
+
setup_user("Viewer")
|
85
|
+
get :edit, params: { :id => @model.id }, session: {:user => users(:one).id, :expires_at => 5.minutes.from_now}
|
86
|
+
assert_response :forbidden
|
87
|
+
assert_includes @response.body, 'edit_rack_groups'
|
88
|
+
end
|
89
|
+
|
90
|
+
test 'should get edit' do
|
91
|
+
get :edit, params: { :id => @model.id }, session: set_session_user
|
92
|
+
assert_response :success
|
93
|
+
assert_template 'edit'
|
94
|
+
end
|
95
|
+
|
96
|
+
def setup_user(role = "")
|
76
97
|
@request.session[:user] = users(:one).id
|
77
|
-
users(:one).roles = [Role.default
|
98
|
+
users(:one).roles = [Role.default]
|
99
|
+
users(:one).roles << Role.find_by_name(role) if role != ""
|
100
|
+
# users(:one).roles = [Role.default, Role.find_by_name("Viewer")]
|
101
|
+
end
|
102
|
+
|
103
|
+
test "should_render_404_when_rack_is_not_found" do
|
104
|
+
get :show, params: { id: 'no.such.rack.group' }, session: set_session_user
|
105
|
+
assert_response :not_found
|
106
|
+
assert_template 'common/404'
|
107
|
+
end
|
108
|
+
|
109
|
+
test "should_not_destroy_rack_group_when_not_permitted" do
|
110
|
+
setup_user
|
111
|
+
assert_difference('ForemanDatacenter::RackGroup.count', 0) do
|
112
|
+
delete :destroy, params: { :id => @model.id }, session: {:user => users(:one).id, :expires_at => 5.minutes.from_now}
|
113
|
+
end
|
114
|
+
assert_response :forbidden
|
115
|
+
end
|
116
|
+
|
117
|
+
test "should search by name" do
|
118
|
+
get :index, params: {:search => "name=\"rack_group_1\""}, session: set_session_user
|
119
|
+
assert_response :success
|
120
|
+
refute_empty assigns(:rack_groups)
|
121
|
+
assert assigns(:rack_groups).include?(rack_groups(:one))
|
78
122
|
end
|
79
123
|
|
80
|
-
|
81
|
-
:
|
124
|
+
test "should search by site" do
|
125
|
+
get :index, params: {:search => "site=\"site_1\""}, session: set_session_user
|
126
|
+
assert_response :success
|
127
|
+
refute_empty assigns(:rack_groups)
|
128
|
+
assert assigns(:rack_groups).include?(rack_groups(:one))
|
82
129
|
end
|
83
130
|
end
|
84
131
|
end
|