cassette 1.0.18 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (41) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +89 -12
  3. data/lib/cassette/authentication/authorities.rb +34 -30
  4. data/lib/cassette/authentication/cache.rb +22 -18
  5. data/lib/cassette/authentication/filter.rb +52 -33
  6. data/lib/cassette/authentication/user.rb +20 -16
  7. data/lib/cassette/authentication.rb +39 -27
  8. data/lib/cassette/cache.rb +2 -2
  9. data/lib/cassette/client/cache.rb +39 -35
  10. data/lib/cassette/client.rb +5 -4
  11. data/lib/cassette/http/parsed_response.rb +20 -0
  12. data/lib/cassette/http/request.rb +44 -0
  13. data/lib/cassette/http/ticket_response.rb +48 -0
  14. data/lib/cassette/http.rb +8 -0
  15. data/lib/cassette/rubycas/helper.rb +2 -8
  16. data/lib/cassette/rubycas/routing_constraint.rb +23 -0
  17. data/lib/cassette/rubycas/single_sign_out_constraint.rb +8 -8
  18. data/lib/cassette/rubycas/user_factory.rb +14 -0
  19. data/lib/cassette/rubycas.rb +2 -0
  20. data/lib/cassette/version.rb +2 -2
  21. data/lib/cassette.rb +12 -50
  22. data/spec/cassette/authentication/authorities_spec.rb +1 -1
  23. data/spec/cassette/authentication/cache_spec.rb +40 -4
  24. data/spec/cassette/authentication/filter_spec.rb +106 -36
  25. data/spec/cassette/authentication/user_factory_spec.rb +42 -0
  26. data/spec/cassette/authentication/user_spec.rb +4 -3
  27. data/spec/cassette/authentication_spec.rb +24 -12
  28. data/spec/cassette/cache_spec.rb +0 -2
  29. data/spec/cassette/client/cache_spec.rb +1 -1
  30. data/spec/cassette/client_spec.rb +319 -0
  31. data/spec/cassette/errors_spec.rb +1 -1
  32. data/spec/cassette/http/parsed_response_spec.rb +27 -0
  33. data/spec/cassette/http/request_spec.rb +41 -0
  34. data/spec/cassette/http/ticket_response_spec.rb +41 -0
  35. data/spec/cassette/rubycas/routing_constraint_spec.rb +84 -0
  36. data/spec/cassette_spec.rb +36 -0
  37. data/spec/integration/cas/client_spec.rb +0 -3
  38. data/spec/spec_helper.rb +5 -0
  39. data/spec/support/controllers/controller_mock.rb +19 -0
  40. metadata +98 -36
  41. data/spec/cas_spec.rb +0 -78
metadata CHANGED
@@ -1,181 +1,223 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cassette
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.18
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ricardo Hermida Ruiz
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-08-25 00:00:00.000000000 Z
11
+ date: 2016-04-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">"
17
+ - - '>'
18
18
  - !ruby/object:Gem::Version
19
19
  version: '0.9'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ">"
24
+ - - '>'
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0.9'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: libxml-ruby
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ">="
31
+ - - '>='
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ">="
38
+ - - '>='
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: activesupport
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ">"
45
+ - - '>'
46
46
  - !ruby/object:Gem::Version
47
47
  version: 3.1.0
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ">"
52
+ - - '>'
53
53
  - !ruby/object:Gem::Version
54
54
  version: 3.1.0
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: rspec
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - "~>"
59
+ - - ~>
60
60
  - !ruby/object:Gem::Version
61
61
  version: '3.0'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - "~>"
66
+ - - ~>
67
67
  - !ruby/object:Gem::Version
68
68
  version: '3.0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rspec-its
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'
69
83
  - !ruby/object:Gem::Dependency
70
84
  name: rake
71
85
  requirement: !ruby/object:Gem::Requirement
72
86
  requirements:
73
- - - ">="
87
+ - - '>='
74
88
  - !ruby/object:Gem::Version
75
89
  version: '0'
76
90
  type: :development
77
91
  prerelease: false
78
92
  version_requirements: !ruby/object:Gem::Requirement
79
93
  requirements:
80
- - - ">="
94
+ - - '>='
81
95
  - !ruby/object:Gem::Version
82
96
  version: '0'
83
97
  - !ruby/object:Gem::Dependency
