4 * Copyright(c) 2012 olyutorskii
7 package jp.sfjp.jindolf.net;
9 import java.io.IOException;
10 import java.net.HttpURLConnection;
12 import org.junit.After;
13 import org.junit.AfterClass;
14 import org.junit.Before;
15 import org.junit.BeforeClass;
16 import org.junit.Test;
18 import static org.junit.Assert.*;
24 public class HttpUtilsTest {
26 public HttpUtilsTest() {
30 public static void setUpClass() throws Exception {
34 public static void tearDownClass() throws Exception {
42 public void tearDown() {
46 * Test of escapeHttpComment method, of class HttpUtils.
49 public void testEscapeHttpComment(){
50 System.out.println("escapeHttpComment");
58 result = HttpUtils.escapeHttpComment(comment);
59 assertEquals(expResult, result);
61 comment = "abc(pqr)xyz";
62 expResult = "(abc\\(pqr\\)xyz)";
63 result = HttpUtils.escapeHttpComment(comment);
64 assertEquals(expResult, result);
68 result = HttpUtils.escapeHttpComment(comment);
69 assertEquals(expResult, result);
73 result = HttpUtils.escapeHttpComment(comment);
74 assertEquals(expResult, result);
80 * Test of throughput method, of class HttpUtils.
83 public void testThroughput() {
84 System.out.println("throughput");
87 result = HttpUtils.throughput(1000, 1000 * 1000 * 1000);
88 assertEquals("1,000Bytes 1,000.0Bytes/sec", result);
90 result = HttpUtils.throughput(1499, 1000 * 1000 * 1000);
91 assertEquals("1,499Bytes 1,499.0Bytes/sec", result);
93 result = HttpUtils.throughput(1500, 1000 * 1000 * 1000);
94 assertEquals("1,500Bytes 1.5KBytes/sec", result);
96 result = HttpUtils.throughput(1000, 2000 * 1000 * 1000);
97 assertEquals("1,000Bytes 500.0Bytes/sec", result);
99 result = HttpUtils.throughput(1499999, 1000 * 1000 * 1000);
100 assertEquals("1,499,999Bytes 1,500.0KBytes/sec", result);
102 result = HttpUtils.throughput(1500000, 1000 * 1000 * 1000);
103 assertEquals("1,500,000Bytes 1.5MBytes/sec", result);
105 result = HttpUtils.throughput(1, 1000 * 1000 * 1000);
106 assertEquals("1Bytes 1.0Bytes/sec", result);
108 result = HttpUtils.throughput(0, 1000 * 1000 * 1000);
109 assertEquals("", result);
115 * Test of formatHttpStat method, of class HttpUtils.
118 public void testFormatHttpStat() throws Exception{
119 System.out.println("formatHttpStat");
121 URL url = new URL("http://example.com");
122 DummyConnection dummy = new DummyConnection(url);
123 long onesec = 1000 * 1000 * 1000;
127 dummy.setRequestMethod("GET");
128 dummy.responseCodeX = 200;
129 dummy.responseMessageX = "OK";
130 result = HttpUtils.formatHttpStat(dummy, 1000, onesec);
131 expected = "GET http://example.com [200 OK]"
132 + " 1,000Bytes 1,000.0Bytes/sec";
133 assertEquals(expected, result);
139 * Test of getUserAgentName method, of class HttpUtils.
142 public void testGetUserAgentName() {
143 System.out.println("getUserAgentName");
145 String result = HttpUtils.getUserAgentName();
146 assertNotNull(result);
152 * Test of getHTMLCharset method, of class HttpUtils.
155 public void testGetHTMLCharset_URLConnection() throws Exception{
156 System.out.println("getHTMLCharset");
158 URL url = new URL("http://example.com");
159 DummyConnection dummy = new DummyConnection(url);
162 result = HttpUtils.getHTMLCharset(dummy);
165 dummy.contentTypeX = "text/html;charset=Shift_JIS";
166 result = HttpUtils.getHTMLCharset(dummy);
167 assertEquals("Shift_JIS", result);
173 * Test of getHTMLCharset method, of class HttpUtils.
176 public void testGetHTMLCharset_String() {
177 System.out.println("getHTMLCharset");
182 contentType = "text/html;charset=Shift_JIS";
183 result = HttpUtils.getHTMLCharset(contentType);
184 assertEquals("Shift_JIS", result);
186 contentType = "text/html;charset=\";;;\"";
187 result = HttpUtils.getHTMLCharset(contentType);
188 assertEquals("\";;;\"", result);
190 contentType = "text/html ; charset = Shift_JIS ; a = b ; d=\"xyz\" ";
191 result = HttpUtils.getHTMLCharset(contentType);
192 assertEquals("Shift_JIS", result);
194 contentType = " text/html ;charset=Shift_JIS";
195 result = HttpUtils.getHTMLCharset(contentType);
196 assertEquals("Shift_JIS", result);
198 contentType = "tex/html;charset=Shift_JIS";
199 result = HttpUtils.getHTMLCharset(contentType);
202 contentType = "text/htm;charset=Shift_JIS";
203 result = HttpUtils.getHTMLCharset(contentType);
206 contentType = "text / html;charset=Shift_JIS";
207 result = HttpUtils.getHTMLCharset(contentType);
210 contentType = "text/html";
211 result = HttpUtils.getHTMLCharset(contentType);
214 contentType = "text/html;";
215 result = HttpUtils.getHTMLCharset(contentType);
218 contentType = "text/html;charse=Shift_JIS";
219 result = HttpUtils.getHTMLCharset(contentType);
225 private class DummyConnection extends HttpURLConnection{
227 public int responseCodeX;
228 public String responseMessageX;
229 public String contentTypeX;
231 public DummyConnection(URL u) {
236 public int getResponseCode(){
237 return this.responseCodeX;
241 public String getResponseMessage(){
242 return this.responseMessageX;
246 public String getContentType(){
247 return this.contentTypeX;
251 public void connect() throws IOException {
252 throw new UnsupportedOperationException("Not supported yet.");
256 public void disconnect() {
257 throw new UnsupportedOperationException("Not supported yet.");
261 public boolean usingProxy() {
262 throw new UnsupportedOperationException("Not supported yet.");