/* * This file is part of the LibreOffice project. * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. * * This file incorporates work covered by the following license notice: * * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed * with this work for additional information regarding copyright * ownership. The ASF licenses this file to you 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 . */ package convwatch; // imports import java.io.File; import java.io.FileFilter; import com.sun.star.lang.XMultiServiceFactory; import helper.OfficeProvider; /** * The following Complex Test will test * an already created document and it's postscript output (by an older office version) * with a new office version. * This test use Ghostscript for the jpeg export and graphically compare tools from ImageMagick. * Read the manual for more information. * * this is only the starter program * more is found in qadevOOo/runner/convwatch/* */ public class ReferenceBuilder extends EnhancedComplexTestCase { // The first of the mandatory functions: /** * Return the name of the test. * In this case it is the actual name of the service. * @return The tested service. */ @Override public String getTestObjectName() { return "ReferenceBuilder runner"; } // The second of the mandatory functions: return all test methods as an // array. There is only one test function in this example. /** * Return all test methods. * @return The test methods. */ @Override public String[] getTestMethodNames() { return new String[]{"buildreference"}; } // This test is fairly simple, so there is no need for before() or after() // methods. public void before() { } public void after() { } // The test method itself. private String m_sInputPath = ""; private String m_sReferencePath = ""; private void initMember() { // MUST PARAMETER // INPUT_PATH ---------- String sINPATH = (String)param.get( PropertyName.DOC_COMPARATOR_INPUT_PATH ); boolean bQuit = false; if (sINPATH == null || sINPATH.length() == 0) { log.println("Please set input path (path to documents) " + PropertyName.DOC_COMPARATOR_INPUT_PATH + "=path."); bQuit = true; } else { log.println("found " + PropertyName.DOC_COMPARATOR_INPUT_PATH + " " + sINPATH); m_sInputPath = sINPATH; } // REFERENCE_PATH ---------- String sREF = (String)param.get( PropertyName.DOC_COMPARATOR_REFERENCE_PATH ); if (sREF == null || sREF.length() == 0) { log.println("Please set output path (path to a directory, where the references should stay) " + PropertyName.DOC_COMPARATOR_REFERENCE_PATH + "=path."); bQuit = true; } else { log.println("found " + PropertyName.DOC_COMPARATOR_REFERENCE_PATH + " " + sREF); m_sReferencePath = sREF; } if (bQuit) { assure("Must quit, Parameter problems.", false); } if (m_sInputPath.startsWith("file:") || m_sReferencePath.startsWith("file:")) { assure("We can't handle file: URL right, use system path instead.", false); } } /** * Function returns a List of software which must accessible as an external executable */ @Override protected String[] mustInstalledSoftware() { return new String[] { "perl -version" }; } // the test ====================================================================== public void buildreference() { GlobalLogWriter.set(log); String sDBConnection = (String)param.get( PropertyName.DB_CONNECTION_STRING ); // check if all need software is installed and accessible checkEnvironment(mustInstalledSoftware()); GraphicalTestArguments aGTA = getGraphicalTestArguments(); if (aGTA == null) { assure("Must quit", false); } if (aGTA.cancelRequest()) { return; } initMember(); DB.init(aGTA.getDBInfoString() + "," + sDBConnection); File aInputPath = new File(m_sInputPath); if (aInputPath.isDirectory()) { String fs = System.getProperty("file.separator"); aInputPath.getAbsolutePath(); // a whole directory FileFilter aFileFilter = FileHelper.getFileFilter(); Object[] aList = DirectoryHelper.traverse(m_sInputPath, aFileFilter, aGTA.includeSubDirectories()); // normal run. for (int i=0;i