metasploit_data_models 2.0.17 → 3.0.0

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.
Files changed (116) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data/.travis.yml +1 -1
  4. data/Gemfile +3 -8
  5. data/lib/mdm/host/operating_system_normalization.rb +2 -1
  6. data/lib/metasploit_data_models/engine.rb +7 -7
  7. data/lib/metasploit_data_models/version.rb +1 -1
  8. data/metasploit_data_models.gemspec +3 -1
  9. data/spec/app/models/mdm/client_spec.rb +3 -3
  10. data/spec/app/models/mdm/cred_spec.rb +34 -34
  11. data/spec/app/models/mdm/event_spec.rb +9 -9
  12. data/spec/app/models/mdm/exploit_attempt_spec.rb +5 -5
  13. data/spec/app/models/mdm/exploited_host_spec.rb +3 -3
  14. data/spec/app/models/mdm/host_detail_spec.rb +4 -4
  15. data/spec/app/models/mdm/host_spec.rb +47 -47
  16. data/spec/app/models/mdm/host_tag_spec.rb +5 -5
  17. data/spec/app/models/mdm/listener_spec.rb +12 -12
  18. data/spec/app/models/mdm/loot_spec.rb +8 -8
  19. data/spec/app/models/mdm/module/action_spec.rb +2 -2
  20. data/spec/app/models/mdm/module/arch_spec.rb +2 -2
  21. data/spec/app/models/mdm/module/author_spec.rb +3 -3
  22. data/spec/app/models/mdm/module/detail_spec.rb +71 -71
  23. data/spec/app/models/mdm/module/mixin_spec.rb +2 -2
  24. data/spec/app/models/mdm/module/platform_spec.rb +2 -2
  25. data/spec/app/models/mdm/module/ref_spec.rb +5 -5
  26. data/spec/app/models/mdm/module/target_spec.rb +2 -2
  27. data/spec/app/models/mdm/nexpose_console_spec.rb +15 -15
  28. data/spec/app/models/mdm/note_spec.rb +11 -11
  29. data/spec/app/models/mdm/ref_spec.rb +6 -6
  30. data/spec/app/models/mdm/route_spec.rb +3 -3
  31. data/spec/app/models/mdm/service_spec.rb +20 -20
  32. data/spec/app/models/mdm/session_event_spec.rb +3 -3
  33. data/spec/app/models/mdm/session_spec.rb +14 -14
  34. data/spec/app/models/mdm/tag_spec.rb +12 -12
  35. data/spec/app/models/mdm/task_cred_spec.rb +6 -6
  36. data/spec/app/models/mdm/task_host_spec.rb +6 -6
  37. data/spec/app/models/mdm/task_service_spec.rb +6 -6
  38. data/spec/app/models/mdm/task_session_spec.rb +6 -6
  39. data/spec/app/models/mdm/task_spec.rb +3 -3
  40. data/spec/app/models/mdm/user_spec.rb +3 -3
  41. data/spec/app/models/mdm/vuln_attempt_spec.rb +4 -4
  42. data/spec/app/models/mdm/vuln_detail_spec.rb +3 -3
  43. data/spec/app/models/mdm/vuln_ref_spec.rb +4 -4
  44. data/spec/app/models/mdm/vuln_spec.rb +20 -20
  45. data/spec/app/models/mdm/web_form_spec.rb +3 -3
  46. data/spec/app/models/mdm/web_page_spec.rb +4 -4
  47. data/spec/app/models/mdm/web_site_spec.rb +15 -15
  48. data/spec/app/models/mdm/web_vuln_spec.rb +4 -4
  49. data/spec/app/models/mdm/workspace_spec.rb +25 -25
  50. data/spec/app/models/metasploit_data_models/automatic_exploitation/match_result_spec.rb +4 -4
  51. data/spec/app/models/metasploit_data_models/automatic_exploitation/match_set_spec.rb +2 -2
  52. data/spec/app/models/metasploit_data_models/automatic_exploitation/match_spec.rb +3 -3
  53. data/spec/app/models/metasploit_data_models/automatic_exploitation/run_spec.rb +5 -5
  54. data/spec/app/models/metasploit_data_models/module_run_spec.rb +3 -3
  55. data/spec/app/models/metasploit_data_models/search/visitor/includes_spec.rb +4 -8
  56. data/spec/app/models/metasploit_data_models/search/visitor/joins_spec.rb +12 -12
  57. data/spec/app/models/metasploit_data_models/search/visitor/relation_spec.rb +16 -16
  58. data/spec/app/models/metasploit_data_models/search/visitor/where_spec.rb +3 -3
  59. data/spec/dummy/config/environments/test.rb +1 -1
  60. data/spec/dummy/db/structure.sql +2 -2
  61. data/spec/factories/mdm/addresses.rb +2 -2
  62. data/spec/factories/mdm/clients.rb +2 -2
  63. data/spec/factories/mdm/creds.rb +2 -2
  64. data/spec/factories/mdm/events.rb +3 -3
  65. data/spec/factories/mdm/exploit_attempts.rb +2 -2
  66. data/spec/factories/mdm/exploited_hosts.rb +1 -1
  67. data/spec/factories/mdm/fingerprints/nessus_fingerprints.rb +2 -2
  68. data/spec/factories/mdm/fingerprints/nexpose_fingerprints.rb +2 -2
  69. data/spec/factories/mdm/fingerprints/nmap_fingerprints.rb +2 -2
  70. data/spec/factories/mdm/fingerprints/retina_fingerprints.rb +2 -2
  71. data/spec/factories/mdm/fingerprints/session_fingerprints.rb +2 -2
  72. data/spec/factories/mdm/host_details.rb +2 -2
  73. data/spec/factories/mdm/host_tags.rb +2 -2
  74. data/spec/factories/mdm/hosts.rb +2 -2
  75. data/spec/factories/mdm/listeners.rb +2 -2
  76. data/spec/factories/mdm/loots.rb +2 -2
  77. data/spec/factories/mdm/module/actions.rb +2 -2
  78. data/spec/factories/mdm/module/archs.rb +2 -2
  79. data/spec/factories/mdm/module/authors.rb +2 -2
  80. data/spec/factories/mdm/module/details.rb +1 -1
  81. data/spec/factories/mdm/module/mixins.rb +2 -2
  82. data/spec/factories/mdm/module/platforms.rb +2 -2
  83. data/spec/factories/mdm/module/refs.rb +2 -2
  84. data/spec/factories/mdm/module/targets.rb +2 -2
  85. data/spec/factories/mdm/nexpose_consoles.rb +2 -2
  86. data/spec/factories/mdm/notes.rb +2 -2
  87. data/spec/factories/mdm/refs.rb +2 -2
  88. data/spec/factories/mdm/routes.rb +2 -2
  89. data/spec/factories/mdm/services.rb +3 -3
  90. data/spec/factories/mdm/session_events.rb +1 -1
  91. data/spec/factories/mdm/sessions.rb +2 -2
  92. data/spec/factories/mdm/tags.rb +2 -2
  93. data/spec/factories/mdm/task.rb +2 -2
  94. data/spec/factories/mdm/task_creds.rb +2 -2
  95. data/spec/factories/mdm/task_hosts.rb +2 -2
  96. data/spec/factories/mdm/task_services.rb +2 -2
  97. data/spec/factories/mdm/task_sessions.rb +2 -2
  98. data/spec/factories/mdm/users.rb +2 -2
  99. data/spec/factories/mdm/vuln_attempts.rb +2 -2
  100. data/spec/factories/mdm/vuln_details.rb +2 -2
  101. data/spec/factories/mdm/vuln_refs.rb +2 -2
  102. data/spec/factories/mdm/vulns.rb +2 -2
  103. data/spec/factories/mdm/web_forms.rb +1 -1
  104. data/spec/factories/mdm/web_pages.rb +2 -2
  105. data/spec/factories/mdm/web_sites.rb +2 -2
  106. data/spec/factories/mdm/web_vulns.rb +2 -2
  107. data/spec/factories/mdm/workspaces.rb +2 -2
  108. data/spec/factories/metasploit_data_models/automatic_exploitation/match_results.rb +1 -1
  109. data/spec/factories/metasploit_data_models/automatic_exploitation/match_sets.rb +2 -2
  110. data/spec/factories/metasploit_data_models/automatic_exploitation/matches.rb +1 -1
  111. data/spec/factories/metasploit_data_models/automatic_exploitation/runs.rb +1 -1
  112. data/spec/factories/module_runs.rb +1 -1
  113. data/spec/spec_helper.rb +2 -2
  114. data.tar.gz.sig +0 -0
  115. metadata +7 -7
  116. metadata.gz.sig +0 -0
