metasploit_data_models 0.24.4 → 0.24.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (158) hide show
  1. checksums.yaml +4 -4
  2. data/.rspec +3 -3
  3. data/.travis.yml +3 -6
  4. data/CONTRIBUTING.md +52 -10
  5. data/Gemfile +8 -1
  6. data/Rakefile +0 -23
  7. data/app/models/mdm/api_key.rb +1 -41
  8. data/app/models/mdm/client.rb +1 -41
  9. data/app/models/mdm/cred.rb +19 -107
  10. data/app/models/mdm/event.rb +1 -48
  11. data/app/models/mdm/exploit_attempt.rb +16 -65
  12. data/app/models/mdm/exploited_host.rb +1 -28
  13. data/app/models/mdm/host_detail.rb +1 -45
  14. data/app/models/mdm/host_tag.rb +8 -6
  15. data/app/models/mdm/listener.rb +1 -53
  16. data/app/models/mdm/macro.rb +0 -42
  17. data/app/models/mdm/mod_ref.rb +0 -21
  18. data/app/models/mdm/module/action.rb +0 -15
  19. data/app/models/mdm/module/arch.rb +0 -10
  20. data/app/models/mdm/module/author.rb +0 -16
  21. data/app/models/mdm/module/mixin.rb +0 -13
  22. data/app/models/mdm/module/platform.rb +0 -11
  23. data/app/models/mdm/module/target.rb +0 -18
  24. data/app/models/mdm/nexpose_console.rb +4 -82
  25. data/app/models/mdm/profile.rb +0 -36
  26. data/app/models/mdm/route.rb +5 -17
  27. data/app/models/mdm/session_event.rb +1 -33
  28. data/app/models/mdm/tag.rb +10 -49
  29. data/app/models/mdm/task.rb +45 -94
  30. data/app/models/mdm/task_cred.rb +0 -29
  31. data/app/models/mdm/task_host.rb +0 -25
  32. data/app/models/mdm/task_service.rb +0 -25
  33. data/app/models/mdm/task_session.rb +0 -25
  34. data/app/models/mdm/user.rb +6 -188
  35. data/app/models/mdm/vuln_attempt.rb +12 -37
  36. data/app/models/mdm/vuln_detail.rb +5 -139
  37. data/app/models/mdm/vuln_ref.rb +1 -4
  38. data/app/models/mdm/web_form.rb +1 -35
  39. data/app/models/mdm/web_page.rb +1 -70
  40. data/app/models/mdm/web_site.rb +1 -51
  41. data/app/models/mdm/wmap_request.rb +0 -85
  42. data/app/models/mdm/wmap_target.rb +0 -40
  43. data/app/models/mdm/workspace.rb +14 -152
  44. data/app/models/metasploit_data_models/automatic_exploitation.rb +16 -0
  45. data/app/models/metasploit_data_models/automatic_exploitation/match.rb +24 -19
  46. data/app/models/metasploit_data_models/automatic_exploitation/match_result.rb +5 -33
  47. data/app/models/metasploit_data_models/automatic_exploitation/match_set.rb +4 -22
  48. data/app/models/metasploit_data_models/automatic_exploitation/run.rb +3 -13
  49. data/app/models/metasploit_data_models/ip_address/v4/segmented.rb +1 -1
  50. data/app/models/metasploit_data_models/module_run.rb +1 -1
  51. data/app/models/metasploit_data_models/search/visitor/where.rb +1 -1
  52. data/app/validators/ip_format_validator.rb +0 -4
  53. data/app/validators/parameters_validator.rb +0 -12
  54. data/app/validators/password_is_strong_validator.rb +1 -10
  55. data/lib/mdm/host/operating_system_normalization.rb +10 -7
  56. data/lib/metasploit_data_models.rb +0 -4
  57. data/lib/metasploit_data_models/engine.rb +0 -2
  58. data/lib/metasploit_data_models/serialized_prefs.rb +0 -6
  59. data/lib/metasploit_data_models/version.rb +10 -24
  60. data/lib/tasks/yard.rake +33 -0
  61. data/metasploit_data_models.gemspec +2 -9
  62. data/spec/app/models/mdm/api_key_spec.rb +3 -1
  63. data/spec/app/models/mdm/client_spec.rb +11 -9
  64. data/spec/app/models/mdm/cred_spec.rb +54 -42
  65. data/spec/app/models/mdm/event_spec.rb +23 -21
  66. data/spec/app/models/mdm/exploit_attempt_spec.rb +21 -19
  67. data/spec/app/models/mdm/exploited_host_spec.rb +13 -11
  68. data/spec/app/models/mdm/host_detail_spec.rb +17 -15
  69. data/spec/app/models/mdm/host_spec.rb +260 -261
  70. data/spec/app/models/mdm/host_tag_spec.rb +8 -6
  71. data/spec/app/models/mdm/listener_spec.rb +32 -30
  72. data/spec/app/models/mdm/loot_spec.rb +23 -21
  73. data/spec/app/models/mdm/macro_spec.rb +3 -1
  74. data/spec/app/models/mdm/mod_ref_spec.rb +3 -1
  75. data/spec/app/models/mdm/module/action_spec.rb +12 -10
  76. data/spec/app/models/mdm/module/arch_spec.rb +12 -10
  77. data/spec/app/models/mdm/module/author_spec.rb +17 -22
  78. data/spec/app/models/mdm/module/detail_spec.rb +75 -184
  79. data/spec/app/models/mdm/module/mixin_spec.rb +12 -10
  80. data/spec/app/models/mdm/module/platform_spec.rb +12 -10
  81. data/spec/app/models/mdm/module/ref_spec.rb +12 -10
  82. data/spec/app/models/mdm/module/target_spec.rb +15 -13
  83. data/spec/app/models/mdm/nexpose_console_spec.rb +37 -35
  84. data/spec/app/models/mdm/note_spec.rb +25 -23
  85. data/spec/app/models/mdm/profile_spec.rb +3 -1
  86. data/spec/app/models/mdm/ref_spec.rb +12 -10
  87. data/spec/app/models/mdm/route_spec.rb +8 -6
  88. data/spec/app/models/mdm/service_spec.rb +40 -38
  89. data/spec/app/models/mdm/session_event_spec.rb +12 -10
  90. data/spec/app/models/mdm/session_spec.rb +15 -13
  91. data/spec/app/models/mdm/tag_spec.rb +29 -29
  92. data/spec/app/models/mdm/task_cred_spec.rb +11 -9
  93. data/spec/app/models/mdm/task_host_spec.rb +11 -9
  94. data/spec/app/models/mdm/task_service_spec.rb +11 -9
  95. data/spec/app/models/mdm/task_session_spec.rb +9 -7
  96. data/spec/app/models/mdm/task_spec.rb +29 -27
  97. data/spec/app/models/mdm/user_spec.rb +19 -17
  98. data/spec/app/models/mdm/vuln_attempt_spec.rb +16 -14
  99. data/spec/app/models/mdm/vuln_detail_spec.rb +28 -26
  100. data/spec/app/models/mdm/vuln_ref_spec.rb +10 -8
  101. data/spec/app/models/mdm/vuln_spec.rb +26 -24
  102. data/spec/app/models/mdm/web_form_spec.rb +13 -11
  103. data/spec/app/models/mdm/web_page_spec.rb +21 -19
  104. data/spec/app/models/mdm/web_site_spec.rb +23 -21
  105. data/spec/app/models/mdm/web_vuln_spec.rb +65 -63
  106. data/spec/app/models/mdm/wmap_request_spec.rb +3 -1
  107. data/spec/app/models/mdm/wmap_target_spec.rb +3 -1
  108. data/spec/app/models/mdm/workspace_spec.rb +100 -97
  109. data/spec/app/models/metasploit_data_models/automatic_exploitation/match_result_spec.rb +5 -3
  110. data/spec/app/models/metasploit_data_models/automatic_exploitation/match_set_spec.rb +15 -13
  111. data/spec/app/models/metasploit_data_models/automatic_exploitation/match_spec.rb +3 -1
  112. data/spec/app/models/metasploit_data_models/automatic_exploitation/run_spec.rb +3 -1
  113. data/spec/app/models/metasploit_data_models/ip_address/v4/cidr_spec.rb +12 -10
  114. data/spec/app/models/metasploit_data_models/ip_address/v4/nmap_spec.rb +6 -4
  115. data/spec/app/models/metasploit_data_models/ip_address/v4/range_spec.rb +23 -21
  116. data/spec/app/models/metasploit_data_models/ip_address/v4/segment/nmap/list_spec.rb +11 -9
  117. data/spec/app/models/metasploit_data_models/ip_address/v4/segment/nmap/range_spec.rb +23 -21
  118. data/spec/app/models/metasploit_data_models/ip_address/v4/segment/segmented_spec.rb +6 -4
  119. data/spec/app/models/metasploit_data_models/ip_address/v4/segment/single_spec.rb +15 -22
  120. data/spec/app/models/metasploit_data_models/ip_address/v4/single_spec.rb +6 -4
  121. data/spec/app/models/metasploit_data_models/module_run_spec.rb +3 -1
  122. data/spec/app/models/metasploit_data_models/search/operation/ip_address_spec.rb +20 -18
  123. data/spec/app/models/metasploit_data_models/search/operation/port/number_spec.rb +8 -6
  124. data/spec/app/models/metasploit_data_models/search/operation/port/range_spec.rb +10 -8
  125. data/spec/app/models/metasploit_data_models/search/operation/range_spec.rb +10 -8
  126. data/spec/app/models/metasploit_data_models/search/operator/ip_address_spec.rb +4 -2
  127. data/spec/app/models/metasploit_data_models/search/operator/multitext_spec.rb +10 -8
  128. data/spec/app/models/metasploit_data_models/search/operator/port/list_spec.rb +8 -6
  129. data/spec/app/models/metasploit_data_models/search/visitor/attribute_spec.rb +11 -9
  130. data/spec/app/models/metasploit_data_models/search/visitor/includes_spec.rb +7 -5
  131. data/spec/app/models/metasploit_data_models/search/visitor/joins_spec.rb +19 -17
  132. data/spec/app/models/metasploit_data_models/search/visitor/method_spec.rb +7 -5
  133. data/spec/app/models/metasploit_data_models/search/visitor/relation_spec.rb +23 -61
  134. data/spec/app/models/metasploit_data_models/search/visitor/where_spec.rb +10 -8
  135. data/spec/app/validators/parameters_validator_spec.rb +29 -29
  136. data/spec/app/validators/password_is_strong_validator_spec.rb +46 -54
  137. data/spec/dummy/db/structure.sql +3403 -0
  138. data/spec/factories/mdm/module/details.rb +1 -1
  139. data/spec/lib/base64_serializer_spec.rb +19 -19
  140. data/spec/lib/metasploit_data_models/ip_address/cidr_spec.rb +12 -18
  141. data/spec/lib/metasploit_data_models/ip_address/range_spec.rb +6 -4
  142. data/spec/lib/metasploit_data_models/match/child_spec.rb +4 -2
  143. data/spec/lib/metasploit_data_models/match/parent_spec.rb +6 -4
  144. data/spec/lib/metasploit_data_models/version_spec.rb +141 -3
  145. data/spec/spec_helper.rb +12 -86
  146. data/spec/support/shared/examples/mdm/module/detail/does_not_support_stance_with_mtype.rb +2 -2
  147. data/spec/support/shared/examples/mdm/module/detail/supports_stance_with_mtype.rb +4 -4
  148. data/spec/support/shared/examples/metasploit_data_models/search/operation/ipaddress/match.rb +2 -2
  149. data/spec/support/shared/examples/metasploit_data_models/search/visitor/includes/visit/with_children.rb +5 -5
  150. data/spec/support/shared/examples/metasploit_data_models/search/visitor/includes/visit/with_metasploit_model_search_operation_base.rb +5 -5
  151. data/spec/support/shared/examples/metasploit_data_models/search/visitor/where/visit/with_equality.rb +3 -3
  152. data/spec/support/shared/examples/metasploit_data_models/search/visitor/where/visit/with_metasploit_model_search_group_base.rb +6 -7
  153. metadata +9 -67
  154. data/CHANGELOG.md +0 -6
  155. data/RELEASING.md +0 -88
  156. data/UPGRADING.md +0 -1
  157. data/lib/metasploit_data_models/automatic_exploitation.rb +0 -25
  158. data/spec/lib/metasploit_data_models_spec.rb +0 -4
