foreman_datacenter 1.24.0 → 1.24.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (25) hide show
  1. checksums.yaml +4 -4
  2. data/lib/foreman_datacenter/version.rb +1 -1
  3. data/test/controllers/foreman_datacenter/device_roles_controller_test.rb +133 -0
  4. data/test/controllers/foreman_datacenter/device_types_contoller_test.rb +108 -47
  5. data/test/controllers/foreman_datacenter/devices_controller_test.rb +132 -0
  6. data/test/controllers/foreman_datacenter/manufacturers_controller_test.rb +133 -0
  7. data/test/controllers/foreman_datacenter/platforms_contoller_test.rb +91 -48
  8. data/test/controllers/foreman_datacenter/rack_groups_contoller_test.rb +90 -43
  9. data/test/controllers/foreman_datacenter/racks_contoller_test.rb +111 -42
  10. data/test/controllers/foreman_datacenter/sites_contoller_test.rb +108 -81
  11. data/test/datacenter_helper.rb +8 -1
  12. data/test/factories/device.rb +5 -0
  13. data/test/factories/device_role.rb +6 -0
  14. data/test/factories/device_type.rb +30 -0
  15. data/test/factories/rack_group.rb +13 -14
  16. data/test/fixtures/foreman_datacenter/device_roles.yml +0 -1
  17. data/test/integration/foreman_datacenter/device_role_test.rb +35 -0
  18. data/test/integration/foreman_datacenter/device_type_test.rb +33 -0
  19. data/test/integration/foreman_datacenter/manufacturer_test.rb +33 -0
  20. data/test/integration/foreman_datacenter/platform_test.rb +35 -0
  21. data/test/integration/foreman_datacenter/rack_group_test.rb +35 -25
  22. data/test/integration/foreman_datacenter/rack_test.rb +37 -25
  23. data/test/integration/foreman_datacenter/site_test.rb +39 -29
  24. data/test/unit/foreman_datacenter_test.rb +1 -1
  25. metadata +53 -34
@@ -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 => 'test site'} }, session: set_session_user
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 => ForemanDatacenter::Platform.first.to_param, :platform => {:name => "3243", :asn => "string"} }, session: set_session_user
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 => ForemanDatacenter::Platform.first.to_param, :platform => {:name => ForemanDatacenter::Site.first.name} }, session: set_session_user
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
- # def test_destroy
72
- # platform = ForemanDatacenter::Platform.first
73
- # # architecture.hosts.delete_all
74
- # # architecture.hostgroups.delete_all
75
- # delete :destroy, params: { :id => platform }, session: set_session_user
76
- # assert_redirected_to platforms_url
77
- # assert !ForemanDatacenter::Platform.exists?(platform.id)
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 => ForemanDatacenter::Platform.first.id }, session: {:user => users(:one).id, :expires_at => 5.minutes.from_now}
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
- def setup_user
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, Role.find_by_name('Viewer')]
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
- def get_factory_name
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: { :rack_group => {:name => nil} }, session: set_session_user
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: { :rack_group => {:name => 'test rg'} }, session: set_session_user
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: { :id => ForemanDatacenter::RackGroup.first.to_param, :rack_group => {:name => "3243"} }, session: set_session_user
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: { :id => ForemanDatacenter::RackGroup.first.to_param, :rack_group => {:name => ForemanDatacenter::RackGroup.first.name} }, session: set_session_user
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
- # def test_destroy
67
- # rack_group = ForemanDatacenter::RackGroup.first
68
- # # architecture.hosts.delete_all
69
- # # architecture.hostgroups.delete_all
70
- # delete :destroy, params: { :id => rack_group }, session: set_session_user
71
- # assert_redirected_to rack_groups_url
72
- # assert !ForemanDatacenter::RackGroup.exists?(rack_group.id)
73
- # end
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
- def setup_user
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, Role.find_by_name('Viewer')]
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
- def get_factory_name
81
- :rack_group
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