@@ -2,7 +2,7 @@ RSpec.describe Mdm::Host, type: :model do
2
2
  include_context 'Rex::Text'
3
3
 
4
4
  subject(:host) do
5
- FactoryGirl.build(:mdm_host)
5
+ FactoryBot.build(:mdm_host)
6
6
  end
7
7
 
8
8
  let(:architectures) do
@@ -43,7 +43,7 @@ RSpec.describe Mdm::Host, type: :model do
43
43
  context 'factory' do
44
44
  context 'mdm_host' do
45
45
  subject(:mdm_host) {
46
- FactoryGirl.build(:mdm_host)
46
+ FactoryBot.build(:mdm_host)
47
47
  }
48
48
 
49
49
  it { is_expected.to be_valid }
@@ -58,21 +58,21 @@ RSpec.describe Mdm::Host, type: :model do
58
58
  describe 'MAC address format validation' do
59
59
  context 'when colon delimited' do
60
60
  it 'is valid' do
61
- host = FactoryGirl.build(:mdm_host, mac: '1a:2B:3c:4D:5e:6f')
61
+ host = FactoryBot.build(:mdm_host, mac: '1a:2B:3c:4D:5e:6f')
62
62
  expect(host).to be_valid
63
63
  end
64
64
  end
65
65
 
66
66
  context 'when hyphen delimited' do
67
67
  it 'is valid' do
68
- host = FactoryGirl.build(:mdm_host, mac: '1a-2B-3c-4D-5e-6f')
68
+ host = FactoryBot.build(:mdm_host, mac: '1a-2B-3c-4D-5e-6f')
69
69
  expect(host).to be_valid