@@ -1,4 +1,6 @@
1
- RSpec.describe MetasploitDataModels::Search::Visitor::Where, type: :model do
1
+ require 'spec_helper'
2
+
3
+ describe MetasploitDataModels::Search::Visitor::Where do
2
4
  subject(:visitor) do
3
5
  described_class.new
4
6
  end
@@ -10,7 +12,7 @@ RSpec.describe MetasploitDataModels::Search::Visitor::Where, type: :model do
10
12
  visitor.attribute_visitor
11
13
  end
12
14
 
13
- it { is_expected.to be_a MetasploitDataModels::Search::Visitor::Attribute }
15
+ it { should be_a MetasploitDataModels::Search::Visitor::Attribute }
14
16
  end
15
17
 
16
18
  context '#method_visitor' do
@@ -18,7 +20,7 @@ RSpec.describe MetasploitDataModels::Search::Visitor::Where, type: :model do
18
20
  visitor.method_visitor
19
21
  end
20
22
 
21
- it { is_expected.to be_a MetasploitDataModels::Search::Visitor::Method }
23
+ it { should be_a MetasploitDataModels::Search::Visitor::Method }
22
24
  end
23
25
 
24
26
  context '#visit' do
@@ -82,16 +84,16 @@ RSpec.describe MetasploitDataModels::Search::Visitor::Where, type: :model do
82
84
  end