84
98
  name: pry
85
99
  requirement: !ruby/object:Gem::Requirement
86
100
  requirements:
87
- - - ">="
101
+ - - '>='
88
102
  - !ruby/object:Gem::Version
89
103
  version: '0'
90
104
  type: :development
91
105
  prerelease: false
92
106
  version_requirements: !ruby/object:Gem::Requirement
93
107
  requirements:
94
- - - ">="
108
+ - - '>='
95
109
  - !ruby/object:Gem::Version
96
110
  version: '0'
97
111
  - !ruby/object:Gem::Dependency
98
112
  name: rubycas-client
99
113
  requirement: !ruby/object:Gem::Requirement
100
114
  requirements:
101
- - - ">="
115
+ - - '>='
102
116
  - !ruby/object:Gem::Version
103
117
  version: '0'
104
118
  type: :development
105
119
  prerelease: false
106
120
  version_requirements: !ruby/object:Gem::Requirement
107
121
  requirements:
108
- - - ">="
122
+ - - '>='
109
123
  - !ruby/object:Gem::Version
110
124
  version: '0'
111
125
  - !ruby/object:Gem::Dependency
112
126
  name: simplecov
113
127
  requirement: !ruby/object:Gem::Requirement
114
128
  requirements:
115
- - - ">="
129
+ - - '>='
116
130
  - !ruby/object:Gem::Version
117
131
  version: '0'
118
132
  type: :development
119
133
  prerelease: false
120
134
  version_requirements: !ruby/object:Gem::Requirement
121
135
  requirements:
122
- - - ">="
136
+ - - '>='
123
137
  - !ruby/object:Gem::Version
124
138
  version: '0'
125
139
  - !ruby/object:Gem::Dependency
126
140
  name: rubocop
127
141
  requirement: !ruby/object:Gem::Requirement
128
142
  requirements:
129
- - - ">="
143
+ - - '>='
130
144
  - !ruby/object:Gem::Version
131
145
  version: '0'
132
146
  type: :development
133
147
  prerelease: false
134
148
  version_requirements: !ruby/object:Gem::Requirement
135
149
  requirements:
136
- - - ">="
150
+ - - '>='
137
151
  - !ruby/object:Gem::Version
138
152
  version: '0'
139
153
  - !ruby/object:Gem::Dependency
140
154
  name: simplecov-rcov
141
155
  requirement: !ruby/object:Gem::Requirement
142
156
  requirements:
143
- - - ">="
157
+ - - '>='
144
158
  - !ruby/object:Gem::Version
145
159
  version: '0'
146
160
  type: :development
147
161
  prerelease: false
148
162
  version_requirements: !ruby/object:Gem::Requirement
149
163
  requirements:
150
- - - ">="
164
+ - - '>='
151
165
  - !ruby/object:Gem::Version
152
166
  version: '0'
153
167
  - !ruby/object:Gem::Dependency
154
168
  name: simplecov-gem-adapter
155
169
  requirement: !ruby/object:Gem::Requirement
156
170
  requirements:
157
- - - ">="
171
+ - - '>='
158
172
  - !ruby/object:Gem::Version
159
173
  version: '0'
160
174
  type: :development
161
175
  prerelease: false
162
176
  version_requirements: !ruby/object:Gem::Requirement
163
177
  requirements:
164
- - - ">="
178
+ - - '>='
165
179
  - !ruby/object:Gem::Version
166
180
  version: '0'
167
181
  - !ruby/object:Gem::Dependency
168
182
  name: rspec_junit_formatter
169
183
  requirement: !ruby/object:Gem::Requirement
170
184
  requirements:
171
- - - ">="
185
+ - - '>='
186
+ - !ruby/object:Gem::Version
187
+ version: '0'
188
+ type: :development
189
+ prerelease: false
190
+ version_requirements: !ruby/object:Gem::Requirement
191
+ requirements:
192
+ - - '>='
193
+ - !ruby/object:Gem::Version
194
+ version: '0'
195
+ - !ruby/object:Gem::Dependency
196
+ name: webmock
197
+ requirement: !ruby/object:Gem::Requirement
198
+ requirements:
199
+ - - '>='
172
200
  - !ruby/object:Gem::Version
173
201
  version: '0'
174
202
  type: :development
