2 // Rafael Mizrahi <rafim@mainsoft.com>
3 // Erez Lotan <erezl@mainsoft.com>
4 // Oren Gurfinkel <oreng@mainsoft.com>
7 // Copyright (c) 2004 Mainsoft Co.
9 // Permission is hereby granted, free of charge, to any person obtaining
10 // a copy of this software and associated documentation files (the
11 // "Software"), to deal in the Software without restriction, including
12 // without limitation the rights to use, copy, modify, merge, publish,
13 // distribute, sublicense, and/or sell copies of the Software, and to
14 // permit persons to whom the Software is furnished to do so, subject to
15 // the following conditions:
17 // The above copyright notice and this permission notice shall be
18 // included in all copies or substantial portions of the Software.
20 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
21 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
22 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
23 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
24 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
25 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
26 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
39 /// Summary description for HttpClientBase.
41 public class HttpClientBase : GHTBase
43 protected string _testingUrl = "";
44 protected string _proxyAddress = "";
45 public HttpClientBase()
47 _testingUrl = "http://localhost/httpapp/";
48 _proxyAddress = "localhost";
51 protected string TCUrl(string page)
53 return _testingUrl + page;
56 //===========================================================
57 // HTTP request/response routines
58 //===========================================================
60 protected HttpStatusCode HttpRequestStatusCode(string url)
62 return HttpRequestStatusCode(CreateRequest(url));
64 protected HttpStatusCode HttpRequestStatusCode(HttpWebRequest _request)
66 System.Net.HttpWebResponse _response;
67 _response = (HttpWebResponse)_request.GetResponse();
69 HttpStatusCode c = _response.StatusCode;
75 protected string HttpRequestString(string url)
77 return HttpRequestString(CreateRequest(url));
79 protected string HttpRequestString(HttpWebRequest _request)
81 System.Net.HttpWebResponse _response;
82 _response = (HttpWebResponse)_request.GetResponse();
84 Stream s = _response.GetResponseStream();
85 TextReader r = new StreamReader(s);
87 string str = r.ReadToEnd();
93 protected HttpWebRequest CreateRequest(string url)
95 return (HttpWebRequest)System.Net.WebRequest.Create(url);
98 //===========================================================
99 // Upload/Download Data utilities
100 //===========================================================
102 protected bool ValidateFile(string filename)
104 FileStream fs = new FileStream(filename, FileMode.Open, FileAccess.Read, FileShare.Read);
105 byte [] buffer = new byte[fs.Length];
106 fs.Read(buffer, 0, buffer.Length);
109 return ValidateData(buffer);
112 protected bool ValidateData(byte [] sdata)
114 for (int i=0; i < sdata.Length; i++)
116 if (sdata[i] != (byte)(i % 256))
122 protected byte [] GenerateData(int size)
124 byte [] sdata = new byte[size];
125 for (int i=0; i < sdata.Length; i++)
127 sdata[i] = (byte)(i % 256);
133 //===========================================================
134 // Test case execution routines
135 //===========================================================
137 protected delegate bool TestCaseDelegate();
138 protected void ExecuteTestCase(string name, TestCaseDelegate f)
140 Exception exp = null;
146 Compare( f(), true );
148 catch(Exception ex){exp = ex;}
149 finally{EndCase(exp); exp = null;}