83
85
 
84
86
  it 'should visit operation.operator with attribute_visitor' do
85
- expect(visitor.attribute_visitor).to receive(:visit).with(operator).and_call_original
87
+ visitor.attribute_visitor.should_receive(:visit).with(operator).and_call_original
86
88
 
87
89
  visit
88
90
  end
89
91
 
90
92
  it 'should call matches on Arel::Attributes::Attribute from attribute_visitor' do
91
93
  attribute = double('Visited Operator')
92
- allow(visitor.attribute_visitor).to receive(:visit).with(operator).and_return(attribute)
94
+ visitor.attribute_visitor.stub(:visit).with(operator).and_return(attribute)
93
95
 
94
- expect(attribute).to receive(:matches).with("%#{value}%")
96
+ attribute.should_receive(:matches).with("%#{value}%")
95
97
 
96
98
  visit
97
99
  end
@@ -163,7 +165,7 @@ RSpec.describe MetasploitDataModels::Search::Visitor::Where, type: :model do
163
165
  end
164
166
 
165
167
  it 'should match module_instances.name with ILIKE' do
166
- expect(visit.to_sql).to eq("\"hosts\".\"name\" ILIKE '%#{name}%'")
168
+ visit.to_sql.should == "\"hosts\".\"name\" ILIKE '%#{name}%'"
167
169
  end
