KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > net > javacoding > jspider > core > util > URLUtilTest


1 package net.javacoding.jspider.core.util;
2
3 import junit.framework.TestCase;
4
5 import java.net.URL JavaDoc;
6
7 /**
8  * $Id: URLUtilTest.java,v 1.10 2003/04/29 17:53:49 vanrogu Exp $
9  */

10 public class URLUtilTest extends TestCase {
11
12     public URLUtilTest ( ) {
13         super ( "URLUtilTest" );
14     }
15
16     protected void setUp() throws Exception JavaDoc {
17         super.setUp();
18     }
19
20     public void testNormalizeNullURL ( ) throws Exception JavaDoc {
21         URL JavaDoc normalized = URLUtil.normalize(null);
22         assertNull ( "null URL normalization didn't return null", normalized);
23     }
24
25     public void testNormalizeSimpleURL ( ) throws Exception JavaDoc {
26         URL JavaDoc original = new URL JavaDoc("http://j-spider.sourceforge.net");
27         URL JavaDoc expected = original;
28         URL JavaDoc normalized = URLUtil.normalize(original);
29
30         boolean equals = normalized.equals(expected);
31
32         assertTrue ( "simple URL normalization didn't return the same url", equals);
33     }
34
35     public void testNormalizeURLWithBackSlashes ( ) throws Exception JavaDoc {
36         URL JavaDoc original = new URL JavaDoc("http://j-spider.sourceforge.net/folder\\subfolder\\test/index.html");
37         URL JavaDoc expected = new URL JavaDoc("http://j-spider.sourceforge.net/folder/subfolder/test/index.html");
38         URL JavaDoc normalized = URLUtil.normalize(original);
39
40         boolean equals = normalized.equals(expected);
41
42         assertTrue ( "simple URL normalization didn't return the same url", equals);
43     }
44
45     public void testNormalizeURLWithParams ( ) throws Exception JavaDoc {
46         URL JavaDoc original = new URL JavaDoc("http://j-spider.sourceforge.net/index.html?param1=value1&param2=value2");
47         URL JavaDoc expected = new URL JavaDoc("http://j-spider.sourceforge.net/index.html");
48         URL JavaDoc normalized = URLUtil.normalize(original);
49
50         boolean equals = normalized.equals(expected);
51
52         assertTrue ( "simple URL normalization didn't return the same url", equals);
53     }
54
55     public void testNormalizeURLWithFolderAndParams ( ) throws Exception JavaDoc {
56         URL JavaDoc original = new URL JavaDoc("http://j-spider.sourceforge.net/manual?param1=value1&param2=value2");
57         URL JavaDoc expected = new URL JavaDoc("http://j-spider.sourceforge.net/manual");
58         URL JavaDoc normalized = URLUtil.normalize(original);
59
60         boolean equals = normalized.equals(expected);
61
62         assertTrue ( "simple URL normalization didn't return the same url", equals);
63     }
64
65     public void testNormalizeURLWithFolderAndTrailingSlashAndParams ( ) throws Exception JavaDoc {
66         URL JavaDoc original = new URL JavaDoc("http://j-spider.sourceforge.net/manual/?param1=value1&param2=value2");
67         URL JavaDoc expected = new URL JavaDoc("http://j-spider.sourceforge.net/manual/");
68         URL JavaDoc normalized = URLUtil.normalize(original);
69
70         boolean equals = normalized.equals(expected);
71
72         assertTrue ( "simple URL normalization didn't return the same url", equals);
73     }
74
75     public void testNormalizeSingleDotFolder ( ) throws Exception JavaDoc {
76         URL JavaDoc original = new URL JavaDoc("http://j-spider.sourceforge.net/folder/./subfolder");
77         URL JavaDoc expected = new URL JavaDoc("http://j-spider.sourceforge.net/folder/subfolder");
78         URL JavaDoc normalized = URLUtil.normalize(original);
79
80         boolean equals = normalized.equals(expected);
81
82         assertTrue ( "URL with single dot folder normalization failed", equals);
83     }
84
85     public void testNormalizeMultipleDotFolder ( ) throws Exception JavaDoc {
86         URL JavaDoc original = new URL JavaDoc("http://j-spider.sourceforge.net/./folder/./subfolder/./a");
87         URL JavaDoc expected = new URL JavaDoc("http://j-spider.sourceforge.net/folder/subfolder/a");
88         URL JavaDoc normalized = URLUtil.normalize(original);
89
90         boolean equals = normalized.equals(expected);
91
92         assertTrue ( "URL with single dot folder normalization failed", equals);
93     }
94
95     public void testNormalizeTrailingSlash ( ) throws Exception JavaDoc {
96         URL JavaDoc original = new URL JavaDoc("http://j-spider.sourceforge.net/");
97         URL JavaDoc expected = new URL JavaDoc("http://j-spider.sourceforge.net/");
98         URL JavaDoc normalized = URLUtil.normalize(original);
99
100         boolean equals = normalized.equals(expected);
101
102         assertTrue ( "URL with trailing slash did not normalize well", equals);
103     }
104
105     public void testNormalizeCombinedFunctionality ( ) throws Exception JavaDoc {
106         // multiple dot folders and a trailing slash !
107
URL JavaDoc original = new URL JavaDoc("http://j-spider.sourceforge.net/./folder/./subfolder/./");
108         URL JavaDoc expected = new URL JavaDoc("http://j-spider.sourceforge.net/folder/subfolder/");
109         URL JavaDoc normalized = URLUtil.normalize(original);
110
111         boolean equals = normalized.equals(expected);
112
113         assertTrue ( "URL with many flows normalize failed", equals);
114     }
115
116     public void testSiteURLFromSimpleURL ( ) throws Exception JavaDoc {
117         URL JavaDoc url = new URL JavaDoc ( "http://j-spider.sourceforge.net/index.html" );
118         URL JavaDoc expected = new URL JavaDoc ( "http://j-spider.sourceforge.net" );
119         URL JavaDoc actual = URLUtil.getSiteURL(url);
120
121         boolean equals = actual.equals ( expected );
122         assertTrue ( "simple resource url failed to resolve to site url", equals );
123     }
124
125
126     public void testSiteURLFromNullURL ( ) throws Exception JavaDoc {
127         URL JavaDoc actual = URLUtil.getSiteURL(null);
128         assertNull ( "null resource url failed to resolve to null site url", actual );
129     }
130
131
132     public void testSiteURLFromSiteURL ( ) throws Exception JavaDoc {
133         URL JavaDoc url = new URL JavaDoc ( "http://j-spider.sourceforge.net" );
134         URL JavaDoc expected = new URL JavaDoc ( "http://j-spider.sourceforge.net" );
135         URL JavaDoc actual = URLUtil.getSiteURL(url);
136
137         boolean equals = actual.equals ( expected );
138         assertTrue ( "site url failed to resolve to itself as site url", equals );
139     }
140
141     public void testSiteURLFromSiteURLWithTrailingSlash ( ) throws Exception JavaDoc {
142         URL JavaDoc url = new URL JavaDoc ( "http://j-spider.sourceforge.net/" );
143         URL JavaDoc expected = new URL JavaDoc ( "http://j-spider.sourceforge.net" );
144         URL JavaDoc actual = URLUtil.getSiteURL(url);
145
146         boolean equals = actual.equals ( expected );
147         assertTrue ( "site url failed to resolve to itself as site url", equals );
148     }
149
150     public void testSiteURLFromSimpleURLWithPort ( ) throws Exception JavaDoc {
151         URL JavaDoc url = new URL JavaDoc ( "http://j-spider.sourceforge.net:123/index.html" );
152         URL JavaDoc expected = new URL JavaDoc ( "http://j-spider.sourceforge.net:123" );
153         URL JavaDoc actual = URLUtil.getSiteURL(url);
154
155         boolean equals = actual.equals ( expected );
156         assertTrue ( "simple resource url with port failed to resolve to site url", equals );
157     }
158
159     public void testSiteURLFromSiteURLWithPort ( ) throws Exception JavaDoc {
160         URL JavaDoc url = new URL JavaDoc ( "http://j-spider.sourceforge.net:123" );
161         URL JavaDoc expected = new URL JavaDoc ( "http://j-spider.sourceforge.net:123" );
162         URL JavaDoc actual = URLUtil.getSiteURL(url);
163
164         boolean equals = actual.equals ( expected );
165         assertTrue ( "simple resource url with port failed to resolve to site url", equals );
166     }
167
168     public void testSiteURLFromSiteURLWithPortAndTrailingSlash ( ) throws Exception JavaDoc {
169         URL JavaDoc url = new URL JavaDoc ( "http://j-spider.sourceforge.net:123/" );
170         URL JavaDoc expected = new URL JavaDoc ( "http://j-spider.sourceforge.net:123" );
171         URL JavaDoc actual = URLUtil.getSiteURL(url);
172
173         boolean equals = actual.equals ( expected );
174         assertTrue ( "simple resource url with port failed to resolve to site url", equals );
175     }
176
177     public void testSiteURLFromFtpURLWithPortAndTrailingSlash ( ) throws Exception JavaDoc {
178         URL JavaDoc url = new URL JavaDoc ( "ftp://j-spider.sourceforge.net:123/folder/" );
179         URL JavaDoc expected = new URL JavaDoc ( "ftp://j-spider.sourceforge.net:123" );
180         URL JavaDoc actual = URLUtil.getSiteURL(url);
181
182         boolean equals = actual.equals ( expected );
183         assertTrue ( "ftp resource url with port failed to resolve to site url", equals );
184     }
185
186     public void testGetRobotsTXTUrlSimple ( ) throws Exception JavaDoc {
187         URL JavaDoc url = new URL JavaDoc ( "http://j-spider.sourceforge.net" );
188         URL JavaDoc expected = new URL JavaDoc ( "http://j-spider.sourceforge.net/robots.txt" );
189         URL JavaDoc actual = URLUtil.getRobotsTXTURL(url);
190         boolean equals = expected.equals(actual);
191         assertTrue("getRobotsTXTURL failed", equals);
192     }
193
194     public void testGetRobotsTXTUrlFromNullURL ( ) throws Exception JavaDoc {
195         URL JavaDoc actual = URLUtil.getRobotsTXTURL(null);
196         assertNull("getRobotsTXTURL (null url) failed", actual);
197     }
198
199     public void testGetRobotsTXTUrlTrailingSlash ( ) throws Exception JavaDoc {
200         URL JavaDoc url = new URL JavaDoc ( "http://j-spider.sourceforge.net/" );
201         URL JavaDoc expected = new URL JavaDoc ( "http://j-spider.sourceforge.net/robots.txt" );
202         URL JavaDoc actual = URLUtil.getRobotsTXTURL(url);
203         boolean equals = expected.equals(actual);
204         assertTrue("getRobotsTXTURL failed", equals);
205     }
206
207     public void testGetRobotsTXTUrlWithPort ( ) throws Exception JavaDoc {
208         URL JavaDoc url = new URL JavaDoc ( "http://j-spider.sourceforge.net:123" );
209         URL JavaDoc expected = new URL JavaDoc ( "http://j-spider.sourceforge.net:123/robots.txt" );
210         URL JavaDoc actual = URLUtil.getRobotsTXTURL(url);
211         boolean equals = expected.equals(actual);
212         assertTrue("getRobotsTXTURL failed", equals);
213     }
214
215     public void testGetRobotsTXTUrlWithPortAndTrailingSlash ( ) throws Exception JavaDoc {
216         URL JavaDoc url = new URL JavaDoc ( "http://j-spider.sourceforge.net:123/" );
217         URL JavaDoc expected = new URL JavaDoc ( "http://j-spider.sourceforge.net:123/robots.txt" );
218         URL JavaDoc actual = URLUtil.getRobotsTXTURL(url);
219         boolean equals = expected.equals(actual);
220         assertTrue("getRobotsTXTURL failed", equals);
221     }
222
223     public void testGetRobotsTXTUrlWithFolders ( ) throws Exception JavaDoc {
224         URL JavaDoc url = new URL JavaDoc ( "http://j-spider.sourceforge.net/folder/folder/resource.html" );
225         URL JavaDoc expected = new URL JavaDoc ( "http://j-spider.sourceforge.net/robots.txt" );
226         URL JavaDoc actual = URLUtil.getRobotsTXTURL(url);
227         boolean equals = expected.equals(actual);
228         assertTrue("getRobotsTXTURL failed", equals);
229     }
230
231     public void testGetRobotsTXTUrlWithPortAndFolders ( ) throws Exception JavaDoc {
232         URL JavaDoc url = new URL JavaDoc ( "http://j-spider.sourceforge.net:123/folder/folder/resource.html" );
233         URL JavaDoc expected = new URL JavaDoc ( "http://j-spider.sourceforge.net:123/robots.txt" );
234         URL JavaDoc actual = URLUtil.getRobotsTXTURL(url);
235         boolean equals = expected.equals(actual);
236         assertTrue("getRobotsTXTURL failed", equals);
237     }
238
239     public void testStripResourceNullResource ( ) {
240         String JavaDoc path = null;
241         String JavaDoc result = URLUtil.stripResource(path);
242         String JavaDoc expected = null;
243         boolean equals = result == expected;
244         assertTrue ( "stripResource failed", equals );
245     }
246
247     public void testStripResourceSimple ( ) {
248         String JavaDoc path = "/folder/subfolder/resource.html";
249         String JavaDoc result = URLUtil.stripResource(path);
250         String JavaDoc expected = "/folder/subfolder/";
251         boolean equals = expected.equals(result);
252         assertTrue ( "stripResource failed", equals );
253     }
254
255     public void testStripResourceTrailingSlash ( ) {
256         String JavaDoc path = "/folder/subfolder/";
257         String JavaDoc result = URLUtil.stripResource(path);
258         String JavaDoc expected = "/folder/subfolder/";
259         boolean equals = expected.equals(result);
260         assertTrue ( "stripResource failed", equals );
261     }
262
263     public void testStripResourceOnlySlash ( ) {
264         String JavaDoc path = "/";
265         String JavaDoc result = URLUtil.stripResource(path);
266         String JavaDoc expected = "/";
267         boolean equals = expected.equals(result);
268         assertTrue ( "stripResource failed", equals );
269     }
270
271     public void testStripResourceOnlyFolder ( ) {
272         String JavaDoc path = "/folder";
273         String JavaDoc result = URLUtil.stripResource(path);
274         String JavaDoc expected = "/";
275         boolean equals = expected.equals(result);
276         assertTrue ( "stripResource failed", equals );
277     }
278
279     public void testDepthSimple ( ) throws Exception JavaDoc {
280         URL JavaDoc url = new URL JavaDoc ( "http://j-spider.sourceforge.net/test/index.html");
281         int expected = 1;
282         int actual = URLUtil.getDepth(url);
283         assertEquals( "depth calculation failed", expected, actual );
284     }
285
286     public void testDepthSimpleDeeper ( ) throws Exception JavaDoc {
287         URL JavaDoc url = new URL JavaDoc ( "http://j-spider.sourceforge.net/test/test2/test3/index.html");
288         int expected = 3;
289         int actual = URLUtil.getDepth(url);
290         assertEquals( "depth calculation failed", expected, actual );
291     }
292
293     public void testDepthFileOnRoot ( ) throws Exception JavaDoc {
294         URL JavaDoc url = new URL JavaDoc ( "http://j-spider.sourceforge.net/index.html");
295         int expected = 0;
296         int actual = URLUtil.getDepth(url);
297         assertEquals( "depth calculation failed", expected, actual );
298     }
299
300     public void testDepthRoot ( ) throws Exception JavaDoc {
301         URL JavaDoc url = new URL JavaDoc ( "http://j-spider.sourceforge.net");
302         int expected = 0;
303         int actual = URLUtil.getDepth(url);
304         assertEquals( "depth calculation failed", expected, actual );
305     }
306
307     public void testDepthRootTrailingSlash ( ) throws Exception JavaDoc {
308         URL JavaDoc url = new URL JavaDoc ( "http://j-spider.sourceforge.net/");
309         int expected = 0;
310         int actual = URLUtil.getDepth(url);
311         assertEquals( "depth calculation failed", expected, actual );
312     }
313
314     public void testDepthNullURL ( ) throws Exception JavaDoc {
315         URL JavaDoc url = null;
316         int expected = 0;
317         int actual = URLUtil.getDepth(url);
318         assertEquals( "depth calculation failed", expected, actual );
319     }
320
321     public void testDepthNoFile ( ) throws Exception JavaDoc {
322         URL JavaDoc url = new URL JavaDoc ( "http://j-spider.sourceforge.net/test");
323         int expected = 1;
324         int actual = URLUtil.getDepth(url);
325         assertEquals( "depth calculation failed", expected, actual );
326     }
327
328     public void testDepthNoFileTrailingSlash ( ) throws Exception JavaDoc {
329         URL JavaDoc url = new URL JavaDoc ( "http://j-spider.sourceforge.net/test/");
330         int expected = 1;
331         int actual = URLUtil.getDepth(url);
332         assertEquals( "depth calculation failed", expected, actual );
333     }
334
335     public void testIfFileSpecifiedSimple ( ) throws Exception JavaDoc {
336         URL JavaDoc url = new URL JavaDoc("http://j-spider.sourceforge.net/test/index.html");
337         boolean expected = true;
338         boolean actual = URLUtil.isFileSpecified(url);
339         assertEquals("isFileSpecified took wrong decision", expected, actual );
340     }
341
342     public void testIfFileSpecifiedFolder ( ) throws Exception JavaDoc {
343         URL JavaDoc url = new URL JavaDoc("http://j-spider.sourceforge.net/test/index");
344         boolean expected = false;
345         boolean actual = URLUtil.isFileSpecified(url);
346         assertEquals("isFileSpecified took wrong decision", expected, actual );
347     }
348
349     public void testIfFileSpecifiedFolderTrailingSlash ( ) throws Exception JavaDoc {
350         URL JavaDoc url = new URL JavaDoc("http://j-spider.sourceforge.net/test/index/");
351         boolean expected = false;
352         boolean actual = URLUtil.isFileSpecified(url);
353         assertEquals("isFileSpecified took wrong decision", expected, actual );
354     }
355
356     public void testIfFileSpecifiedFolderAndFolderWithDot ( ) throws Exception JavaDoc {
357         URL JavaDoc url = new URL JavaDoc("http://j-spider.sourceforge.net/test/index.ext/index");
358         boolean expected = false;
359         boolean actual = URLUtil.isFileSpecified(url);
360         assertEquals("isFileSpecified took wrong decision", expected, actual );
361     }
362
363     public void testGetFolderNamesSimple ( ) throws Exception JavaDoc {
364         URL JavaDoc url = new URL JavaDoc("http://j-spider.sourceforge.net/test/folder/subfolder/index.html");
365         String JavaDoc[] expected = new String JavaDoc[]{"test", "folder", "subfolder"};
366         String JavaDoc[] actual = URLUtil.getFolderNames(url) ;
367
368         assertEquals("wrong number of folderNames returned", expected.length, actual.length);
369         for (int i = 0; i < actual.length; i++) {
370             String JavaDoc s = actual[i];
371             assertEquals("folderName " + i + " is wrong", expected[i], s );
372         }
373     }
374
375     public void testGetFolderNamesURLWithoutFile ( ) throws Exception JavaDoc {
376         URL JavaDoc url = new URL JavaDoc("http://j-spider.sourceforge.net/test/folder/subfolder");
377         String JavaDoc[] expected = new String JavaDoc[]{"test", "folder", "subfolder"};
378         String JavaDoc[] actual = URLUtil.getFolderNames(url) ;
379
380         assertEquals("wrong number of folderNames returned", expected.length, actual.length);
381         for (int i = 0; i < actual.length; i++) {
382             String JavaDoc s = actual[i];
383             assertEquals("folderName " + i + " is wrong", expected[i], s );
384         }
385     }
386
387     public void testGetFolderNamesURLWithoutFileTrailingSlash ( ) throws Exception JavaDoc {
388         URL JavaDoc url = new URL JavaDoc("http://j-spider.sourceforge.net/test/folder/subfolder/");
389         String JavaDoc[] expected = new String JavaDoc[]{"test", "folder", "subfolder"};
390         String JavaDoc[] actual = URLUtil.getFolderNames(url) ;
391
392         assertEquals("wrong number of folderNames returned", expected.length, actual.length);
393         for (int i = 0; i < actual.length; i++) {
394             String JavaDoc s = actual[i];
395             assertEquals("folderName " + i + " is wrong", expected[i], s );
396         }
397     }
398
399     public void testGetFolderNamesOnRoot ( ) throws Exception JavaDoc {
400         URL JavaDoc url = new URL JavaDoc("http://j-spider.sourceforge.net");
401         String JavaDoc[] expected = new String JavaDoc[0];
402         String JavaDoc[] actual = URLUtil.getFolderNames(url) ;
403
404         assertEquals("wrong number of folderNames returned", expected.length, actual.length);
405         for (int i = 0; i < actual.length; i++) {
406             String JavaDoc s = actual[i];
407             assertEquals("folderName " + i + " is wrong", expected[i], s );
408         }
409     }
410
411     public void testGetFolderNamesOnRootTrailingSlash ( ) throws Exception JavaDoc {
412         URL JavaDoc url = new URL JavaDoc("http://j-spider.sourceforge.net/");
413         String JavaDoc[] expected = new String JavaDoc[0];
414         String JavaDoc[] actual = URLUtil.getFolderNames(url) ;
415
416         assertEquals("wrong number of folderNames returned", expected.length, actual.length);
417         for (int i = 0; i < actual.length; i++) {
418             String JavaDoc s = actual[i];
419             assertEquals("folderName " + i + " is wrong", expected[i], s );
420         }
421     }
422
423     public void testGetFolderNamesFileOnRoot ( ) throws Exception JavaDoc {
424         URL JavaDoc url = new URL JavaDoc("http://j-spider.sourceforge.net/index.html");
425         String JavaDoc[] expected = new String JavaDoc[0];
426         String JavaDoc[] actual = URLUtil.getFolderNames(url) ;
427
428         assertEquals("wrong number of folderNames returned", expected.length, actual.length);
429         for (int i = 0; i < actual.length; i++) {
430             String JavaDoc s = actual[i];
431             assertEquals("folderName " + i + " is wrong", expected[i], s );
432         }
433     }
434
435     public void testGetFolderNamesFolderOnRoot ( ) throws Exception JavaDoc {
436         URL JavaDoc url = new URL JavaDoc("http://j-spider.sourceforge.net/test");
437         String JavaDoc[] expected = new String JavaDoc[]{"test"};
438         String JavaDoc[] actual = URLUtil.getFolderNames(url) ;
439
440         assertEquals("wrong number of folderNames returned", expected.length, actual.length);
441         for (int i = 0; i < actual.length; i++) {
442             String JavaDoc s = actual[i];
443             assertEquals("folderName " + i + " is wrong", expected[i], s );
444         }
445     }
446
447     public void testGetFileNameSimple ( ) throws Exception JavaDoc {
448         URL JavaDoc url = new URL JavaDoc("http://j-spider.sourceforge.net/test.html");
449         String JavaDoc expected = "test.html";
450         String JavaDoc actual = URLUtil.getFileName(url) ;
451         assertEquals("returned filename is wrong", expected, actual);
452     }
453
454     public void testGetFileNameInSubfolders ( ) throws Exception JavaDoc {
455         URL JavaDoc url = new URL JavaDoc("http://j-spider.sourceforge.net/test/index/test.html");
456         String JavaDoc expected = "test.html";
457         String JavaDoc actual = URLUtil.getFileName(url) ;
458         assertEquals("returned filename is wrong", expected, actual);
459     }
460
461     public void testGetFileNameInTrickySubfolders ( ) throws Exception JavaDoc {
462         URL JavaDoc url = new URL JavaDoc("http://j-spider.sourceforge.net/test/index.folder/test.html");
463         String JavaDoc expected = "test.html";
464         String JavaDoc actual = URLUtil.getFileName(url) ;
465         assertEquals("returned filename is wrong", expected, actual);
466     }
467
468     public void testGetFileNameNoFile ( ) throws Exception JavaDoc {
469         URL JavaDoc url = new URL JavaDoc("http://j-spider.sourceforge.net/test/index.folder/");
470         String JavaDoc expected = "";
471         String JavaDoc actual = URLUtil.getFileName(url) ;
472         assertEquals("returned filename is wrong", expected, actual);
473     }
474
475 }
476
Popular Tags