doorkeeper 4.2.5 → 4.3.0

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.
Files changed (125) hide show
  1. checksums.yaml +4 -4
  2. data/.github/ISSUE_TEMPLATE.md +19 -0
  3. data/.github/PULL_REQUEST_TEMPLATE.md +17 -0
  4. data/.gitignore +1 -1
  5. data/.hound.yml +2 -13
  6. data/.rubocop.yml +13 -0
  7. data/.travis.yml +13 -4
  8. data/Appraisals +6 -2
  9. data/CODE_OF_CONDUCT.md +46 -0
  10. data/Gemfile +1 -1
  11. data/NEWS.md +28 -0
  12. data/README.md +40 -10
  13. data/RELEASING.md +5 -12
  14. data/SECURITY.md +13 -0
  15. data/app/controllers/doorkeeper/application_controller.rb +1 -5
  16. data/app/controllers/doorkeeper/applications_controller.rb +14 -1
  17. data/app/controllers/doorkeeper/tokens_controller.rb +13 -1
  18. data/app/helpers/doorkeeper/dashboard_helper.rb +4 -2
  19. data/app/validators/redirect_uri_validator.rb +12 -2
  20. data/app/views/doorkeeper/applications/_form.html.erb +2 -2
  21. data/app/views/doorkeeper/authorizations/new.html.erb +1 -1
  22. data/app/views/doorkeeper/authorized_applications/index.html.erb +0 -1
  23. data/config/locales/en.yml +3 -5
  24. data/doorkeeper.gemspec +4 -4
  25. data/gemfiles/rails_4_2.gemfile +6 -4
  26. data/gemfiles/rails_5_0.gemfile +4 -4
  27. data/gemfiles/rails_5_1.gemfile +6 -7
  28. data/gemfiles/rails_5_2.gemfile +12 -0
  29. data/gemfiles/rails_master.gemfile +14 -0
  30. data/lib/doorkeeper/config.rb +55 -55
  31. data/lib/doorkeeper/engine.rb +3 -3
  32. data/lib/doorkeeper/errors.rb +18 -0
  33. data/lib/doorkeeper/grape/helpers.rb +13 -8
  34. data/lib/doorkeeper/helpers/controller.rb +9 -20
  35. data/lib/doorkeeper/models/access_token_mixin.rb +14 -7
  36. data/lib/doorkeeper/models/application_mixin.rb +11 -6
  37. data/lib/doorkeeper/models/concerns/expirable.rb +7 -5
  38. data/lib/doorkeeper/oauth/authorization/token.rb +22 -18
  39. data/lib/doorkeeper/oauth/authorization_code_request.rb +6 -1
  40. data/lib/doorkeeper/oauth/base_request.rb +5 -5
  41. data/lib/doorkeeper/oauth/client/credentials.rb +2 -2
  42. data/lib/doorkeeper/oauth/client.rb +2 -2
  43. data/lib/doorkeeper/oauth/error.rb +2 -2
  44. data/lib/doorkeeper/oauth/error_response.rb +1 -2
  45. data/lib/doorkeeper/oauth/forbidden_token_response.rb +1 -1
  46. data/lib/doorkeeper/oauth/invalid_token_response.rb +2 -3
  47. data/lib/doorkeeper/oauth/password_access_token_request.rb +1 -0
  48. data/lib/doorkeeper/oauth/refresh_token_request.rb +1 -0
  49. data/lib/doorkeeper/oauth/scopes.rb +18 -8
  50. data/lib/doorkeeper/oauth/token.rb +1 -1
  51. data/lib/doorkeeper/oauth/token_introspection.rb +128 -0
  52. data/lib/doorkeeper/orm/active_record/access_grant.rb +1 -1
  53. data/lib/doorkeeper/orm/active_record/access_token.rb +1 -23
  54. data/lib/doorkeeper/orm/active_record/application.rb +1 -1
  55. data/lib/doorkeeper/orm/active_record/base_record.rb +11 -0
  56. data/lib/doorkeeper/orm/active_record.rb +20 -8
  57. data/lib/doorkeeper/rails/helpers.rb +5 -6
  58. data/lib/doorkeeper/rails/routes.rb +9 -7
  59. data/lib/doorkeeper/request.rb +7 -1
  60. data/lib/doorkeeper/validations.rb +3 -2
  61. data/lib/doorkeeper/version.rb +13 -1
  62. data/lib/doorkeeper.rb +1 -0
  63. data/lib/generators/doorkeeper/application_owner_generator.rb +11 -2
  64. data/lib/generators/doorkeeper/migration_generator.rb +13 -1
  65. data/lib/generators/doorkeeper/previous_refresh_token_generator.rb +7 -1
  66. data/lib/generators/doorkeeper/templates/{add_owner_to_application_migration.rb → add_owner_to_application_migration.rb.erb} +1 -1
  67. data/lib/generators/doorkeeper/templates/{add_previous_refresh_token_to_access_tokens.rb → add_previous_refresh_token_to_access_tokens.rb.erb} +1 -1
  68. data/lib/generators/doorkeeper/templates/initializer.rb +19 -3
  69. data/lib/generators/doorkeeper/templates/{migration.rb → migration.rb.erb} +1 -1
  70. data/spec/controllers/applications_controller_spec.rb +15 -4
  71. data/spec/controllers/authorizations_controller_spec.rb +31 -16
  72. data/spec/controllers/protected_resources_controller_spec.rb +28 -19
  73. data/spec/controllers/token_info_controller_spec.rb +17 -13
  74. data/spec/controllers/tokens_controller_spec.rb +138 -4
  75. data/spec/dummy/config/initializers/doorkeeper.rb +1 -1
  76. data/spec/dummy/config/initializers/{active_record_belongs_to_required_by_default.rb → new_framework_defaults.rb} +1 -1
  77. data/spec/dummy/config/initializers/secret_token.rb +0 -1
  78. data/spec/factories.rb +1 -1
  79. data/spec/generators/application_owner_generator_spec.rb +24 -5
  80. data/spec/generators/migration_generator_spec.rb +24 -3
  81. data/spec/generators/previous_refresh_token_generator_spec.rb +57 -0
  82. data/spec/grape/grape_integration_spec.rb +135 -0
  83. data/spec/helpers/doorkeeper/dashboard_helper_spec.rb +1 -1
  84. data/spec/lib/config_spec.rb +115 -12
  85. data/spec/lib/models/expirable_spec.rb +0 -1
  86. data/spec/lib/models/revocable_spec.rb +2 -2
  87. data/spec/lib/oauth/authorization_code_request_spec.rb +39 -11
  88. data/spec/lib/oauth/base_request_spec.rb +2 -7
  89. data/spec/lib/oauth/client_credentials/creator_spec.rb +1 -1
  90. data/spec/lib/oauth/client_credentials_integration_spec.rb +1 -1
  91. data/spec/lib/oauth/client_credentials_request_spec.rb +1 -0
  92. data/spec/lib/oauth/code_request_spec.rb +1 -3
  93. data/spec/lib/oauth/helpers/uri_checker_spec.rb +5 -0
  94. data/spec/lib/oauth/invalid_token_response_spec.rb +1 -1
  95. data/spec/lib/oauth/password_access_token_request_spec.rb +9 -3
  96. data/spec/lib/oauth/refresh_token_request_spec.rb +19 -7
  97. data/spec/lib/oauth/scopes_spec.rb +28 -1
  98. data/spec/lib/oauth/token_request_spec.rb +6 -8
  99. data/spec/lib/server_spec.rb +10 -0
  100. data/spec/models/doorkeeper/access_grant_spec.rb +1 -1
  101. data/spec/models/doorkeeper/access_token_spec.rb +72 -48
  102. data/spec/models/doorkeeper/application_spec.rb +51 -18
  103. data/spec/requests/applications/applications_request_spec.rb +5 -5
  104. data/spec/requests/endpoints/token_spec.rb +8 -1
  105. data/spec/requests/flows/authorization_code_errors_spec.rb +11 -1
  106. data/spec/requests/flows/authorization_code_spec.rb +1 -0
  107. data/spec/requests/flows/client_credentials_spec.rb +1 -1
  108. data/spec/requests/flows/implicit_grant_errors_spec.rb +2 -2
  109. data/spec/requests/flows/refresh_token_spec.rb +4 -4
  110. data/spec/requests/flows/revoke_token_spec.rb +15 -15
  111. data/spec/requests/protected_resources/metal_spec.rb +1 -1
  112. data/spec/requests/protected_resources/private_api_spec.rb +1 -1
  113. data/spec/routing/custom_controller_routes_spec.rb +4 -0
  114. data/spec/routing/default_routes_spec.rb +5 -1
  115. data/spec/spec_helper_integration.rb +15 -5
  116. data/spec/support/dependencies/factory_girl.rb +2 -2
  117. data/spec/support/helpers/access_token_request_helper.rb +1 -1
  118. data/spec/support/helpers/model_helper.rb +9 -4
  119. data/spec/support/helpers/request_spec_helper.rb +7 -3
  120. data/spec/support/helpers/url_helper.rb +8 -8
  121. data/spec/support/shared/controllers_shared_context.rb +2 -6
  122. data/spec/support/shared/models_shared_examples.rb +4 -4
  123. data/spec/validators/redirect_uri_validator_spec.rb +51 -6
  124. data/spec/version/version_spec.rb +15 -0
  125. metadata +42 -27