168
170
  end
169
171
 
@@ -177,7 +179,7 @@ RSpec.describe MetasploitDataModels::Search::Visitor::Where, type: :model do
177
179
  end
178
180
 
179
181
  it 'should match module_actions.name with ILIKE' do
180
- expect(visit.to_sql).to eq("\"services\".\"name\" ILIKE '%#{name}%'")
182
+ visit.to_sql.should == "\"services\".\"name\" ILIKE '%#{name}%'"
181
183
  end
182
184
  end
183
185
  end
@@ -1,4 +1,6 @@
1
- RSpec.describe ParametersValidator do
1
+ require 'spec_helper'
2
+
3
+ describe ParametersValidator do
2
4
  subject(:parameters_validator) do
3
5
  described_class.new(
4
6
  :attributes => attributes
@@ -27,7 +29,7 @@ RSpec.describe ParametersValidator do
27
29
 
28
30
  context 'CONSTANTS' do
29
31
  it 'should define TYPE_SIGNATURE_SENTENCE' do
30
- expect(described_class::TYPE_SIGNATURE_SENTENCE).to eq(type_signature_sentence)
32
+ described_class::TYPE_SIGNATURE_SENTENCE.should == type_signature_sentence
31
33
  end
32
34
  end
33
35
 
@@ -46,7 +48,7 @@ RSpec.describe ParametersValidator do
46
48
  end
47
49
 
48
50
  it 'should include prefix' do
49
- expect(error_at).to include(prefix)
51
+ error_at.should include(prefix)
50
52
  end
51
53
 
52
54
  it 'should include location_clause in same sentence as prefix' do
@@ -56,11 +58,11 @@ RSpec.describe ParametersValidator do
56
58
  :index => index
57
59
  )
58
60
 
59
- expect(error_at).to include("#{prefix} #{location_clause}.")
61
+ error_at.should include("#{prefix} #{location_clause}.")
60
62
  end
61
63
 
62
64
  it 'should include TYPE_SIGNATURE_SENTENCE' do
63
- expect(error_at).to include(type_signature_sentence)
65
+ error_at.should include(type_signature_sentence)
64
66
  end
65
67
  end
66
68
 
@@ -79,9 +81,9 @@ RSpec.describe ParametersValidator do
79
81
  end
80
82
 
81
83
  it 'should include extreme in prefix' do
82
- expect(parameters_validator).to receive(:error_at) do |*args|
84
+ parameters_validator.should_receive(:error_at) do |*args|
83
85
  options = args.first
