metasploit-credential 0.7.17 → 0.8.1

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.
@@ -43,6 +43,98 @@ describe Metasploit::Credential::Core do
43
43
  it { should have_db_index(:public_id) }
44
44
  it { should have_db_index(:realm_id) }
45
45
  it { should have_db_index(:workspace_id) }
46
+
47
+ context 'partial' do
48
+ #
49
+ # lets
50
+ #
51
+
52
+ let(:metasploit_credential_origin) {
53
+ FactoryGirl.create(:metasploit_credential_origin_manual)
54
+ }
55
+
56
+ let(:workspace) {
57
+ FactoryGirl.create(:mdm_workspace)
58
+ }
59
+
60
+ let(:second_metasploit_credential_core) {
61
+ FactoryGirl.build(
62
+ :metasploit_credential_core,
63
+ origin: metasploit_credential_origin,
64
+ private: private,
65
+ public: public,
66
+ workspace: workspace
67
+ )
68
+ }
69
+
70
+ #
71
+ # let!s
72
+ #
73
+
74
+ let!(:first_metasploit_credential_core) {
75
+ FactoryGirl.create(
76
+ :metasploit_credential_core,
77
+ origin: metasploit_credential_origin,
78
+ private: private,
79
+ public: public,
80
+ workspace: workspace
81
+ )
82
+ }
83
+
84
+ context '#private_id' do
85
+ context 'with nil' do
86
+ let(:private) {
87
+ nil
88
+ }
89
+
90
+ context '#public_id' do
91
+ context 'without nil' do
92
+ let(:public) {
93
+ FactoryGirl.create(:metasploit_credential_public)
94
+ }
95
+
96
+ it 'does not allow duplicates' do
97
+ expect {
98
+ second_metasploit_credential_core.save(validate: false)
99
+ }.to raise_error(ActiveRecord::RecordNotUnique)
100
+ end
101
+ end
102
+ end
103
+ end
104
+
105
+ context 'without nil' do
106
+ let(:private) do
107
+ FactoryGirl.create(:metasploit_credential_password)
108
+ end
109
+
110
+ context '#public_id' do
111
+ context 'with nil' do
112
+ let(:public) {
113
+ nil
114
+ }
115
+
116
+ it 'does not allow duplicates' do
117
+ expect {
118
+ second_metasploit_credential_core.save(validate: false)
119
+ }.to raise_error(ActiveRecord::RecordNotUnique)
120
+ end
121
+ end
122
+
123
+ context 'without nil' do
124
+ let(:public) {
125
+ FactoryGirl.create(:metasploit_credential_public)
126
+ }
127
+
128
+ it 'does not allow duplicates' do
129
+ expect {
130
+ second_metasploit_credential_core.save(validate: false)
131
+ }.to raise_error(ActiveRecord::RecordNotUnique)
132
+ end
133
+ end
134
+ end
135
+ end
136
+ end
137
+ end
46
138
  end
47
139
  end
48
140
  end
@@ -388,6 +480,104 @@ describe Metasploit::Credential::Core do
388
480
  it { should validate_presence_of :origin }
389
481
  it { should validate_presence_of :workspace }
390
482
 
483
+ context 'of uniqueness' do
484
+ #
485
+ # lets
486
+ #
487
+
488
+ let(:metasploit_credential_origin) {
489
+ FactoryGirl.create(:metasploit_credential_origin_manual)
490
+ }
491
+
492
+ let(:workspace) {
493
+ FactoryGirl.create(:mdm_workspace)
494
+ }
495
+
496
+ let(:second_metasploit_credential_core) {
497
+ FactoryGirl.build(
498
+ :metasploit_credential_core,
499
+ origin: metasploit_credential_origin,
500
+ private: private,
501
+ public: public,
502
+ workspace: workspace
503
+ )
504
+ }
505
+
506
+ let(:taken_error) {
507
+ I18n.translate!('activerecord.errors.messages.taken')
508
+ }
509
+
510
+ #
511
+ # let!s
512
+ #
513
+
514
+ let!(:first_metasploit_credential_core) {
515
+ FactoryGirl.create(
516
+ :metasploit_credential_core,
517
+ origin: metasploit_credential_origin,
518
+ private: private,
519
+ public: public,
520
+ workspace: workspace
521
+ )
522
+ }
523
+
524
+ #
525
+ # Callbacks
526
+ #
527
+
528
+ before(:each) do
529
+ second_metasploit_credential_core.valid?
530
+ end
531
+
532
+ context '#private_id' do
533
+ context 'with nil' do
534
+ let(:private) {
535
+ nil
536
+ }
537
+
538
+ context '#public_id' do
539
+ context 'without nil' do
540
+ let(:public) {
541
+ FactoryGirl.create(:metasploit_credential_public)
542
+ }
543
+
544
+ it 'does not allow duplicates on #public_id' do
545
+ expect(second_metasploit_credential_core.errors[:public_id]).to include(taken_error)
546
+ end
547
+ end
548
+ end
549
+ end
550
+
551
+ context 'without nil' do
552
+ let(:private) do
553
+ FactoryGirl.create(:metasploit_credential_password)
554
+ end
555
+
556
+ context '#public_id' do
557
+ context 'with nil' do
558
+ let(:public) {
559
+ nil
560
+ }
561
+
562
+ it 'does not allow duplicates on #private_id' do
563
+ expect(second_metasploit_credential_core.errors[:private_id]).to include(taken_error)
564
+ end
565
+ end
566
+
567
+ context 'without nil' do
568
+ let(:public) {
569
+ FactoryGirl.create(:metasploit_credential_public)
570
+ }
571
+
572
+ it 'does not allow duplicates on #private_id' do
573
+ expect(second_metasploit_credential_core.errors[:private_id]).to include(taken_error)
574
+ end
575
+ end
576
+ end
577
+ end
578
+ end
579
+ end
580
+
391
581
  context '#consistent_workspaces' do
392
582
  subject(:workspace_errors) do
393
583
  core.errors[:workspace]
@@ -777,9 +967,9 @@ describe Metasploit::Credential::Core do
777
967
 
778
968
  let(:core) do
779
969
  FactoryGirl.build(
780
- :metasploit_credential_core,
781
- private: FactoryGirl.build(:metasploit_credential_ssh_key),
782
- public: FactoryGirl.build(:metasploit_credential_public)
970
+ :metasploit_credential_core,
971
+ private: FactoryGirl.build(:metasploit_credential_ssh_key),
972
+ public: FactoryGirl.build(:metasploit_credential_public)
783
973
  )
784
974
  end
785
975
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: metasploit-credential
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.17
4
+ version: 0.8.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Luke Imhoff
@@ -152,6 +152,7 @@ files:
152
152
  - db/migrate/20140702184622_create_credential_cores_tasks_join_table.rb
153
153
  - db/migrate/20140703144541_create_credential_logins_tasks_join_table.rb
154
154
  - db/migrate/20140722174919_old_creds_to_new_creds.rb
155
+ - db/migrate/20140728191933_unique_metasploit_credential_cores.rb
155
156
  - lib/metasploit/credential.rb
156
157
  - lib/metasploit/credential/creation.rb
157
158
  - lib/metasploit/credential/engine.rb