@@ -34,15 +34,15 @@ shared_examples 'a unique token' do
34
34
  end
35
35
 
36
36
  it 'is not valid if token exists' do
37
- token1 = FactoryGirl.create factory_name
38
- token2 = FactoryGirl.create factory_name
37
+ token1 = FactoryBot.create factory_name
38
+ token2 = FactoryBot.create factory_name
39
39
  token2.token = token1.token
40
40
  expect(token2).not_to be_valid
41
41
  end
42
42
 
43
43
  it 'expects database to throw an error when tokens are the same' do
44
- token1 = FactoryGirl.create factory_name
45
- token2 = FactoryGirl.create factory_name
44
+ token1 = FactoryBot.create factory_name
45
+ token2 = FactoryBot.create factory_name
46
46
  token2.token = token1.token
47
47
  expect do
48
48
  token2.save!(validate: false)
@@ -2,7 +2,7 @@ require 'spec_helper_integration'
2
2
 
3
3
  describe RedirectUriValidator do
4
4
  subject do
5
- FactoryGirl.create(:application)
5
+ FactoryBot.create(:application)
6
6
  end
7
7
 
8
8
  it 'is valid when the uri is a uri' do
@@ -10,6 +10,21 @@ describe RedirectUriValidator do
10
10
  expect(subject).to be_valid
