validocno 0.2.0 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,3 +1,3 @@
1
1
  module Validocno
2
- VERSION = '0.2.0'
2
+ VERSION = '0.2.1'
3
3
  end
@@ -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,13 @@
1
+ <html>
2
+ <head>
3
+ <title>Wrong structure</title>
4
+ </head>
5
+ <body>
6
+ <div id="wrong">
7
+ <h1>Hello World</h1>
8
+ <p>
9
+ Wrong structure
10
+ </p>
11
+ </div>
12
+ </body>
13
+ </html>
@@ -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
@@ -1 +1,4 @@
1
1
  require 'validocno'
2
+ require 'webmock/rspec'
3
+
4
+ WebMock.disable_net_connect!(:allow_localhost => true)
@@ -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) { Validocno::Validator.new(invalid_doc_number) }
27
- let(:validator_with_expired) { Validocno::Validator.new(expired_doc_number) }
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
@@ -2,38 +2,14 @@ require 'spec_helper'
2
2
 
3
3
  describe Validocno do
4
4
  describe '.validate' do
5
- let(:valid_doc_number) { 'A1234567' }
6
- let(:expired_doc_number) { 'A0111856' }
7
- let(:invalid_doc_number) { 'A1234567890' }
8
-
9
- it 'returns hash with :valid and :message keys' do
10
- expect(Validocno.validate(valid_doc_number)).to have_key(:valid)
11
- expect(Validocno.validate(valid_doc_number)).to have_key(:message)
12
- end
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
@@ -27,4 +27,5 @@ Gem::Specification.new do |spec|
27
27
  spec.add_development_dependency 'bundler', '~> 1.7'
28
28
  spec.add_development_dependency 'rake', '~> 10.0'
29
29
  spec.add_development_dependency 'rspec', '~> 3.1.0'
30
+ spec.add_development_dependency 'webmock', '~> 1.20.0'
30
31
  end
metadata CHANGED
@@ -1,7 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: validocno
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
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-04 00:00:00 Z
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
- type: :runtime
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
- - &id006
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
- type: :runtime
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
- type: :development
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
- type: :development
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
- type: :development
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
- - *id006
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: 2.0.14
171
+ rubygems_version: 1.8.29
112
172
  signing_key:
113
- specification_version: 4
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