google-authsub 0.0.4
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/.gitignore +1 -0
- data/MIT-LICENSE +20 -0
- data/README +98 -0
- data/Rakefile +19 -0
- data/VERSION +1 -0
- data/coverage/-Library-Ruby-Gems-1_8-gems-FakeWeb-1_1_2-lib-fake_net_http_rb.html +679 -0
- data/coverage/-Library-Ruby-Gems-1_8-gems-FakeWeb-1_1_2-lib-fake_web_rb.html +843 -0
- data/coverage/-Library-Ruby-Gems-1_8-gems-rcov-0_8_1_2_0-lib-rcov_rb.html +1598 -0
- data/coverage/index.html +360 -0
- data/coverage/lib-googleauthsub_rb.html +877 -0
- data/coverage/spec-googleauthsub_spec_rb.html +950 -0
- data/coverage/spec-spec_helper_rb.html +640 -0
- data/doc/classes/AuthEchoServlet.html +152 -0
- data/doc/classes/AuthEchoServlet.src/M000001.html +20 -0
- data/doc/classes/AuthEchoServlet.src/M000002.html +18 -0
- data/doc/classes/GData/AuthSubError.html +139 -0
- data/doc/classes/GData/AuthSubError.src/M000019.html +18 -0
- data/doc/classes/GData/Error.html +111 -0
- data/doc/classes/GData/GoogleAuthSub.html +521 -0
- data/doc/classes/GData/GoogleAuthSub.src/M000001.html +29 -0
- data/doc/classes/GData/GoogleAuthSub.src/M000002.html +22 -0
- data/doc/classes/GData/GoogleAuthSub.src/M000003.html +29 -0
- data/doc/classes/GData/GoogleAuthSub.src/M000004.html +22 -0
- data/doc/classes/GData/GoogleAuthSub.src/M000005.html +24 -0
- data/doc/classes/GData/GoogleAuthSub.src/M000006.html +19 -0
- data/doc/classes/GData/GoogleAuthSub.src/M000007.html +18 -0
- data/doc/classes/GData/GoogleAuthSub.src/M000008.html +18 -0
- data/doc/classes/GData/GoogleAuthSub.src/M000009.html +24 -0
- data/doc/classes/GData/GoogleAuthSub.src/M000010.html +25 -0
- data/doc/classes/GData/GoogleAuthSub.src/M000011.html +30 -0
- data/doc/classes/GData/GoogleAuthSub.src/M000012.html +18 -0
- data/doc/classes/GData/GoogleAuthSub.src/M000013.html +18 -0
- data/doc/classes/GData/GoogleAuthSub.src/M000014.html +18 -0
- data/doc/classes/GData/GoogleAuthSub.src/M000015.html +18 -0
- data/doc/classes/GData/GoogleAuthSub.src/M000016.html +20 -0
- data/doc/classes/GData/GoogleAuthSub.src/M000017.html +20 -0
- data/doc/classes/GData/GoogleAuthSub.src/M000018.html +19 -0
- data/doc/classes/GData.html +162 -0
- data/doc/created.rid +1 -0
- data/doc/files/googleauthsub_rb.html +140 -0
- data/doc/files/lib/googleauthsub_rb.html +140 -0
- data/doc/files/spec/googleauthsub_spec_rb.html +146 -0
- data/doc/files/spec/googleresponder_rb.html +121 -0
- data/doc/files/spec/spec_helper_rb.html +149 -0
- data/doc/fr_class_index.html +31 -0
- data/doc/fr_file_index.html +30 -0
- data/doc/fr_method_index.html +45 -0
- data/doc/index.html +24 -0
- data/doc/rdoc-style.css +208 -0
- data/google-authsub-0.0.2.gem +0 -0
- data/google-authsub-0.0.3.gem +0 -0
- data/google-authsub.gemspec +109 -0
- data/lib/googleauthsub.rb +271 -0
- data/live test/authsub_test.html +40 -0
- data/live test/gastest.rb +90 -0
- data/spec/googleauthsub_spec.rb +350 -0
- data/spec/googleresponder.rb +26 -0
- data/spec/mock responses/bad_token_info.txt +11 -0
- data/spec/mock responses/calendar.txt +11 -0
- data/spec/mock responses/revoke_token.txt +7 -0
- data/spec/mock responses/revoked_token.txt +17 -0
- data/spec/mock responses/session_token.txt +9 -0
- data/spec/mock responses/token_info.txt +11 -0
- data/spec/mock responses/unauthorized.txt +18 -0
- data/spec/mock_certs/test_private_key.pem +15 -0
- data/spec/mock_certs/test_public_key.pem +6 -0
- data/spec/spec_helper.rb +30 -0
- data/spec/spec_opts +7 -0
- metadata +125 -0
|
@@ -0,0 +1,843 @@
|
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
2
|
+
<html lang='en' xml:lang='en' xmlns='http://www.w3.org/1999/xhtml'><head><title>/Library/Ruby/Gems/1.8/gems/FakeWeb-1.1.2/lib/fake_web.rb - C0 code coverage information</title>
|
|
3
|
+
<style type='text/css'>body { background-color: rgb(240, 240, 245); }</style>
|
|
4
|
+
<style type='text/css'>span.cross-ref-title {
|
|
5
|
+
font-size: 140%;
|
|
6
|
+
}
|
|
7
|
+
span.cross-ref a {
|
|
8
|
+
text-decoration: none;
|
|
9
|
+
}
|
|
10
|
+
span.cross-ref {
|
|
11
|
+
background-color:#f3f7fa;
|
|
12
|
+
border: 1px dashed #333;
|
|
13
|
+
margin: 1em;
|
|
14
|
+
padding: 0.5em;
|
|
15
|
+
overflow: hidden;
|
|
16
|
+
}
|
|
17
|
+
a.crossref-toggle {
|
|
18
|
+
text-decoration: none;
|
|
19
|
+
}
|
|
20
|
+
span.marked0 {
|
|
21
|
+
background-color: rgb(185, 210, 200);
|
|
22
|
+
display: block;
|
|
23
|
+
}
|
|
24
|
+
span.marked1 {
|
|
25
|
+
background-color: rgb(190, 215, 205);
|
|
26
|
+
display: block;
|
|
27
|
+
}
|
|
28
|
+
span.inferred0 {
|
|
29
|
+
background-color: rgb(175, 200, 200);
|
|
30
|
+
display: block;
|
|
31
|
+
}
|
|
32
|
+
span.inferred1 {
|
|
33
|
+
background-color: rgb(180, 205, 205);
|
|
34
|
+
display: block;
|
|
35
|
+
}
|
|
36
|
+
span.uncovered0 {
|
|
37
|
+
background-color: rgb(225, 110, 110);
|
|
38
|
+
display: block;
|
|
39
|
+
}
|
|
40
|
+
span.uncovered1 {
|
|
41
|
+
background-color: rgb(235, 120, 120);
|
|
42
|
+
display: block;
|
|
43
|
+
}
|
|
44
|
+
span.overview {
|
|
45
|
+
border-bottom: 8px solid black;
|
|
46
|
+
}
|
|
47
|
+
div.overview {
|
|
48
|
+
border-bottom: 8px solid black;
|
|
49
|
+
}
|
|
50
|
+
body {
|
|
51
|
+
font-family: verdana, arial, helvetica;
|
|
52
|
+
}
|
|
53
|
+
div.footer {
|
|
54
|
+
font-size: 68%;
|
|
55
|
+
margin-top: 1.5em;
|
|
56
|
+
}
|
|
57
|
+
h1, h2, h3, h4, h5, h6 {
|
|
58
|
+
margin-bottom: 0.5em;
|
|
59
|
+
}
|
|
60
|
+
h5 {
|
|
61
|
+
margin-top: 0.5em;
|
|
62
|
+
}
|
|
63
|
+
.hidden {
|
|
64
|
+
display: none;
|
|
65
|
+
}
|
|
66
|
+
div.separator {
|
|
67
|
+
height: 10px;
|
|
68
|
+
}
|
|
69
|
+
/* Commented out for better readability, esp. on IE */
|
|
70
|
+
/*
|
|
71
|
+
table tr td, table tr th {
|
|
72
|
+
font-size: 68%;
|
|
73
|
+
}
|
|
74
|
+
td.value table tr td {
|
|
75
|
+
font-size: 11px;
|
|
76
|
+
}
|
|
77
|
+
*/
|
|
78
|
+
table.percent_graph {
|
|
79
|
+
height: 12px;
|
|
80
|
+
border: #808080 1px solid;
|
|
81
|
+
empty-cells: show;
|
|
82
|
+
}
|
|
83
|
+
table.percent_graph td.covered {
|
|
84
|
+
height: 10px;
|
|
85
|
+
background: #00f000;
|
|
86
|
+
}
|
|
87
|
+
table.percent_graph td.uncovered {
|
|
88
|
+
height: 10px;
|
|
89
|
+
background: #e00000;
|
|
90
|
+
}
|
|
91
|
+
table.percent_graph td.NA {
|
|
92
|
+
height: 10px;
|
|
93
|
+
background: #eaeaea;
|
|
94
|
+
}
|
|
95
|
+
table.report {
|
|
96
|
+
border-collapse: collapse;
|
|
97
|
+
width: 100%;
|
|
98
|
+
}
|
|
99
|
+
table.report td.heading {
|
|
100
|
+
background: #dcecff;
|
|
101
|
+
border: #d0d0d0 1px solid;
|
|
102
|
+
font-weight: bold;
|
|
103
|
+
text-align: center;
|
|
104
|
+
}
|
|
105
|
+
table.report td.heading:hover {
|
|
106
|
+
background: #c0ffc0;
|
|
107
|
+
}
|
|
108
|
+
table.report td.text {
|
|
109
|
+
border: #d0d0d0 1px solid;
|
|
110
|
+
}
|
|
111
|
+
table.report td.value,
|
|
112
|
+
table.report td.lines_total,
|
|
113
|
+
table.report td.lines_code {
|
|
114
|
+
text-align: right;
|
|
115
|
+
border: #d0d0d0 1px solid;
|
|
116
|
+
}
|
|
117
|
+
table.report tr.light {
|
|
118
|
+
background-color: rgb(240, 240, 245);
|
|
119
|
+
}
|
|
120
|
+
table.report tr.dark {
|
|
121
|
+
background-color: rgb(230, 230, 235);
|
|
122
|
+
}
|
|
123
|
+
</style>
|
|
124
|
+
<script type='text/javascript'>
|
|
125
|
+
// <![CDATA[
|
|
126
|
+
function toggleCode( id ) {
|
|
127
|
+
if ( document.getElementById )
|
|
128
|
+
elem = document.getElementById( id );
|
|
129
|
+
else if ( document.all )
|
|
130
|
+
elem = eval( "document.all." + id );
|
|
131
|
+
else
|
|
132
|
+
return false;
|
|
133
|
+
|
|
134
|
+
elemStyle = elem.style;
|
|
135
|
+
|
|
136
|
+
if ( elemStyle.display != "block" ) {
|
|
137
|
+
elemStyle.display = "block"
|
|
138
|
+
} else {
|
|
139
|
+
elemStyle.display = "none"
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
return true;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
// Make cross-references hidden by default
|
|
146
|
+
document.writeln( "<style type=\"text/css\">span.cross-ref { display: none }</style>" )
|
|
147
|
+
// ]]>
|
|
148
|
+
</script>
|
|
149
|
+
<style type='text/css'>span.run0 {
|
|
150
|
+
background-color: rgb(178, 204, 255);
|
|
151
|
+
display: block;
|
|
152
|
+
}
|
|
153
|
+
span.run1 {
|
|
154
|
+
background-color: rgb(178, 206, 255);
|
|
155
|
+
display: block;
|
|
156
|
+
}
|
|
157
|
+
span.run2 {
|
|
158
|
+
background-color: rgb(178, 209, 255);
|
|
159
|
+
display: block;
|
|
160
|
+
}
|
|
161
|
+
span.run3 {
|
|
162
|
+
background-color: rgb(178, 211, 255);
|
|
163
|
+
display: block;
|
|
164
|
+
}
|
|
165
|
+
span.run4 {
|
|
166
|
+
background-color: rgb(178, 214, 255);
|
|
167
|
+
display: block;
|
|
168
|
+
}
|
|
169
|
+
span.run5 {
|
|
170
|
+
background-color: rgb(178, 218, 255);
|
|
171
|
+
display: block;
|
|
172
|
+
}
|
|
173
|
+
span.run6 {
|
|
174
|
+
background-color: rgb(178, 220, 255);
|
|
175
|
+
display: block;
|
|
176
|
+
}
|
|
177
|
+
span.run7 {
|
|
178
|
+
background-color: rgb(178, 223, 255);
|
|
179
|
+
display: block;
|
|
180
|
+
}
|
|
181
|
+
span.run8 {
|
|
182
|
+
background-color: rgb(178, 225, 255);
|
|
183
|
+
display: block;
|
|
184
|
+
}
|
|
185
|
+
span.run9 {
|
|
186
|
+
background-color: rgb(178, 228, 255);
|
|
187
|
+
display: block;
|
|
188
|
+
}
|
|
189
|
+
span.run10 {
|
|
190
|
+
background-color: rgb(178, 232, 255);
|
|
191
|
+
display: block;
|
|
192
|
+
}
|
|
193
|
+
span.run11 {
|
|
194
|
+
background-color: rgb(178, 234, 255);
|
|
195
|
+
display: block;
|
|
196
|
+
}
|
|
197
|
+
span.run12 {
|
|
198
|
+
background-color: rgb(178, 237, 255);
|
|
199
|
+
display: block;
|
|
200
|
+
}
|
|
201
|
+
span.run13 {
|
|
202
|
+
background-color: rgb(178, 239, 255);
|
|
203
|
+
display: block;
|
|
204
|
+
}
|
|
205
|
+
span.run14 {
|
|
206
|
+
background-color: rgb(178, 242, 255);
|
|
207
|
+
display: block;
|
|
208
|
+
}
|
|
209
|
+
span.run15 {
|
|
210
|
+
background-color: rgb(178, 246, 255);
|
|
211
|
+
display: block;
|
|
212
|
+
}
|
|
213
|
+
span.run16 {
|
|
214
|
+
background-color: rgb(178, 248, 255);
|
|
215
|
+
display: block;
|
|
216
|
+
}
|
|
217
|
+
span.run17 {
|
|
218
|
+
background-color: rgb(178, 251, 255);
|
|
219
|
+
display: block;
|
|
220
|
+
}
|
|
221
|
+
span.run18 {
|
|
222
|
+
background-color: rgb(178, 253, 255);
|
|
223
|
+
display: block;
|
|
224
|
+
}
|
|
225
|
+
span.run19 {
|
|
226
|
+
background-color: rgb(178, 255, 253);
|
|
227
|
+
display: block;
|
|
228
|
+
}
|
|
229
|
+
span.run20 {
|
|
230
|
+
background-color: rgb(178, 255, 249);
|
|
231
|
+
display: block;
|
|
232
|
+
}
|
|
233
|
+
span.run21 {
|
|
234
|
+
background-color: rgb(178, 255, 247);
|
|
235
|
+
display: block;
|
|
236
|
+
}
|
|
237
|
+
span.run22 {
|
|
238
|
+
background-color: rgb(178, 255, 244);
|
|
239
|
+
display: block;
|
|
240
|
+
}
|
|
241
|
+
span.run23 {
|
|
242
|
+
background-color: rgb(178, 255, 242);
|
|
243
|
+
display: block;
|
|
244
|
+
}
|
|
245
|
+
span.run24 {
|
|
246
|
+
background-color: rgb(178, 255, 239);
|
|
247
|
+
display: block;
|
|
248
|
+
}
|
|
249
|
+
span.run25 {
|
|
250
|
+
background-color: rgb(178, 255, 235);
|
|
251
|
+
display: block;
|
|
252
|
+
}
|
|
253
|
+
span.run26 {
|
|
254
|
+
background-color: rgb(178, 255, 233);
|
|
255
|
+
display: block;
|
|
256
|
+
}
|
|
257
|
+
span.run27 {
|
|
258
|
+
background-color: rgb(178, 255, 230);
|
|
259
|
+
display: block;
|
|
260
|
+
}
|
|
261
|
+
span.run28 {
|
|
262
|
+
background-color: rgb(178, 255, 228);
|
|
263
|
+
display: block;
|
|
264
|
+
}
|
|
265
|
+
span.run29 {
|
|
266
|
+
background-color: rgb(178, 255, 225);
|
|
267
|
+
display: block;
|
|
268
|
+
}
|
|
269
|
+
span.run30 {
|
|
270
|
+
background-color: rgb(178, 255, 221);
|
|
271
|
+
display: block;
|
|
272
|
+
}
|
|
273
|
+
span.run31 {
|
|
274
|
+
background-color: rgb(178, 255, 219);
|
|
275
|
+
display: block;
|
|
276
|
+
}
|
|
277
|
+
span.run32 {
|
|
278
|
+
background-color: rgb(178, 255, 216);
|
|
279
|
+
display: block;
|
|
280
|
+
}
|
|
281
|
+
span.run33 {
|
|
282
|
+
background-color: rgb(178, 255, 214);
|
|
283
|
+
display: block;
|
|
284
|
+
}
|
|
285
|
+
span.run34 {
|
|
286
|
+
background-color: rgb(178, 255, 211);
|
|
287
|
+
display: block;
|
|
288
|
+
}
|
|
289
|
+
span.run35 {
|
|
290
|
+
background-color: rgb(178, 255, 207);
|
|
291
|
+
display: block;
|
|
292
|
+
}
|
|
293
|
+
span.run36 {
|
|
294
|
+
background-color: rgb(178, 255, 205);
|
|
295
|
+
display: block;
|
|
296
|
+
}
|
|
297
|
+
span.run37 {
|
|
298
|
+
background-color: rgb(178, 255, 202);
|
|
299
|
+
display: block;
|
|
300
|
+
}
|
|
301
|
+
span.run38 {
|
|
302
|
+
background-color: rgb(178, 255, 200);
|
|
303
|
+
display: block;
|
|
304
|
+
}
|
|
305
|
+
span.run39 {
|
|
306
|
+
background-color: rgb(178, 255, 197);
|
|
307
|
+
display: block;
|
|
308
|
+
}
|
|
309
|
+
span.run40 {
|
|
310
|
+
background-color: rgb(178, 255, 193);
|
|
311
|
+
display: block;
|
|
312
|
+
}
|
|
313
|
+
span.run41 {
|
|
314
|
+
background-color: rgb(178, 255, 191);
|
|
315
|
+
display: block;
|
|
316
|
+
}
|
|
317
|
+
span.run42 {
|
|
318
|
+
background-color: rgb(178, 255, 188);
|
|
319
|
+
display: block;
|
|
320
|
+
}
|
|
321
|
+
span.run43 {
|
|
322
|
+
background-color: rgb(178, 255, 186);
|
|
323
|
+
display: block;
|
|
324
|
+
}
|
|
325
|
+
span.run44 {
|
|
326
|
+
background-color: rgb(178, 255, 183);
|
|
327
|
+
display: block;
|
|
328
|
+
}
|
|
329
|
+
span.run45 {
|
|
330
|
+
background-color: rgb(178, 255, 179);
|
|
331
|
+
display: block;
|
|
332
|
+
}
|
|
333
|
+
span.run46 {
|
|
334
|
+
background-color: rgb(179, 255, 178);
|
|
335
|
+
display: block;
|
|
336
|
+
}
|
|
337
|
+
span.run47 {
|
|
338
|
+
background-color: rgb(182, 255, 178);
|
|
339
|
+
display: block;
|
|
340
|
+
}
|
|
341
|
+
span.run48 {
|
|
342
|
+
background-color: rgb(184, 255, 178);
|
|
343
|
+
display: block;
|
|
344
|
+
}
|
|
345
|
+
span.run49 {
|
|
346
|
+
background-color: rgb(187, 255, 178);
|
|
347
|
+
display: block;
|
|
348
|
+
}
|
|
349
|
+
span.run50 {
|
|
350
|
+
background-color: rgb(191, 255, 178);
|
|
351
|
+
display: block;
|
|
352
|
+
}
|
|
353
|
+
span.run51 {
|
|
354
|
+
background-color: rgb(193, 255, 178);
|
|
355
|
+
display: block;
|
|
356
|
+
}
|
|
357
|
+
span.run52 {
|
|
358
|
+
background-color: rgb(196, 255, 178);
|
|
359
|
+
display: block;
|
|
360
|
+
}
|
|
361
|
+
span.run53 {
|
|
362
|
+
background-color: rgb(198, 255, 178);
|
|
363
|
+
display: block;
|
|
364
|
+
}
|
|
365
|
+
span.run54 {
|
|
366
|
+
background-color: rgb(201, 255, 178);
|
|
367
|
+
display: block;
|
|
368
|
+
}
|
|
369
|
+
span.run55 {
|
|
370
|
+
background-color: rgb(205, 255, 178);
|
|
371
|
+
display: block;
|
|
372
|
+
}
|
|
373
|
+
span.run56 {
|
|
374
|
+
background-color: rgb(207, 255, 178);
|
|
375
|
+
display: block;
|
|
376
|
+
}
|
|
377
|
+
span.run57 {
|
|
378
|
+
background-color: rgb(210, 255, 178);
|
|
379
|
+
display: block;
|
|
380
|
+
}
|
|
381
|
+
span.run58 {
|
|
382
|
+
background-color: rgb(212, 255, 178);
|
|
383
|
+
display: block;
|
|
384
|
+
}
|
|
385
|
+
span.run59 {
|
|
386
|
+
background-color: rgb(215, 255, 178);
|
|
387
|
+
display: block;
|
|
388
|
+
}
|
|
389
|
+
span.run60 {
|
|
390
|
+
background-color: rgb(219, 255, 178);
|
|
391
|
+
display: block;
|
|
392
|
+
}
|
|
393
|
+
span.run61 {
|
|
394
|
+
background-color: rgb(221, 255, 178);
|
|
395
|
+
display: block;
|
|
396
|
+
}
|
|
397
|
+
span.run62 {
|
|
398
|
+
background-color: rgb(224, 255, 178);
|
|
399
|
+
display: block;
|
|
400
|
+
}
|
|
401
|
+
span.run63 {
|
|
402
|
+
background-color: rgb(226, 255, 178);
|
|
403
|
+
display: block;
|
|
404
|
+
}
|
|
405
|
+
span.run64 {
|
|
406
|
+
background-color: rgb(229, 255, 178);
|
|
407
|
+
display: block;
|
|
408
|
+
}
|
|
409
|
+
span.run65 {
|
|
410
|
+
background-color: rgb(233, 255, 178);
|
|
411
|
+
display: block;
|
|
412
|
+
}
|
|
413
|
+
span.run66 {
|
|
414
|
+
background-color: rgb(235, 255, 178);
|
|
415
|
+
display: block;
|
|
416
|
+
}
|
|
417
|
+
span.run67 {
|
|
418
|
+
background-color: rgb(238, 255, 178);
|
|
419
|
+
display: block;
|
|
420
|
+
}
|
|
421
|
+
span.run68 {
|
|
422
|
+
background-color: rgb(240, 255, 178);
|
|
423
|
+
display: block;
|
|
424
|
+
}
|
|
425
|
+
span.run69 {
|
|
426
|
+
background-color: rgb(243, 255, 178);
|
|
427
|
+
display: block;
|
|
428
|
+
}
|
|
429
|
+
span.run70 {
|
|
430
|
+
background-color: rgb(247, 255, 178);
|
|
431
|
+
display: block;
|
|
432
|
+
}
|
|
433
|
+
span.run71 {
|
|
434
|
+
background-color: rgb(249, 255, 178);
|
|
435
|
+
display: block;
|
|
436
|
+
}
|
|
437
|
+
span.run72 {
|
|
438
|
+
background-color: rgb(252, 255, 178);
|
|
439
|
+
display: block;
|
|
440
|
+
}
|
|
441
|
+
span.run73 {
|
|
442
|
+
background-color: rgb(255, 255, 178);
|
|
443
|
+
display: block;
|
|
444
|
+
}
|
|
445
|
+
span.run74 {
|
|
446
|
+
background-color: rgb(255, 252, 178);
|
|
447
|
+
display: block;
|
|
448
|
+
}
|
|
449
|
+
span.run75 {
|
|
450
|
+
background-color: rgb(255, 248, 178);
|
|
451
|
+
display: block;
|
|
452
|
+
}
|
|
453
|
+
span.run76 {
|
|
454
|
+
background-color: rgb(255, 246, 178);
|
|
455
|
+
display: block;
|
|
456
|
+
}
|
|
457
|
+
span.run77 {
|
|
458
|
+
background-color: rgb(255, 243, 178);
|
|
459
|
+
display: block;
|
|
460
|
+
}
|
|
461
|
+
span.run78 {
|
|
462
|
+
background-color: rgb(255, 240, 178);
|
|
463
|
+
display: block;
|
|
464
|
+
}
|
|
465
|
+
span.run79 {
|
|
466
|
+
background-color: rgb(255, 238, 178);
|
|
467
|
+
display: block;
|
|
468
|
+
}
|
|
469
|
+
span.run80 {
|
|
470
|
+
background-color: rgb(255, 234, 178);
|
|
471
|
+
display: block;
|
|
472
|
+
}
|
|
473
|
+
span.run81 {
|
|
474
|
+
background-color: rgb(255, 232, 178);
|
|
475
|
+
display: block;
|
|
476
|
+
}
|
|
477
|
+
span.run82 {
|
|
478
|
+
background-color: rgb(255, 229, 178);
|
|
479
|
+
display: block;
|
|
480
|
+
}
|
|
481
|
+
span.run83 {
|
|
482
|
+
background-color: rgb(255, 226, 178);
|
|
483
|
+
display: block;
|
|
484
|
+
}
|
|
485
|
+
span.run84 {
|
|
486
|
+
background-color: rgb(255, 224, 178);
|
|
487
|
+
display: block;
|
|
488
|
+
}
|
|
489
|
+
span.run85 {
|
|
490
|
+
background-color: rgb(255, 220, 178);
|
|
491
|
+
display: block;
|
|
492
|
+
}
|
|
493
|
+
span.run86 {
|
|
494
|
+
background-color: rgb(255, 218, 178);
|
|
495
|
+
display: block;
|
|
496
|
+
}
|
|
497
|
+
span.run87 {
|
|
498
|
+
background-color: rgb(255, 215, 178);
|
|
499
|
+
display: block;
|
|
500
|
+
}
|
|
501
|
+
span.run88 {
|
|
502
|
+
background-color: rgb(255, 212, 178);
|
|
503
|
+
display: block;
|
|
504
|
+
}
|
|
505
|
+
span.run89 {
|
|
506
|
+
background-color: rgb(255, 210, 178);
|
|
507
|
+
display: block;
|
|
508
|
+
}
|
|
509
|
+
span.run90 {
|
|
510
|
+
background-color: rgb(255, 206, 178);
|
|
511
|
+
display: block;
|
|
512
|
+
}
|
|
513
|
+
span.run91 {
|
|
514
|
+
background-color: rgb(255, 204, 178);
|
|
515
|
+
display: block;
|
|
516
|
+
}
|
|
517
|
+
span.run92 {
|
|
518
|
+
background-color: rgb(255, 201, 178);
|
|
519
|
+
display: block;
|
|
520
|
+
}
|
|
521
|
+
span.run93 {
|
|
522
|
+
background-color: rgb(255, 198, 178);
|
|
523
|
+
display: block;
|
|
524
|
+
}
|
|
525
|
+
span.run94 {
|
|
526
|
+
background-color: rgb(255, 196, 178);
|
|
527
|
+
display: block;
|
|
528
|
+
}
|
|
529
|
+
span.run95 {
|
|
530
|
+
background-color: rgb(255, 192, 178);
|
|
531
|
+
display: block;
|
|
532
|
+
}
|
|
533
|
+
span.run96 {
|
|
534
|
+
background-color: rgb(255, 189, 178);
|
|
535
|
+
display: block;
|
|
536
|
+
}
|
|
537
|
+
span.run97 {
|
|
538
|
+
background-color: rgb(255, 187, 178);
|
|
539
|
+
display: block;
|
|
540
|
+
}
|
|
541
|
+
span.run98 {
|
|
542
|
+
background-color: rgb(255, 184, 178);
|
|
543
|
+
display: block;
|
|
544
|
+
}
|
|
545
|
+
span.run99 {
|
|
546
|
+
background-color: rgb(255, 182, 178);
|
|
547
|
+
display: block;
|
|
548
|
+
}
|
|
549
|
+
span.run100 {
|
|
550
|
+
background-color: rgb(255, 178, 178);
|
|
551
|
+
display: block;
|
|
552
|
+
}
|
|
553
|
+
</style>
|
|
554
|
+
</head>
|
|
555
|
+
<body><h3>C0 code coverage information</h3>
|
|
556
|
+
<p>Generated on Sat Jun 07 16:45:06 +1000 2008 with <a href='http://eigenclass.org/hiki/rcov'>rcov 0.8.1.2</a>
|
|
557
|
+
</p>
|
|
558
|
+
<hr/>
|
|
559
|
+
<pre><span class='marked0'>Code reported as executed by Ruby looks like this...
|
|
560
|
+
</span><span class='marked1'>and this: this line is also marked as covered.
|
|
561
|
+
</span><span class='inferred0'>Lines considered as run by rcov, but not reported by Ruby, look like this,
|
|
562
|
+
</span><span class='inferred1'>and this: these lines were inferred by rcov (using simple heuristics).
|
|
563
|
+
</span><span class='uncovered0'>Finally, here's a line marked as not executed.
|
|
564
|
+
</span></pre>
|
|
565
|
+
<table class='report'><thead><tr><td class='heading'>Name</td>
|
|
566
|
+
<td class='heading'>Total lines</td>
|
|
567
|
+
<td class='heading'>Lines of code</td>
|
|
568
|
+
<td class='heading'>Total coverage</td>
|
|
569
|
+
<td class='heading'>Code coverage</td>
|
|
570
|
+
</tr>
|
|
571
|
+
</thead>
|
|
572
|
+
<tbody><tr class='light'><td><a href='-Library-Ruby-Gems-1_8-gems-FakeWeb-1_1_2-lib-fake_web_rb.html'>/Library/Ruby/Gems/1.8/gems/FakeWeb-1.1.2/lib/fake_web.rb</a>
|
|
573
|
+
</td>
|
|
574
|
+
<td class='lines_total'><tt>233</tt>
|
|
575
|
+
</td>
|
|
576
|
+
<td class='lines_code'><tt>129</tt>
|
|
577
|
+
</td>
|
|
578
|
+
<td><table cellspacing='0' cellpadding='0' align='right'><tr><td><tt class='coverage_total'>61.4%</tt>
|
|
579
|
+
</td>
|
|
580
|
+
<td><table cellspacing='0' class='percent_graph' cellpadding='0' width='100'><tr><td class='covered' width='61'/>
|
|
581
|
+
<td class='uncovered' width='39'/>
|
|
582
|
+
</tr>
|
|
583
|
+
</table>
|
|
584
|
+
</td>
|
|
585
|
+
</tr>
|
|
586
|
+
</table>
|
|
587
|
+
</td>
|
|
588
|
+
<td><table cellspacing='0' cellpadding='0' align='right'><tr><td><tt class='coverage_code'>33.3%</tt>
|
|
589
|
+
</td>
|
|
590
|
+
<td><table cellspacing='0' class='percent_graph' cellpadding='0' width='100'><tr><td class='covered' width='33'/>
|
|
591
|
+
<td class='uncovered' width='67'/>
|
|
592
|
+
</tr>
|
|
593
|
+
</table>
|
|
594
|
+
</td>
|
|
595
|
+
</tr>
|
|
596
|
+
</table>
|
|
597
|
+
</td>
|
|
598
|
+
</tr>
|
|
599
|
+
</tbody>
|
|
600
|
+
</table>
|
|
601
|
+
<pre><span class="inferred0"><a name="line1"></a> 1 # FakeWeb - Ruby Helper for Faking Web Requests
|
|
602
|
+
</span><span class="inferred1"><a name="line2"></a> 2 # Copyright 2006 Blaine Cook <romeda@gmail.com>.
|
|
603
|
+
</span><span class="inferred0"><a name="line3"></a> 3 #
|
|
604
|
+
</span><span class="inferred1"><a name="line4"></a> 4 # FakeWeb is free software; you can redistribute it and/or modify
|
|
605
|
+
</span><span class="inferred0"><a name="line5"></a> 5 # it under the terms of the GNU General Public License as published by
|
|
606
|
+
</span><span class="inferred1"><a name="line6"></a> 6 # the Free Software Foundation; either version 2 of the License, or
|
|
607
|
+
</span><span class="inferred0"><a name="line7"></a> 7 # (at your option) any later version.
|
|
608
|
+
</span><span class="inferred1"><a name="line8"></a> 8 #
|
|
609
|
+
</span><span class="inferred0"><a name="line9"></a> 9 # FakeWeb is distributed in the hope that it will be useful,
|
|
610
|
+
</span><span class="inferred1"><a name="line10"></a> 10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
611
|
+
</span><span class="inferred0"><a name="line11"></a> 11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
612
|
+
</span><span class="inferred1"><a name="line12"></a> 12 # GNU General Public License for more details.
|
|
613
|
+
</span><span class="inferred0"><a name="line13"></a> 13 #
|
|
614
|
+
</span><span class="inferred1"><a name="line14"></a> 14 # You should have received a copy of the GNU General Public License
|
|
615
|
+
</span><span class="inferred0"><a name="line15"></a> 15 # along with FakeWeb; if not, write to the Free Software
|
|
616
|
+
</span><span class="inferred1"><a name="line16"></a> 16 # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
617
|
+
</span><span class="inferred0"><a name="line17"></a> 17
|
|
618
|
+
</span><span class="marked1"><a name="line18"></a> 18 require 'fake_net_http'
|
|
619
|
+
</span><span class="marked0"><a name="line19"></a> 19 require 'singleton'
|
|
620
|
+
</span><span class="inferred1"><a name="line20"></a> 20
|
|
621
|
+
</span><span class="marked0"><a name="line21"></a> 21 module OpenURI #:nodoc: all
|
|
622
|
+
</span><span class="marked1"><a name="line22"></a> 22 class HTTPError < StandardError; end;
|
|
623
|
+
</span><span class="inferred0"><a name="line23"></a> 23 end
|
|
624
|
+
</span><span class="inferred1"><a name="line24"></a> 24
|
|
625
|
+
</span><span class="marked0"><a name="line25"></a> 25 module FakeWeb
|
|
626
|
+
</span><span class="inferred1"><a name="line26"></a> 26
|
|
627
|
+
</span><span class="inferred0"><a name="line27"></a> 27 # Resets the FakeWeb Registry. This will force all subsequent web requests to
|
|
628
|
+
</span><span class="inferred1"><a name="line28"></a> 28 # behave as real requests.
|
|
629
|
+
</span><span class="marked0"><a name="line29"></a> 29 def FakeWeb.clean_registry; FakeWeb::Registry.instance.clean_registry; end
|
|
630
|
+
</span><span class="inferred1"><a name="line30"></a> 30
|
|
631
|
+
</span><span class="inferred0"><a name="line31"></a> 31 # Register +uri+ to be handled according to +options+. +uri+ can be a
|
|
632
|
+
</span><span class="inferred1"><a name="line32"></a> 32 # +String+ or an +URI+ object. +options+ must be a +Hash+ that must contain
|
|
633
|
+
</span><span class="inferred0"><a name="line33"></a> 33 # any one of the following keys:
|
|
634
|
+
</span><span class="inferred1"><a name="line34"></a> 34 #
|
|
635
|
+
</span><span class="inferred0"><a name="line35"></a> 35 # <tt>:string</tt>::
|
|
636
|
+
</span><span class="inferred1"><a name="line36"></a> 36 # Takes a +String+ argument that is returned as the body of the response.
|
|
637
|
+
</span><span class="inferred0"><a name="line37"></a> 37 # FakeWeb.register_uri('http://example.com/', :string => "Hello World!")
|
|
638
|
+
</span><span class="inferred1"><a name="line38"></a> 38 # <tt>:file</tt>::
|
|
639
|
+
</span><span class="inferred0"><a name="line39"></a> 39 # Takes a valid filesystem path to a file that is slurped and returned as
|
|
640
|
+
</span><span class="inferred1"><a name="line40"></a> 40 # the body of the response.
|
|
641
|
+
</span><span class="inferred0"><a name="line41"></a> 41 # FakeWeb.register_uri('http://example.com/', :file => "/tmp/my_response_body.txt")
|
|
642
|
+
</span><span class="inferred1"><a name="line42"></a> 42 # <tt>:response</tt>::
|
|
643
|
+
</span><span class="inferred0"><a name="line43"></a> 43 # Either an <tt>Net::HTTPResponse</tt>, an +IO+ or a +String+.
|
|
644
|
+
</span><span class="inferred1"><a name="line44"></a> 44 #
|
|
645
|
+
</span><span class="inferred0"><a name="line45"></a> 45 # The easier way by far is to pass the <tt>:response</tt> option to
|
|
646
|
+
</span><span class="inferred1"><a name="line46"></a> 46 # +register_uri+ as a +String+ or an (open for reads) +IO+ object which
|
|
647
|
+
</span><span class="inferred0"><a name="line47"></a> 47 # will be used as the complete HTTP response, including headers and body.
|
|
648
|
+
</span><span class="inferred1"><a name="line48"></a> 48 # If the string points to a readable file, this file will be used as the
|
|
649
|
+
</span><span class="inferred0"><a name="line49"></a> 49 # content for the request.
|
|
650
|
+
</span><span class="inferred1"><a name="line50"></a> 50 #
|
|
651
|
+
</span><span class="inferred0"><a name="line51"></a> 51 # To obtain a complete response document, you can use the +curl+ command,
|
|
652
|
+
</span><span class="inferred1"><a name="line52"></a> 52 # like so:
|
|
653
|
+
</span><span class="inferred0"><a name="line53"></a> 53 #
|
|
654
|
+
</span><span class="inferred1"><a name="line54"></a> 54 # curl -i http://www.example.com/ > response_for_www.example.com
|
|
655
|
+
</span><span class="inferred0"><a name="line55"></a> 55 #
|
|
656
|
+
</span><span class="inferred1"><a name="line56"></a> 56 # which can then be used in your test environment like so:
|
|
657
|
+
</span><span class="inferred0"><a name="line57"></a> 57 #
|
|
658
|
+
</span><span class="inferred1"><a name="line58"></a> 58 # FakeWeb.register_uri('http://www.example.com/', :response => 'response_for_www.example.com')
|
|
659
|
+
</span><span class="inferred0"><a name="line59"></a> 59 #
|
|
660
|
+
</span><span class="inferred1"><a name="line60"></a> 60 # See the <tt>Net::HTTPResponse</tt>
|
|
661
|
+
</span><span class="inferred0"><a name="line61"></a> 61 # documentation[http://ruby-doc.org/stdlib/libdoc/net/http/rdoc/classes/Net/HTTPResponse.html]
|
|
662
|
+
</span><span class="inferred1"><a name="line62"></a> 62 # for more information on creating custom response objects.
|
|
663
|
+
</span><span class="inferred0"><a name="line63"></a> 63 #
|
|
664
|
+
</span><span class="inferred1"><a name="line64"></a> 64 # Two optional arguments are also accepted:
|
|
665
|
+
</span><span class="inferred0"><a name="line65"></a> 65 #
|
|
666
|
+
</span><span class="inferred1"><a name="line66"></a> 66 # <tt>:status</tt>::
|
|
667
|
+
</span><span class="inferred0"><a name="line67"></a> 67 # Passing <tt>:status</tt> as a two-value array will set the response code
|
|
668
|
+
</span><span class="inferred1"><a name="line68"></a> 68 # and message. The defaults are <tt>200</tt> and <tt>OK</tt>, respectively.
|
|
669
|
+
</span><span class="inferred0"><a name="line69"></a> 69 # Example:
|
|
670
|
+
</span><span class="inferred1"><a name="line70"></a> 70 # FakeWeb.register_uri('http://www.example.com/', :response => "Go away!", :status => [ 404, "Not Found" ])
|
|
671
|
+
</span><span class="inferred0"><a name="line71"></a> 71 # <tt>:exception</tt>::
|
|
672
|
+
</span><span class="inferred1"><a name="line72"></a> 72 # The argument passed via <tt>:exception</tt> will be raised when the
|
|
673
|
+
</span><span class="inferred0"><a name="line73"></a> 73 # specified URL is requested. Any +Exception+ class is valid. Example:
|
|
674
|
+
</span><span class="inferred1"><a name="line74"></a> 74 # FakeWeb.register_uri('http://www.example.com/', :exception => Net::HTTPError)
|
|
675
|
+
</span><span class="inferred0"><a name="line75"></a> 75 #
|
|
676
|
+
</span><span class="marked1"><a name="line76"></a> 76 def FakeWeb.register_uri(uri, options); FakeWeb::Registry.instance.register_uri(uri, options); end
|
|
677
|
+
</span><span class="inferred0"><a name="line77"></a> 77
|
|
678
|
+
</span><span class="inferred1"><a name="line78"></a> 78 # Returns the faked Net::HTTPResponse object associated with +uri+.
|
|
679
|
+
</span><span class="marked0"><a name="line79"></a> 79 def FakeWeb.response_for(uri, &block) #:nodoc: :yields: response
|
|
680
|
+
</span><span class="uncovered1"><a name="line80"></a> 80 FakeWeb::Registry.instance.response_for(uri, &block)
|
|
681
|
+
</span><span class="uncovered0"><a name="line81"></a> 81 end
|
|
682
|
+
</span><span class="inferred1"><a name="line82"></a> 82
|
|
683
|
+
</span><span class="inferred0"><a name="line83"></a> 83 # Checks for presence of +uri+ in the +FakeWeb+ registry.
|
|
684
|
+
</span><span class="marked1"><a name="line84"></a> 84 def FakeWeb.registered_uri?(uri); FakeWeb::Registry.instance.registered_uri?(uri); end
|
|
685
|
+
</span><span class="inferred0"><a name="line85"></a> 85
|
|
686
|
+
</span><span class="marked1"><a name="line86"></a> 86 class Registry #:nodoc:
|
|
687
|
+
</span><span class="marked0"><a name="line87"></a> 87 include Singleton
|
|
688
|
+
</span><span class="inferred1"><a name="line88"></a> 88
|
|
689
|
+
</span><span class="marked0"><a name="line89"></a> 89 attr_accessor :uri_map
|
|
690
|
+
</span><span class="inferred1"><a name="line90"></a> 90
|
|
691
|
+
</span><span class="marked0"><a name="line91"></a> 91 def initialize
|
|
692
|
+
</span><span class="uncovered1"><a name="line92"></a> 92 clean_registry
|
|
693
|
+
</span><span class="uncovered0"><a name="line93"></a> 93 end
|
|
694
|
+
</span><span class="inferred1"><a name="line94"></a> 94
|
|
695
|
+
</span><span class="marked0"><a name="line95"></a> 95 def clean_registry
|
|
696
|
+
</span><span class="uncovered1"><a name="line96"></a> 96 self.uri_map = {}
|
|
697
|
+
</span><span class="uncovered0"><a name="line97"></a> 97 end
|
|
698
|
+
</span><span class="inferred1"><a name="line98"></a> 98
|
|
699
|
+
</span><span class="marked0"><a name="line99"></a> 99 def register_uri(uri, options)
|
|
700
|
+
</span><span class="uncovered1"><a name="line100"></a>100 uri_map[normalize_uri(uri)] = FakeWeb::Responder.new(uri, options)
|
|
701
|
+
</span><span class="uncovered0"><a name="line101"></a>101 end
|
|
702
|
+
</span><span class="inferred1"><a name="line102"></a>102
|
|
703
|
+
</span><span class="marked0"><a name="line103"></a>103 def registered_uri?(uri)
|
|
704
|
+
</span><span class="uncovered1"><a name="line104"></a>104 uri_map.has_key?(normalize_uri(uri))
|
|
705
|
+
</span><span class="uncovered0"><a name="line105"></a>105 end
|
|
706
|
+
</span><span class="inferred1"><a name="line106"></a>106
|
|
707
|
+
</span><span class="marked0"><a name="line107"></a>107 def registered_uri(uri)
|
|
708
|
+
</span><span class="uncovered1"><a name="line108"></a>108 uri = normalize_uri(uri)
|
|
709
|
+
</span><span class="uncovered0"><a name="line109"></a>109 return uri_map[uri] if registered_uri?(uri)
|
|
710
|
+
</span><span class="uncovered1"><a name="line110"></a>110 end
|
|
711
|
+
</span><span class="inferred0"><a name="line111"></a>111
|
|
712
|
+
</span><span class="marked1"><a name="line112"></a>112 def response_for(uri, &block)
|
|
713
|
+
</span><span class="uncovered0"><a name="line113"></a>113 return registered_uri(uri).response(&block)
|
|
714
|
+
</span><span class="uncovered1"><a name="line114"></a>114 end
|
|
715
|
+
</span><span class="inferred0"><a name="line115"></a>115
|
|
716
|
+
</span><span class="marked1"><a name="line116"></a>116 private
|
|
717
|
+
</span><span class="inferred0"><a name="line117"></a>117
|
|
718
|
+
</span><span class="marked1"><a name="line118"></a>118 def normalize_uri(uri)
|
|
719
|
+
</span><span class="uncovered0"><a name="line119"></a>119 case uri
|
|
720
|
+
</span><span class="uncovered1"><a name="line120"></a>120 when URI: uri
|
|
721
|
+
</span><span class="uncovered0"><a name="line121"></a>121 else
|
|
722
|
+
</span><span class="uncovered1"><a name="line122"></a>122 uri = 'http://' + uri unless uri.match('^https?://')
|
|
723
|
+
</span><span class="uncovered0"><a name="line123"></a>123 URI.parse(uri)
|
|
724
|
+
</span><span class="uncovered1"><a name="line124"></a>124 end
|
|
725
|
+
</span><span class="uncovered0"><a name="line125"></a>125 end
|
|
726
|
+
</span><span class="uncovered1"><a name="line126"></a>126 end
|
|
727
|
+
</span><span class="inferred0"><a name="line127"></a>127
|
|
728
|
+
</span><span class="marked1"><a name="line128"></a>128 module Response #:nodoc:
|
|
729
|
+
</span><span class="marked0"><a name="line129"></a>129 def read_body(*args, &block)
|
|
730
|
+
</span><span class="uncovered1"><a name="line130"></a>130 yield @body if block_given?
|
|
731
|
+
</span><span class="uncovered0"><a name="line131"></a>131 @body
|
|
732
|
+
</span><span class="uncovered1"><a name="line132"></a>132 end
|
|
733
|
+
</span><span class="uncovered0"><a name="line133"></a>133 end
|
|
734
|
+
</span><span class="inferred1"><a name="line134"></a>134
|
|
735
|
+
</span><span class="marked0"><a name="line135"></a>135 class Responder #:nodoc:
|
|
736
|
+
</span><span class="inferred1"><a name="line136"></a>136
|
|
737
|
+
</span><span class="marked0"><a name="line137"></a>137 attr_accessor :uri, :options
|
|
738
|
+
</span><span class="inferred1"><a name="line138"></a>138
|
|
739
|
+
</span><span class="marked0"><a name="line139"></a>139 def initialize(uri, options)
|
|
740
|
+
</span><span class="uncovered1"><a name="line140"></a>140 self.uri = uri
|
|
741
|
+
</span><span class="uncovered0"><a name="line141"></a>141 self.options = options
|
|
742
|
+
</span><span class="uncovered1"><a name="line142"></a>142 end
|
|
743
|
+
</span><span class="inferred0"><a name="line143"></a>143
|
|
744
|
+
</span><span class="marked1"><a name="line144"></a>144 def response(&block)
|
|
745
|
+
</span><span class="uncovered0"><a name="line145"></a>145 if has_baked_response?
|
|
746
|
+
</span><span class="uncovered1"><a name="line146"></a>146 response = baked_response
|
|
747
|
+
</span><span class="uncovered0"><a name="line147"></a>147 else
|
|
748
|
+
</span><span class="uncovered1"><a name="line148"></a>148 code, msg = meta_information
|
|
749
|
+
</span><span class="uncovered0"><a name="line149"></a>149 response = Net::HTTPResponse.send(:response_class, code.to_s).new(uri, code.to_s, msg)
|
|
750
|
+
</span><span class="uncovered1"><a name="line150"></a>150 response.instance_variable_set(:@body, content)
|
|
751
|
+
</span><span class="uncovered0"><a name="line151"></a>151 end
|
|
752
|
+
</span><span class="uncovered1"><a name="line152"></a>152 response.instance_variable_set(:@read, true)
|
|
753
|
+
</span><span class="uncovered0"><a name="line153"></a>153 response.extend FakeWeb::Response
|
|
754
|
+
</span><span class="uncovered1"><a name="line154"></a>154
|
|
755
|
+
</span><span class="uncovered0"><a name="line155"></a>155 optionally_raise(response)
|
|
756
|
+
</span><span class="uncovered1"><a name="line156"></a>156
|
|
757
|
+
</span><span class="uncovered0"><a name="line157"></a>157 yield response if block_given?
|
|
758
|
+
</span><span class="uncovered1"><a name="line158"></a>158
|
|
759
|
+
</span><span class="uncovered0"><a name="line159"></a>159 response
|
|
760
|
+
</span><span class="uncovered1"><a name="line160"></a>160 end
|
|
761
|
+
</span><span class="inferred0"><a name="line161"></a>161
|
|
762
|
+
</span><span class="marked1"><a name="line162"></a>162 private
|
|
763
|
+
</span><span class="inferred0"><a name="line163"></a>163
|
|
764
|
+
</span><span class="marked1"><a name="line164"></a>164 def content
|
|
765
|
+
</span><span class="uncovered0"><a name="line165"></a>165 [ :file, :string ].each do |map_option|
|
|
766
|
+
</span><span class="uncovered1"><a name="line166"></a>166 next unless options.has_key?(map_option)
|
|
767
|
+
</span><span class="uncovered0"><a name="line167"></a>167 return self.send("#{map_option}_response", options[map_option])
|
|
768
|
+
</span><span class="uncovered1"><a name="line168"></a>168 end
|
|
769
|
+
</span><span class="uncovered0"><a name="line169"></a>169
|
|
770
|
+
</span><span class="uncovered1"><a name="line170"></a>170 return ''
|
|
771
|
+
</span><span class="uncovered0"><a name="line171"></a>171 end
|
|
772
|
+
</span><span class="inferred1"><a name="line172"></a>172
|
|
773
|
+
</span><span class="marked0"><a name="line173"></a>173 def file_response(path)
|
|
774
|
+
</span><span class="uncovered1"><a name="line174"></a>174 IO.readlines(path).join("\n")
|
|
775
|
+
</span><span class="uncovered0"><a name="line175"></a>175 end
|
|
776
|
+
</span><span class="inferred1"><a name="line176"></a>176
|
|
777
|
+
</span><span class="marked0"><a name="line177"></a>177 def string_response(string)
|
|
778
|
+
</span><span class="uncovered1"><a name="line178"></a>178 string
|
|
779
|
+
</span><span class="uncovered0"><a name="line179"></a>179 end
|
|
780
|
+
</span><span class="inferred1"><a name="line180"></a>180
|
|
781
|
+
</span><span class="marked0"><a name="line181"></a>181 def baked_response
|
|
782
|
+
</span><span class="uncovered1"><a name="line182"></a>182 resp = case options[:response]
|
|
783
|
+
</span><span class="uncovered0"><a name="line183"></a>183 when Net::HTTPResponse: options[:response]
|
|
784
|
+
</span><span class="uncovered1"><a name="line184"></a>184 when String
|
|
785
|
+
</span><span class="uncovered0"><a name="line185"></a>185 socket = Net::BufferedIO.new(options[:response])
|
|
786
|
+
</span><span class="uncovered1"><a name="line186"></a>186 r = Net::HTTPResponse.read_new(socket)
|
|
787
|
+
</span><span class="uncovered0"><a name="line187"></a>187 r.instance_eval { @header['transfer-encoding'] = nil }
|
|
788
|
+
</span><span class="uncovered1"><a name="line188"></a>188 r.reading_body(socket, true) {}
|
|
789
|
+
</span><span class="uncovered0"><a name="line189"></a>189 r
|
|
790
|
+
</span><span class="uncovered1"><a name="line190"></a>190 else raise StandardError, "Handler unimplemented for response #{options[:response]}"
|
|
791
|
+
</span><span class="uncovered0"><a name="line191"></a>191 end
|
|
792
|
+
</span><span class="uncovered1"><a name="line192"></a>192 end
|
|
793
|
+
</span><span class="inferred0"><a name="line193"></a>193
|
|
794
|
+
</span><span class="marked1"><a name="line194"></a>194 def has_baked_response?
|
|
795
|
+
</span><span class="uncovered0"><a name="line195"></a>195 options.has_key?(:response)
|
|
796
|
+
</span><span class="uncovered1"><a name="line196"></a>196 end
|
|
797
|
+
</span><span class="inferred0"><a name="line197"></a>197
|
|
798
|
+
</span><span class="marked1"><a name="line198"></a>198 def optionally_raise(response)
|
|
799
|
+
</span><span class="uncovered0"><a name="line199"></a>199 return unless options.has_key?(:exception)
|
|
800
|
+
</span><span class="uncovered1"><a name="line200"></a>200 ex_alloc = options[:exception].allocate
|
|
801
|
+
</span><span class="uncovered0"><a name="line201"></a>201 ex_instance = case ex_alloc
|
|
802
|
+
</span><span class="uncovered1"><a name="line202"></a>202 when Net::HTTPError, OpenURI::HTTPError: options[:exception].new('Exception from FakeWeb', response)
|
|
803
|
+
</span><span class="uncovered0"><a name="line203"></a>203 else options[:exception].new
|
|
804
|
+
</span><span class="uncovered1"><a name="line204"></a>204 end
|
|
805
|
+
</span><span class="uncovered0"><a name="line205"></a>205 raise ex_instance
|
|
806
|
+
</span><span class="uncovered1"><a name="line206"></a>206 end
|
|
807
|
+
</span><span class="inferred0"><a name="line207"></a>207
|
|
808
|
+
</span><span class="marked1"><a name="line208"></a>208 def meta_information
|
|
809
|
+
</span><span class="uncovered0"><a name="line209"></a>209 if options.has_key?(:status); options[:status]
|
|
810
|
+
</span><span class="uncovered1"><a name="line210"></a>210 else; [ 200, 'OK' ]
|
|
811
|
+
</span><span class="uncovered0"><a name="line211"></a>211 end
|
|
812
|
+
</span><span class="uncovered1"><a name="line212"></a>212 end
|
|
813
|
+
</span><span class="uncovered0"><a name="line213"></a>213 end
|
|
814
|
+
</span><span class="inferred1"><a name="line214"></a>214
|
|
815
|
+
</span><span class="marked0"><a name="line215"></a>215 class SocketDelegator #:nodoc:
|
|
816
|
+
</span><span class="inferred1"><a name="line216"></a>216
|
|
817
|
+
</span><span class="marked0"><a name="line217"></a>217 def initialize(delegate=nil)
|
|
818
|
+
</span><span class="uncovered1"><a name="line218"></a>218 @delegate = nil
|
|
819
|
+
</span><span class="uncovered0"><a name="line219"></a>219 end
|
|
820
|
+
</span><span class="inferred1"><a name="line220"></a>220
|
|
821
|
+
</span><span class="marked0"><a name="line221"></a>221 def method_missing(method, *args, &block)
|
|
822
|
+
</span><span class="uncovered1"><a name="line222"></a>222 return @delegate.send(method, *args, &block) if @delegate
|
|
823
|
+
</span><span class="uncovered0"><a name="line223"></a>223 return self.send("my_#{method}", *args, &block)
|
|
824
|
+
</span><span class="uncovered1"><a name="line224"></a>224 end
|
|
825
|
+
</span><span class="inferred0"><a name="line225"></a>225
|
|
826
|
+
</span><span class="marked1"><a name="line226"></a>226 def my_closed?
|
|
827
|
+
</span><span class="uncovered0"><a name="line227"></a>227 @closed ||= true
|
|
828
|
+
</span><span class="uncovered1"><a name="line228"></a>228 end
|
|
829
|
+
</span><span class="inferred0"><a name="line229"></a>229
|
|
830
|
+
</span><span class="marked1"><a name="line230"></a>230 def my_readuntil(*args)
|
|
831
|
+
</span><span class="inferred0"><a name="line231"></a>231 end
|
|
832
|
+
</span><span class="inferred1"><a name="line232"></a>232 end
|
|
833
|
+
</span><span class="inferred0"><a name="line233"></a>233 end
|
|
834
|
+
</span></pre><hr/>
|
|
835
|
+
<p>Generated using the <a href='http://eigenclass.org/hiki.rb?rcov'>rcov code coverage analysis tool for Ruby</a>
|
|
836
|
+
version 0.8.1.2.</p>
|
|
837
|
+
<p><a href='http://validator.w3.org/check/referer'><img src='http://www.w3.org/Icons/valid-xhtml10' height='31' alt='Valid XHTML 1.0!' width='88'/>
|
|
838
|
+
</a>
|
|
839
|
+
<a href='http://jigsaw.w3.org/css-validator/check/referer'><img src='http://jigsaw.w3.org/css-validator/images/vcss' alt='Valid CSS!' style='border:0;width:88px;height:31px'/>
|
|
840
|
+
</a>
|
|
841
|
+
</p>
|
|
842
|
+
</body>
|
|
843
|
+
</html>
|