11
11
  end
12
12
 
13
+ # Most mobile and desktop operating systems allow apps to register a custom URL
14
+ # scheme that will launch the app when a URL with that scheme is visited from
15
+ # the system browser.
16
+ #
17
+ # @see https://www.oauth.com/oauth2-servers/redirect-uris/redirect-uris-native-apps/
18
+ it 'is valid when the uri is custom native URI' do
19
+ subject.redirect_uri = 'myapp://callback'
20
+ expect(subject).to be_valid
21
+ end
22
+
23
+ it 'is valid when the uri has a query parameter' do
24
+ subject.redirect_uri = 'https://example.com/abcd?xyz=123'
25
+ expect(subject).to be_valid
26
+ end
27
+
13
28
  it 'accepts native redirect uri' do
14
29
  subject.redirect_uri = 'urn:ietf:wg:oauth:2.0:oob'
15
30
  expect(subject).to be_valid
@@ -39,11 +54,6 @@ describe RedirectUriValidator do
39
54
  expect(subject.errors[:redirect_uri].first).to eq('cannot contain a fragment.')
40
55
  end
41
56
 
42
- it 'is invalid when the uri has a query parameter' do
43
- subject.redirect_uri = 'https://example.com/abcd?xyz=123'
44
- expect(subject).to be_valid
45
- end
46
-
47
57
  context 'force secured uri' do
48
58
  it 'accepts an valid uri' do
49
59
  subject.redirect_uri = 'https://example.com/callback'
@@ -68,6 +78,34 @@ describe RedirectUriValidator do
68
78
  expect(subject).to be_valid
69
79
  end
70
80
 
