OSDN Git Service

Merge release/v3.303.106
[jindolf/Jindolf.git] / src / test / java / jp / sfjp / jindolf / net / HttpUtilsTest.java
1 /*
2  * HttpUtils Test
3  *
4  * Copyright(c) 2012 olyutorskii
5  */
6
7 package jp.sfjp.jindolf.net;
8
9 import java.io.IOException;
10 import java.net.HttpURLConnection;
11 import java.net.URL;
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;
17
18 import static org.junit.Assert.*;
19
20 /**
21  *
22  *
23  */
24 public class HttpUtilsTest {
25
26     public HttpUtilsTest() {
27     }
28
29     @BeforeClass
30     public static void setUpClass() throws Exception {
31     }
32
33     @AfterClass
34     public static void tearDownClass() throws Exception {
35     }
36
37     @Before
38     public void setUp() {
39     }
40
41     @After
42     public void tearDown() {
43     }
44
45     /**
46      * Test of escapeHttpComment method, of class HttpUtils.
47      */
48     @Test
49     public void testEscapeHttpComment(){
50         System.out.println("escapeHttpComment");
51
52         CharSequence comment;
53         String expResult;
54         String result;
55
56         comment = "abc";
57         expResult = "(abc)";
58         result = HttpUtils.escapeHttpComment(comment);
59         assertEquals(expResult, result);
60
61         comment = "abc(pqr)xyz";
62         expResult = "(abc\\(pqr\\)xyz)";
63         result = HttpUtils.escapeHttpComment(comment);
64         assertEquals(expResult, result);
65
66         comment = "a\nb";
67         expResult = "(a?b)";
68         result = HttpUtils.escapeHttpComment(comment);
69         assertEquals(expResult, result);
70
71         comment = "a狼b";
72         expResult = "(a?b)";
73         result = HttpUtils.escapeHttpComment(comment);
74         assertEquals(expResult, result);
75
76         return;
77     }
78
79     /**
80      * Test of throughput method, of class HttpUtils.
81      */
82     @Test
83     public void testThroughput() {
84         System.out.println("throughput");
85         String result;
86
87         result = HttpUtils.throughput(1000, 1000 * 1000 * 1000);
88         assertEquals("1,000Bytes 1,000.0Bytes/sec", result);
89
90         result = HttpUtils.throughput(1499, 1000 * 1000 * 1000);
91         assertEquals("1,499Bytes 1,499.0Bytes/sec", result);
92
93         result = HttpUtils.throughput(1500, 1000 * 1000 * 1000);
94         assertEquals("1,500Bytes 1.5KBytes/sec", result);
95
96         result = HttpUtils.throughput(1000, 2000 * 1000 * 1000);
97         assertEquals("1,000Bytes 500.0Bytes/sec", result);
98
99         result = HttpUtils.throughput(1499999, 1000 * 1000 * 1000);
100         assertEquals("1,499,999Bytes 1,500.0KBytes/sec", result);
101
102         result = HttpUtils.throughput(1500000, 1000 * 1000 * 1000);
103         assertEquals("1,500,000Bytes 1.5MBytes/sec", result);
104
105         result = HttpUtils.throughput(1, 1000 * 1000 * 1000);
106         assertEquals("1Bytes 1.0Bytes/sec", result);
107
108         result = HttpUtils.throughput(0, 1000 * 1000 * 1000);
109         assertEquals("", result);
110
111         return;
112     }
113
114     /**
115      * Test of formatHttpStat method, of class HttpUtils.
116      */
117     @Test
118     public void testFormatHttpStat() throws Exception{
119         System.out.println("formatHttpStat");
120
121         URL url = new URL("http://example.com");
122         DummyConnection dummy = new DummyConnection(url);
123         long onesec = 1000 * 1000 * 1000;
124         String result;
125         String expected;
126
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);
134
135         return;
136     }
137
138     /**
139      * Test of getUserAgentName method, of class HttpUtils.
140      */
141     @Test
142     public void testGetUserAgentName() {
143         System.out.println("getUserAgentName");
144
145         String result = HttpUtils.getUserAgentName();
146         assertNotNull(result);
147
148         return;
149     }
150
151     /**
152      * Test of getHTMLCharset method, of class HttpUtils.
153      */
154     @Test
155     public void testGetHTMLCharset_URLConnection() throws Exception{
156         System.out.println("getHTMLCharset");
157
158         URL url = new URL("http://example.com");
159         DummyConnection dummy = new DummyConnection(url);
160         String result;
161
162         result = HttpUtils.getHTMLCharset(dummy);
163         assertNull(result);
164
165         dummy.contentTypeX = "text/html;charset=Shift_JIS";
166         result = HttpUtils.getHTMLCharset(dummy);
167         assertEquals("Shift_JIS", result);
168
169         return;
170     }
171
172     /**
173      * Test of getHTMLCharset method, of class HttpUtils.
174      */
175     @Test
176     public void testGetHTMLCharset_String() {
177         System.out.println("getHTMLCharset");
178         String contentType;
179
180         String result;
181
182         contentType = "text/html;charset=Shift_JIS";
183         result = HttpUtils.getHTMLCharset(contentType);
184         assertEquals("Shift_JIS", result);
185
186         contentType = "text/html;charset=\";;;\"";
187         result = HttpUtils.getHTMLCharset(contentType);
188         assertEquals("\";;;\"", result);
189
190         contentType = "text/html ; charset = Shift_JIS ; a = b  ; d=\"xyz\"  ";
191         result = HttpUtils.getHTMLCharset(contentType);
192         assertEquals("Shift_JIS", result);
193
194         contentType = " text/html ;charset=Shift_JIS";
195         result = HttpUtils.getHTMLCharset(contentType);
196         assertEquals("Shift_JIS", result);
197
198         contentType = "tex/html;charset=Shift_JIS";
199         result = HttpUtils.getHTMLCharset(contentType);
200         assertNull(result);
201
202         contentType = "text/htm;charset=Shift_JIS";
203         result = HttpUtils.getHTMLCharset(contentType);
204         assertNull(result);
205
206         contentType = "text / html;charset=Shift_JIS";
207         result = HttpUtils.getHTMLCharset(contentType);
208         assertNull(result);
209
210         contentType = "text/html";
211         result = HttpUtils.getHTMLCharset(contentType);
212         assertNull(result);
213
214         contentType = "text/html;";
215         result = HttpUtils.getHTMLCharset(contentType);
216         assertNull(result);
217
218         contentType = "text/html;charse=Shift_JIS";
219         result = HttpUtils.getHTMLCharset(contentType);
220         assertNull(result);
221
222         return;
223     }
224
225     private class DummyConnection extends HttpURLConnection{
226
227         public int responseCodeX;
228         public String responseMessageX;
229         public String contentTypeX;
230
231         public DummyConnection(URL u) {
232             super(u);
233         }
234
235         @Override
236         public int getResponseCode(){
237             return this.responseCodeX;
238         }
239
240         @Override
241         public String getResponseMessage(){
242             return this.responseMessageX;
243         }
244
245         @Override
246         public String getContentType(){
247             return this.contentTypeX;
248         }
249
250         @Override
251         public void connect() throws IOException {
252             throw new UnsupportedOperationException("Not supported yet.");
253         }
254
255         @Override
256         public void disconnect() {
257             throw new UnsupportedOperationException("Not supported yet.");
258         }
259
260         @Override
261         public boolean usingProxy() {
262             throw new UnsupportedOperationException("Not supported yet.");
263         }
264
265     }
266
267 }