letsencrypt_plugin 0.0.6 → 0.0.7

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,7 +1,85 @@
1
1
  require 'test_helper'
2
2
 
3
3
  class LetsencryptPluginTest < ActiveSupport::TestCase
4
- test "truth" do
4
+ include Mocha::Integration::MiniTest
5
+
6
+ test 'truth' do
5
7
  assert_kind_of Module, LetsencryptPlugin
6
8
  end
9
+
10
+ test 'if_fail_when_private_key_is_nil' do
11
+ exception = assert_raises RuntimeError do
12
+ cg = LetsencryptPlugin::CertGenerator.new(private_key: nil)
13
+ cg.create_client
14
+ end
15
+ assert_equal 'Private key is not set, please check your config/letsencrypt_plugin.yml file!', exception.message
16
+ end
17
+
18
+ test 'if_fail_when_private_key_is_empty' do
19
+ exception = assert_raises RuntimeError do
20
+ cg = LetsencryptPlugin::CertGenerator.new(private_key: '')
21
+ cg.create_client
22
+ end
23
+ assert_equal 'Private key is not set, please check your config/letsencrypt_plugin.yml file!', exception.message
24
+ end
25
+
26
+ test 'if_fail_when_private_key_is_directory' do
27
+ options = { private_key: 'public' }
28
+ exception = assert_raises RuntimeError do
29
+ cg = LetsencryptPlugin::CertGenerator.new(options)
30
+ cg.create_client
31
+ end
32
+ assert_equal "Can not open private key: #{File.join(Rails.root, options[:private_key])}", exception.message
33
+ end
34
+
35
+ test 'if_keysize_smaller_than_2048_is_invalid' do
36
+ exception = assert_raises RuntimeError do
37
+ cg = LetsencryptPlugin::CertGenerator.new(private_key: 'key/test_keyfile_1024.pem')
38
+ cg.create_client
39
+ end
40
+ assert_equal 'Invalid key size: 1024. Required size is between 2048 - 4096 bits', exception.message
41
+ end
42
+
43
+ test 'if_keysize_greater_than_4096_is_invalid' do
44
+ exception = assert_raises RuntimeError do
45
+ cg = LetsencryptPlugin::CertGenerator.new(private_key: 'key/test_keyfile_8192.pem')
46
+ cg.create_client
47
+ end
48
+ assert_equal 'Invalid key size: 8192. Required size is between 2048 - 4096 bits', exception.message
49
+ end
50
+
51
+ test 'if_keysize_equal_4096_is_valid' do
52
+ assert_nothing_raised do
53
+ cg = LetsencryptPlugin::CertGenerator.new(private_key: 'key/test_keyfile_4096.pem')
54
+ assert !cg.nil?
55
+ cg.create_client
56
+ end
57
+ end
58
+
59
+ test 'if_keysize_equal_2048_is_valid' do
60
+ assert_nothing_raised do
61
+ cg = LetsencryptPlugin::CertGenerator.new(private_key: 'key/test_keyfile_2048.pem')
62
+ assert !cg.nil?
63
+ cg.create_client
64
+ end
65
+ end
66
+
67
+ # test 'register' do
68
+ # VCR.use_cassette('registration_agree_terms') do
69
+ # cg = LetsencryptPlugin::CertGenerator.new(private_key: 'key/test_keyfile_4096.pem',
70
+ # endpoint: 'https://acme-staging.api.letsencrypt.org',
71
+ # domain: 'example.com',
72
+ # email: 'foobarbaz@example.com')
73
+ # acme_client_mock = Acme::Client.new(private_key: cg.load_private_key, endpoint: cg.options[:endpoint])
74
+ # acme_client_auth_mock = Acme::Client::Resources::Authorization.new
75
+ # acme_client_auth_mock.stubs(:http01).returns(Acme::Client::Resources::Challenges::HTTP01)
76
+ # acme_client_cer_mock = Acme::Client::CertificateRequest.new
77
+ # acme_client_mock.stubs(:register).returns(Acme::Client::Resources::Registration)
78
+ # acme_client_mock.stubs(:new_certificate).with(acme_client_cer_mock).returns(nil)
79
+ # acme_client_mock.stubs(:authorize).returns(acme_client_auth_mock)
80
+ # cg.client = acme_client_mock
81
+ # assert !cg.nil?
82
+ # cg.generate_certificate
83
+ # end
84
+ # end
7
85
  end