81
+ it 'accepts a non secured protocol when conditional option defined' do
82
+ Doorkeeper.configure do
83
+ orm DOORKEEPER_ORM
84
+ force_ssl_in_redirect_uri { |uri| uri.host != 'localhost' }
85
+ end
86
+
87
+ application = FactoryBot.build(:application, redirect_uri: 'http://localhost/callback')
88
+ expect(application).to be_valid
89
+
90
+ application = FactoryBot.build(:application, redirect_uri: 'http://localhost2/callback')
91
+ expect(application).not_to be_valid
92
+ end
93
+
94
+ it 'forbids redirect uri if required' do
95
+ subject.redirect_uri = 'javascript://document.cookie'
96
+
97
+ Doorkeeper.configure do
98
+ orm DOORKEEPER_ORM
99
+ forbid_redirect_uri { |uri| uri.scheme == 'javascript' }
100
+ end
101
+
102
+ expect(subject).to be_invalid
103
+ expect(subject.errors[:redirect_uri].first).to eq('is forbidden by the server.')
104
+
105
+ subject.redirect_uri = 'https://localhost/callback'
106
+ expect(subject).to be_valid
107
+ end
108
+
71
109
  it 'invalidates the uri when the uri does not use a secure protocol' do
72
110
  subject.redirect_uri = 'http://example.com/callback'
73
111
  expect(subject).not_to be_valid
@@ -75,4 +113,11 @@ describe RedirectUriValidator do
75
113
  expect(error).to eq('must be an HTTPS/SSL URI.')
76
114
  end
77
115
  end
116
+
117
+ context 'multiple redirect uri' do
118
+ it 'invalidates the second uri when the first uri is native uri' do
119
+ subject.redirect_uri = "urn:ietf:wg:oauth:2.0:oob\nexample.com/callback"
120
+ expect(subject).to be_invalid
121
+ end
122
+ end
78
123
  end
@@ -0,0 +1,15 @@
1
+ require 'spec_helper_integration'
2
+
3
+ describe 'Doorkeeper version' do
4
+ context '#gem_version' do
5
+ it 'returns Gem::Version instance' do
6
+ expect(Doorkeeper.gem_version).to be_an_instance_of(Gem::Version)
7
+ end
8
+ end
9
+
10
+ context 'VERSION' do
11
+ it 'returns gem version string' do
12
+ expect(Doorkeeper::VERSION::STRING).to match(/^\d+\.\d+\.\d+[.\w]?$/)
13
+ end
14
+ end
15
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: doorkeeper
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.2.5
4
+ version: 4.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Felipe Elias Philipp
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2017-02-12 00:00:00.000000000 Z
13
+ date: 2018-02-23 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: railties
@@ -54,34 +54,48 @@ dependencies:
54
54
  - - ">="
55
55
  - !ruby/object:Gem::Version
56
56
  version: '0'
57
+ - !ruby/object:Gem::Dependency
58
+ name: grape
59
+ requirement: !ruby/object:Gem::Requirement
60
+ requirements:
61
+ - - ">="
62
+ - !ruby/object:Gem::Version
63
+ version: '0'
64
+ type: :development
65
+ prerelease: false
66
+ version_requirements: !ruby/object:Gem::Requirement
67
+ requirements:
68
+ - - ">="
69
+ - !ruby/object:Gem::Version
70
+ version: '0'
57
71
  - !ruby/object:Gem::Dependency
58
72
  name: database_cleaner
59
73
  requirement: !ruby/object:Gem::Requirement
60
74
  requirements:
61
75
  - - "~>"
62
76
  - !ruby/object:Gem::Version
63
- version: 1.5.3
77
+ version: '1.6'
64
78
  type: :development
65
79
  prerelease: false
66
80
  version_requirements: !ruby/object:Gem::Requirement
67
81
  requirements:
68
82
  - - "~>"
69
83
  - !ruby/object:Gem::Version
70
- version: 1.5.3
84
+ version: '1.6'
71
85
  - !ruby/object:Gem::Dependency
72
- name: factory_girl
86
+ name: factory_bot
73
87
  requirement: !ruby/object:Gem::Requirement
74
88
  requirements:
75
89
  - - "~>"
76
90
  - !ruby/object:Gem::Version
77
- version: 4.7.0
91
+ version: '4.8'
78
92
  type: :development
79
93
  prerelease: false
80
94
  version_requirements: !ruby/object:Gem::Requirement
81
95
  requirements:
82
96
  - - "~>"
83
97
  - !ruby/object:Gem::Version
84
- version: 4.7.0
98
+ version: '4.8'
85
99
  - !ruby/object:Gem::Dependency
