validocno 0.2.0 → 0.2.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.
- data/lib/validocno/version.rb +1 -1
- data/spec/fixtures/get_response.html +40 -0
- data/spec/fixtures/invalid_post_response.html +13 -0
- data/spec/fixtures/post_response.html +41 -0
- data/spec/spec_helper.rb +3 -0
- data/spec/validator_spec.rb +62 -3
- data/spec/validocno_spec.rb +8 -32
- data/validocno.gemspec +1 -0
- metadata +82 -19
- checksums.yaml +0 -7
data/lib/validocno/version.rb
CHANGED
@@ -0,0 +1,40 @@
|
|
1
|
+
<div id="content1left" class="content" style="min-height: 500px;">
|
2
|
+
<br>
|
3
|
+
<p>
|
4
|
+
Teil on võimalus kontrollida isikut tõendavate dokumentide kehtivust,
|
5
|
+
kui sisestate dokumendi numbri. <b>NB!</b> Dokumendi numbris olevad tähed palume sisestada läbivalt suurte tähtedega.
|
6
|
+
</p>
|
7
|
+
<br>
|
8
|
+
<form name="reqForm" method="post" action="">
|
9
|
+
<input type="hidden" name="cmd" value="request">
|
10
|
+
<input type="hidden" name="csrf" value="iiGifsNdIY/OVVbEXnh3hMLtJgXsKomOlWKClE2DozCAo/KdBk0N7g==">
|
11
|
+
<table class="form">
|
12
|
+
<tbody>
|
13
|
+
<tr>
|
14
|
+
<td class="label">Dokumendi number:</td>
|
15
|
+
<td>
|
16
|
+
<input class="basicInputText" type="text"
|
17
|
+
name="docNumber" size="20" maxlength="20" value="">
|
18
|
+
</td>
|
19
|
+
</tr>
|
20
|
+
<tr>
|
21
|
+
<td colspan="2">
|
22
|
+
</td>
|
23
|
+
</tr>
|
24
|
+
<tr>
|
25
|
+
<td colspan="2">
|
26
|
+
</td>
|
27
|
+
</tr>
|
28
|
+
<tr>
|
29
|
+
<td>
|
30
|
+
</td>
|
31
|
+
<td>
|
32
|
+
<input class="basicInputButton button100px" type="submit"
|
33
|
+
name="subButton" value="Esita päring">
|
34
|
+
</td>
|
35
|
+
</tr>
|
36
|
+
</tbody>
|
37
|
+
</table>
|
38
|
+
</form>
|
39
|
+
<br>
|
40
|
+
</div>
|
@@ -0,0 +1,41 @@
|
|
1
|
+
<div id="content1left" class="content" style="min-height: 500px;">
|
2
|
+
<br>
|
3
|
+
<p>
|
4
|
+
Teil on võimalus kontrollida isikut tõendavate dokumentide kehtivust,
|
5
|
+
kui sisestate dokumendi numbri. <b>NB!</b> Dokumendi numbris olevad tähed palume sisestada läbivalt suurte tähtedega.
|
6
|
+
</p>
|
7
|
+
<br>
|
8
|
+
<form name="reqForm" method="post" action="">
|
9
|
+
<input type="hidden" name="cmd" value="request">
|
10
|
+
<input type="hidden" name="csrf" value="iiGifsNdIY/OVVbEXnh3hMLtJgXsKomOlWKClE2DozCAo/KdBk0N7g==">
|
11
|
+
<table class="form">
|
12
|
+
<tbody>
|
13
|
+
<tr>
|
14
|
+
<td class="label">Dokumendi number:</td>
|
15
|
+
<td>
|
16
|
+
<input class="basicInputText" type="text"
|
17
|
+
name="docNumber" size="20" maxlength="20" value="">
|
18
|
+
</td>
|
19
|
+
</tr>
|
20
|
+
<tr>
|
21
|
+
<td colspan="2">
|
22
|
+
</td>
|
23
|
+
</tr>
|
24
|
+
<tr>
|
25
|
+
<td colspan="2">
|
26
|
+
</td>
|
27
|
+
</tr>
|
28
|
+
<tr>
|
29
|
+
<td>
|
30
|
+
</td>
|
31
|
+
<td>
|
32
|
+
<input class="basicInputButton button100px" type="submit"
|
33
|
+
name="subButton" value="Esita päring">
|
34
|
+
</td>
|
35
|
+
</tr>
|
36
|
+
</tbody>
|
37
|
+
</table>
|
38
|
+
</form>
|
39
|
+
<br>
|
40
|
+
Dokument A1234567 on kehtiv.
|
41
|
+
</div>
|
data/spec/spec_helper.rb
CHANGED
data/spec/validator_spec.rb
CHANGED
@@ -3,9 +3,41 @@ require 'spec_helper'
|
|
3
3
|
describe Validocno::Validator do
|
4
4
|
let(:doc_number) { 'A1234567' }
|
5
5
|
let(:validator) { Validocno::Validator.new(doc_number) }
|
6
|
+
let(:get_response) do
|
7
|
+
body = File.new('spec/fixtures/get_response.html').read
|
8
|
+
Nokogiri::HTML(body)
|
9
|
+
end
|
10
|
+
|
11
|
+
let(:valid_nr_response) do
|
12
|
+
body = File.new('spec/fixtures/post_response.html').read
|
13
|
+
Nokogiri::HTML(body)
|
14
|
+
end
|
15
|
+
|
16
|
+
let(:expired_nr_response) do
|
17
|
+
body = File.new('spec/fixtures/post_response.html').read
|
18
|
+
body = body.gsub('A1234567', 'A0111856')
|
19
|
+
body = body.gsub('kehtiv', 'kehtetu')
|
20
|
+
Nokogiri::HTML(body)
|
21
|
+
end
|
22
|
+
|
23
|
+
let(:invalid_nr_response) do
|
24
|
+
body = File.new('spec/fixtures/post_response.html').read
|
25
|
+
body = body.gsub('A1234567', 'A1234567890')
|
26
|
+
body = body.gsub(
|
27
|
+
'Dokument A1234567890 on kehtiv.',
|
28
|
+
'Dokumenti A1234567890 ei ole välja antud.'
|
29
|
+
)
|
30
|
+
Nokogiri::HTML(body)
|
31
|
+
end
|
32
|
+
|
33
|
+
let(:invalid_post_response) do
|
34
|
+
body = File.new('spec/fixtures/invalid_post_response.html').read
|
35
|
+
Nokogiri::HTML(body)
|
36
|
+
end
|
6
37
|
|
7
38
|
describe '.new' do
|
8
39
|
it 'initializes with a document number' do
|
40
|
+
mock_response_with :get, :get
|
9
41
|
expect(validator).to be
|
10
42
|
expect { validator }.to_not raise_error
|
11
43
|
end
|
@@ -15,23 +47,32 @@ describe Validocno::Validator do
|
|
15
47
|
end
|
16
48
|
|
17
49
|
it 'sets csrf_token instance variable' do
|
50
|
+
mock_response_with :get, :get
|
18
51
|
expect(validator.csrf_token).to_not be_nil
|
19
52
|
end
|
20
|
-
|
21
53
|
end
|
22
54
|
|
23
55
|
describe '#validate' do
|
24
56
|
let(:invalid_doc_number) { 'A1234567890' }
|
25
57
|
let(:expired_doc_number) { 'A0111856' }
|
26
|
-
let(:validator_with_invalid)
|
27
|
-
|
58
|
+
let(:validator_with_invalid) do
|
59
|
+
Validocno::Validator.new(invalid_doc_number)
|
60
|
+
end
|
61
|
+
|
62
|
+
let(:validator_with_expired) do
|
63
|
+
Validocno::Validator.new(expired_doc_number)
|
64
|
+
end
|
28
65
|
|
29
66
|
it 'returns hash with :valid and :message keys' do
|
67
|
+
mock_response_with :get, :get
|
68
|
+
mock_response_with :post, :valid_nr
|
30
69
|
expect(validator.validate).to have_key(:valid)
|
31
70
|
expect(validator.validate).to have_key(:message)
|
32
71
|
end
|
33
72
|
|
34
73
|
it 'validates document with valid number' do
|
74
|
+
mock_response_with :get, :get
|
75
|
+
mock_response_with :post, :valid_nr
|
35
76
|
expect(validator.validate).to include(
|
36
77
|
:valid => true,
|
37
78
|
:message => "Dokument #{doc_number} on kehtiv."
|
@@ -39,6 +80,8 @@ describe Validocno::Validator do
|
|
39
80
|
end
|
40
81
|
|
41
82
|
it 'validates expired document' do
|
83
|
+
mock_response_with :get, :get
|
84
|
+
mock_response_with :post, :expired_nr
|
42
85
|
expect(validator_with_expired.validate).to include(
|
43
86
|
:valid => false,
|
44
87
|
:message => "Dokument #{expired_doc_number} on kehtetu."
|
@@ -46,10 +89,26 @@ describe Validocno::Validator do
|
|
46
89
|
end
|
47
90
|
|
48
91
|
it 'validates document with invalid number' do
|
92
|
+
mock_response_with :get, :get
|
93
|
+
mock_response_with :post, :invalid_nr
|
49
94
|
expect(validator_with_invalid.validate).to include(
|
50
95
|
:valid => false,
|
51
96
|
:message => "Dokumenti #{invalid_doc_number} ei ole välja antud."
|
52
97
|
)
|
53
98
|
end
|
99
|
+
|
100
|
+
it 'fails if node not found' do
|
101
|
+
mock_response_with :get, :get
|
102
|
+
mock_response_with :post, :invalid_post
|
103
|
+
expect { validator.validate }.to raise_error(StandardError)
|
104
|
+
end
|
105
|
+
end
|
106
|
+
|
107
|
+
private
|
108
|
+
|
109
|
+
def mock_response_with(type, response)
|
110
|
+
allow(Validocno::Client).to receive(type) { send("#{response}_response") }
|
111
|
+
allow_any_instance_of(Validocno::Validator).
|
112
|
+
to receive(:check_response) { true }
|
54
113
|
end
|
55
114
|
end
|
data/spec/validocno_spec.rb
CHANGED
@@ -2,38 +2,14 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
describe Validocno do
|
4
4
|
describe '.validate' do
|
5
|
-
let(:
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
it 'validates document with valid number' do
|
15
|
-
expect(Validocno.validate(valid_doc_number)).to include(
|
16
|
-
:valid => true,
|
17
|
-
:message => "Dokument #{valid_doc_number} on kehtiv."
|
18
|
-
)
|
19
|
-
end
|
20
|
-
|
21
|
-
it 'validates expired document' do
|
22
|
-
expect(Validocno.validate(expired_doc_number)).to include(
|
23
|
-
:valid => false,
|
24
|
-
:message => "Dokument #{expired_doc_number} on kehtetu."
|
25
|
-
)
|
26
|
-
end
|
27
|
-
|
28
|
-
it 'validates document with invalid number' do
|
29
|
-
expect(Validocno.validate(invalid_doc_number)).to include(
|
30
|
-
:valid => false,
|
31
|
-
:message => "Dokumenti #{invalid_doc_number} ei ole välja antud."
|
32
|
-
)
|
33
|
-
end
|
34
|
-
|
35
|
-
it 'raises an error without a document number' do
|
36
|
-
expect { Validocno.validate }.to raise_error(ArgumentError)
|
5
|
+
let(:number) { 'A1234567' }
|
6
|
+
|
7
|
+
it 'calls Validocno::Validator#validate' do
|
8
|
+
allow_any_instance_of(Validocno::Validator).to receive(:csrf_token) {
|
9
|
+
'iiGifsNdIY/OVVbEXnh3hMLtJgXsKomOlWKClE2DozCAo/KdBk0N7g=='
|
10
|
+
}
|
11
|
+
expect_any_instance_of(Validocno::Validator).to receive(:validate)
|
12
|
+
Validocno.validate(number)
|
37
13
|
end
|
38
14
|
end
|
39
15
|
end
|
data/validocno.gemspec
CHANGED
metadata
CHANGED
@@ -1,7 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: validocno
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
4
|
+
hash: 21
|
5
|
+
prerelease:
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 2
|
9
|
+
- 1
|
10
|
+
version: 0.2.1
|
5
11
|
platform: ruby
|
6
12
|
authors:
|
7
13
|
- Artem Pakk
|
@@ -9,59 +15,100 @@ autorequire:
|
|
9
15
|
bindir: bin
|
10
16
|
cert_chain: []
|
11
17
|
|
12
|
-
date: 2014-12-
|
18
|
+
date: 2014-12-09 00:00:00 Z
|
13
19
|
dependencies:
|
14
20
|
- !ruby/object:Gem::Dependency
|
15
21
|
requirement: &id001 !ruby/object:Gem::Requirement
|
22
|
+
none: false
|
16
23
|
requirements:
|
17
24
|
- - "="
|
18
25
|
- !ruby/object:Gem::Version
|
26
|
+
hash: 51
|
27
|
+
segments:
|
28
|
+
- 0
|
29
|
+
- 11
|
30
|
+
- 0
|
19
31
|
version: 0.11.0
|
20
|
-
prerelease: false
|
21
32
|
version_requirements: *id001
|
22
|
-
|
33
|
+
prerelease: false
|
23
34
|
name: httparty
|
35
|
+
type: :runtime
|
24
36
|
- !ruby/object:Gem::Dependency
|
25
37
|
requirement: &id002 !ruby/object:Gem::Requirement
|
38
|
+
none: false
|
26
39
|
requirements:
|
27
|
-
-
|
28
|
-
- ">="
|
40
|
+
- - ">="
|
29
41
|
- !ruby/object:Gem::Version
|
42
|
+
hash: 3
|
43
|
+
segments:
|
44
|
+
- 0
|
30
45
|
version: "0"
|
31
|
-
prerelease: false
|
32
46
|
version_requirements: *id002
|
33
|
-
|
47
|
+
prerelease: false
|
34
48
|
name: nokogiri
|
49
|
+
type: :runtime
|
35
50
|
- !ruby/object:Gem::Dependency
|
36
51
|
requirement: &id003 !ruby/object:Gem::Requirement
|
52
|
+
none: false
|
37
53
|
requirements:
|
38
54
|
- - ~>
|
39
55
|
- !ruby/object:Gem::Version
|
56
|
+
hash: 1
|
57
|
+
segments:
|
58
|
+
- 1
|
59
|
+
- 7
|
40
60
|
version: "1.7"
|
41
|
-
prerelease: false
|
42
61
|
version_requirements: *id003
|
43
|
-
|
62
|
+
prerelease: false
|
44
63
|
name: bundler
|
64
|
+
type: :development
|
45
65
|
- !ruby/object:Gem::Dependency
|
46
66
|
requirement: &id004 !ruby/object:Gem::Requirement
|
67
|
+
none: false
|
47
68
|
requirements:
|
48
69
|
- - ~>
|
49
70
|
- !ruby/object:Gem::Version
|
71
|
+
hash: 35
|
72
|
+
segments:
|
73
|
+
- 10
|
74
|
+
- 0
|
50
75
|
version: "10.0"
|
51
|
-
prerelease: false
|
52
76
|
version_requirements: *id004
|
53
|
-
|
77
|
+
prerelease: false
|
54
78
|
name: rake
|
79
|
+
type: :development
|
55
80
|
- !ruby/object:Gem::Dependency
|
56
81
|
requirement: &id005 !ruby/object:Gem::Requirement
|
82
|
+
none: false
|
57
83
|
requirements:
|
58
84
|
- - ~>
|
59
85
|
- !ruby/object:Gem::Version
|
86
|
+
hash: 3
|
87
|
+
segments:
|
88
|
+
- 3
|
89
|
+
- 1
|
90
|
+
- 0
|
60
91
|
version: 3.1.0
|
61
|
-
prerelease: false
|
62
92
|
version_requirements: *id005
|
63
|
-
|
93
|
+
prerelease: false
|
64
94
|
name: rspec
|
95
|
+
type: :development
|
96
|
+
- !ruby/object:Gem::Dependency
|
97
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
98
|
+
none: false
|
99
|
+
requirements:
|
100
|
+
- - ~>
|
101
|
+
- !ruby/object:Gem::Version
|
102
|
+
hash: 71
|
103
|
+
segments:
|
104
|
+
- 1
|
105
|
+
- 20
|
106
|
+
- 0
|
107
|
+
version: 1.20.0
|
108
|
+
version_requirements: *id006
|
109
|
+
prerelease: false
|
110
|
+
name: webmock
|
111
|
+
type: :development
|
65
112
|
description: Ruby gem to check validity of Estonian ID card
|
66
113
|
email:
|
67
114
|
- artem.pakk@deskrock.ee
|
@@ -83,6 +130,9 @@ files:
|
|
83
130
|
- lib/validocno/validator.rb
|
84
131
|
- lib/validocno/version.rb
|
85
132
|
- rubocop.yml
|
133
|
+
- spec/fixtures/get_response.html
|
134
|
+
- spec/fixtures/invalid_post_response.html
|
135
|
+
- spec/fixtures/post_response.html
|
86
136
|
- spec/spec_helper.rb
|
87
137
|
- spec/validator_spec.rb
|
88
138
|
- spec/validocno_spec.rb
|
@@ -90,29 +140,42 @@ files:
|
|
90
140
|
homepage: https://github.com/deskrock/validocno
|
91
141
|
licenses:
|
92
142
|
- MIT
|
93
|
-
metadata: {}
|
94
|
-
|
95
143
|
post_install_message:
|
96
144
|
rdoc_options: []
|
97
145
|
|
98
146
|
require_paths:
|
99
147
|
- lib
|
100
148
|
required_ruby_version: !ruby/object:Gem::Requirement
|
149
|
+
none: false
|
101
150
|
requirements:
|
102
151
|
- - ">="
|
103
152
|
- !ruby/object:Gem::Version
|
153
|
+
hash: 57
|
154
|
+
segments:
|
155
|
+
- 1
|
156
|
+
- 8
|
157
|
+
- 7
|
104
158
|
version: 1.8.7
|
105
159
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
160
|
+
none: false
|
106
161
|
requirements:
|
107
|
-
-
|
162
|
+
- - ">="
|
163
|
+
- !ruby/object:Gem::Version
|
164
|
+
hash: 3
|
165
|
+
segments:
|
166
|
+
- 0
|
167
|
+
version: "0"
|
108
168
|
requirements: []
|
109
169
|
|
110
170
|
rubyforge_project:
|
111
|
-
rubygems_version:
|
171
|
+
rubygems_version: 1.8.29
|
112
172
|
signing_key:
|
113
|
-
specification_version:
|
173
|
+
specification_version: 3
|
114
174
|
summary: Estonian ID card validator
|
115
175
|
test_files:
|
176
|
+
- spec/fixtures/get_response.html
|
177
|
+
- spec/fixtures/invalid_post_response.html
|
178
|
+
- spec/fixtures/post_response.html
|
116
179
|
- spec/spec_helper.rb
|
117
180
|
- spec/validator_spec.rb
|
118
181
|
- spec/validocno_spec.rb
|
checksums.yaml
DELETED
@@ -1,7 +0,0 @@
|
|
1
|
-
---
|
2
|
-
SHA1:
|
3
|
-
metadata.gz: 4a796e1c3ed9671f9be2b7cb8a9e13d322cc10e5
|
4
|
-
data.tar.gz: 19f89fc43a3ab2ee3aa7be6e5ef9e0c06c632c02
|
5
|
-
SHA512:
|
6
|
-
metadata.gz: c420d0018f0e9f22a016236c44def340e76283d2ec7710e32eb897d071c2abedec329dec404647bf5d976fe90fdc9382d382ed10508860ab8902494715690809
|
7
|
-
data.tar.gz: 9d596965f101a95758056b53cd07759dfb44d18a9e2fa55ca6c509cdc2ea182734e6639d690c0195e6ed4ae28c240db6b693809037902dc262a853a13eec8451
|