Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /* Copyright 2010-2014 Norconex Inc.
   *
   * Licensed under the Apache License, Version 2.0 (the "License");
   * you may not use this file except in compliance with the License.
   * You may obtain a copy of the License at
   *
   *     http://www.apache.org/licenses/LICENSE-2.0
   *
   * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
 package com.norconex.importer;
 
 import java.io.File;
 
 import org.junit.Test;
 
 
 public class ImporterTest {
 
     private Importer importer;
     
     @Before
     public void setUp() throws Exception {
         ImporterConfig config = new ImporterConfig();
         config.setPostParseHandlers(new IDocumentTransformer[] {
                 new IDocumentTransformer() {
             @Override
             public void transformDocument(String referenceInputStream input,
                     OutputStream outputImporterMetadata metadata
                             boolean parsedthrows ImporterHandlerException {
                 try {
                     // Clean up what we know is extra noise for a given format
                     Pattern pattern = 
                             Pattern.compile("[^a-zA-Z ]".);
                     String txt = IOUtils.toString(input);
                     txt = pattern.matcher(txt).replaceAll("");
                     txt = txt.replaceAll("DowntheRabbitHole""");
                     txt = StringUtils.replace(txt" """);
                     txt = StringUtils.replace(txt"httppdfreebooksorg""");
                     IOUtils.write(txtoutput);
                 } catch (IOException e) {
                     throw new ImporterHandlerException(e);
                 }
             }
         }});
          = new Importer(config);
     }
 
     @After
     public void tearDown() throws Exception {
          = null;
     }
     
     @Test
     public void testImportDocument() throws IOExceptionImporterException {
         
         // MS Doc
         File docxOutput = File.createTempFile("ImporterTest-doc-"".txt");
         Properties metaDocx = new Properties();
                 TestUtil.getAliceDocxFile(), metaDocx).getDocument(), 
                         docxOutput);
 
         // PDF
         File pdfOutput = File.createTempFile("ImporterTest-pdf-"".txt");
         Properties metaPdf = new Properties();
                 TestUtil.getAlicePdfFile(), metaPdf).getDocument(), pdfOutput);
 
         // ZIP/RTF
         File rtfOutput = File.createTempFile("ImporterTest-zip-rtf-"".txt");
         Properties metaRtf = new Properties();
                 TestUtil.getAliceZipFile(), metaRtf).getDocument(), rtfOutput);
         
        Assert.assertTrue("Converted file size is too small to be valid.",
                pdfOutput.length() > 10);
        double doc = docxOutput.length();
        double pdf = pdfOutput.length();
        double rtf = rtfOutput.length();
        if (Math.abs(pdf - doc) / 1024.0 > 0.03 
                || Math.abs(pdf - rtf) / 1024.0 > 0.03) {
            Assert.fail("Content extracted from examples documents are too "
                    + "different from each other. They were not deleted to "
                    + "help you troubleshoot under: " 
                    + FileUtils.getTempDirectoryPath() + "ImporterTest-*");
        } else {
            FileUtils.deleteQuietly(docxOutput);
            FileUtils.deleteQuietly(pdfOutput);
            FileUtils.deleteQuietly(rtfOutput);
        }
    }
    @Test
    public void testImportRejected() throws IOExceptionImporterException {
        ImporterConfig config = new ImporterConfig();
        config.setPostParseHandlers(new RegexMetadataFilter(
                "Content-Type""application/pdf".));
        Importer importer = new Importer(config);
        ImporterResponse result = importer.importDocument(
                TestUtil.getAlicePdfFile(), .null
                        new ImporterMetadata(), "n/a");
        ..println("Reject desc: "
                        + result.getImporterStatus().getDescription());
        Assert.assertTrue(result.getImporterStatus().isRejected() 
                && result.getImporterStatus().getDescription().contains(
                        "RegexMetadataFilter"));
    }
    
    private void writeToFile(ImporterDocument docFile file)
            throws IOException {
        FileOutputStream out = new FileOutputStream(file);
        IOUtils.copy(doc.getContent(), out);
        out.close();
    }
    
New to GrepCode? Check out our FAQ X