View Javadoc

    1   /* ARCReaderFactoryTest.java
    2    *
    3    * $Id: ARCReaderFactoryTest.java 4512 2006-08-19 00:22:10Z stack-sf $
    4    *
    5    * Created Jul 15, 2005
    6    *
    7    * Copyright (C) 2005 Internet Archive.
    8    *
    9    * This file is part of the Heritrix web crawler (crawler.archive.org).
    10   *
    11   * Heritrix is free software; you can redistribute it and/or modify
    12   * it under the terms of the GNU Lesser Public License as published by
    13   * the Free Software Foundation; either version 2.1 of the License, or
    14   * any later version.
    15   *
    16   * Heritrix is distributed in the hope that it will be useful,
    17   * but WITHOUT ANY WARRANTY; without even the implied warranty of
    18   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    19   * GNU Lesser Public License for more details.
    20   *
    21   * You should have received a copy of the GNU Lesser Public License
    22   * along with Heritrix; if not, write to the Free Software
    23   * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
    24   */
    25  package org.archive.io.arc;
    26
    27  import java.io.File;
    28  import java.io.IOException;
    29  import java.net.MalformedURLException;
    30  import java.net.URL;
    31  import java.util.Iterator;
    32
    33  import org.archive.util.TmpDirTestCase;
    34
    35  public class ARCReaderFactoryTest extends TmpDirTestCase {
    36  //    public void testGetHttpURL() throws MalformedURLException, IOException {
    37  //        ARCReader reader = null;
    38  //        try {
    39  //            // TODO: I can get a single ARCRecord but trying to iterate from
    40  //            // a certain point is getting an EOR when I go to read GZIP header.
    41  //            reader = ARCReaderFactory.
    42  //                get(new URL("http://localhost/test.arc.gz"), 0);
    43  //            for (final Iterator i = reader.iterator(); i.hasNext();) {
    44  //                ARCRecord ar = (ARCRecord)i.next();
    45  //                System.out.println(ar.getMetaData().getUrl());
    46  //            }
    47  //        } finally {
    48  //            if (reader != null) {
    49  //                reader.close();
    50  //            }
    51  //        }
    52  //    }
    53
    54      /***
    55       * Test File URL.
    56       * If a file url, we just use the pointed to file.  There is no
    57       * copying down to a file in tmp that gets cleaned up after close.
    58       * @throws MalformedURLException
    59       * @throws IOException
    60       */
    61      public void testGetFileURL() throws MalformedURLException, IOException {
    62          File arc = ARCWriterTest.createARCFile(getTmpDir(), true);
    63          doGetFileUrl(arc);
    64      }
    65
    66      protected void doGetFileUrl(File arc)
    67      throws MalformedURLException, IOException {
    68          ARCReader reader = null;
    69          File tmpFile = null;
    70          try {
    71              reader = ARCReaderFactory.
    72                  get(new URL("file:////" + arc.getAbsolutePath()));
    73              tmpFile = null;
    74              for (Iterator i = reader.iterator(); i.hasNext();) {
    75                  ARCRecord r = (ARCRecord)i.next();
    76                  if (tmpFile == null) {
    77                      tmpFile = new File(r.getMetaData().getArc());
    78                  }
    79              }
    80              assertTrue(tmpFile.exists());
    81          } finally {
    82              if (reader != null) {
    83                  reader.close();
    84              }
    85          }
    86          assertTrue(tmpFile.exists());
    87      }
    88
    89      /***
    90       * Test path or url.
    91       * @throws MalformedURLException
    92       * @throws IOException
    93       */
    94      public void testGetPathOrURL() throws MalformedURLException, IOException {
    95          File arc = ARCWriterTest.createARCFile(getTmpDir(), true);
    96          ARCReader reader = ARCReaderFactory.get(arc.getAbsoluteFile());
    97          assertNotNull(reader);
    98          reader.close();
    99          doGetFileUrl(arc);
    100     }
    101 }