data/test/test_helper.rb CHANGED
@@ -1,13 +1,18 @@
1
- require "codeclimate-test-reporter"
1
+ require 'codeclimate-test-reporter'
2
2
  CodeClimate::TestReporter.start
3
+ require 'simplecov'
4
+ SimpleCov.start
3
5
 
4
6
  # Configure Rails Environment
5
- ENV["RAILS_ENV"] = "test"
7
+ ENV['RAILS_ENV'] = 'test'
6
8
 
7
- require File.expand_path("../../test/dummy/config/environment.rb", __FILE__)
8
- ActiveRecord::Migrator.migrations_paths = [File.expand_path("../../test/dummy/db/migrate", __FILE__)]
9
+ require File.expand_path('../../test/dummy/config/environment.rb', __FILE__)
10
+ ActiveRecord::Migrator.migrations_paths = [File.expand_path('../../test/dummy/db/migrate', __FILE__)]
9
11
  ActiveRecord::Migrator.migrations_paths << File.expand_path('../../db/migrate', __FILE__)
10
- require "rails/test_help"
12
+ require 'rails/test_help'
13
+ require 'minitest/rails'
14
+ require 'minitest/reporters'
15
+ Minitest::Reporters.use!
11
16
 
12
17
  # Filter out Minitest backtrace while allowing backtrace from other libraries
13
18
  # to be shown.
@@ -18,7 +23,23 @@ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
18
23
 
19
24
  # Load fixtures from the engine
20
25
  if ActiveSupport::TestCase.respond_to?(:fixture_path=)
21
- ActiveSupport::TestCase.fixture_path = File.expand_path("../fixtures", __FILE__)
26
+ ActiveSupport::TestCase.fixture_path = File.expand_path('../fixtures', __FILE__)
22
27
  ActionDispatch::IntegrationTest.fixture_path = ActiveSupport::TestCase.fixture_path
23
28
  ActiveSupport::TestCase.fixtures :all
24
29
  end
30
+
31
+ # require 'webmock/minitest'
32
+ # MinitestVcr::Spec.configure!
33
+
34
+ # require 'vcr'
35
+ # VCR.configure do |c|
36
+ # c.cassette_library_dir = File.expand_path('../../test/cassettes', __FILE__)
37
+ # # c.configure_rspec_metadata!
38
+ # c.hook_into :webmock
39
+ # c.ignore_localhost = false
40
+ # c.default_cassette_options = { record: :once, match_requests_on: [:method, :host, :path] }
41
+ # c.allow_http_connections_when_no_cassette = false
42
+ # c.debug_logger = File.open(File.join(File.expand_path('../../test/cassettes', __FILE__), 'letsencrypt.log'), 'w')
43
+ # end
44
+
45
+ require 'mocha/mini_test'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: letsencrypt_plugin
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ version: 0.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Lukasz Gromanowski
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-01-01 00:00:00.000000000 Z
11
+ date: 2016-01-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -52,6 +52,34 @@ dependencies:
52
52
  - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: minitest-rails
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: minitest-reporters
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
55
83
  - !ruby/object:Gem::Dependency
56
84
  name: sqlite3
57
85
  requirement: !ruby/object:Gem::Requirement
@@ -80,11 +108,79 @@ dependencies:
80
108
  - - ">="
81
109
  - !ruby/object:Gem::Version
82
110
  version: '0'
83
- description: letsencrypt-plugin is a Ruby on Rails helper for Let's Encrypt service
111
+ - !ruby/object:Gem::Dependency
112
+ name: rubocop
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
125
+ - !ruby/object:Gem::Dependency
126
+ name: webmock
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ">="
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ">="
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
139
+ - !ruby/object:Gem::Dependency
140
+ name: minitest-vcr
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - ">="
144
+ - !ruby/object:Gem::Version
145
+ version: '0'
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - ">="
151
+ - !ruby/object:Gem::Version
152
+ version: '0'
153
+ - !ruby/object:Gem::Dependency
154
+ name: mocha
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - ">="
158
+ - !ruby/object:Gem::Version
159
+ version: '0'
160
+ type: :development
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - ">="
165
+ - !ruby/object:Gem::Version
166
+ version: '0'
167
+ - !ruby/object:Gem::Dependency
168
+ name: simplecov
169
+ requirement: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - ">="
172
+ - !ruby/object:Gem::Version
173
+ version: '0'
174
+ type: :development
175
+ prerelease: false
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - ">="
179
+ - !ruby/object:Gem::Version
180
+ version: '0'
181
+ description: 'letsencrypt-plugin is a Ruby on Rails helper for Let''s Encrypt service
84
182
  for retrieving SSL certificates (without using sudo, like original letsencrypt client
85
- does). It uses acme-client gem for communication with Let's Encrypt server. ** This
86
- gem requires database for storing challenge response - it could be any DB supported
87
- by Ruby on Rails **
183
+ does). It uses acme-client gem for communication with Let''s Encrypt server. '
88
184
  email:
