2 // Tests for System.Web.Hosting.SimpleWorkerRequest.cs
5 // Miguel de Icaza (miguel@novell.com)
9 // Copyright (C) 2005 Novell, Inc (http://www.novell.com)
11 // Permission is hereby granted, free of charge, to any person obtaining
12 // a copy of this software and associated documentation files (the
13 // "Software"), to deal in the Software without restriction, including
14 // without limitation the rights to use, copy, modify, merge, publish,
15 // distribute, sublicense, and/or sell copies of the Software, and to
16 // permit persons to whom the Software is furnished to do so, subject to
17 // the following conditions:
19 // The above copyright notice and this permission notice shall be
20 // included in all copies or substantial portions of the Software.
22 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
23 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
24 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
25 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
26 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
27 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
28 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
31 using NUnit.Framework;
33 using System.Globalization;
35 using System.Web.Hosting;
37 namespace MonoTests.System.Web {
39 public class FakeHttpWorkerRequest : HttpWorkerRequest {
41 public override string GetUriPath()
46 public override string GetQueryString()
48 return "GetQueryString";
51 public override string GetRawUrl()
56 public override string GetHttpVerbName()
61 public override string GetHttpVersion()
63 return "GetHttpVersion";
66 public override string GetRemoteAddress()
68 return "__GetRemoteAddress";
71 public override int GetRemotePort()
76 public override string GetLocalAddress()
78 return "GetLocalAddress";
81 public override int GetLocalPort()
86 public override void SendStatus(int s, string x)
90 public override void SendKnownResponseHeader(int x, string j)
94 public override void SendUnknownResponseHeader(string a, string b)
98 public override void SendResponseFromMemory(byte[] arr, int x)
102 public override void SendResponseFromFile(string a, long b , long c)
106 public override void SendResponseFromFile (IntPtr a, long b, long c)
110 public override void FlushResponse(bool x)
114 public override void EndOfRequest() {
120 public class HttpWorkerTests {
122 [Test] public void TestPublicValues ()
124 Assert.AreEqual ( 0, HttpWorkerRequest.HeaderCacheControl, "V 0");
125 Assert.AreEqual ( 1, HttpWorkerRequest.HeaderConnection, "V 1");
126 Assert.AreEqual ( 2, HttpWorkerRequest.HeaderDate, "V 2");
127 Assert.AreEqual ( 3, HttpWorkerRequest.HeaderKeepAlive, "V 3");
128 Assert.AreEqual ( 4, HttpWorkerRequest.HeaderPragma, "V 4");
129 Assert.AreEqual ( 5, HttpWorkerRequest.HeaderTrailer, "V 5");
130 Assert.AreEqual ( 6, HttpWorkerRequest.HeaderTransferEncoding, "V 6");
131 Assert.AreEqual ( 7, HttpWorkerRequest.HeaderUpgrade, "V 7");
132 Assert.AreEqual ( 8, HttpWorkerRequest.HeaderVia, "V 8");
133 Assert.AreEqual ( 9, HttpWorkerRequest.HeaderWarning, "V 9");
134 Assert.AreEqual ( 10, HttpWorkerRequest.HeaderAllow, "V10");
135 Assert.AreEqual ( 11, HttpWorkerRequest.HeaderContentLength, "V11");
136 Assert.AreEqual ( 12, HttpWorkerRequest.HeaderContentType, "V12");
137 Assert.AreEqual ( 13, HttpWorkerRequest.HeaderContentEncoding, "V13");
138 Assert.AreEqual ( 14, HttpWorkerRequest.HeaderContentLanguage, "V14");
139 Assert.AreEqual ( 15, HttpWorkerRequest.HeaderContentLocation, "V15");
140 Assert.AreEqual ( 16, HttpWorkerRequest.HeaderContentMd5, "V16");
141 Assert.AreEqual ( 17, HttpWorkerRequest.HeaderContentRange, "V17");
142 Assert.AreEqual ( 18, HttpWorkerRequest.HeaderExpires, "V18");
143 Assert.AreEqual ( 19, HttpWorkerRequest.HeaderLastModified, "V19");
144 Assert.AreEqual ( 20, HttpWorkerRequest.HeaderAccept, "V20");
145 Assert.AreEqual ( 21, HttpWorkerRequest.HeaderAcceptCharset, "V21");
146 Assert.AreEqual ( 22, HttpWorkerRequest.HeaderAcceptEncoding, "V22");
147 Assert.AreEqual ( 23, HttpWorkerRequest.HeaderAcceptLanguage, "V23");
148 Assert.AreEqual ( 24, HttpWorkerRequest.HeaderAuthorization, "V24");
149 Assert.AreEqual ( 25, HttpWorkerRequest.HeaderCookie, "V25");
150 Assert.AreEqual ( 26, HttpWorkerRequest.HeaderExpect, "V26");
151 Assert.AreEqual ( 27, HttpWorkerRequest.HeaderFrom, "V27");
152 Assert.AreEqual ( 28, HttpWorkerRequest.HeaderHost, "V28");
153 Assert.AreEqual ( 29, HttpWorkerRequest.HeaderIfMatch, "V29");
154 Assert.AreEqual ( 30, HttpWorkerRequest.HeaderIfModifiedSince, "V30");
155 Assert.AreEqual ( 31, HttpWorkerRequest.HeaderIfNoneMatch, "V31");
156 Assert.AreEqual ( 32, HttpWorkerRequest.HeaderIfRange, "V32");
157 Assert.AreEqual ( 33, HttpWorkerRequest.HeaderIfUnmodifiedSince, "V33");
158 Assert.AreEqual ( 34, HttpWorkerRequest.HeaderMaxForwards, "V34");
159 Assert.AreEqual ( 35, HttpWorkerRequest.HeaderProxyAuthorization, "V35");
160 Assert.AreEqual ( 36, HttpWorkerRequest.HeaderReferer, "V36");
161 Assert.AreEqual ( 37, HttpWorkerRequest.HeaderRange, "V37");
162 Assert.AreEqual ( 38, HttpWorkerRequest.HeaderTe, "V38");
163 Assert.AreEqual ( 39, HttpWorkerRequest.HeaderUserAgent, "V39");
164 Assert.AreEqual ( 40, HttpWorkerRequest.RequestHeaderMaximum, "V40");
166 Assert.AreEqual ( 20, HttpWorkerRequest.HeaderAcceptRanges, "V41");
167 Assert.AreEqual ( 21, HttpWorkerRequest.HeaderAge, "V42");
168 Assert.AreEqual ( 22, HttpWorkerRequest.HeaderEtag, "V43");
169 Assert.AreEqual ( 23, HttpWorkerRequest.HeaderLocation, "V44");
170 Assert.AreEqual ( 24, HttpWorkerRequest.HeaderProxyAuthenticate, "V45");
171 Assert.AreEqual ( 25, HttpWorkerRequest.HeaderRetryAfter, "V46");
172 Assert.AreEqual ( 26, HttpWorkerRequest.HeaderServer, "V47");
173 Assert.AreEqual ( 27, HttpWorkerRequest.HeaderSetCookie, "V48");
174 Assert.AreEqual ( 28, HttpWorkerRequest.HeaderVary, "V49");
175 Assert.AreEqual ( 29, HttpWorkerRequest.HeaderWwwAuthenticate, "V50");
176 Assert.AreEqual ( 30, HttpWorkerRequest.ResponseHeaderMaximum, "V51");
178 Assert.AreEqual ( 1, HttpWorkerRequest.ReasonFileHandleCacheMiss, "R1");
179 Assert.AreEqual ( 2, HttpWorkerRequest.ReasonCachePolicy, "R2");
180 Assert.AreEqual ( 3, HttpWorkerRequest.ReasonCacheSecurity, "R3");
181 Assert.AreEqual ( 4, HttpWorkerRequest.ReasonClientDisconnect, "R4");
183 Assert.AreEqual ( 0, HttpWorkerRequest.ReasonDefault, "RR0");
186 public class FakeHttpWorkerRequest : HttpWorkerRequest {
188 public override string GetUriPath()
193 public override string GetQueryString()
195 return "GetQueryString";
198 public override string GetRawUrl()
203 public override string GetHttpVerbName()
205 return "GetVerbName";
208 public override string GetHttpVersion()
210 return "GetHttpVersion";
213 public override string GetRemoteAddress()
215 return "__GetRemoteAddress";
218 public override int GetRemotePort()
223 public override string GetLocalAddress()
225 return "GetLocalAddress";
228 public override string GetAppPath ()
233 public override int GetLocalPort()
238 public override void SendStatus(int s, string x)
242 public override void SendKnownResponseHeader(int x, string j)
246 public override void SendUnknownResponseHeader(string a, string b)
250 public override void SendResponseFromMemory(byte[] arr, int x)
254 public override void SendResponseFromFile(string a, long b , long c)
258 public override void SendResponseFromFile (IntPtr a, long b, long c)
262 public override void FlushResponse(bool x)
266 public override void EndOfRequest() {
271 #if TARGET_JVM //BUG #6499
272 [Category ("NotWorking")]
274 [Test] public void TestDefaults ()
276 FakeHttpWorkerRequest f = new FakeHttpWorkerRequest ();
278 Assert.AreEqual (null, f.MachineConfigPath, "F1");
279 Assert.AreEqual (null, f.MapPath ("x"), "F2");
280 Assert.AreEqual (null, f.MachineConfigPath, "F3");
281 Assert.AreEqual (null, f.MachineInstallDirectory, "F4");
282 Assert.AreEqual ("BLABA", f.GetAppPath (), "F5");
283 Assert.AreEqual (null, f.GetAppPathTranslated (), "F5");
284 Assert.AreEqual (null, f.GetAppPoolID (), "F6");
285 Assert.AreEqual (0, f.GetBytesRead (), "F7");
286 Assert.AreEqual (new byte [0], f.GetClientCertificate (), "F8");
287 Assert.AreEqual (new byte [0], f.GetClientCertificateBinaryIssuer (), "F9");
288 Assert.AreEqual (0, f.GetClientCertificateEncoding (), "F10");
289 Assert.AreEqual (new byte [0], f.GetClientCertificatePublicKey (), "F11");
291 Assert.AreEqual (0, f.GetConnectionID (), "F14");
292 Assert.AreEqual (null, f.GetFilePathTranslated () , "F16");
293 Assert.AreEqual ("", f.GetPathInfo () , "F17");
294 Assert.AreEqual (null, f.GetPreloadedEntityBody () , "F18");
295 Assert.AreEqual ("http", f.GetProtocol () , "F19");
296 Assert.AreEqual (null, f.GetQueryStringRawBytes () , "F20");
297 Assert.AreEqual ("__GetRemoteAddress", f.GetRemoteName () , "F21");
298 Assert.AreEqual (0, f.GetRequestReason () , "F22");
299 Assert.AreEqual ("GetLocalAddress", f.GetServerName () , "F23");
300 Assert.AreEqual (null, f.GetServerVariable ("A") , "F24");
301 Assert.AreEqual (null, f.GetUnknownRequestHeader ("IAMTHEUKNOWNN"), "F25");
302 Assert.AreEqual (null, f.GetUnknownRequestHeaders (), "F26");
303 Assert.AreEqual (0, f.GetUrlContextID (), "F27");
304 Assert.AreEqual (IntPtr.Zero, f.GetUserToken (), "F28");
305 Assert.AreEqual (IntPtr.Zero, f.GetVirtualPathToken (), "F29");
306 Assert.AreEqual (false, f.HasEntityBody (), "F30");
307 Assert.AreEqual (true, f.HeadersSent (), "F31");
308 Assert.AreEqual (true, f.IsClientConnected (), "F32");
309 Assert.AreEqual (false, f.IsEntireEntityBodyIsPreloaded (), "F33");
310 Assert.AreEqual (false, f.IsSecure (), "F34");
312 Assert.AreEqual (0, f.ReadEntityBody (null, Int32.MaxValue), "ReadEntityBody(byte[],int)");
314 Assert.AreEqual (Guid.Empty.ToString (), f.RequestTraceIdentifier.ToString (), "RequestTraceIdentifier");
315 Assert.IsNull (f.RootWebConfigPath, "RootWebConfigPath");
316 Assert.AreEqual (0, f.GetPreloadedEntityBody (null, Int32.MinValue), "GetPreloadedEntityBody(byte[],int)");
317 Assert.AreEqual (0, f.GetPreloadedEntityBodyLength (), "GetPreloadedEntityBodyLength");
318 Assert.AreEqual (0, f.GetTotalEntityBodyLength (), "GetTotalEntityBodyLength");
319 Assert.AreEqual (0, f.ReadEntityBody (null, 0, 0), "ReadEntityBody(byte[],int,int)");
323 [Test] public void Test_GetKnownHeaderName ()
326 // GetKnownRequestHeaderName
328 Assert.AreEqual ("Cache-Control", HttpWorkerRequest.GetKnownRequestHeaderName (0), "F17");
329 Assert.AreEqual ("Connection", HttpWorkerRequest.GetKnownRequestHeaderName (1), "F18");
330 Assert.AreEqual ("Date", HttpWorkerRequest.GetKnownRequestHeaderName (2), "F19");
331 Assert.AreEqual ("Keep-Alive", HttpWorkerRequest.GetKnownRequestHeaderName (3), "F20");
332 Assert.AreEqual ("Pragma", HttpWorkerRequest.GetKnownRequestHeaderName (4), "F21");
333 Assert.AreEqual ("Trailer", HttpWorkerRequest.GetKnownRequestHeaderName (5), "F22");
334 Assert.AreEqual ("Transfer-Encoding", HttpWorkerRequest.GetKnownRequestHeaderName (6), "F23");
335 Assert.AreEqual ("Upgrade", HttpWorkerRequest.GetKnownRequestHeaderName (7), "F24");
336 Assert.AreEqual ("Via", HttpWorkerRequest.GetKnownRequestHeaderName (8), "F25");
337 Assert.AreEqual ("Warning", HttpWorkerRequest.GetKnownRequestHeaderName (9), "F26");
338 Assert.AreEqual ("Allow", HttpWorkerRequest.GetKnownRequestHeaderName (10), "F27");
339 Assert.AreEqual ("Content-Length", HttpWorkerRequest.GetKnownRequestHeaderName (11), "F28");
340 Assert.AreEqual ("Content-Type", HttpWorkerRequest.GetKnownRequestHeaderName (12), "F29");
341 Assert.AreEqual ("Content-Encoding", HttpWorkerRequest.GetKnownRequestHeaderName (13), "F30");
342 Assert.AreEqual ("Content-Language", HttpWorkerRequest.GetKnownRequestHeaderName (14), "F31");
343 Assert.AreEqual ("Content-Location", HttpWorkerRequest.GetKnownRequestHeaderName (15), "F32");
344 Assert.AreEqual ("Content-MD5", HttpWorkerRequest.GetKnownRequestHeaderName (16), "F33");
345 Assert.AreEqual ("Content-Range", HttpWorkerRequest.GetKnownRequestHeaderName (17), "F34");
346 Assert.AreEqual ("Expires", HttpWorkerRequest.GetKnownRequestHeaderName (18), "F35");
347 Assert.AreEqual ("Last-Modified", HttpWorkerRequest.GetKnownRequestHeaderName (19), "F36");
348 Assert.AreEqual ("Accept", HttpWorkerRequest.GetKnownRequestHeaderName (20), "F37");
349 Assert.AreEqual ("Accept-Charset", HttpWorkerRequest.GetKnownRequestHeaderName (21), "F38");
350 Assert.AreEqual ("Accept-Encoding", HttpWorkerRequest.GetKnownRequestHeaderName (22), "F39");
351 Assert.AreEqual ("Accept-Language", HttpWorkerRequest.GetKnownRequestHeaderName (23), "F40");
352 Assert.AreEqual ("Authorization", HttpWorkerRequest.GetKnownRequestHeaderName (24), "F41");
353 Assert.AreEqual ("Cookie", HttpWorkerRequest.GetKnownRequestHeaderName (25), "F42");
354 Assert.AreEqual ("Expect", HttpWorkerRequest.GetKnownRequestHeaderName (26), "F43");
355 Assert.AreEqual ("From", HttpWorkerRequest.GetKnownRequestHeaderName (27), "F44");
356 Assert.AreEqual ("Host", HttpWorkerRequest.GetKnownRequestHeaderName (28), "F45");
357 Assert.AreEqual ("If-Match", HttpWorkerRequest.GetKnownRequestHeaderName (29), "F46");
358 Assert.AreEqual ("If-Modified-Since", HttpWorkerRequest.GetKnownRequestHeaderName (30), "F47");
359 Assert.AreEqual ("If-None-Match", HttpWorkerRequest.GetKnownRequestHeaderName (31), "F48");
360 Assert.AreEqual ("If-Range", HttpWorkerRequest.GetKnownRequestHeaderName (32), "F49");
361 Assert.AreEqual ("If-Unmodified-Since", HttpWorkerRequest.GetKnownRequestHeaderName (33), "F50");
362 Assert.AreEqual ("Max-Forwards", HttpWorkerRequest.GetKnownRequestHeaderName (34), "F51");
363 Assert.AreEqual ("Proxy-Authorization", HttpWorkerRequest.GetKnownRequestHeaderName (35), "F52");
364 Assert.AreEqual ("Referer", HttpWorkerRequest.GetKnownRequestHeaderName (36), "F53");
365 Assert.AreEqual ("Range", HttpWorkerRequest.GetKnownRequestHeaderName (37), "F54");
366 Assert.AreEqual ("TE", HttpWorkerRequest.GetKnownRequestHeaderName (38), "F55");
367 Assert.AreEqual ("User-Agent", HttpWorkerRequest.GetKnownRequestHeaderName (39), "F56");
370 [ExpectedException (typeof (IndexOutOfRangeException))]
371 [Test] public void Test_OutOfRangeHeaderName ()
373 HttpWorkerRequest.GetKnownRequestHeaderName (HttpWorkerRequest.RequestHeaderMaximum);
376 [ExpectedException (typeof (IndexOutOfRangeException))]
377 [Test] public void Test_OutOfRangeHeaderName2 ()
379 HttpWorkerRequest.GetKnownRequestHeaderName (-1);
382 [Test] public void Test_GetKnownHeaderIndex ()
384 Assert.AreEqual (0, HttpWorkerRequest.GetKnownRequestHeaderIndex ("Cache-Control"), "N0");
385 Assert.AreEqual (1, HttpWorkerRequest.GetKnownRequestHeaderIndex ("Connection"), "N1");
386 Assert.AreEqual (2, HttpWorkerRequest.GetKnownRequestHeaderIndex ("Date"), "N2");
387 Assert.AreEqual (3, HttpWorkerRequest.GetKnownRequestHeaderIndex ("Keep-Alive"), "N3");
388 Assert.AreEqual (4, HttpWorkerRequest.GetKnownRequestHeaderIndex ("Pragma"), "N4");
389 Assert.AreEqual (5, HttpWorkerRequest.GetKnownRequestHeaderIndex ("Trailer"), "N5");
390 Assert.AreEqual (6, HttpWorkerRequest.GetKnownRequestHeaderIndex ("Transfer-Encoding"), "N6");
391 Assert.AreEqual (7, HttpWorkerRequest.GetKnownRequestHeaderIndex ("Upgrade"), "N7");
392 Assert.AreEqual (8, HttpWorkerRequest.GetKnownRequestHeaderIndex ("Via"), "N8");
393 Assert.AreEqual (9, HttpWorkerRequest.GetKnownRequestHeaderIndex ("Warning"), "N9");
394 Assert.AreEqual (10, HttpWorkerRequest.GetKnownRequestHeaderIndex ("Allow"), "N10");
395 Assert.AreEqual (11, HttpWorkerRequest.GetKnownRequestHeaderIndex ("Content-Length"), "N11");
396 Assert.AreEqual (12, HttpWorkerRequest.GetKnownRequestHeaderIndex ("Content-Type"), "N12");
397 Assert.AreEqual (13, HttpWorkerRequest.GetKnownRequestHeaderIndex ("Content-Encoding"), "N13");
398 Assert.AreEqual (14, HttpWorkerRequest.GetKnownRequestHeaderIndex ("Content-Language"), "N14");
399 Assert.AreEqual (15, HttpWorkerRequest.GetKnownRequestHeaderIndex ("Content-Location"), "N15");
400 Assert.AreEqual (16, HttpWorkerRequest.GetKnownRequestHeaderIndex ("Content-MD5"), "N16");
401 Assert.AreEqual (17, HttpWorkerRequest.GetKnownRequestHeaderIndex ("Content-Range"), "N17");
402 Assert.AreEqual (18, HttpWorkerRequest.GetKnownRequestHeaderIndex ("Expires"), "N18");
403 Assert.AreEqual (19, HttpWorkerRequest.GetKnownRequestHeaderIndex ("Last-Modified"), "N19");
404 Assert.AreEqual (20, HttpWorkerRequest.GetKnownRequestHeaderIndex ("Accept"), "N20");
405 Assert.AreEqual (21, HttpWorkerRequest.GetKnownRequestHeaderIndex ("Accept-Charset"), "N21");
406 Assert.AreEqual (22, HttpWorkerRequest.GetKnownRequestHeaderIndex ("Accept-Encoding"), "N22");
407 Assert.AreEqual (23, HttpWorkerRequest.GetKnownRequestHeaderIndex ("Accept-Language"), "N23");
408 Assert.AreEqual (24, HttpWorkerRequest.GetKnownRequestHeaderIndex ("Authorization"), "N24");
409 Assert.AreEqual (25, HttpWorkerRequest.GetKnownRequestHeaderIndex ("Cookie"), "N25");
410 Assert.AreEqual (26, HttpWorkerRequest.GetKnownRequestHeaderIndex ("Expect"), "N26");
411 Assert.AreEqual (27, HttpWorkerRequest.GetKnownRequestHeaderIndex ("From"), "N27");
412 Assert.AreEqual (28, HttpWorkerRequest.GetKnownRequestHeaderIndex ("Host"), "N28");
413 Assert.AreEqual (29, HttpWorkerRequest.GetKnownRequestHeaderIndex ("If-Match"), "N29");
414 Assert.AreEqual (30, HttpWorkerRequest.GetKnownRequestHeaderIndex ("If-Modified-Since"), "N30");
415 Assert.AreEqual (31, HttpWorkerRequest.GetKnownRequestHeaderIndex ("If-None-Match"), "N31");
416 Assert.AreEqual (32, HttpWorkerRequest.GetKnownRequestHeaderIndex ("If-Range"), "N32");
417 Assert.AreEqual (33, HttpWorkerRequest.GetKnownRequestHeaderIndex ("If-Unmodified-Since"), "N33");
418 Assert.AreEqual (34, HttpWorkerRequest.GetKnownRequestHeaderIndex ("Max-Forwards"), "N34");
419 Assert.AreEqual (35, HttpWorkerRequest.GetKnownRequestHeaderIndex ("Proxy-Authorization"), "N35");
420 Assert.AreEqual (36, HttpWorkerRequest.GetKnownRequestHeaderIndex ("Referer"), "N36");
421 Assert.AreEqual (37, HttpWorkerRequest.GetKnownRequestHeaderIndex ("Range"), "N37");
422 Assert.AreEqual (38, HttpWorkerRequest.GetKnownRequestHeaderIndex ("TE"), "N38");
423 Assert.AreEqual (39, HttpWorkerRequest.GetKnownRequestHeaderIndex ("User-Agent"), "N39");
424 Assert.AreEqual (-1, HttpWorkerRequest.GetKnownRequestHeaderIndex ("Blablabla"), "N40");
427 [Test] public void Test_GetKnownResponseIndex ()
429 Assert.AreEqual (0, HttpWorkerRequest.GetKnownResponseHeaderIndex ("Cache-Control"), "M0");
430 Assert.AreEqual (1, HttpWorkerRequest.GetKnownResponseHeaderIndex ("Connection"), "M1");
431 Assert.AreEqual (2, HttpWorkerRequest.GetKnownResponseHeaderIndex ("Date"), "M2");
432 Assert.AreEqual (3, HttpWorkerRequest.GetKnownResponseHeaderIndex ("Keep-Alive"), "M3");
433 Assert.AreEqual (4, HttpWorkerRequest.GetKnownResponseHeaderIndex ("Pragma"), "M4");
434 Assert.AreEqual (5, HttpWorkerRequest.GetKnownResponseHeaderIndex ("Trailer"), "M5");
435 Assert.AreEqual (6, HttpWorkerRequest.GetKnownResponseHeaderIndex ("Transfer-Encoding"), "M6");
436 Assert.AreEqual (7, HttpWorkerRequest.GetKnownResponseHeaderIndex ("Upgrade"), "M7");
437 Assert.AreEqual (8, HttpWorkerRequest.GetKnownResponseHeaderIndex ("Via"), "M8");
438 Assert.AreEqual (9, HttpWorkerRequest.GetKnownResponseHeaderIndex ("Warning"), "M9");
439 Assert.AreEqual (10, HttpWorkerRequest.GetKnownResponseHeaderIndex ("Allow"), "M10");
440 Assert.AreEqual (11, HttpWorkerRequest.GetKnownResponseHeaderIndex ("Content-Length"), "M11");
441 Assert.AreEqual (12, HttpWorkerRequest.GetKnownResponseHeaderIndex ("Content-Type"), "M12");
442 Assert.AreEqual (13, HttpWorkerRequest.GetKnownResponseHeaderIndex ("Content-Encoding"), "M13");
443 Assert.AreEqual (14, HttpWorkerRequest.GetKnownResponseHeaderIndex ("Content-Language"), "M14");
444 Assert.AreEqual (15, HttpWorkerRequest.GetKnownResponseHeaderIndex ("Content-Location"), "M15");
445 Assert.AreEqual (16, HttpWorkerRequest.GetKnownResponseHeaderIndex ("Content-MD5"), "M16");
446 Assert.AreEqual (17, HttpWorkerRequest.GetKnownResponseHeaderIndex ("Content-Range"), "M17");
447 Assert.AreEqual (18, HttpWorkerRequest.GetKnownResponseHeaderIndex ("Expires"), "M18");
448 Assert.AreEqual (19, HttpWorkerRequest.GetKnownResponseHeaderIndex ("Last-Modified"), "M19");
449 Assert.AreEqual (20, HttpWorkerRequest.GetKnownResponseHeaderIndex ("Accept-Ranges"), "M20");
450 Assert.AreEqual (21, HttpWorkerRequest.GetKnownResponseHeaderIndex ("Age"), "M21");
451 Assert.AreEqual (22, HttpWorkerRequest.GetKnownResponseHeaderIndex ("ETag"), "M22");
452 Assert.AreEqual (23, HttpWorkerRequest.GetKnownResponseHeaderIndex ("Location"), "M23");
453 Assert.AreEqual (24, HttpWorkerRequest.GetKnownResponseHeaderIndex ("Proxy-Authenticate"), "M24");
454 Assert.AreEqual (25, HttpWorkerRequest.GetKnownResponseHeaderIndex ("Retry-After"), "M25");
455 Assert.AreEqual (26, HttpWorkerRequest.GetKnownResponseHeaderIndex ("Server"), "M26");
456 Assert.AreEqual (27, HttpWorkerRequest.GetKnownResponseHeaderIndex ("Set-Cookie"), "M27");
457 Assert.AreEqual (28, HttpWorkerRequest.GetKnownResponseHeaderIndex ("Vary"), "M28");
458 Assert.AreEqual (29, HttpWorkerRequest.GetKnownResponseHeaderIndex ("WWW-Authenticate"), "M29");
461 [Test] public void Test_GetKnownResponseName ()
463 Assert.AreEqual ("Cache-Control", HttpWorkerRequest.GetKnownResponseHeaderName (0), "P0");
464 Assert.AreEqual ("Connection", HttpWorkerRequest.GetKnownResponseHeaderName (1), "P1");
465 Assert.AreEqual ("Date", HttpWorkerRequest.GetKnownResponseHeaderName (2), "P2");
466 Assert.AreEqual ("Keep-Alive", HttpWorkerRequest.GetKnownResponseHeaderName (3), "P3");
467 Assert.AreEqual ("Pragma", HttpWorkerRequest.GetKnownResponseHeaderName (4), "P4");
468 Assert.AreEqual ("Trailer", HttpWorkerRequest.GetKnownResponseHeaderName (5), "P5");
469 Assert.AreEqual ("Transfer-Encoding", HttpWorkerRequest.GetKnownResponseHeaderName (6), "P6");
470 Assert.AreEqual ("Upgrade", HttpWorkerRequest.GetKnownResponseHeaderName (7), "P7");
471 Assert.AreEqual ("Via", HttpWorkerRequest.GetKnownResponseHeaderName (8), "P8");
472 Assert.AreEqual ("Warning", HttpWorkerRequest.GetKnownResponseHeaderName (9), "P9");
473 Assert.AreEqual ("Allow", HttpWorkerRequest.GetKnownResponseHeaderName (10), "P10");
474 Assert.AreEqual ("Content-Length", HttpWorkerRequest.GetKnownResponseHeaderName (11), "P11");
475 Assert.AreEqual ("Content-Type", HttpWorkerRequest.GetKnownResponseHeaderName (12), "P12");
476 Assert.AreEqual ("Content-Encoding", HttpWorkerRequest.GetKnownResponseHeaderName (13), "P13");
477 Assert.AreEqual ("Content-Language", HttpWorkerRequest.GetKnownResponseHeaderName (14), "P14");
478 Assert.AreEqual ("Content-Location", HttpWorkerRequest.GetKnownResponseHeaderName (15), "P15");
479 Assert.AreEqual ("Content-MD5", HttpWorkerRequest.GetKnownResponseHeaderName (16), "P16");
480 Assert.AreEqual ("Content-Range", HttpWorkerRequest.GetKnownResponseHeaderName (17), "P17");
481 Assert.AreEqual ("Expires", HttpWorkerRequest.GetKnownResponseHeaderName (18), "P18");
482 Assert.AreEqual ("Last-Modified", HttpWorkerRequest.GetKnownResponseHeaderName (19), "P19");
483 Assert.AreEqual ("Accept-Ranges", HttpWorkerRequest.GetKnownResponseHeaderName (20), "P20");
484 Assert.AreEqual ("Age", HttpWorkerRequest.GetKnownResponseHeaderName (21), "P21");
485 Assert.AreEqual ("ETag", HttpWorkerRequest.GetKnownResponseHeaderName (22), "P22");
486 Assert.AreEqual ("Location", HttpWorkerRequest.GetKnownResponseHeaderName (23), "P23");
487 Assert.AreEqual ("Proxy-Authenticate", HttpWorkerRequest.GetKnownResponseHeaderName (24), "P24");
488 Assert.AreEqual ("Retry-After", HttpWorkerRequest.GetKnownResponseHeaderName (25), "P25");
489 Assert.AreEqual ("Server", HttpWorkerRequest.GetKnownResponseHeaderName (26), "P26");
490 Assert.AreEqual ("Set-Cookie", HttpWorkerRequest.GetKnownResponseHeaderName (27), "P27");
491 Assert.AreEqual ("Vary", HttpWorkerRequest.GetKnownResponseHeaderName (28), "P28");
492 Assert.AreEqual ("WWW-Authenticate", HttpWorkerRequest.GetKnownResponseHeaderName (29), "P29");
495 [ExpectedException (typeof (IndexOutOfRangeException))]
496 [Test] public void Test_OutOfRangeHeaderResponseName ()
498 HttpWorkerRequest.GetKnownResponseHeaderName (HttpWorkerRequest.ResponseHeaderMaximum);
501 [ExpectedException (typeof (IndexOutOfRangeException))]
502 [Test] public void Test_OutOfRangeResponseName2 ()
504 HttpWorkerRequest.GetKnownRequestHeaderName (-1);
507 [Test] public void Test_GetStatusDescription ()
509 Console.WriteLine ("*****" + HttpWorkerRequest.GetStatusDescription (424));
510 Assert.AreEqual (true, HttpWorkerRequest.GetStatusDescription (100) != "", "D1");
511 Assert.AreEqual (true, HttpWorkerRequest.GetStatusDescription (101) != "", "D2");
512 Assert.AreEqual (true, HttpWorkerRequest.GetStatusDescription (102) != "", "D3");
513 Assert.AreEqual (true, HttpWorkerRequest.GetStatusDescription (200) != "", "D4");
514 Assert.AreEqual (true, HttpWorkerRequest.GetStatusDescription (201) != "", "D5");
515 Assert.AreEqual (true, HttpWorkerRequest.GetStatusDescription (202) != "", "D6");
516 Assert.AreEqual (true, HttpWorkerRequest.GetStatusDescription (203) != "", "D7");
517 Assert.AreEqual (true, HttpWorkerRequest.GetStatusDescription (204) != "", "D8");
518 Assert.AreEqual (true, HttpWorkerRequest.GetStatusDescription (205) != "", "D9");
519 Assert.AreEqual (true, HttpWorkerRequest.GetStatusDescription (206) != "", "D10");
520 Assert.AreEqual (true, HttpWorkerRequest.GetStatusDescription (207) != "", "D11");
521 Assert.AreEqual (true, HttpWorkerRequest.GetStatusDescription (300) != "", "D12");
522 Assert.AreEqual (true, HttpWorkerRequest.GetStatusDescription (301) != "", "D13");
523 Assert.AreEqual (true, HttpWorkerRequest.GetStatusDescription (302) != "", "D14");
524 Assert.AreEqual (true, HttpWorkerRequest.GetStatusDescription (303) != "", "D15");
525 Assert.AreEqual (true, HttpWorkerRequest.GetStatusDescription (304) != "", "D16");
526 Assert.AreEqual (true, HttpWorkerRequest.GetStatusDescription (305) != "", "D17");
527 Assert.AreEqual (true, HttpWorkerRequest.GetStatusDescription (307) != "", "D18");
528 Assert.AreEqual (true, HttpWorkerRequest.GetStatusDescription (400) != "", "D19");
529 Assert.AreEqual (true, HttpWorkerRequest.GetStatusDescription (401) != "", "D20");
530 Assert.AreEqual (true, HttpWorkerRequest.GetStatusDescription (402) != "", "D21");
531 Assert.AreEqual (true, HttpWorkerRequest.GetStatusDescription (403) != "", "D22");
532 Assert.AreEqual (true, HttpWorkerRequest.GetStatusDescription (404) != "", "D23");
533 Assert.AreEqual (true, HttpWorkerRequest.GetStatusDescription (405) != "", "D24");
534 Assert.AreEqual (true, HttpWorkerRequest.GetStatusDescription (406) != "", "D25");
535 Assert.AreEqual (true, HttpWorkerRequest.GetStatusDescription (407) != "", "D26");
536 Assert.AreEqual (true, HttpWorkerRequest.GetStatusDescription (408) != "", "D27");
537 Assert.AreEqual (true, HttpWorkerRequest.GetStatusDescription (409) != "", "D28");
538 Assert.AreEqual (true, HttpWorkerRequest.GetStatusDescription (410) != "", "D29");
539 Assert.AreEqual (true, HttpWorkerRequest.GetStatusDescription (411) != "", "D30");
540 Assert.AreEqual (true, HttpWorkerRequest.GetStatusDescription (412) != "", "D31");
541 Assert.AreEqual (true, HttpWorkerRequest.GetStatusDescription (413) != "", "D32");
542 Assert.AreEqual (true, HttpWorkerRequest.GetStatusDescription (414) != "", "D33");
543 Assert.AreEqual (true, HttpWorkerRequest.GetStatusDescription (415) != "", "D34");
544 Assert.AreEqual (true, HttpWorkerRequest.GetStatusDescription (416) != "", "D35");
545 Assert.AreEqual (true, HttpWorkerRequest.GetStatusDescription (417) != "", "D36");
546 Assert.AreEqual (true, HttpWorkerRequest.GetStatusDescription (422) != "", "D37");
547 Assert.AreEqual (true, HttpWorkerRequest.GetStatusDescription (423) != "", "D38");
548 Assert.AreEqual (true, HttpWorkerRequest.GetStatusDescription (424) != "", "D39");
549 Assert.AreEqual (true, HttpWorkerRequest.GetStatusDescription (500) != "", "D40");
550 Assert.AreEqual (true, HttpWorkerRequest.GetStatusDescription (501) != "", "D41");
551 Assert.AreEqual (true, HttpWorkerRequest.GetStatusDescription (502) != "", "D42");
552 Assert.AreEqual (true, HttpWorkerRequest.GetStatusDescription (503) != "", "D43");
553 Assert.AreEqual (true, HttpWorkerRequest.GetStatusDescription (504) != "", "D44");
554 Assert.AreEqual (true, HttpWorkerRequest.GetStatusDescription (505) != "", "D45");
555 Assert.AreEqual (true, HttpWorkerRequest.GetStatusDescription (507) != "", "D46");