175
203
  prerelease: false
176
204
  version_requirements: !ruby/object:Gem::Requirement
177
205
  requirements:
178
- - - ">="
206
+ - - '>='
207
+ - !ruby/object:Gem::Version
208
+ version: '0'
209
+ - !ruby/object:Gem::Dependency
210
+ name: faker
211
+ requirement: !ruby/object:Gem::Requirement
212
+ requirements:
213
+ - - '>='
214
+ - !ruby/object:Gem::Version
215
+ version: '0'
216
+ type: :development
217
+ prerelease: false
218
+ version_requirements: !ruby/object:Gem::Requirement
219
+ requirements:
220
+ - - '>='
179
221
  - !ruby/object:Gem::Version
180
222
  version: '0'
181
223
  description: Client for generating and validating CAS TGT/STs
@@ -186,37 +228,50 @@ extensions: []
186
228
  extra_rdoc_files: []
187
229
  files:
188
230
  - README.md
189
- - lib/cassette.rb
190
- - lib/cassette/authentication.rb
191
231
  - lib/cassette/authentication/authorities.rb
192
232
  - lib/cassette/authentication/cache.rb
193
233
  - lib/cassette/authentication/filter.rb
194
234
  - lib/cassette/authentication/user.rb
235
+ - lib/cassette/authentication.rb
195
236
  - lib/cassette/cache.rb
196
- - lib/cassette/client.rb
197
237
  - lib/cassette/client/cache.rb
198
- - lib/cassette/errors.rb
238
+ - lib/cassette/client.rb
199
239
  - lib/cassette/errors/not_a_customer.rb
200
240
  - lib/cassette/errors/not_an_employee.rb
201
- - lib/cassette/rubycas.rb
241
+ - lib/cassette/errors.rb
242
+ - lib/cassette/http/parsed_response.rb
243
+ - lib/cassette/http/request.rb
244
+ - lib/cassette/http/ticket_response.rb
245
+ - lib/cassette/http.rb
202
246
  - lib/cassette/rubycas/helper.rb
203
247
  - lib/cassette/rubycas/not_single_sign_out_constraint.rb
248
+ - lib/cassette/rubycas/routing_constraint.rb
204
249
  - lib/cassette/rubycas/single_sign_out_constraint.rb
250
+ - lib/cassette/rubycas/user_factory.rb
251
+ - lib/cassette/rubycas.rb
205
252
  - lib/cassette/version.rb
206
- - spec/cas_spec.rb
253
+ - lib/cassette.rb
207
254
  - spec/cassette/authentication/authorities_spec.rb
208
255
  - spec/cassette/authentication/cache_spec.rb
209
256
  - spec/cassette/authentication/filter_spec.rb
257
+ - spec/cassette/authentication/user_factory_spec.rb
210
258
  - spec/cassette/authentication/user_spec.rb
211
259
  - spec/cassette/authentication_spec.rb
212
260
  - spec/cassette/cache_spec.rb
213
261
  - spec/cassette/client/cache_spec.rb
262
+ - spec/cassette/client_spec.rb
214
263
  - spec/cassette/errors_spec.rb
264
+ - spec/cassette/http/parsed_response_spec.rb
265
+ - spec/cassette/http/request_spec.rb
266
+ - spec/cassette/http/ticket_response_spec.rb
267
+ - spec/cassette/rubycas/routing_constraint_spec.rb
268
+ - spec/cassette_spec.rb
215
269
  - spec/config.yml
216
270
  - spec/fixtures/cas/fail.xml
217
271
  - spec/fixtures/cas/success.xml
218
272
  - spec/integration/cas/client_spec.rb
219
273
  - spec/spec_helper.rb
274
+ - spec/support/controllers/controller_mock.rb
220
275
  homepage: http://github.com/locaweb/cassette
221
276
  licenses: []
222
277
  metadata: {}
@@ -226,32 +281,39 @@ require_paths:
226
281
  - lib
227
282
  required_ruby_version: !ruby/object:Gem::Requirement
228
283
  requirements:
229
- - - ">="
284
+ - - '>='
230
285
  - !ruby/object:Gem::Version
231
286
  version: '0'
232
287
  required_rubygems_version: !ruby/object:Gem::Requirement
233
288
  requirements:
234
- - - ">="
289
+ - - '>='
235
290
  - !ruby/object:Gem::Version
236
291
  version: '0'
237
292
  requirements: []
238
293
  rubyforge_project:
239
- rubygems_version: 2.2.2
294
+ rubygems_version: 2.0.14
240
295
  signing_key:
241
296
  specification_version: 4
242
297
  summary: Generates, validates and caches TGTs and STs
243
298
  test_files:
244
- - spec/cas_spec.rb
245
299
  - spec/cassette/authentication/authorities_spec.rb
246
300
  - spec/cassette/authentication/cache_spec.rb
247
301
  - spec/cassette/authentication/filter_spec.rb
302
+ - spec/cassette/authentication/user_factory_spec.rb
248
303
  - spec/cassette/authentication/user_spec.rb
249
304
  - spec/cassette/authentication_spec.rb
250
305
  - spec/cassette/cache_spec.rb
251
306
  - spec/cassette/client/cache_spec.rb
307
+ - spec/cassette/client_spec.rb
252
308
  - spec/cassette/errors_spec.rb
309
+ - spec/cassette/http/parsed_response_spec.rb
310
+ - spec/cassette/http/request_spec.rb
311
+ - spec/cassette/http/ticket_response_spec.rb
312
+ - spec/cassette/rubycas/routing_constraint_spec.rb
313
+ - spec/cassette_spec.rb
253
314
  - spec/config.yml
254
315
  - spec/fixtures/cas/fail.xml
255
316
  - spec/fixtures/cas/success.xml
256
317
  - spec/integration/cas/client_spec.rb
257
318
  - spec/spec_helper.rb
319
+ - spec/support/controllers/controller_mock.rb
data/spec/cas_spec.rb DELETED
@@ -1,78 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Cassette do
4
- let(:uri) { 'http://example.org/' }
5
- let(:response) do
6
- Faraday.new do |builder|
7
- builder.adapter :test do |stub|
8
- stub.post(uri, 'ping=pong') do |env|
9
- headers = env.request_headers
10
- [200, {}, '{ok: true}']
11
- end
12
- end
13
- end
14
- end
15
-
16
- let(:failed_response) do
17
- Faraday.new do |builder|
18
- builder.adapter :test do |stub|
19
- stub.post(uri, 'ping=pong') do |env|
20
- headers = env.request_headers
21
- [500, {}, '{ok: false}']
22
- end
23
- end
24
- end
25
- end
26
-
27
- describe '.new_request' do
28
- it 'returns an instance' do
29
- # damn coverage
30
- expect(Cassette.new_request(uri, 5)).to be_instance_of(Faraday::Connection)
31
- end
32
- end
33
-
34
- describe '.post' do
35
- it 'forwards requests' do
36
- allow(Cassette).to receive(:new_request).with(uri, 5).and_return(response)
37
- Cassette.post(uri, { ping: :pong }, 5)
38
- end
39
-
40
- it 'raises an exception when failed' do
41
- allow(Cassette).to receive(:new_request).with(uri, 5).and_return(failed_response)
42
- expect { Cassette.post(uri, { ping: :pong }, 5) }.to raise_error(Cassette::Errors::InternalServerError)
43
- end
44
- end
45
-
46
- def keeping_logger(&block)
47
- original_logger = Cassette.logger
48
- block.call
49
- Cassette.logger = original_logger
50
- end
51
-
52
- describe '.logger' do
53
- it 'returns a default instance' do
54
- expect(Cassette.logger).not_to be_nil
55
- expect(Cassette.logger.is_a?(Logger)).to eql(true)
56
- end
57
-
58
- it 'returns rails logger when Rails is available' do
59
- keeping_logger do
60
- Cassette.logger = nil
61
- rails = double('Rails')
62
- expect(rails).to receive(:logger).and_return(rails).at_least(:once)
63
- stub_const('Rails', rails)
64
- expect(Cassette.logger).to eql(rails)
65
- end
66
- end
67
- end
68
-
69
- describe '.logger=' do
70
- let(:logger) { Logger.new(STDOUT) }
71
- it 'defines the logger instance' do
72
- keeping_logger do
73
- Cassette.logger = logger
74
- expect(Cassette.logger).to eq(logger)
75
- end
76
- end
77
- end
78
- end