84
- expect(options[:prefix]).to include(extreme.to_s)
86
+ options[:prefix].should include(extreme.to_s)
85
87
  end
86
88
 
87
89
  length_error_at
@@ -98,11 +100,11 @@ RSpec.describe ParametersValidator do
98
100
  end
99
101
 
100
102
  it 'should include numerical index' do
101
- expect(location_clause).to include("at index #{index}")
103
+ location_clause.should include("at index #{index}")
102
104
  end
103
105
 
104
106
  it 'should include inspect of element' do
105
- expect(location_clause).to include(element.inspect)
107
+ location_clause.should include(element.inspect)
106
108
  end
107
109
  end
108
110
 
@@ -142,7 +144,7 @@ RSpec.describe ParametersValidator do
142
144
  end
143
145
 
144
146
  it 'should call #length_error_at with :extreme => :few' do
145
- expect(parameters_validator).to receive(:length_error_at).with(
147
+ parameters_validator.should_receive(:length_error_at).with(
146
148
  hash_including(
147
149
  :extreme => :few
148
150
  )
@@ -154,7 +156,7 @@ RSpec.describe ParametersValidator do
154
156
  it 'should record error' do
155
157
  validate_each
156
158
 
157
- expect(errors).not_to be_empty
159
+ errors.should_not be_empty
158
160
  end
159
161
  end
160
162
 
@@ -164,7 +166,7 @@ RSpec.describe ParametersValidator do
164
166
  end
165
167
 
166
168
  it 'should call #length_error_at with :extreme => :many' do
167
- expect(parameters_validator).to receive(:length_error_at).with(
169
+ parameters_validator.should_receive(:length_error_at).with(
168
170
  hash_including(
169
171
  :extreme => :many
170
172
  )
@@ -176,7 +178,7 @@ RSpec.describe ParametersValidator do
176
178
  it 'should record error' do
177
179
  validate_each
178
180
 
179
- expect(errors).not_to be_empty
181
+ errors.should_not be_empty
180
182
  end
181
183
  end
182
184
 
@@ -201,7 +203,7 @@ RSpec.describe ParametersValidator do
201
203
  end
202
204
 
203
205
  it 'should call error_at with blank parameter name prefix' do
204
- expect(parameters_validator).to receive(:error_at).with(
206
+ parameters_validator.should_receive(:error_at).with(
205
207
  hash_including(
206
208
  :prefix => 'has blank parameter name'
207
209
  )
@@ -213,7 +215,7 @@ RSpec.describe ParametersValidator do
213
215
  it 'should record error' do
214
216
  validate_each
215
217
 
216
- expect(errors).not_to be_empty
218
+ errors.should_not be_empty
217
219
  end
218
220
  end
219
221
 
@@ -225,7 +227,7 @@ RSpec.describe ParametersValidator do
225
227
  it 'should not record error' do
226
228
  validate_each
227
229
 
228
- expect(errors).to be_blank
230
+ errors.should be_blank
229
231
  end
230
232
  end
231
233
  end
@@ -236,7 +238,7 @@ RSpec.describe ParametersValidator do
236
238
  end
237
239
 
238
240
  it 'should call error_at with non-String prefix' do
239
- expect(parameters_validator).to receive(:error_at).with(
241
+ parameters_validator.should_receive(:error_at).with(
240
242
  hash_including(
241
243
  :prefix => "has non-String parameter name (#{parameter_name.inspect})"
242
244
  )
@@ -248,7 +250,7 @@ RSpec.describe ParametersValidator do
248
250
  it 'should record error' do
249
251
  validate_each
250
252
 
251
- expect(errors).not_to be_empty
253
+ errors.should_not be_empty
252
254
  end
253
255
  end
254
256
  end
@@ -262,7 +264,7 @@ RSpec.describe ParametersValidator do
262
264
  it 'should not record error' do
263
265
  validate_each
264
266
 
265
- expect(errors).to be_blank
267
+ errors.should be_blank
266
268
  end
267
269
  end
268
270
 
@@ -272,7 +274,7 @@ RSpec.describe ParametersValidator do
272
274
  end
273
275
 
274
276
  it 'should call error_at with non-String prefix' do
275
- expect(parameters_validator).to receive(:error_at).with(
277
+ parameters_validator.should_receive(:error_at).with(
276
278
  hash_including(
277
279
  :prefix => "has non-String parameter value (#{parameter_value.inspect})"
278
280
  )
@@ -284,7 +286,7 @@ RSpec.describe ParametersValidator do
284
286
  it 'should record error' do
285
287
  validate_each
286
288
 
287
- expect(errors).not_to be_empty
289
+ errors.should_not be_empty
288
290
  end
289
291
  end
290
292
  end
@@ -297,7 +299,7 @@ RSpec.describe ParametersValidator do
297
299
  end
298
300
 
299
301
  it 'should use #error_at with has non-Array for prefix' do
300
- expect(parameters_validator).to receive(:error_at).with(
302
+ parameters_validator.should_receive(:error_at).with(
301
303
  hash_including(
302
304
  :prefix => 'has non-Array'
303
305
  )
@@ -309,7 +311,7 @@ RSpec.describe ParametersValidator do
309
311
  it 'should record error' do
310
312
  validate_each
311
313
 
312
- expect(errors).not_to be_empty
314
+ errors.should_not be_empty
313
315
  end
314
316
  end
315
317
  end
@@ -325,16 +327,14 @@ RSpec.describe ParametersValidator do
325
327
  end
326
328
 
327
329
  it 'should error that attribute is not an array' do
328
- expect(
329
- errors.any? { |error|
330
- error.include? 'is not an Array.'
331
- }
332
- ).to eq(true)
330
+ errors.any? { |error|
331
+ error.include? 'is not an Array.'
332
+ }.should be_true
333
333
  end
334
334
 
335
335
  it 'should include TYPE_SIGNATURE_SENTENCE' do
336
336
  errors.each do |error|
337
- expect(error).to include(type_signature_sentence)
337
+ error.should include(type_signature_sentence)
338
338
  end
339
339
  end
340
340
  end
@@ -1,4 +1,6 @@
1
- RSpec.describe PasswordIsStrongValidator do
1
+ require 'spec_helper'
2
+
3
+ describe PasswordIsStrongValidator do
2
4
 
3
5
  subject(:password_validator) do
4
6
  described_class.new(
@@ -18,23 +20,23 @@ RSpec.describe PasswordIsStrongValidator do
18
20
  context '#contains_repetition?' do
19
21
 
20
22
  it 'should return true for aaaa' do
21
- expect(password_validator.send(:contains_repetition?, 'aaaa')).to eq(true)
23
+ password_validator.send(:contains_repetition?, 'aaaa').should be_true
22
24
  end
23
25
 
24
26
  it 'should return true for ababab' do
25
- expect(password_validator.send(:contains_repetition?, 'ababab')).to eq(true)
27
+ password_validator.send(:contains_repetition?, 'ababab').should be_true
26
28
  end
27
29
 
28
30
  it 'should return true for abcabcabc' do
29
- expect(password_validator.send(:contains_repetition?, 'abcabcabc')).to eq(true)
31
+ password_validator.send(:contains_repetition?, 'abcabcabc').should be_true
30
32
  end
31
33
 
32
34
  it 'should return true for abcdabcd' do
33
- expect(password_validator.send(:contains_repetition?, 'abcdabcd')).to eq(true)
35
+ password_validator.send(:contains_repetition?, 'abcdabcd').should be_true
34
36
  end
35
37
 
36
38
  it 'should return false for abcd1234abcd' do
37
- expect(password_validator.send(:contains_repetition?, 'abcd1234abcd')).to eq(false)
39
+ password_validator.send(:contains_repetition?, 'abcd1234abcd').should be_false
38
40
  end
39
41
 
40
42
  end
@@ -110,7 +112,7 @@ RSpec.describe PasswordIsStrongValidator do
110
112
  ]
111
113
 
112
114
  it 'should return all the expected mutations of a password' do
113
- expect(password_validator.send(:mutate_pass, 'metasploit')).to eq(variants)
115
+ password_validator.send(:mutate_pass, 'metasploit').should == variants
114
116
  end
115
117
 
116
118
  end
@@ -121,81 +123,81 @@ RSpec.describe PasswordIsStrongValidator do
121
123
  PasswordIsStrongValidator::COMMON_PASSWORDS.each do |password|
122
124
 
123
125
  it "should return true for #{password}" do
124
- expect(password_validator.send(:is_common_password?, password)).to eq(true)
126
+ password_validator.send(:is_common_password?, password).should be_true
125
127
  end
126
128
 
127
129
  it "should return true for #{password}!" do
128
- expect(password_validator.send(:is_common_password?, "#{password}!")).to eq(true)
130
+ password_validator.send(:is_common_password?, "#{password}!").should be_true
129
131
  end
130
132
 
131
133
  it "should return true for #{password}1" do
132
- expect(password_validator.send(:is_common_password?, "#{password}1")).to eq(true)
134
+ password_validator.send(:is_common_password?, "#{password}1").should be_true
133
135
  end
134
136
 
135
137
  it "should return true for #{password}9" do
136
- expect(password_validator.send(:is_common_password?, "#{password}1")).to eq(true)
138
+ password_validator.send(:is_common_password?, "#{password}1").should be_true
137
139
  end
138
140
 
139
141
  it "should return true for #{password}99" do
140
- expect(password_validator.send(:is_common_password?, "#{password}12")).to eq(true)
142
+ password_validator.send(:is_common_password?, "#{password}12").should be_true
141
143
  end
142
144
 
143
145
  it "should return true for #{password}123" do
144
- expect(password_validator.send(:is_common_password?, "#{password}123")).to eq(true)
146
+ password_validator.send(:is_common_password?, "#{password}123").should be_true
145
147
  end
146
148
 
147
149
  it "should return true for #{password}123!" do
148
- expect(password_validator.send(:is_common_password?, "#{password}123!")).to eq(true)
150
+ password_validator.send(:is_common_password?, "#{password}123!").should be_true
149
151
  end
150
152
 
151
153
  end
152
154
 
153
155
  it "should return true for r00t" do
154
- expect(password_validator.send(:is_common_password?, "r00t")).to eq(true)
156
+ password_validator.send(:is_common_password?, "r00t").should be_true
155
157
  end
156
158
 
157
159
  it "should return true for m3t@spl0it" do
158
- expect(password_validator.send(:is_common_password?, "m3t@spl0it")).to eq(true)
160
+ password_validator.send(:is_common_password?, "m3t@spl0it").should be_true
159
161
  end
160
162
 
161
163
  it "should return true for m3t@spl0it123!" do
162
- expect(password_validator.send(:is_common_password?, "m3t@spl0it123!")).to eq(true)
164
+ password_validator.send(:is_common_password?, "m3t@spl0it123!").should be_true
163
165
  end
164
166
  end
165
167
 
166
168
  context '#contains_username' do
167
169
 
168
170
  it 'should return true if username and password are the same' do
169
- expect(password_validator.send(:contains_username?, 'admin', 'admin')).to eq(true)
171
+ password_validator.send(:contains_username?, 'admin', 'admin').should be_true
170
172
  end
171
173
 
172
174
  it 'should return true if the password contains the username as part of it' do
173
- expect(password_validator.send(:contains_username?, 'admin', '123admin123')).to eq(true)
175
+ password_validator.send(:contains_username?, 'admin', '123admin123').should be_true
174
176
  end
175
177
 
176
178
  it 'should return false otherwise' do
177
- expect(password_validator.send(:contains_username?, 'admin', 'foobar')).to eq(false)
179
+ password_validator.send(:contains_username?, 'admin', 'foobar').should be_false
178
180
  end
179
181
  end
180
182
 
181
183
  context '#is_simple?' do
182
184
 
183
185
  it "should return true if no number" do
184
- expect(password_validator.send(:is_simple?, "b@carat")).to eq(true)
186
+ password_validator.send(:is_simple?, "b@carat").should be_true
185
187
  end
186
188
 
187
189
  it "should return true if no special char" do
188
- expect(password_validator.send(:is_simple?, "bacarat4")).to eq(true)
190
+ password_validator.send(:is_simple?, "bacarat4").should be_true
189
191
  end
190
192
 
191
193
  it "should return true if no letters" do
192
- expect(password_validator.send(:is_simple?, "1337")).to eq(true)
194
+ password_validator.send(:is_simple?, "1337").should be_true
193
195
  end
194
196
 
195
197
  PasswordIsStrongValidator::SPECIAL_CHARS.each_char do |char|
196
198
 
197
199
  it "should return false with a #{char}" do
198
- expect(password_validator.send(:is_simple?, "bacarat4#{char}")).to eq(false)
200
+ password_validator.send(:is_simple?, "bacarat4#{char}").should be_false
199
201
  end
200
202
  end
201
203
  end
@@ -210,23 +212,13 @@ RSpec.describe PasswordIsStrongValidator do
210
212
  password_validator.validate_each(record, attribute, value)
211
213
  end
212
214
 
213
- let(:record) {
214
- record_class.new.tap { |instance|
215
- instance.username = 'admin'
215
+ let(:record) do
216
+ Object.new.tap { |object|
217
+ object.extend ActiveModel::Validations
218
+ object.class.module_eval { attr_accessor :username }
219
+ object.username = 'admin'
216
220
  }
217
- }
218
-
219
- let(:record_class) {
220
- Class.new do
221
- include ActiveModel::Validations
222
-
223
- #
224
- # Attributes
225
- #
226
-
227
- attr_accessor :username
228
- end
229
- }
221
+ end
230
222
 
231
223
 
232
224
  context 'with a password with no special char' do
@@ -234,12 +226,12 @@ RSpec.describe PasswordIsStrongValidator do
234
226
 
235
227
  it 'should record an error' do
236
228
  validate_each
237
- expect(errors).not_to be_empty
229
+ errors.should_not be_empty
238
230
  end
239
231
 
240
232
  it 'should have an error of "must contain letters, numbers, and at least one special character"' do
241
233
  validate_each
242
- expect(errors.include?("must contain letters, numbers, and at least one special character")).to eq(true)
234
+ errors.include?("must contain letters, numbers, and at least one special character").should be_true
243
235
  end
244
236
  end
245
237
 
@@ -248,12 +240,12 @@ RSpec.describe PasswordIsStrongValidator do
248
240
 
249
241
  it 'should record an error' do
250
242
  validate_each
251
- expect(errors).not_to be_empty
243
+ errors.should_not be_empty
252
244
  end
253
245
 
254
246
  it 'should have an error of "must contain letters, numbers, and at least one special character"' do
255
247
  validate_each
256
- expect(errors.include?("must contain letters, numbers, and at least one special character")).to eq(true)
248
+ errors.include?("must contain letters, numbers, and at least one special character").should be_true
257
249
  end
258
250
  end
259
251
 
@@ -262,12 +254,12 @@ RSpec.describe PasswordIsStrongValidator do
262
254
 
263
255
  it 'should record an error' do
264
256
  validate_each
265
- expect(errors).not_to be_empty
257
+ errors.should_not be_empty
266
258
  end
267
259
 
268
260
  it 'should have an error of "must contain letters, numbers, and at least one special character"' do
269
261
  validate_each
270
- expect(errors.include?("must contain letters, numbers, and at least one special character")).to eq(true)
262
+ errors.include?("must contain letters, numbers, and at least one special character").should be_true
271
263
  end
272
264
  end
273
265
 
@@ -276,12 +268,12 @@ RSpec.describe PasswordIsStrongValidator do
276
268
 
277
269
  it 'should record an error' do
278
270
  validate_each
279
- expect(errors).not_to be_empty
271
+ errors.should_not be_empty
280
272
  end
281
273
 
282
274
  it 'should have an error of "must not contain the username"' do
283
275
  validate_each
284
- expect(errors.include?("must not contain the username")).to eq(true)
276
+ errors.include?("must not contain the username").should be_true
285
277
  end
286
278
  end
287
279
 
@@ -290,12 +282,12 @@ RSpec.describe PasswordIsStrongValidator do
290
282
 
291
283
  it 'should record an error' do
292
284
  validate_each
293
- expect(errors).not_to be_empty
285
+ errors.should_not be_empty
294
286
  end
295
287
 
296
288
  it 'should have an error of "must not be a common password"' do
297
289
  validate_each
298
- expect(errors.include?("must not be a common password")).to eq(true)
290
+ errors.include?("must not be a common password").should be_true
299
291
  end
300
292
  end
301
293
 
@@ -304,12 +296,12 @@ RSpec.describe PasswordIsStrongValidator do
304
296
 
305
297
  it 'should record an error' do
306
298
  validate_each
307
- expect(errors).not_to be_empty
299
+ errors.should_not be_empty
308
300
  end
309
301
 
310
302
  it 'should have an error of "must not be a common password"' do
311
303
  validate_each
312
- expect(errors.include?("must not be a common password")).to eq(true)
304
+ errors.include?("must not be a common password").should be_true
313
305
  end
314
306
  end
315
307
 
@@ -318,12 +310,12 @@ RSpec.describe PasswordIsStrongValidator do
318
310
 
319
311
  it 'should record an error' do
320
312
  validate_each
321
- expect(errors).not_to be_empty
313
+ errors.should_not be_empty
322
314
  end
323
315
 
324
316
  it 'should have an error of "must not be a predictable sequence of characters"' do
325
317
  validate_each
326
- expect(errors.include?("must not be a predictable sequence of characters")).to eq(true)
318
+ errors.include?("must not be a predictable sequence of characters").should be_true
327
319
  end
328
320
  end
329
321