86
100
  name: generator_spec
87
101
  requirement: !ruby/object:Gem::Requirement
@@ -124,20 +138,6 @@ dependencies:
124
138
  - - ">="
125
139
  - !ruby/object:Gem::Version
126
140
  version: '0'
127
- - !ruby/object:Gem::Dependency
128
- name: timecop
129
- requirement: !ruby/object:Gem::Requirement
130
- requirements:
131
- - - "~>"
132
- - !ruby/object:Gem::Version
133
- version: 0.8.1
134
- type: :development
135
- prerelease: false
136
- version_requirements: !ruby/object:Gem::Requirement
137
- requirements:
138
- - - "~>"
139
- - !ruby/object:Gem::Version
140
- version: 0.8.1
141
141
  description: Doorkeeper is an OAuth 2 provider for Rails and Grape.
142
142
  email:
143
143
  - me@jonathanmoss.me
@@ -146,11 +146,15 @@ extensions: []
146
146
  extra_rdoc_files: []
147
147
  files:
148
148
  - ".coveralls.yml"
149
+ - ".github/ISSUE_TEMPLATE.md"
150
+ - ".github/PULL_REQUEST_TEMPLATE.md"
149
151
  - ".gitignore"
150
152
  - ".hound.yml"
151
153
  - ".rspec"
154
+ - ".rubocop.yml"
152
155
  - ".travis.yml"
153
156
  - Appraisals
157
+ - CODE_OF_CONDUCT.md
154
158
  - CONTRIBUTING.md
155
159
  - Gemfile
156
160
  - MIT-LICENSE
@@ -158,6 +162,7 @@ files:
158
162
  - README.md
159
163
  - RELEASING.md
160
164
  - Rakefile
165
+ - SECURITY.md
161
166
  - app/assets/stylesheets/doorkeeper/admin/application.css
162
167
  - app/assets/stylesheets/doorkeeper/application.css
163
168
  - app/controllers/doorkeeper/application_controller.rb
@@ -187,6 +192,8 @@ files:
187
192
  - gemfiles/rails_4_2.gemfile
188
193
  - gemfiles/rails_5_0.gemfile
189
194
  - gemfiles/rails_5_1.gemfile
195
+ - gemfiles/rails_5_2.gemfile
196
+ - gemfiles/rails_master.gemfile
190
197
  - lib/doorkeeper.rb
191
198
  - lib/doorkeeper/config.rb
192
199
  - lib/doorkeeper/engine.rb
@@ -228,12 +235,14 @@ files:
228
235
  - lib/doorkeeper/oauth/refresh_token_request.rb
229
236
  - lib/doorkeeper/oauth/scopes.rb
230
237
  - lib/doorkeeper/oauth/token.rb
238
+ - lib/doorkeeper/oauth/token_introspection.rb
231
239
  - lib/doorkeeper/oauth/token_request.rb
232
240
  - lib/doorkeeper/oauth/token_response.rb
233
241
  - lib/doorkeeper/orm/active_record.rb
234
242
  - lib/doorkeeper/orm/active_record/access_grant.rb
235
243
  - lib/doorkeeper/orm/active_record/access_token.rb
236
244
  - lib/doorkeeper/orm/active_record/application.rb
245
+ - lib/doorkeeper/orm/active_record/base_record.rb
237
246
  - lib/doorkeeper/rails/helpers.rb
238
247
  - lib/doorkeeper/rails/routes.rb
239
248
  - lib/doorkeeper/rails/routes/mapper.rb
@@ -254,10 +263,10 @@ files:
254
263
  - lib/generators/doorkeeper/migration_generator.rb
255
264
  - lib/generators/doorkeeper/previous_refresh_token_generator.rb
256
265
  - lib/generators/doorkeeper/templates/README
257
- - lib/generators/doorkeeper/templates/add_owner_to_application_migration.rb
258
- - lib/generators/doorkeeper/templates/add_previous_refresh_token_to_access_tokens.rb
266
+ - lib/generators/doorkeeper/templates/add_owner_to_application_migration.rb.erb
267
+ - lib/generators/doorkeeper/templates/add_previous_refresh_token_to_access_tokens.rb.erb
259
268
  - lib/generators/doorkeeper/templates/initializer.rb