89
185
  - lgromanowski@gmail.com
90
186
  executables: []
@@ -103,9 +199,17 @@ files:
103
199
  - config/routes.rb
104
200
  - db/migrate/20151206135029_create_letsencrypt_plugin_challenges.rb
105
201
  - lib/letsencrypt_plugin.rb
202
+ - lib/letsencrypt_plugin/certificate_output.rb
203
+ - lib/letsencrypt_plugin/challenge_store.rb
204
+ - lib/letsencrypt_plugin/database_store.rb
106
205
  - lib/letsencrypt_plugin/engine.rb
206
+ - lib/letsencrypt_plugin/file_output.rb
207
+ - lib/letsencrypt_plugin/file_store.rb
208
+ - lib/letsencrypt_plugin/heroku_output.rb
107
209
  - lib/letsencrypt_plugin/version.rb
108
210
  - lib/tasks/letsencrypt_plugin_tasks.rake
211
+ - test/cassettes/letsencrypt.log
212
+ - test/cassettes/registration_agree_terms.yml
109
213
  - test/controllers/application_controller_test.rb
110
214
  - test/dummy/README.rdoc
111
215
  - test/dummy/Rakefile
@@ -140,6 +244,10 @@ files:
140
244
  - test/dummy/config/secrets.yml
141
245
  - test/dummy/db/schema.rb
142
246
  - test/dummy/db/test.sqlite3
247
+ - test/dummy/key/test_keyfile_1024.pem
248
+ - test/dummy/key/test_keyfile_2048.pem
249
+ - test/dummy/key/test_keyfile_4096.pem
250
+ - test/dummy/key/test_keyfile_8192.pem
143
251
  - test/dummy/log/development.log
144
252
  - test/dummy/log/test.log
145
253
  - test/dummy/public/404.html
@@ -147,6 +255,8 @@ files:
147
255
  - test/dummy/public/500.html
148
256
  - test/dummy/public/favicon.ico
149
257
  - test/fixtures/letsencrypt_plugin/challenges.yml
258
+ - test/le.sublime-project
259
+ - test/le.sublime-workspace
150
260
  - test/letsencrypt_plugin_test.rb
151
261
  - test/models/letsencrypt_plugin/challenge_test.rb
152
262
  - test/test_helper.rb
@@ -160,9 +270,9 @@ require_paths:
160
270
  - lib
161
271
  required_ruby_version: !ruby/object:Gem::Requirement
162
272
  requirements:
163
- - - ">="
273
+ - - "~>"
164
274
  - !ruby/object:Gem::Version
165
- version: '0'
275
+ version: 2.1.0
166
276
  required_rubygems_version: !ruby/object:Gem::Requirement
167
277
  requirements:
168
278
  - - ">="
@@ -176,8 +286,12 @@ specification_version: 4
176
286
  summary: Let's encrypt plugin for Ruby on Rails applications
177
287
  test_files:
178
288
  - test/controllers/application_controller_test.rb
289
+ - test/cassettes/letsencrypt.log
290
+ - test/cassettes/registration_agree_terms.yml
179
291
  - test/test_helper.rb
292
+ - test/le.sublime-workspace
180
293
  - test/letsencrypt_plugin_test.rb
294
+ - test/le.sublime-project
181
295
  - test/models/letsencrypt_plugin/challenge_test.rb
182
296
  - test/fixtures/letsencrypt_plugin/challenges.yml
183
297
  - test/dummy/db/test.sqlite3
@@ -217,5 +331,9 @@ test_files:
217
331
  - test/dummy/config/routes.rb
218
332
  - test/dummy/log/test.log
219
333
  - test/dummy/log/development.log
334
+ - test/dummy/key/test_keyfile_1024.pem
335
+ - test/dummy/key/test_keyfile_4096.pem
336
+ - test/dummy/key/test_keyfile_2048.pem
337
+ - test/dummy/key/test_keyfile_8192.pem
220
338
  - test/dummy/config.ru
221
339
  - test/dummy/README.rdoc