diff --git a/qadevOOo/runner/base/basic_fat.java b/qadevOOo/runner/base/basic_fat.java index fe7c541449d6..a46a8abbc9b4 100644 --- a/qadevOOo/runner/base/basic_fat.java +++ b/qadevOOo/runner/base/basic_fat.java @@ -60,12 +60,13 @@ import stats.Summarizer; import util.DynamicClassLoader; - /** * The testbase for executing basic tests. * @see lib.TestBase */ -public class basic_fat implements TestBase { +public class basic_fat implements TestBase +{ + public static boolean debug = false; /** @@ -73,7 +74,8 @@ public class basic_fat implements TestBase { * @param param The test parameters. * @param return True, if the test was executed. */ - public boolean executeTest(TestParameters param) { + public boolean executeTest(TestParameters param) + { DescGetter dg = new APIDescGetter(); String job = (String) param.get("TestJob"); OfficeProvider office = null; @@ -84,11 +86,12 @@ public class basic_fat implements TestBase { System.out.print("Getting Descriptions for Job: " + job + " from "); DescEntry[] entries = dg.getDescriptionFor(job, - (String) param.get( - "DescriptionPath"), - debug); + (String) param.get( + "DescriptionPath"), + debug); - if (entries == null) { + if (entries == null) + { System.out.println("Couldn't get Description for Job"); return false; @@ -97,7 +100,8 @@ public class basic_fat implements TestBase { String ExclusionFile = (String) param.get("ExclusionList"); Vector exclusions = null; - if (ExclusionFile != null) { + if (ExclusionFile != null) + { exclusions = getExclusionList(ExclusionFile, debug); } @@ -106,8 +110,10 @@ public class basic_fat implements TestBase { System.out.print("> Connecting the Office "); System.out.println("With " + conStr); - for (int l = 0; l < entries.length; l++) { - if (entries[l].hasErrorMsg) { + for (int l = 0; l < entries.length; l++) + { + if (entries[l].hasErrorMsg) + { System.out.println(entries[l].ErrorMsg); continue; @@ -116,9 +122,10 @@ public class basic_fat implements TestBase { office = new OfficeProvider(); XMultiServiceFactory msf = (XMultiServiceFactory) office.getManager( - param); + param); - if (msf == null) { + if (msf == null) + { return false; } @@ -134,7 +141,8 @@ public class basic_fat implements TestBase { tCase = (TestCase) new BasicTestCase(entry); - if (tCase == null) { + if (tCase == null) + { sumIt.summarizeDown(entry, entry.ErrorMsg); LogWriter sumObj = OutProducerFactory.createOutProducer(param); @@ -147,21 +155,26 @@ public class basic_fat implements TestBase { System.out.println("Creating: " + tCase.getObjectName()); LogWriter log = (LogWriter) dcl.getInstance( - (String) param.get("LogWriter")); + (String) param.get("LogWriter")); log.initialize(entry, true); entry.UserDefinedParams = param; tCase.setLogWriter((PrintWriter) log); - try { + try + { tCase.initializeTestCase(param); - } catch (RuntimeException e) { + } + catch (RuntimeException e) + { helper.ProcessHandler ph = (helper.ProcessHandler) param.get( - "AppProvider"); + "AppProvider"); - if (ph != null) { + if (ph != null) + { OfficeWatcher ow = (OfficeWatcher) param.get("Watcher"); - if ((ow != null) && ow.isAlive()) { + if ((ow != null) && ow.isAlive()) + { ow.finish = true; } @@ -174,7 +187,8 @@ public class basic_fat implements TestBase { TestEnvironment tEnv = tCase.getTestEnvironment(param); - if (tEnv == null) { + if (tEnv == null) + { sumIt.summarizeDown(entry, "Unable to create testcase"); LogWriter sumObj = OutProducerFactory.createOutProducer(param); @@ -182,12 +196,14 @@ public class basic_fat implements TestBase { sumObj.summary(entry); helper.ProcessHandler ph = (helper.ProcessHandler) param.get( - "AppProvider"); + "AppProvider"); - if (ph != null) { + if (ph != null) + { OfficeWatcher ow = (OfficeWatcher) param.get("Watcher"); - if ((ow != null) && ow.isAlive()) { + if ((ow != null) && ow.isAlive()) + { ow.finish = true; } @@ -200,36 +216,41 @@ public class basic_fat implements TestBase { System.out.println("created " + tCase.getObjectName()); - for (int j = 0; j < entry.SubEntryCount; j++) { - if (!entry.SubEntries[j].isToTest) { + for (int j = 0; j < entry.SubEntryCount; j++) + { + if (!entry.SubEntries[j].isToTest) + { Summarizer.summarizeDown(entry.SubEntries[j], - "not part of the job"); + "not part of the job"); continue; } if ((exclusions != null) && - (exclusions.contains(entry.SubEntries[j].longName))) { + (exclusions.contains(entry.SubEntries[j].longName))) + { Summarizer.summarizeDown(entry.SubEntries[j], - "known issue"); + "known issue"); continue; } System.out.println("running: " + - entry.SubEntries[j].entryName); + entry.SubEntries[j].entryName); LogWriter ifclog = (LogWriter) dcl.getInstance( - (String) param.get("LogWriter")); + (String) param.get("LogWriter")); ifclog.initialize(entry.SubEntries[j], true); entry.SubEntries[j].UserDefinedParams = param; entry.SubEntries[j].Logger = ifclog; - if ((tEnv == null) || tEnv.isDisposed()) { + if ((tEnv == null) || tEnv.isDisposed()) + { helper.ProcessHandler ph = (helper.ProcessHandler) param.get( - "AppProvider"); + "AppProvider"); - if (ph != null) { + if (ph != null) + { office.closeExistingOffice(param, true); shortWait(5000); } @@ -250,15 +271,19 @@ public class basic_fat implements TestBase { sumIfc.summary(entry.SubEntries[j]); } - try { + try + { tCase.cleanupTestCase(param); - } catch (Exception e) { + } + catch (Exception e) + { log.println("TestCase already gone"); helper.ProcessHandler ph = (helper.ProcessHandler) param.get( - "AppProvider"); + "AppProvider"); - if (ph != null) { + if (ph != null) + { office.closeExistingOffice(param, true); shortWait(5000); } @@ -271,49 +296,56 @@ public class basic_fat implements TestBase { sumObj.summary(entry); } - if (entries.length > 1) { + if (entries.length > 1) + { System.out.println(); int counter = 0; System.out.println( "Failures that appeared during scenario execution:"); - for (int i = 0; i < entries.length; i++) { - if (!entries[i].State.endsWith("OK")) { + for (int i = 0; i < entries.length; i++) + { + if (!entries[i].State.endsWith("OK")) + { System.out.println("\t " + entries[i].longName); counter++; } } System.out.println(counter + " of " + entries.length + - " tests failed"); + " tests failed"); } helper.ProcessHandler ph = (helper.ProcessHandler) param.get( - "AppProvider"); + "AppProvider"); - if (ph != null) { + if (ph != null) + { office.closeExistingOffice(param, true); } return true; } - protected TestEnvironment getEnv(DescEntry entry, TestParameters param) { + protected TestEnvironment getEnv(DescEntry entry, TestParameters param) + { DynamicClassLoader dcl = new DynamicClassLoader(); String officeProviderName = (String) param.get("OfficeProvider"); AppProvider office = (AppProvider) dcl.getInstance(officeProviderName); - if (office == null) { + if (office == null) + { System.out.println("ERROR: Wrong parameter 'OfficeProvider', " + - " it cannot be instantiated."); + " it cannot be instantiated."); System.exit(-1); } XMultiServiceFactory msf = (XMultiServiceFactory) office.getManager( - param); + param); - if (msf == null) { + if (msf == null) + { return null; } @@ -324,23 +356,27 @@ public class basic_fat implements TestBase { System.out.println("Creating: " + tCase.getObjectName()); LogWriter log = (LogWriter) dcl.getInstance( - (String) param.get("LogWriter")); + (String) param.get("LogWriter")); log.initialize(entry, true); entry.UserDefinedParams = param; tCase.setLogWriter((PrintWriter) log); TestEnvironment tEnv = null; - try { + try + { tCase.initializeTestCase(param); tEnv = tCase.getTestEnvironment(param); - } catch (java.lang.RuntimeException e) { + } + catch (java.lang.RuntimeException e) + { System.out.println(e.getMessage()); helper.ProcessHandler ph = (helper.ProcessHandler) param.get( - "AppProvider"); + "AppProvider"); - if (ph != null) { + if (ph != null) + { office.closeExistingOffice(param, true); shortWait(5000); } @@ -352,37 +388,52 @@ public class basic_fat implements TestBase { return tEnv; } - protected void shortWait(int millis) { - try { + protected void shortWait(int millis) + { + try + { Thread.sleep(millis); - } catch (java.lang.InterruptedException ie) { + } + catch (java.lang.InterruptedException ie) + { } } - protected Vector getExclusionList(String url, boolean debug) { + protected Vector getExclusionList(String url, boolean debug) + { Vector entryList = new Vector(); String line = "#"; BufferedReader exclusion = null; - try { + try + { exclusion = new BufferedReader(new FileReader(url)); - } catch (java.io.FileNotFoundException fnfe) { - if (debug) { + } + catch (java.io.FileNotFoundException fnfe) + { + if (debug) + { System.out.println("Couldn't find file " + url); } return entryList; } - while (line != null) { - try { - if (!line.startsWith("#")) { + while (line != null) + { + try + { + if (!line.startsWith("#")) + { entryList.add(line); } line = exclusion.readLine(); - } catch (java.io.IOException ioe) { - if (debug) { + } + catch (java.io.IOException ioe) + { + if (debug) + { System.out.println( "Exception while reading exclusion list"); } @@ -391,10 +442,14 @@ public class basic_fat implements TestBase { } } - try { + try + { exclusion.close(); - } catch (java.io.IOException ioe) { - if (debug) { + } + catch (java.io.IOException ioe) + { + if (debug) + { System.out.println("Couldn't close file " + url); } diff --git a/qadevOOo/runner/complexlib/Assurance.java b/qadevOOo/runner/complexlib/Assurance.java index e9621ca354fa..8ee4119c149c 100644 --- a/qadevOOo/runner/complexlib/Assurance.java +++ b/qadevOOo/runner/complexlib/Assurance.java @@ -44,6 +44,8 @@ import java.lang.reflect.Method; */ public class Assurance { + public static final boolean CONTINUE = true; + /** State of the current test method **/ protected boolean state = true; diff --git a/qadevOOo/runner/complexlib/ComplexTestCase.java b/qadevOOo/runner/complexlib/ComplexTestCase.java index ded9b1c0099d..18f89681c96e 100644 --- a/qadevOOo/runner/complexlib/ComplexTestCase.java +++ b/qadevOOo/runner/complexlib/ComplexTestCase.java @@ -58,7 +58,8 @@ public abstract class ComplexTestCase extends Assurance implements ComplexTest **/ protected int mThreadTimeOut = 0; /** Continue a test even if it did fail **/ - public static final boolean CONTINUE = true; + // public static final boolean CONTINUE = true; + /** End a test if it did fail **/ public static final boolean BREAK = true; diff --git a/qadevOOo/runner/graphical/IniFile.java b/qadevOOo/runner/graphical/IniFile.java index 4dffb07b8ed8..13031ee574c1 100644 --- a/qadevOOo/runner/graphical/IniFile.java +++ b/qadevOOo/runner/graphical/IniFile.java @@ -27,9 +27,9 @@ * for a copy of the LGPLv3 License. * ************************************************************************/ - package graphical; +import java.io.BufferedReader; import java.io.File; import java.io.RandomAccessFile; import java.util.ArrayList; @@ -37,10 +37,11 @@ import java.util.Enumeration; /** Helper class to give a simple API to read/write windows like ini files - */ +*/ /* public */ // is only need, if we need this class outside package convwatch public class IniFile implements Enumeration { + /** * internal representation of the ini file content. * Problem, if ini file changed why other write something difference, we don't realise this. @@ -48,13 +49,13 @@ public class IniFile implements Enumeration private String m_sFilename; private ArrayList m_aList; boolean m_bListContainUnsavedChanges = false; - private int m_aEnumerationPos = 0; + /** open a ini file by it's name @param _sFilename string a filename, if the file doesn't exist, a new empty ini file will create. write back to disk only if there are really changes. - */ + */ public IniFile(String _sFilename) { m_sFilename = _sFilename; @@ -66,23 +67,23 @@ public class IniFile implements Enumeration // } } - public void insertFirstComment(String [] _aList) - { - if (m_aList.size() == 0) + public void insertFirstComment(String[] _aList) { - // can only insert if there is nothing else already in the ini file - for (int i=0; i<_aList.length;i++) + if (m_aList.size() == 0) { - m_aList.add(_aList[i]); + // can only insert if there is nothing else already in the ini file + for (int i = 0; i < _aList.length; i++) + { + m_aList.add(_aList[i]); + } } } - } private ArrayList loadLines() { File aFile = new File(m_sFilename); ArrayList aLines = new ArrayList(); - if (! aFile.exists()) + if (!aFile.exists()) { GlobalLogWriter.get().println("couldn't find file '" + m_sFilename + "', will be created."); // DebugHelper.exception(BasicErrorCode.SbERR_FILE_NOT_FOUND, ""); @@ -90,9 +91,10 @@ public class IniFile implements Enumeration return aLines; } RandomAccessFile aReader = null; + // BufferedReader aReader; try { - aReader = new RandomAccessFile(aFile,"r"); + aReader = new RandomAccessFile(aFile, "r"); String aLine = ""; while (aLine != null) { @@ -135,28 +137,29 @@ public class IniFile implements Enumeration { return m_aList.size() > 1 ? true : false; } -/** - * Check if a given Section and Key exists in the ini file - * @param _sSectionName - * @param _sKey - * @return true if the given Section, Key exists, now you can get the value - */ + + /** + * Check if a given Section and Key exists in the ini file + * @param _sSectionName + * @param _sKey + * @return true if the given Section, Key exists, now you can get the value + */ public boolean hasValue(String _sSectionName, String _sKey) - { - int n = findKey(_sSectionName, _sKey); - if (n > 0) { - return true; + int n = findKey(_sSectionName, _sKey); + if (n > 0) + { + return true; + } + return false; } - return false; - } // ----------------------------------------------------------------------------- private boolean isRemark(String _sLine) { - if ( ((_sLine.length() < 2) ) || - ( _sLine.startsWith("#")) || - ( _sLine.startsWith(";")) ) + if (((_sLine.length() < 2)) || + (_sLine.startsWith("#")) || + (_sLine.startsWith(";"))) { return true; } @@ -165,7 +168,7 @@ public class IniFile implements Enumeration private String getItem(int i) { - return (String)m_aList.get(i); + return (String) m_aList.get(i); } private String buildSectionName(String _sSectionName) @@ -173,16 +176,18 @@ public class IniFile implements Enumeration String sFindSection = "[" + _sSectionName + "]"; return sFindSection; } + private String sectionToString(String _sSectionName) - { - String sKeyName = _sSectionName; - if (sKeyName.startsWith("[") && - sKeyName.endsWith("]")) { - sKeyName = sKeyName.substring(1, sKeyName.length() - 1); + String sKeyName = _sSectionName; + if (sKeyName.startsWith("[") && + sKeyName.endsWith("]")) + { + sKeyName = sKeyName.substring(1, sKeyName.length() - 1); + } + return sKeyName; } - return sKeyName; - } + private String toLowerIfNeed(String _sName) { return _sName.toLowerCase(); @@ -194,11 +199,11 @@ public class IniFile implements Enumeration String sFindSection = toLowerIfNeed(buildSectionName(_sSection)); // ----------- find _sSection --------------- int i; - for (i=0; i= 0) { - String sKey = sLine.substring(0, nEqual).trim(); + String sKey = sLine.substring(0, nEqual).trim(); String sValue = sLine.substring(nEqual + 1).trim(); return sValue; } @@ -332,7 +337,6 @@ public class IniFile implements Enumeration */ // private int m_nCurrentPosition; // private String m_sOldKey; - public String getValue(String _sSection, String _sKey) { String sValue = ""; @@ -359,7 +363,6 @@ public class IniFile implements Enumeration // } // return ""; // } - /** * Returns the value at Section, Key converted to an integer * Check with hasValue(Section, Key) to check before you get into trouble. @@ -369,31 +372,32 @@ public class IniFile implements Enumeration * @return */ public int getIntValue(String _sSection, String _sKey, int _nDefault) - { - String sValue = getValue(_sSection, _sKey); - int nValue = _nDefault; - if (sValue.length() > 0) { - try + String sValue = getValue(_sSection, _sKey); + int nValue = _nDefault; + if (sValue.length() > 0) { - nValue = Integer.valueOf(sValue).intValue(); - } - catch(java.lang.NumberFormatException e) - { - GlobalLogWriter.get().println("IniFile.getIntValue(): Caught a number format exception, return the default value."); + try + { + nValue = Integer.valueOf(sValue).intValue(); + } + catch (java.lang.NumberFormatException e) + { + GlobalLogWriter.get().println("IniFile.getIntValue(): Caught a number format exception, return the default value."); + } } + return nValue; } - return nValue; - } public void close() - { - store(); - } + { + store(); + } + /** write back the ini file to the disk, only if there exist changes - * @deprecated use close() instead! - */ + * @deprecated use close() instead! + */ public void store() { if (m_bListContainUnsavedChanges == false) @@ -423,22 +427,26 @@ public class IniFile implements Enumeration try { RandomAccessFile aWriter = new RandomAccessFile(aFile, "rw"); - for (int i=0; i=0 && - m_aEnumerationPos < m_aList.size()) { - return true; + if (m_aEnumerationPos >= 0 && + m_aEnumerationPos < m_aList.size()) + { + return true; + } + return false; } - return false; - } /** * Find the next line, which starts with '[' @@ -623,57 +635,57 @@ public void removeSection(String _sSectionToRemove) * @return the line where '[' found or -1 */ private int findNextSection(int i) - { - if (i >= 0) { - while (i < m_aList.size()) + if (i >= 0) { - String sLine = (String)m_aList.get(i); - if (sLine.startsWith("[")) + while (i < m_aList.size()) { - return i; + String sLine = (String) m_aList.get(i); + if (sLine.startsWith("[")) + { + return i; + } + i++; } - i++; } + return -1; } - return -1; - } /** * Enumeration Interface * @return a key without the enveloped '[' ']' */ public Object nextElement() - { - int nLineWithSection = findNextSection(m_aEnumerationPos); - if (nLineWithSection != -1) { - String sSection = (String)m_aList.get(nLineWithSection); - m_aEnumerationPos = findNextSection(nLineWithSection + 1); - sSection = sectionToString(sSection); - return sSection; + int nLineWithSection = findNextSection(m_aEnumerationPos); + if (nLineWithSection != -1) + { + String sSection = (String) m_aList.get(nLineWithSection); + m_aEnumerationPos = findNextSection(nLineWithSection + 1); + sSection = sectionToString(sSection); + return sSection; + } + else + { + m_aEnumerationPos = m_aList.size(); + } + return null; } - else - { - m_aEnumerationPos = m_aList.size(); - } - return null; - } /** * Helper to count the occurence of Sections * @return returns the count of '^['.*']$' Elements */ public int getElementCount() - { - int nCount = 0; - int nPosition = 0; - while ((nPosition = findNextSection(nPosition)) != -1) { - nCount ++; - nPosition ++; + int nCount = 0; + int nPosition = 0; + while ((nPosition = findNextSection(nPosition)) != -1) + { + nCount++; + nPosition++; + } + return nCount; } - return nCount; - } } diff --git a/qadevOOo/runner/helper/APIDescGetter.java b/qadevOOo/runner/helper/APIDescGetter.java index 3f29e6a97b39..1486721d34f7 100644 --- a/qadevOOo/runner/helper/APIDescGetter.java +++ b/qadevOOo/runner/helper/APIDescGetter.java @@ -430,8 +430,8 @@ public class APIDescGetter extends DescGetter return getDescArray(makeArray(ifc_names)); } - private static String entryType; + private static DescEntry createDescEntry(String meth_name, String ifc_name, DescEntry parent) { entryType = "service"; @@ -472,8 +472,8 @@ public class APIDescGetter extends DescGetter private static void createIfcName(String ifc_name, ArrayList meth_names, DescEntry ifcDesc) { - } + /** * This method ensures that XComponent will be the last in the list of interfaces */ diff --git a/qadevOOo/runner/helper/CwsDataExchangeImpl.java b/qadevOOo/runner/helper/CwsDataExchangeImpl.java index a37818d27ed4..6884d6c27d8e 100644 --- a/qadevOOo/runner/helper/CwsDataExchangeImpl.java +++ b/qadevOOo/runner/helper/CwsDataExchangeImpl.java @@ -122,8 +122,8 @@ public class CwsDataExchangeImpl implements CwsDataExchange final String stat = status ? ".PASSED.OK" : ".PASSED.FAILED"; statusFile = utils.getUsersTempDir() + - System.getProperty("file.separator") + - "UnoApiCwsStatus." + + System.getProperty("file.separator") + + "UnoApiCwsStatus." + (String) param.get(PropertyName.VERSION) + "_" + param.get(PropertyName.OPERATING_SYSTEM) + stat + ".txt"; diff --git a/qadevOOo/runner/helper/ProcessHandler.java b/qadevOOo/runner/helper/ProcessHandler.java index 859f00a55593..6fa842c4ebb8 100644 --- a/qadevOOo/runner/helper/ProcessHandler.java +++ b/qadevOOo/runner/helper/ProcessHandler.java @@ -36,6 +36,9 @@ import java.io.PrintStream; import java.io.LineNumberReader; import java.io.InputStreamReader; import java.io.OutputStreamWriter; +import java.util.Calendar; +import java.util.Date; +import java.util.GregorianCalendar; import lib.TestParameters; import util.PropertyName; import util.utils; @@ -492,6 +495,29 @@ public class ProcessHandler isStarted = false; } + /** + * Returns the time in seconds since 1st January 1970 + * @return + */ + public static long getSystemTime() + { + // Calendar cal = new GregorianCalendar(); + // final long nTime = cal.getTimeInMillis(); + final long nTime = System.currentTimeMillis(); + return nTime; + } + private long m_nExactStartTimeInMillisec; + + private void initialExactStartTime() + { + m_nExactStartTimeInMillisec = getSystemTime(); + } + + public long getProcessStartTime() + { + return m_nExactStartTimeInMillisec; + } + protected void execute() { if (isStarted()) @@ -511,7 +537,7 @@ public class ProcessHandler log.print(" "); } log.println(""); - + initialExactStartTime(); m_aProcess = runtime.exec(cmdLineArray, envVars); } else @@ -547,6 +573,9 @@ public class ProcessHandler stderr = new Pump(m_aProcess.getErrorStream(), log, "err > "); stdIn = new PrintStream(m_aProcess.getOutputStream()); + // int nExitValue = m_aProcess.exitValue(); + // int dummy = 0; + dbg("execute: flush io-streams"); flushInput(); @@ -583,10 +612,10 @@ public class ProcessHandler * @return true if process correctly exited * (exit code doesn't affect to this result). */ - public boolean waitFor(long timeout) - { - return waitFor(timeout, true); - } + public boolean waitFor(long timeout) + { + return waitFor(timeout, true); + } private boolean waitFor(long timeout, boolean bKillProcessAfterTimeout) { diff --git a/qadevOOo/runner/org/openoffice/Runner.java b/qadevOOo/runner/org/openoffice/Runner.java index 47216ad8d815..dcecca69f0cc 100644 --- a/qadevOOo/runner/org/openoffice/Runner.java +++ b/qadevOOo/runner/org/openoffice/Runner.java @@ -48,7 +48,7 @@ public class Runner private static long m_nStartTime; - private static long getStartTime() + public static long getRunnerStartTime() { return m_nStartTime; } @@ -69,7 +69,7 @@ public class Runner /* return the time, which is done until last startTime() */ - private static long meanTime(long _nCurrentTimer) + public static long meanTime(long _nCurrentTimer) { if (_nCurrentTimer == 0) { @@ -109,6 +109,7 @@ public class Runner } return false; } + private static boolean checkPathVariable(String _sPath, String delim) { String sPath = System.getProperty(_sPath); @@ -117,7 +118,7 @@ public class Runner StringTokenizer aTokenEnum = new StringTokenizer(sPath, delim); while (aTokenEnum.hasMoreElements()) { - String sToken = (String)aTokenEnum.nextElement(); + String sToken = (String) aTokenEnum.nextElement(); if (checkVariableForCygwin(sToken)) { System.err.println("ERROR: OOoRunner detect cygwin path in '" + _sPath + "'"); @@ -132,7 +133,7 @@ public class Runner { // ----- check all System.getProperty(key) variables ----- String sOsName = System.getProperty("os.name"); - if (! sOsName.toLowerCase().startsWith("windows")) + if (!sOsName.toLowerCase().startsWith("windows")) { // we need to check only on windows return; @@ -145,7 +146,7 @@ public class Runner while (aEnum.hasMoreElements()) { - String sKey = (String)aEnum.nextElement(); + String sKey = (String) aEnum.nextElement(); String sValue = System.getProperty(sKey); if (checkVariableForCygwin(sValue)) @@ -165,10 +166,10 @@ public class Runner aEnum = _aParams.keys(); while (aEnum.hasMoreElements()) { - String sKey = (String)aEnum.nextElement(); + String sKey = (String) aEnum.nextElement(); if (_aParams.get(sKey) instanceof String) { - String sValue = (String)_aParams.get(sKey); + String sValue = (String) _aParams.get(sKey); if (checkVariableForCygwin(sValue)) { @@ -240,7 +241,7 @@ public class Runner checkAllVariablesForCygwinPath(param); boolean worked = toExecute.executeTest(param); - long nTime = meanTime(getStartTime()); + long nTime = meanTime(getRunnerStartTime()); String sBeautifyTime = beautifyTime(nTime); System.out.println("Job run took: " + nTime + "ms " + " [" + sBeautifyTime + "]"); diff --git a/qadevOOo/runner/util/DesktopTools.java b/qadevOOo/runner/util/DesktopTools.java index ec62745ac4df..c214459c3e67 100644 --- a/qadevOOo/runner/util/DesktopTools.java +++ b/qadevOOo/runner/util/DesktopTools.java @@ -56,23 +56,25 @@ import helper.ConfigHelper; import java.util.Vector; import lib.StatusException; - /** * contains helper methods for the Desktop */ -public class DesktopTools { +public class DesktopTools +{ + /** * Queries the XComponentLoader * * @param xMSF the MultiServiceFactory * @return the gained XComponentLoader - */ - public static XComponentLoader getCLoader(XMultiServiceFactory xMSF) { + */ + public static XComponentLoader getCLoader(XMultiServiceFactory xMSF) + { XDesktop oDesktop = (XDesktop) UnoRuntime.queryInterface( - XDesktop.class, createDesktop(xMSF)); + XDesktop.class, createDesktop(xMSF)); XComponentLoader oCLoader = (XComponentLoader) UnoRuntime.queryInterface( - XComponentLoader.class, oDesktop); + XComponentLoader.class, oDesktop); return oCLoader; } // finish getCLoader @@ -82,13 +84,17 @@ public class DesktopTools { * * @param xMSF the MultiServiceFactory * @return the gained Object - */ - public static Object createDesktop(XMultiServiceFactory xMSF) { + */ + public static Object createDesktop(XMultiServiceFactory xMSF) + { Object oInterface; - try { + try + { oInterface = xMSF.createInstance("com.sun.star.comp.framework.Desktop"); - } catch (com.sun.star.uno.Exception e) { + } + catch (com.sun.star.uno.Exception e) + { throw new IllegalArgumentException("Desktop Service not available"); } @@ -100,9 +106,10 @@ public class DesktopTools { * @param xMSF the XMultiServiceFactory * @return XEnumeration of all components on the desktop */ - public static XEnumeration getAllComponents(XMultiServiceFactory xMSF) { + public static XEnumeration getAllComponents(XMultiServiceFactory xMSF) + { XDesktop xDesktop = (XDesktop) UnoRuntime.queryInterface( - XDesktop.class, createDesktop(xMSF)); + XDesktop.class, createDesktop(xMSF)); return xDesktop.getComponents().createEnumeration(); } @@ -111,9 +118,10 @@ public class DesktopTools { * @param xMSF the XMultiServiceFactory * @return XComponent of the current component on the desktop */ - public static XComponent getCurrentComponent(XMultiServiceFactory xMSF) { + public static XComponent getCurrentComponent(XMultiServiceFactory xMSF) + { XDesktop xDesktop = (XDesktop) UnoRuntime.queryInterface( - XDesktop.class, createDesktop(xMSF)); + XDesktop.class, createDesktop(xMSF)); return xDesktop.getCurrentComponent(); } @@ -122,9 +130,10 @@ public class DesktopTools { * @param xMSF the XMultiServiceFactory * @return XComponent of the current component on the desktop */ - public static XFrame getCurrentFrame(XMultiServiceFactory xMSF) { + public static XFrame getCurrentFrame(XMultiServiceFactory xMSF) + { XDesktop xDesktop = (XDesktop) UnoRuntime.queryInterface( - XDesktop.class, createDesktop(xMSF)); + XDesktop.class, createDesktop(xMSF)); return xDesktop.getCurrentFrame(); } @@ -138,22 +147,33 @@ public class DesktopTools { * @param xMSF the XMultiSerivceFactory * @return returns an array of all open documents */ - public static Object[] getAllOpenDocuments(XMultiServiceFactory xMSF) { + public static Object[] getAllOpenDocuments(XMultiServiceFactory xMSF) + { Vector components = new Vector(); XDesktop xDesktop = (XDesktop) UnoRuntime.queryInterface( - XDesktop.class, createDesktop(xMSF)); + XDesktop.class, createDesktop(xMSF)); XEnumeration allComp = getAllComponents(xMSF); - while (allComp.hasMoreElements()){ - try{ + while (allComp.hasMoreElements()) + { + try + { XComponent xComponent = (XComponent) UnoRuntime.queryInterface( - XComponent.class, allComp.nextElement()); + XComponent.class, allComp.nextElement()); - if (getDocumentType(xComponent) != null) components.add(xComponent); + if (getDocumentType(xComponent) != null) + { + components.add(xComponent); + } - } catch (com.sun.star.container.NoSuchElementException e) { - } catch ( com.sun.star.lang.WrappedTargetException e) {} + } + catch (com.sun.star.container.NoSuchElementException e) + { + } + catch (com.sun.star.lang.WrappedTargetException e) + { + } } return components.toArray(); } @@ -170,28 +190,41 @@ public class DesktopTools { * * or null */ - public static String getDocumentType(XComponent xComponent) { - XServiceInfo sInfo = (XServiceInfo)UnoRuntime.queryInterface( + public static String getDocumentType(XComponent xComponent) + { + XServiceInfo sInfo = (XServiceInfo) UnoRuntime.queryInterface( XServiceInfo.class, xComponent); - if (sInfo == null) { + if (sInfo == null) + { return ""; - } else if (sInfo.supportsService("com.sun.star.sheet.SpreadsheetDocument")) { + } + else if (sInfo.supportsService("com.sun.star.sheet.SpreadsheetDocument")) + { return "scalc"; - } else if (sInfo.supportsService("com.sun.star.text.TextDocument")) { + } + else if (sInfo.supportsService("com.sun.star.text.TextDocument")) + { return "swriter"; - } else if (sInfo.supportsService("com.sun.star.drawing.DrawingDocument")) { + } + else if (sInfo.supportsService("com.sun.star.drawing.DrawingDocument")) + { return "sdraw"; - } else if (sInfo.supportsService("com.sun.star.presentation.PresentationDocument")) { + } + else if (sInfo.supportsService("com.sun.star.presentation.PresentationDocument")) + { return "simpress"; - } else if (sInfo.supportsService("com.sun.star.formula.FormulaProperties")) { + } + else if (sInfo.supportsService("com.sun.star.formula.FormulaProperties")) + { return "smath"; - } else { + } + else + { return null; } } - /** * Opens a new document of a given kind * with arguments @@ -208,14 +241,17 @@ public class DesktopTools { * @param xMSF the MultiServiceFactory */ public static XComponent openNewDoc(XMultiServiceFactory xMSF, String kind, - PropertyValue[] Args) { + PropertyValue[] Args) + { XComponent oDoc = null; - try { - oDoc = getCLoader(xMSF) - .loadComponentFromURL("private:factory/" + kind, - "_blank", 0, Args); - } catch (com.sun.star.uno.Exception e) { + try + { + oDoc = getCLoader(xMSF).loadComponentFromURL("private:factory/" + kind, + "_blank", 0, Args); + } + catch (com.sun.star.uno.Exception e) + { throw new IllegalArgumentException("Document could not be opened"); } @@ -231,7 +267,8 @@ public class DesktopTools { * @param xMSF the MultiServiceFactory */ public static XComponent loadDoc(XMultiServiceFactory xMSF, String url, - PropertyValue[] Args) { + PropertyValue[] Args) + { XComponent oDoc = null; if (Args == null) { @@ -254,34 +291,48 @@ public class DesktopTools { * closes a given document * @param DocumentToClose the document to close */ - public static void closeDoc(XInterface DocumentToClose) { + public static void closeDoc(XInterface DocumentToClose) + { if (DocumentToClose == null) { return; } String kd = System.getProperty("KeepDocument"); - if (kd != null ) { + if (kd != null) + { System.out.println("The property 'KeepDocument' is set and so the document won't be disposed"); return; } - XModifiable modified = (XModifiable) UnoRuntime.queryInterface( - XModifiable.class, DocumentToClose); - XCloseable closer = (XCloseable) UnoRuntime.queryInterface( - XCloseable.class, DocumentToClose); + XModifiable modified = (XModifiable) UnoRuntime.queryInterface(XModifiable.class, DocumentToClose); + XCloseable closer = (XCloseable) UnoRuntime.queryInterface(XCloseable.class, DocumentToClose); - try { - if (modified != null){ + try + { + if (modified != null) + { modified.setModified(false); } closer.close(true); - } catch (com.sun.star.util.CloseVetoException e) { + } + catch (com.sun.star.util.CloseVetoException e) + { + e.printStackTrace(); System.out.println("Couldn't close document"); - } catch (com.sun.star.lang.DisposedException e) { + } + catch (com.sun.star.lang.DisposedException e) + { + e.printStackTrace(); System.out.println("Couldn't close document"); - } catch (java.lang.NullPointerException e) { + } + catch (java.lang.NullPointerException e) + { + e.printStackTrace(); System.out.println("Couldn't close document"); - } catch (com.sun.star.beans.PropertyVetoException e) { + } + catch (com.sun.star.beans.PropertyVetoException e) + { + e.printStackTrace(); System.out.println("Couldn't close document"); } } @@ -293,10 +344,12 @@ public class DesktopTools { * @return a floating XWindow */ public static XWindowPeer createFloatingWindow(XMultiServiceFactory xMSF) - throws StatusException{ - return createFloatingWindow(xMSF, 500, 100, 400, 600); + throws StatusException + { + return createFloatingWindow(xMSF, 500, 100, 400, 600); } - /** + + /** * Creates a floating XWindow on the given position and size. * @return a floating XWindow * @param X the X-Postion of the floating XWindow @@ -307,44 +360,51 @@ public class DesktopTools { * @throws lib.StatusException if it is not possible to create a floating window a lib.StatusException was thrown */ public static XWindowPeer createFloatingWindow(XMultiServiceFactory xMSF, int X, int Y, int width, int height) - throws StatusException{ + throws StatusException + { XInterface oObj = null; - try { + try + { oObj = (XInterface) xMSF.createInstance("com.sun.star.awt.Toolkit"); - } catch (com.sun.star.uno.Exception e) { + } + catch (com.sun.star.uno.Exception e) + { throw new StatusException("Couldn't get toolkit", e); } XToolkit tk = (XToolkit) UnoRuntime.queryInterface( - XToolkit.class, oObj); + XToolkit.class, oObj); - WindowDescriptor descriptor = new com.sun.star.awt.WindowDescriptor(); + WindowDescriptor descriptor = new com.sun.star.awt.WindowDescriptor(); descriptor.Type = com.sun.star.awt.WindowClass.TOP; descriptor.WindowServiceName = "modelessdialog"; - descriptor.ParentIndex = -1; + descriptor.ParentIndex = -1; - Rectangle bounds = new com.sun.star.awt.Rectangle(); - bounds.X = X; - bounds.Y = Y; - bounds.Width = width; - bounds.Height = height; + Rectangle bounds = new com.sun.star.awt.Rectangle(); + bounds.X = X; + bounds.Y = Y; + bounds.Width = width; + bounds.Height = height; descriptor.Bounds = bounds; descriptor.WindowAttributes = (com.sun.star.awt.WindowAttribute.BORDER + - com.sun.star.awt.WindowAttribute.MOVEABLE + - com.sun.star.awt.WindowAttribute.SIZEABLE + - com.sun.star.awt.WindowAttribute.CLOSEABLE + - com.sun.star.awt.VclWindowPeerAttribute.CLIPCHILDREN); + com.sun.star.awt.WindowAttribute.MOVEABLE + + com.sun.star.awt.WindowAttribute.SIZEABLE + + com.sun.star.awt.WindowAttribute.CLOSEABLE + + com.sun.star.awt.VclWindowPeerAttribute.CLIPCHILDREN); XWindowPeer xWindow = null; - try{ - xWindow = tk.createWindow( descriptor ); - }catch ( com.sun.star.lang.IllegalArgumentException e){ - throw new StatusException("Could not create window", e); + try + { + xWindow = tk.createWindow(descriptor); + } + catch (com.sun.star.lang.IllegalArgumentException e) + { + throw new StatusException("Could not create window", e); } return xWindow; @@ -355,27 +415,28 @@ public class DesktopTools { * zoom to have a view over the hole page * @param xDoc the document to zoom */ - public static void zoomToEntirePage( XInterface xDoc){ - try { + public static void zoomToEntirePage(XInterface xDoc) + { + try + { XModel xMod = (XModel) UnoRuntime.queryInterface(XModel.class, xDoc); XInterface oCont = xMod.getCurrentController(); - XViewSettingsSupplier oVSSupp = (XViewSettingsSupplier) - UnoRuntime.queryInterface(XViewSettingsSupplier.class, oCont); + XViewSettingsSupplier oVSSupp = (XViewSettingsSupplier) UnoRuntime.queryInterface(XViewSettingsSupplier.class, oCont); XInterface oViewSettings = oVSSupp.getViewSettings(); - XPropertySet oViewProp = (XPropertySet) - UnoRuntime.queryInterface(XPropertySet.class, oViewSettings); + XPropertySet oViewProp = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, oViewSettings); oViewProp.setPropertyValue("ZoomType", - new Short(com.sun.star.view.DocumentZoomType.ENTIRE_PAGE)); + new Short(com.sun.star.view.DocumentZoomType.ENTIRE_PAGE)); utils.shortWait(5000); - } catch (Exception e){ + } + catch (Exception e) + { System.out.println("Could not zoom to entire page: " + e.toString()); } } - /** * This function docks the Stylist onto the right side of the window.

* Note:

@@ -383,31 +444,35 @@ public class DesktopTools { * the chage of the docking will be effective at a restart. * @param xMSF the XMultiServiceFactory */ - public static void dockStylist(XMultiServiceFactory xMSF){ + public static void dockStylist(XMultiServiceFactory xMSF) + { // prepare Window-Settings - try { + try + { ConfigHelper aConfig = new ConfigHelper(xMSF, - "org.openoffice.Office.Views", false); + "org.openoffice.Office.Views", false); // Is node "5539" (slot-id for navigator) available? If not, insert it XNameReplace x5539 = aConfig.getOrInsertGroup("Windows", "5539"); aConfig.updateGroupProperty( - "Windows", "5539", "WindowState", "952,180,244,349;1;0,0,0,0;"); + "Windows", "5539", "WindowState", "952,180,244,349;1;0,0,0,0;"); aConfig.insertOrUpdateExtensibleGroupProperty( - "Windows", "5539", "UserData", "Data","V2,V,0,AL:(5,16,0/0/244/349,244;610)"); + "Windows", "5539", "UserData", "Data", "V2,V,0,AL:(5,16,0/0/244/349,244;610)"); // Is node "SplitWindow2" available? If not, instert it. aConfig.getOrInsertGroup("Windows", "SplitWindow2"); aConfig.insertOrUpdateExtensibleGroupProperty( - "Windows", "SplitWindow2","UserData", "UserItem","V1,2,1,0,5539"); + "Windows", "SplitWindow2", "UserData", "UserItem", "V1,2,1,0,5539"); aConfig.flush(); aConfig = null; - } catch (com.sun.star.uno.Exception e) { + } + catch (com.sun.star.uno.Exception e) + { e.printStackTrace(); } } @@ -418,7 +483,8 @@ public class DesktopTools { * @deprecated */ @Deprecated - public static void bringWindowToFromt(XModel xModel){ + public static void bringWindowToFromt(XModel xModel) + { bringWindowToFront(xModel); } @@ -428,7 +494,8 @@ public class DesktopTools { * Only the order of Office documents are changeable. * @param xModel the XModel of the document to bring to top */ - public static void bringWindowToFront(XModel xModel){ + public static void bringWindowToFront(XModel xModel) + { // System.out.println("DEBUG: bring to front xModel"); XTopWindow xTopWindow = @@ -439,10 +506,12 @@ public class DesktopTools { xTopWindow.toFront(); } - public static void bringWindowToFront(XComponent xComponent){ + public static void bringWindowToFront(XComponent xComponent) + { // System.out.println("DEBUG: bring to front xComponent"); XModel xModel = (XModel) UnoRuntime.queryInterface(XModel.class, xComponent); - if (xModel != null){ + if (xModel != null) + { bringWindowToFront(xModel); } } diff --git a/qadevOOo/runner/util/utils.java b/qadevOOo/runner/util/utils.java index f4cf3d1253dd..3ec523e32fec 100644 --- a/qadevOOo/runner/util/utils.java +++ b/qadevOOo/runner/util/utils.java @@ -186,7 +186,13 @@ public class utils { } else { if (fullDocPath.startsWith("/")) { prefix = "file://"; - } else { +// if (helper.OSHelper.isLinuxIntel()) +// { +// prefix = "file:/"; +// } + } + else + { prefix = "file:///"; } }