dovecot_crammd5 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore CHANGED
@@ -1,5 +1,6 @@
1
1
  *.gem
2
2
  *.rbc
3
+ *.swp
3
4
  .bundle
4
5
  .config
5
6
  .yardoc
data/README.md CHANGED
@@ -16,6 +16,31 @@ Or install it yourself as:
16
16
 
17
17
  $ gem install dovecot_crammd5
18
18
 
19
+ ## Test
20
+
21
+ ```
22
+ $ bundle
23
+ $ rspec -fd --color
24
+
25
+ DovecotCrammd5
26
+ pattern normal
27
+ returns cram-md5 hash when strings passed.
28
+ returns cram-md5 hash when string and numbers passed.
29
+ returns cram-md5 hash when upcase and downcase strings passed.
30
+ returns cram-md5 hash when long strings(100) passed
31
+ returns cram-md5 hash when none alphabetical charactors
32
+ pattern abnormal
33
+ case none String
34
+ raise expection when nil passed.
35
+ raise expection when Fixnum passed.
36
+ raise expection when Array passed.
37
+ raise expection when Hash passed.
38
+
39
+ Finished in 0.0139 seconds
40
+ 9 examples, 0 failures
41
+
42
+ ```
43
+
19
44
  ## Usage
20
45
 
21
46
  TODO: Write usage instructions here
@@ -20,4 +20,6 @@ Gem::Specification.new do |spec|
20
20
 
21
21
  spec.add_development_dependency "bundler", "~> 1.3"
22
22
  spec.add_development_dependency "rake"
23
+
24
+ spec.add_development_dependency "rspec"
23
25
  end
@@ -101,6 +101,8 @@ module DovecotCrammd5
101
101
  end
102
102
 
103
103
  def self.calc(secret)
104
+ raise ArgumentError unless secret.is_a?(String)
105
+
104
106
  if secret.length > 64
105
107
  secret = Digest::MD5.digest(secret)
106
108
  end
@@ -1,3 +1,3 @@
1
1
  module DovecotCrammd5
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
@@ -0,0 +1,45 @@
1
+ require 'spec_helper'
2
+
3
+ describe DovecotCrammd5 do
4
+ describe 'pattern normal' do
5
+ it 'returns cram-md5 hash when strings passed.' do
6
+ expect(DovecotCrammd5.calc('hogehoge')).to eql 'dcbe8064d829ee98ad16817611150a6c7ee5fe1c9dfd79f5395be892f162bfd3'
7
+ end
8
+
9
+ it 'returns cram-md5 hash when string and numbers passed.' do
10
+ expect(DovecotCrammd5.calc('knight2000')).to eql '527435f1729f9f52e1ff10ce6e72a6a26a43e2937823849d83500c6c55690565'
11
+ end
12
+
13
+ it 'returns cram-md5 hash when upcase and downcase strings passed.' do
14
+ expect(DovecotCrammd5.calc('HOGEhoge')).to eql '764cc43ce35fced4614805835d5925f5254505fba878adb050403cefcb1e70d8'
15
+ end
16
+
17
+ it 'returns cram-md5 hash when long strings(100) passed' do
18
+ expect(DovecotCrammd5.calc('a'*100)).to eql 'f468fcff219b517f6814f5fefa4e894aa8abc2884f2718fa15e07f4cda81f854'
19
+ end
20
+
21
+ it 'returns cram-md5 hash when none alphabetical charactors' do
22
+ expect(DovecotCrammd5.calc('!@#$%^&*()')).to eql '75a21ee215b3ca9a9efdbe712076324414c7388a6a04bedcfdc47c852fd67b25'
23
+ end
24
+ end
25
+
26
+ describe 'pattern abnormal' do
27
+ describe 'case none String' do
28
+ it 'raise expection when nil passed.' do
29
+ expect{DovecotCrammd5.calc(nil)}.to raise_error(ArgumentError)
30
+ end
31
+
32
+ it 'raise expection when Fixnum passed.' do
33
+ expect{DovecotCrammd5.calc(1)}.to raise_error(ArgumentError)
34
+ end
35
+
36
+ it 'raise expection when Array passed.' do
37
+ expect{DovecotCrammd5.calc([])}.to raise_error(ArgumentError)
38
+ end
39
+
40
+ it 'raise expection when Hash passed.' do
41
+ expect{DovecotCrammd5.calc({})}.to raise_error(ArgumentError)
42
+ end
43
+ end
44
+ end
45
+ end
@@ -0,0 +1 @@
1
+ require 'dovecot_crammd5'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dovecot_crammd5
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -43,6 +43,22 @@ dependencies:
43
43
  - - ! '>='
44
44
  - !ruby/object:Gem::Version
45
45
  version: '0'
46
+ - !ruby/object:Gem::Dependency
47
+ name: rspec
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
46
62
  description: generate dovecot's cram-md5 password hash
47
63
  email:
48
64
  - anthrax@unixuser.org
@@ -59,6 +75,8 @@ files:
59
75
  - examples/calc_crammd5.rb
60
76
  - lib/dovecot_crammd5.rb
61
77
  - lib/dovecot_crammd5/version.rb
78
+ - spec/dovecot_crammd5/calc_spec.rb
79
+ - spec/spec_helper.rb
62
80
  homepage: ''
63
81
  licenses:
64
82
  - MIT
@@ -84,4 +102,6 @@ rubygems_version: 1.8.23
84
102
  signing_key:
85
103
  specification_version: 3
86
104
  summary: generate dovecot's cram-md5 password hash
87
- test_files: []
105
+ test_files:
106
+ - spec/dovecot_crammd5/calc_spec.rb
107
+ - spec/spec_helper.rb