70
70
  end
71
71
  end
72
72
 
73
73
  context 'when mixed colon-hyphen delimited ' do
74
74
  it 'is invalid' do
75
- host = FactoryGirl.build(:mdm_host, mac: '1a:2B:3c-4D:5e:6f')
75
+ host = FactoryBot.build(:mdm_host, mac: '1a:2B:3c-4D:5e:6f')
76
76
  expect(host).to be_invalid
77
77
  end
78
78
  end
@@ -80,16 +80,16 @@ RSpec.describe Mdm::Host, type: :model do
80
80
 
81
81
  context '#destroy' do
82
82
  it 'should successfully destroy the object and the dependent objects' do
83
- host = FactoryGirl.create(:mdm_host)
84
- exploit_attempt = FactoryGirl.create(:mdm_exploit_attempt, :host => host)
85
- exploited_host = FactoryGirl.create(:mdm_exploited_host, :host => host)
86
- host_detail = FactoryGirl.create(:mdm_host_detail, :host => host)
87
- loot = FactoryGirl.create(:mdm_loot, :host => host)
88
- task_host = FactoryGirl.create(:mdm_task_host, :host => host)
89
- note = FactoryGirl.create(:mdm_note, :host => host)
90
- svc = FactoryGirl.create(:mdm_service, :host => host)
91
- session = FactoryGirl.create(:mdm_session, :host => host)
92
- vuln = FactoryGirl.create(:mdm_vuln, :host => host)
83
+ host = FactoryBot.create(:mdm_host)
84
+ exploit_attempt = FactoryBot.create(:mdm_exploit_attempt, :host => host)
85
+ exploited_host = FactoryBot.create(:mdm_exploited_host, :host => host)
86
+ host_detail = FactoryBot.create(:mdm_host_detail, :host => host)
87
+ loot = FactoryBot.create(:mdm_loot, :host => host)
88
+ task_host = FactoryBot.create(:mdm_task_host, :host => host)
89
+ note = FactoryBot.create(:mdm_note, :host => host)
90
+ svc = FactoryBot.create(:mdm_service, :host => host)
91
+ session = FactoryBot.create(:mdm_session, :host => host)
92
+ vuln = FactoryBot.create(:mdm_vuln, :host => host)
93
93
 
94
94
 