260
- - lib/generators/doorkeeper/templates/migration.rb
269
+ - lib/generators/doorkeeper/templates/migration.rb.erb
261
270
  - lib/generators/doorkeeper/views_generator.rb
262
271
  - spec/controllers/application_metal_controller.rb
263
272
  - spec/controllers/applications_controller_spec.rb
@@ -284,9 +293,9 @@ files:
284
293
  - spec/dummy/config/environments/development.rb
285
294
  - spec/dummy/config/environments/production.rb
286
295
  - spec/dummy/config/environments/test.rb
287
- - spec/dummy/config/initializers/active_record_belongs_to_required_by_default.rb
288
296
  - spec/dummy/config/initializers/backtrace_silencers.rb
289
297
  - spec/dummy/config/initializers/doorkeeper.rb
298
+ - spec/dummy/config/initializers/new_framework_defaults.rb
290
299
  - spec/dummy/config/initializers/secret_token.rb
291
300
  - spec/dummy/config/initializers/session_store.rb
292
301
  - spec/dummy/config/initializers/wrap_parameters.rb
@@ -307,8 +316,10 @@ files:
307
316
  - spec/generators/application_owner_generator_spec.rb
308
317
  - spec/generators/install_generator_spec.rb
309
318
  - spec/generators/migration_generator_spec.rb
319
+ - spec/generators/previous_refresh_token_generator_spec.rb
310
320
  - spec/generators/templates/routes.rb
311
321
  - spec/generators/views_generator_spec.rb
322
+ - spec/grape/grape_integration_spec.rb
312
323
  - spec/helpers/doorkeeper/dashboard_helper_spec.rb
313
324
  - spec/lib/config_spec.rb
314
325
  - spec/lib/doorkeeper_spec.rb
@@ -379,6 +390,7 @@ files:
379
390
  - spec/support/shared/controllers_shared_context.rb
380
391
  - spec/support/shared/models_shared_examples.rb
381
392
  - spec/validators/redirect_uri_validator_spec.rb
393
+ - spec/version/version_spec.rb
382
394
  - vendor/assets/stylesheets/doorkeeper/bootstrap.min.css
383
395
  homepage: https://github.com/doorkeeper-gem/doorkeeper
384
396
  licenses:
@@ -400,7 +412,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
400
412
  version: '0'
401
413
  requirements: []
402
414
  rubyforge_project:
403
- rubygems_version: 2.5.2
415
+ rubygems_version: 2.5.2.2
404
416
  signing_key:
405
417
  specification_version: 4
406
418
  summary: OAuth 2 provider for Rails and Grape
@@ -430,9 +442,9 @@ test_files:
430
442
  - spec/dummy/config/environments/development.rb
431
443
  - spec/dummy/config/environments/production.rb
432
444
  - spec/dummy/config/environments/test.rb
433
- - spec/dummy/config/initializers/active_record_belongs_to_required_by_default.rb
434
445
  - spec/dummy/config/initializers/backtrace_silencers.rb
435
446
  - spec/dummy/config/initializers/doorkeeper.rb
447
+ - spec/dummy/config/initializers/new_framework_defaults.rb
436
448
  - spec/dummy/config/initializers/secret_token.rb
437
449
  - spec/dummy/config/initializers/session_store.rb
438
450
  - spec/dummy/config/initializers/wrap_parameters.rb
@@ -453,8 +465,10 @@ test_files:
453
465
  - spec/generators/application_owner_generator_spec.rb
454
466
  - spec/generators/install_generator_spec.rb
455
467
  - spec/generators/migration_generator_spec.rb
468
+ - spec/generators/previous_refresh_token_generator_spec.rb
456
469
  - spec/generators/templates/routes.rb
457
470
  - spec/generators/views_generator_spec.rb
471
+ - spec/grape/grape_integration_spec.rb
458
472
  - spec/helpers/doorkeeper/dashboard_helper_spec.rb
459
473
  - spec/lib/config_spec.rb
460
474
  - spec/lib/doorkeeper_spec.rb
@@ -525,3 +539,4 @@ test_files:
525
539
  - spec/support/shared/controllers_shared_context.rb
526
540
  - spec/support/shared/models_shared_examples.rb
527
541
  - spec/validators/redirect_uri_validator_spec.rb
542
+ - spec/version/version_spec.rb