View Javadoc

1   /* FixupQueryStrTest
2    * 
3    * Created on Oct 6, 2004
4    *
5    * Copyright (C) 2004 Internet Archive.
6    * 
7    * This file is part of the Heritrix web crawler (crawler.archive.org).
8    * 
9    * Heritrix is free software; you can redistribute it and/or modify
10   * it under the terms of the GNU Lesser Public License as published by
11   * the Free Software Foundation; either version 2.1 of the License, or
12   * any later version.
13   * 
14   * Heritrix is distributed in the hope that it will be useful, 
15   * but WITHOUT ANY WARRANTY; without even the implied warranty of
16   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17   * GNU Lesser Public License for more details.
18   * 
19   * You should have received a copy of the GNU Lesser Public License
20   * along with Heritrix; if not, write to the Free Software
21   * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
22   */
23  package org.archive.crawler.url.canonicalize;
24  
25  import org.apache.commons.httpclient.URIException;
26  import org.archive.net.UURIFactory;
27  
28  import junit.framework.TestCase;
29  
30  /***
31   * Test we strip trailing question mark.
32   * @author stack
33   * @version $Date: 2006-09-01 22:44:50 +0000 (Fri, 01 Sep 2006) $, $Revision: 4591 $
34   */
35  public class FixupQueryStrTest extends TestCase {
36  
37      public void testCanonicalize() throws URIException {
38          final String url = "http://WWW.aRchive.Org/index.html";
39          assertTrue("Mangled " + url,
40              url.equals((new FixupQueryStr("test")).
41                  canonicalize(url, UURIFactory.getInstance(url))));
42          assertTrue("Failed to strip '?' " + url,
43              url.equals((new FixupQueryStr("test")).
44                  canonicalize(url + "?", UURIFactory.getInstance(url))));
45          assertTrue("Failed to strip '?&' " + url,
46              url.equals((new FixupQueryStr("test")).
47                  canonicalize(url + "?&", UURIFactory.getInstance(url))));
48          assertTrue("Failed to strip extraneous '&' " + url,
49              (url + "?x=y").equals((new FixupQueryStr("test")).
50                  canonicalize(url + "?&x=y", UURIFactory.getInstance(url))));
51          String tmp = url + "?x=y";
52          assertTrue("Mangled x=y " + tmp,
53              tmp.equals((new FixupQueryStr("test")).
54                  canonicalize(tmp, UURIFactory.getInstance(url))));
55          String tmp2 = tmp + "&";
56          String fixed = new FixupQueryStr("test").
57              canonicalize(tmp2, UURIFactory.getInstance(url));
58          assertTrue("Mangled " + tmp2, tmp.equals(fixed));
59      }
60  }