95
95
  expect {
@@ -145,7 +145,7 @@ RSpec.describe Mdm::Host, type: :model do
145
145
 
146
146
  context 'with Mdm::Vulns' do
147
147
  let!(:vulns) do
148
- FactoryGirl.create_list(
148
+ FactoryBot.create_list(
149
149
  :mdm_vuln,
150
150
  2,
151
151
  :host => host
@@ -154,30 +154,30 @@ RSpec.describe Mdm::Host, type: :model do
154
154
 
155
155
  context 'with Mdm::Ref' do
156
156
  let(:name) do
157
- FactoryGirl.generate :mdm_ref_name
157
+ FactoryBot.generate :mdm_ref_name
158
158
  end
159
159
 
160
160
  let!(:ref) do
161
- FactoryGirl.create(:mdm_ref, :name => name)
161
+ FactoryBot.create(:mdm_ref, :name => name)
162
162
  end
163
163
 
164
164
  context 'with Mdm::VulnRefs' do
165
165
  let!(:vuln_refs) do
166
166
  vulns.collect { |vuln|
167
- FactoryGirl.create(:mdm_vuln_ref, :ref => ref, :vuln => vuln)
167
+ FactoryBot.create(:mdm_vuln_ref, :ref => ref, :vuln => vuln)
168
168
  }
169
169
  end
170
170
 
171
171
  context 'with Mdm::Module::Detail' do
172
172
  let!(:module_detail) do
173
- FactoryGirl.create(
173
+ FactoryBot.create(
174
174
  :mdm_module_detail
175
175
  )
176
176
  end
177
177
 
178
178
  context 'with Mdm::Module::Ref with same name as Mdm::Ref' do
179
179
  let!(:module_ref) do
180
- FactoryGirl.create(
180
+ FactoryBot.create(
181
181
  :mdm_module_ref,
182
182
  :detail => module_detail,
183
183
  :name => name
@@ -390,7 +390,7 @@ RSpec.describe Mdm::Host, type: :model do
390
390
  context 'factories' do
391
391
  context 'full_mdm_host' do
392
392
  subject(:full_mdm_host) do
393
- FactoryGirl.build(:full_mdm_host)
393
+ FactoryBot.build(:full_mdm_host)
394
394
  end
395
395
 
396
396
  it { is_expected.to be_valid }
@@ -398,7 +398,7 @@ RSpec.describe Mdm::Host, type: :model do
398
398
 
399
399
  context 'mdm_host' do
400
400
  subject(:mdm_host) do
401
- FactoryGirl.build(:mdm_host)
401
+ FactoryBot.build(:mdm_host)
402
402
  end
403
403
 
404
404
  it { is_expected.to be_valid }
@@ -414,10 +414,10 @@ RSpec.describe Mdm::Host, type: :model do
414
414
  it 'should validate uniqueness of address scoped to workspace_id' do
415
415
  address = '192.168.0.1'
416
416
 
417
- workspace = FactoryGirl.create(:mdm_workspace)
418
- FactoryGirl.create(:mdm_host, :address => address, :workspace => workspace)
417
+ workspace = FactoryBot.create(:mdm_workspace)
418
+ FactoryBot.create(:mdm_host, :address => address, :workspace => workspace)
419
419
 
420
- duplicate_host = FactoryGirl.build(:mdm_host, :address => address, :workspace => workspace)
420
+ duplicate_host = FactoryBot.build(:mdm_host, :address => address, :workspace => workspace)
421
421
 
422
422
  expect(duplicate_host).not_to be_valid
423
423
  expect(duplicate_host.errors[:address]).to include('has already been taken')
@@ -425,9 +425,9 @@ RSpec.describe Mdm::Host, type: :model do
425
425
  end
426
426
 
427
427
  context 'arch' do
428
- let(:workspace) { FactoryGirl.create(:mdm_workspace) }
428
+ let(:workspace) { FactoryBot.create(:mdm_workspace) }
429
429
  let(:address) { '192.168.0.1' }
430
- let(:host) { FactoryGirl.create(:mdm_host, :address => address, :workspace => workspace, :arch => arch) }
430
+ let(:host) { FactoryBot.create(:mdm_host, :address => address, :workspace => workspace, :arch => arch) }
431
431
  context 'with an unknown architecture' do
432
432
  let(:arch) { "asdfasdf" }
433
433
  it 'should normalize to Unknown' do
@@ -449,7 +449,7 @@ RSpec.describe Mdm::Host, type: :model do
449
449
 
450
450
  context 'search scope' do
451
451
  subject(:full_mdm_host) do
452
- FactoryGirl.create(:full_mdm_host)
452
+ FactoryBot.create(:full_mdm_host)
453
453
  end
454
454
 
455
455
  def search_for(str)
@@ -732,17 +732,17 @@ RSpec.describe Mdm::Host, type: :model do
732
732
 
733
733
  context '#validate_fingerprint_data' do
734
734
  it 'should return false for an empty hash' do
735
- fingerprint= FactoryGirl.build(:mdm_note, :data => {})
735
+ fingerprint= FactoryBot.build(:mdm_note, :data => {})
736
736
  expect(host.validate_fingerprint_data(fingerprint)).to eq(false)
737
737
  end
738
738
 
739
739
  it 'should return false for postgresql fingerprints' do
740
- fingerprint= FactoryGirl.build(:mdm_note, :ntype => 'postgresql.fingerprint', :data => {})
740
+ fingerprint= FactoryBot.build(:mdm_note, :ntype => 'postgresql.fingerprint', :data => {})
741
741
  expect(host.validate_fingerprint_data(fingerprint)).to eq(false)
742
742
  end
743
743
 
744
744
  it 'should return false if the fingerprint does not contain a hash' do
745
- fingerprint= FactoryGirl.build(:mdm_note, :data => 'this is not a fingerprint')
745
+ fingerprint= FactoryBot.build(:mdm_note, :data => 'this is not a fingerprint')
746
746
  expect(host.validate_fingerprint_data(fingerprint)).to eq(false)
747
747
  end
748
748
  end
@@ -963,7 +963,7 @@ RSpec.describe Mdm::Host, type: :model do
963
963
  context '#normalize_scanner_fp' do
964
964
  context 'for session_fingerprint' do
965
965
  it 'should return all the correct data for Windows XP SP3 x86' do
966
- fingerprint = FactoryGirl.build(:mdm_session_fingerprint, :host => host)
966
+ fingerprint = FactoryBot.build(:mdm_session_fingerprint, :host => host)
967
967
  result = host.send(:normalize_scanner_fp, fingerprint).first
968
968
  expect(result['os.product']).to eq('Windows XP')
969
969
  expect(result['os.version']).to eq('SP3')
@@ -974,7 +974,7 @@ RSpec.describe Mdm::Host, type: :model do
974
974
 
975
975
  it 'should return all the correct data for Windows 2008 SP1 x64' do
976
976
  fp_data = { :os => 'Microsoft Windows 2008 SP1', :arch => 'x64'}
977
- fingerprint = FactoryGirl.build(:mdm_session_fingerprint, :host => host, :data => fp_data)
977
+ fingerprint = FactoryBot.build(:mdm_session_fingerprint, :host => host, :data => fp_data)
978
978
  result = host.send(:normalize_scanner_fp, fingerprint).first
979
979
  expect(result['os.product']).to eq('Windows Server 2008')
980
980
  expect(result['os.version']).to eq('SP1')
@@ -986,7 +986,7 @@ RSpec.describe Mdm::Host, type: :model do
986
986
  it 'should fingerprint Metasploitable correctly' do
987
987
  # Taken from an actual session_fingerprint of Metasploitable 2
988
988
  fp_data = { :os => 'Linux 2.6.24-16-server (i386)', :name => 'metasploitable'}
989
- fingerprint = FactoryGirl.build(:mdm_session_fingerprint, :host => host, :data => fp_data)
989
+ fingerprint = FactoryBot.build(:mdm_session_fingerprint, :host => host, :data => fp_data)
990
990
  result = host.send(:normalize_scanner_fp, fingerprint).first
991
991
  expect(result['os.product']).to eq('Linux')
992
992
  expect(result['host.name']).to eq('metasploitable')
@@ -997,7 +997,7 @@ RSpec.describe Mdm::Host, type: :model do
997
997
 
998
998
  it 'should just populate os_name if it is unsure' do
999
999
  fp_data = { :os => 'Darwin 12.3.0 x86_64 i386'}
1000
- fingerprint = FactoryGirl.build(:mdm_session_fingerprint, :host => host, :data => fp_data)
1000
+ fingerprint = FactoryBot.build(:mdm_session_fingerprint, :host => host, :data => fp_data)
1001
1001
  result = host.send(:normalize_scanner_fp, fingerprint).first
1002
1002
  expect(result['os.product']).to eq('Darwin 12.3.0 x86_64 i386')
1003
1003
  expect(result['os.version']).to eq(nil)
@@ -1008,7 +1008,7 @@ RSpec.describe Mdm::Host, type: :model do
1008
1008
 
1009
1009
  context 'for nmap_fingerprint' do
1010
1010
  it 'should return OS name for a Windows XP fingerprint' do
1011
- fingerprint = FactoryGirl.build(:mdm_nmap_fingerprint, :host => host)
1011
+ fingerprint = FactoryBot.build(:mdm_nmap_fingerprint, :host => host)
1012
1012
  result = host.send(:normalize_scanner_fp, fingerprint).first
1013
1013
  expect(result['os.product']).to eq('Windows XP')
1014
1014
  expect(result['os.certainty'].to_f).to eq(described_class::MAX_NMAP_CERTAINTY)
@@ -1016,7 +1016,7 @@ RSpec.describe Mdm::Host, type: :model do
1016
1016
 
1017
1017
  it 'should return OS name for a Metasploitable fingerprint' do
1018
1018
  fp_data = {:os_vendor=>"Linux", :os_family=>"Linux", :os_version=>"2.6.X", :os_accuracy=>100}
1019
- fingerprint = FactoryGirl.build(:mdm_nmap_fingerprint, :host => host, :data => fp_data)
1019
+ fingerprint = FactoryBot.build(:mdm_nmap_fingerprint, :host => host, :data => fp_data)
1020
1020
  result = host.send(:normalize_scanner_fp, fingerprint).first
1021
1021
  expect(result['os.product']).to eq('Linux')
1022
1022
  expect(result['os.version']).to eq('2.6.X')
@@ -1025,7 +1025,7 @@ RSpec.describe Mdm::Host, type: :model do
1025
1025
 
1026
1026
  it 'should return OS name and flavor fo an OSX fingerprint' do
1027
1027
  fp_data = {:os_vendor=>"Apple", :os_family=>"Mac OS X", :os_version=>"10.8.X", :os_accuracy=>100}
1028
- fingerprint = FactoryGirl.build(:mdm_nmap_fingerprint, :host => host, :data => fp_data)
1028
+ fingerprint = FactoryBot.build(:mdm_nmap_fingerprint, :host => host, :data => fp_data)
1029
1029
  result = host.send(:normalize_scanner_fp, fingerprint).first
1030
1030
  expect(result['os.product']).to eq('Mac OS X')
1031
1031
  expect(result['os.vendor']).to eq('Apple')
@@ -1037,7 +1037,7 @@ RSpec.describe Mdm::Host, type: :model do
1037
1037
  context 'for nexpose_fingerprint' do
1038
1038
  context 'of a Windows system' do
1039
1039
  it 'should return a generic Windows fingerprint with no product info' do
1040
- fingerprint = FactoryGirl.build(:mdm_nexpose_fingerprint, :host => host)
1040
+ fingerprint = FactoryBot.build(:mdm_nexpose_fingerprint, :host => host)
1041
1041
  result = host.send(:normalize_scanner_fp, fingerprint).first
1042
1042
  expect(result['os.product']).to eq('Windows')
1043
1043
  expect(result['os.arch']).to eq('x86')
@@ -1046,7 +1046,7 @@ RSpec.describe Mdm::Host, type: :model do
1046
1046
 
1047
1047
  it 'should recognize a Windows 7 fingerprint' do
1048
1048
  fp_data = {:family=>"Windows", :certainty=>"0.67", :vendor=>"Microsoft", :arch=>"x86", :product => 'Windows 7', :version => 'SP1'}
1049
- fingerprint = FactoryGirl.build(:mdm_nexpose_fingerprint, :host => host, :data => fp_data)
1049
+ fingerprint = FactoryBot.build(:mdm_nexpose_fingerprint, :host => host, :data => fp_data)
1050
1050
  result = host.send(:normalize_scanner_fp, fingerprint).first
1051
1051
  expect(result['os.product']).to eq('Windows 7')
1052
1052
  expect(result['os.version']).to eq('SP1')
@@ -1057,7 +1057,7 @@ RSpec.describe Mdm::Host, type: :model do
1057
1057
 
1058
1058
  it 'should recognize an OSX fingerprint' do
1059
1059
  fp_data = {:family=>"Mac OS X", :certainty=>"0.80", :vendor=>"Apple"}
1060
- fingerprint = FactoryGirl.build(:mdm_nexpose_fingerprint, :host => host, :data => fp_data)
1060
+ fingerprint = FactoryBot.build(:mdm_nexpose_fingerprint, :host => host, :data => fp_data)
1061
1061
  result = host.send(:normalize_scanner_fp, fingerprint).first
1062
1062
  expect(result['os.product']).to eq('Mac OS X')
1063
1063
  expect(result['os.vendor']).to eq("Apple")
@@ -1065,7 +1065,7 @@ RSpec.describe Mdm::Host, type: :model do
1065
1065
 
1066
1066
  it 'should recognize a Cisco fingerprint' do
1067
1067
  fp_data = {:family=>"IOS", :certainty=>"1.00", :vendor=>"Cisco", :version=>"11.2(8)SA2"}
1068
- fingerprint = FactoryGirl.build(:mdm_nexpose_fingerprint, :host => host, :data => fp_data)
1068
+ fingerprint = FactoryBot.build(:mdm_nexpose_fingerprint, :host => host, :data => fp_data)
1069
1069
  result = host.send(:normalize_scanner_fp, fingerprint).first
1070
1070
  expect(result['os.product']).to eq('IOS')
1071
1071
  expect(result['os.vendor']).to eq('Cisco')
@@ -1073,14 +1073,14 @@ RSpec.describe Mdm::Host, type: :model do
1073
1073
 
1074
1074
  it 'should recognize an embedded fingerprint' do
1075
1075
  fp_data = {:family=>"embedded", :certainty=>"1.00", :vendor=>"Footek"}
1076
- fingerprint = FactoryGirl.build(:mdm_nexpose_fingerprint, :host => host, :data => fp_data)
1076
+ fingerprint = FactoryBot.build(:mdm_nexpose_fingerprint, :host => host, :data => fp_data)
1077
1077
  result = host.send(:normalize_scanner_fp, fingerprint).first
1078
1078
  expect(result['os.product']).to eq('Footek')
1079
1079
  end
1080
1080
 
1081
1081
  it 'should handle an unknown fingerprint' do
1082
1082
  fp_data = {:certainty=>"1.00", :vendor=>"Footek"}
1083
- fingerprint = FactoryGirl.build(:mdm_nexpose_fingerprint, :host => host, :data => fp_data)
1083
+ fingerprint = FactoryBot.build(:mdm_nexpose_fingerprint, :host => host, :data => fp_data)
1084
1084
  result = host.send(:normalize_scanner_fp, fingerprint).first
1085
1085
  expect(result['os.product']).to eq('Footek')
1086
1086
  end
@@ -1090,7 +1090,7 @@ RSpec.describe Mdm::Host, type: :model do
1090
1090
 
1091
1091
  context 'for retina_fingerprint' do
1092
1092
  it 'should recognize a Windows fingerprint' do
1093
- fingerprint = FactoryGirl.build(:mdm_retina_fingerprint, :host => host)
1093
+ fingerprint = FactoryBot.build(:mdm_retina_fingerprint, :host => host)
1094
1094
  result = host.send(:normalize_scanner_fp, fingerprint).first
1095
1095
  expect(result['os.product']).to eq( 'Windows Server 2003')
1096
1096
  expect(result['os.arch']).to eq('x64')
@@ -1100,7 +1100,7 @@ RSpec.describe Mdm::Host, type: :model do
1100
1100
 
1101
1101
  it 'should otherwise jsut copy the fingerprint to os_name' do
1102
1102
  fp_data = { :os => 'Linux 2.6.X (i386)'}
1103
- fingerprint = FactoryGirl.build(:mdm_retina_fingerprint, :host => host, :data => fp_data)
1103
+ fingerprint = FactoryBot.build(:mdm_retina_fingerprint, :host => host, :data => fp_data)
1104
1104
  result = host.send(:normalize_scanner_fp, fingerprint).first
1105
1105
  expect(result['os.product']).to eq( 'Linux 2.6.X (i386)')
1106
1106
  expect(result['os.certainty'].to_f).to eq(0.8)
@@ -16,7 +16,7 @@ RSpec.describe Mdm::HostTag, type: :model do
16
16
  context 'factories' do
17
17
  context 'mdm_host_tag' do
18
18
  subject(:mdm_host_tag) do
19
- FactoryGirl.build(:mdm_host_tag)
19
+ FactoryBot.build(:mdm_host_tag)
20
20
  end
21
21
 
22
22
  it { is_expected.to be_valid }
@@ -25,13 +25,13 @@ RSpec.describe Mdm::HostTag, type: :model do
25
25
 
26
26
  context '#destroy' do
27
27
  let(:tag) do
28
- FactoryGirl.create(
28
+ FactoryBot.create(
29
29
  :mdm_tag
30
30
  )
31
31
  end
32
32
 
33
33
  let!(:host_tag) do
34
- FactoryGirl.create(
34
+ FactoryBot.create(
35
35
  :mdm_host_tag,
36
36
  :tag => tag
37
37
  )
@@ -45,7 +45,7 @@ RSpec.describe Mdm::HostTag, type: :model do
45
45
 
46
46
  context 'with multiple Mdm::HostTags using same Mdm::Tag' do
47
47
  let!(:other_host_tag) do
48
- FactoryGirl.create(
48
+ FactoryBot.create(
49
49
  :mdm_host_tag,
50
50
  :tag => tag
51
51
  )
@@ -66,4 +66,4 @@ RSpec.describe Mdm::HostTag, type: :model do
66
66
  end
67
67
  end
68
68
  end
69
- end
69
+ end
@@ -28,14 +28,14 @@ RSpec.describe Mdm::Listener, type: :model do
28
28
 
29
29
  context 'factory' do
30
30
  it 'should be valid' do
31
- listener = FactoryGirl.build(:mdm_listener)
31
+ listener = FactoryBot.build(:mdm_listener)
32
32
  expect(listener).to be_valid
33
33
  end
34
34
  end
35
35
 
36
36
  context '#destroy' do
37
37
  it 'should successfully destroy the object' do
38
- listener = FactoryGirl.create(:mdm_listener)
38
+ listener = FactoryBot.create(:mdm_listener)
39
39
  expect {
40
40
  listener.destroy
41
41
  }.to_not raise_error
@@ -48,31 +48,31 @@ RSpec.describe Mdm::Listener, type: :model do
48
48
  context 'validations' do
49
49
  context 'port' do
50
50
  it 'should require a port' do
51
- portless_listener = FactoryGirl.build(:mdm_listener, :port => nil)
51
+ portless_listener = FactoryBot.build(:mdm_listener, :port => nil)
52
52
  expect(portless_listener).not_to be_valid
53
53
  expect(portless_listener.errors[:port]).to include("can't be blank")
54
54
  end
55
55
 
56
56
  it 'should not be valid for out-of-range numbers' do
57
- out_of_range = FactoryGirl.build(:mdm_listener, :port => 70000)
57
+ out_of_range = FactoryBot.build(:mdm_listener, :port => 70000)
58
58
  expect(out_of_range).not_to be_valid
59
59
  expect(out_of_range.errors[:port]).to include("is not included in the list")
60
60
  end
61
61
 
62
62
  it 'should not be valid for port 0' do
63
- out_of_range = FactoryGirl.build(:mdm_listener, :port => 0)
63
+ out_of_range = FactoryBot.build(:mdm_listener, :port => 0)
64
64
  expect(out_of_range).not_to be_valid
65
65
  expect(out_of_range.errors[:port]).to include("is not included in the list")
66
66
  end
67
67
 
68
68
  it 'should not be valid for decimal numbers' do
69
- out_of_range = FactoryGirl.build(:mdm_listener, :port => 5.67)
69
+ out_of_range = FactoryBot.build(:mdm_listener, :port => 5.67)
70
70
  expect(out_of_range).not_to be_valid
71
71
  expect(out_of_range.errors[:port]).to include("must be an integer")
72
72
  end
73
73
 
74
74
  it 'should not be valid for a negative number' do
75
- out_of_range = FactoryGirl.build(:mdm_listener, :port => -8)
75
+ out_of_range = FactoryBot.build(:mdm_listener, :port => -8)
76
76
  expect(out_of_range).not_to be_valid
77
77
  expect(out_of_range.errors[:port]).to include("is not included in the list")
78
78
  end
@@ -80,23 +80,23 @@ RSpec.describe Mdm::Listener, type: :model do
80
80
 
81
81
  context 'address' do
82
82
  it 'should require an address' do
83
- addressless_listener = FactoryGirl.build(:mdm_listener, :address => nil)
83
+ addressless_listener = FactoryBot.build(:mdm_listener, :address => nil)
84
84
  expect(addressless_listener).not_to be_valid
85
85
  expect(addressless_listener.errors[:address]).to include("can't be blank")
86
86
  end
87
87
 
88
88
  it 'should be valid for IPv4 format' do
89
- ipv4_listener = FactoryGirl.build(:mdm_listener, :address => '192.168.1.120')
89
+ ipv4_listener = FactoryBot.build(:mdm_listener, :address => '192.168.1.120')
90
90
  expect(ipv4_listener).to be_valid
91
91
  end
92
92
 
93
93
  it 'should be valid for IPv6 format' do
94
- ipv6_listener = FactoryGirl.build(:mdm_listener, :address => '2001:0db8:85a3:0000:0000:8a2e:0370:7334')
94
+ ipv6_listener = FactoryBot.build(:mdm_listener, :address => '2001:0db8:85a3:0000:0000:8a2e:0370:7334')
95
95
  expect(ipv6_listener).to be_valid
96
96
  end
97
97
 
98
98
  it 'should not be valid for strings not conforming to IPv4 or IPv6' do
99
- invalid_listener = FactoryGirl.build(:mdm_listener, :address => '1234-fark')
99
+ invalid_listener = FactoryBot.build(:mdm_listener, :address => '1234-fark')
100
100
  expect(invalid_listener).not_to be_valid
101
101
  end
102
102
 
@@ -104,4 +104,4 @@ RSpec.describe Mdm::Listener, type: :model do
104
104
  end
105
105
 
106
106
 
107
- end
107
+ end
@@ -30,14 +30,14 @@ RSpec.describe Mdm::Loot, type: :model do
30
30
 
31
31
  context 'factory' do
32
32
  it 'should be valid' do
33
- loot = FactoryGirl.build(:mdm_loot)
33
+ loot = FactoryBot.build(:mdm_loot)
34
34
  expect(loot).to be_valid
35
35
  end
36
36
  end
37
37
 
38
38
  context '#destroy' do
39
39
  it 'should successfully destroy the object' do
40
- loot = FactoryGirl.create(:mdm_loot)
40
+ loot = FactoryBot.create(:mdm_loot)
41
41
  expect {
42
42
  loot.destroy
43
43
  }.to_not raise_error
@@ -50,22 +50,22 @@ RSpec.describe Mdm::Loot, type: :model do
50
50
  context 'scopes' do
51
51
  context 'search' do
52
52
  it 'should match on ltype' do
53
- myloot = FactoryGirl.create(:mdm_loot, :ltype => 'find.this.ltype')
53
+ myloot = FactoryBot.create(:mdm_loot, :ltype => 'find.this.ltype')
54
54
  expect(Mdm::Loot.search('find.this.ltype')).to include(myloot)
55
55
  end
56
56
 
57
57
  it 'should match on name' do
58
- myloot = FactoryGirl.create(:mdm_loot, :name => 'Find This')
58
+ myloot = FactoryBot.create(:mdm_loot, :name => 'Find This')
59
59
  expect(Mdm::Loot.search('Find This')).to include(myloot)
60
60
  end
61
61
 
62
62
  it 'should match on info' do
63
- myloot = FactoryGirl.create(:mdm_loot, :info => 'Find This')
63
+ myloot = FactoryBot.create(:mdm_loot, :info => 'Find This')
64
64
  expect(Mdm::Loot.search('Find This')).to include(myloot)
65
65
  end
66
66
 
67
67
  it 'should match on hostname' do
68
- myloot = FactoryGirl.create(:mdm_loot, :info => 'Find This')
68
+ myloot = FactoryBot.create(:mdm_loot, :info => 'Find This')
69
69
  host_name = myloot.host.name
70
70
  expect(Mdm::Loot.search(host_name)).to include(myloot)
71
71
  end
@@ -75,10 +75,10 @@ RSpec.describe Mdm::Loot, type: :model do
75
75
  context 'callbacks' do
76
76
  context 'before_destroy' do
77
77
  it 'should call #delete_file' do
78
- myloot = FactoryGirl.create(:mdm_loot)
78
+ myloot = FactoryBot.create(:mdm_loot)
79
79
  expect(myloot).to receive(:delete_file)
80
80
  myloot.destroy
81
81
  end
82
82
  end
83
83
  end
84
- end
84
+ end
@@ -20,7 +20,7 @@ RSpec.describe Mdm::Module::Action, type: :model do
20
20
  context 'factories' do
21
21
  context 'mdm_module_action' do
22
22
  subject(:mdm_module_action) do
23
- FactoryGirl.build(:mdm_module_action)
23
+ FactoryBot.build(:mdm_module_action)
24
24
  end
25
25
 
26
26
  it { is_expected.to be_valid }
@@ -31,4 +31,4 @@ RSpec.describe Mdm::Module::Action, type: :model do
31
31
  it { is_expected.to validate_presence_of(:detail) }
32
32
  it { is_expected.to validate_presence_of(:name) }
33
33
  end
34
- end
34
+ end
@@ -20,7 +20,7 @@ RSpec.describe Mdm::Module::Arch, type: :model do
20
20
  context 'factories' do
21
21
  context 'mdm_module_arch' do
22
22
  subject(:mdm_module_arch) do
23
- FactoryGirl.build(:mdm_module_arch)
23
+ FactoryBot.build(:mdm_module_arch)
24
24
  end
25
25
 
26
26
  it { is_expected.to be_valid }
@@ -31,4 +31,4 @@ RSpec.describe Mdm::Module::Arch, type: :model do
31
31
  it { is_expected.to validate_presence_of(:detail) }
32
32
  it { is_expected.to validate_presence_of(:name) }
33
33
  end
34
- end
34
+ end
@@ -21,7 +21,7 @@ RSpec.describe Mdm::Module::Author, type: :model do
21
21
  context 'factories' do
22
22
  context 'full_mdm_module_author' do
23
23
  subject(:full_mdm_module_author) do
24
- FactoryGirl.build :full_mdm_module_author
24
+ FactoryBot.build :full_mdm_module_author
25
25
  end
26
26
 
27
27
  it { is_expected.to be_valid }
@@ -37,7 +37,7 @@ RSpec.describe Mdm::Module::Author, type: :model do
37
37
 
38
38
  context 'mdm_module_author' do
39
39
  subject(:mdm_module_author) do
40
- FactoryGirl.build :mdm_module_author
40
+ FactoryBot.build :mdm_module_author
41
41
  end
42
42
 
43
43
  it { is_expected.to be_valid }
@@ -49,4 +49,4 @@ RSpec.describe Mdm::Module::Author, type: :model do
49
49
  it { is_expected.not_to validate_presence_of(:email) }
50
50
  it { is_expected.to validate_presence_of(:name) }
51
51
  end
52
- end
52
+ end