/*
* 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 lib;
import java.util.HashMap;
import util.PropertyName;
import com.sun.star.beans.XPropertySet;
import com.sun.star.lang.XMultiServiceFactory;
import com.sun.star.uno.XComponentContext;
/**
* TestParameters describes a parameters ( in a form of pairs : name , value ) to
* be passed to tests and which may affect the test behaviour . That can be ,
* for example , standard paths , connection strings , etc . The TestParameters
* also provides XMultiServiceFactory for the test ( tests ) .
*/
public class TestParameters extends HashMap<String,Object> {
/**
* The ConnectionString for Office Connection < br >
* default is ' socket , host = localhost , port = 8100 '
*/
private static final String DefaultConnectionString = "socket,host=localhost,port=8100" ;
/**
* The Path to the test documents that are loaded during the test < br >
*/
private static final String DefaultTestDocumentPath = "unknown" ;
/**
* ' true ' is a debug information should be written , ' false ' elsewhere
* these will be provided by the framework . < br >
* Debug information will always be written on standard out . < br >
* default is true
*/
private static final boolean DebugIsActive = false ;
/**
* Wrapper around " get ( ) " with some debug output
* @ param key A key of this table .
* @ return The value of this key .
* @ see java . util . HashMap
*/
@Override
public Object get(Object key) {
Object val = super .get(key);
if (val == null && DebugIsActive) {
System.out.print("Have been asked for key \" "+key.toString());
System.out.println("\" which is not part of params.");
}
return val;
}
/**
* Special get method for boolean values : for convenience .
* Will return ' false ' if the value is not of " Boolean " type .
* @ param key A key of this table .
* @ return The value of this key , cast to a boolean type .
*/
public boolean getBool(Object key) {
final Object val = super .get(key);
if (val == null ) {
return false ;
}
if (val instanceof String) {
String sVal = (String)val;
if (sVal.equalsIgnoreCase("true" ) ||
sVal.equalsIgnoreCase("yes" )) {
return true ;
}
else if (sVal.equalsIgnoreCase("false" ) ||
sVal.equalsIgnoreCase("no" )) {
return false ;
}
}
else if (val instanceof Boolean )
return ((Boolean )val).booleanValue();
return false ;
}
/**
* Special get method for integer values : for convenience .
* Will return 0 if the value cannot be interpreted as Integer .
* @ param key A key of this table .
* @ return The value of this key , cast to an int type .
*/
public int getInt(Object key) {
Object val = super .get(key);
if ( val != null ) {
if (val instanceof Integer) {
return ((Integer)val).intValue();
}
else {
try {
if ( val instanceof String ) {
Integer nr = Integer.valueOf((String)val);
if (nr.intValue() > 0 ) return nr.intValue();
}
} catch ( java.lang.NumberFormatException nfe) {}
}
}
return 0 ;
}
/**
* Wrapper around " put ( ) "
* @ param key A key of this table .
* @ param val The value of the key .
* @ return The value of this key .
* @ see java . util . HashMap
*/
@Override
public Object put(String key, Object val) {
return super .put(key,val);
}
/**
* Constructor , defaults for Parameters are set .
*/
public TestParameters() {
//fill the propertyset
String user = System.getProperty("user.name" );
if ( user != null )
{
String PipeConnectionString = "pipe,name=" + user;
put(PropertyName.PIPE_CONNECTION_STRING,PipeConnectionString);
put(PropertyName.USE_PIPE_CONNECTION, Boolean .TRUE );
}
put(PropertyName.CONNECTION_STRING, DefaultConnectionString);
put(PropertyName.TEST_BASE, "java_fat" );
put(PropertyName.TEST_DOCUMENT_PATH, DefaultTestDocumentPath);
put(PropertyName.LOGGING_IS_ACTIVE, Boolean .TRUE );
put(PropertyName.DEBUG_IS_ACTIVE, Boolean .valueOf(DebugIsActive));
put(PropertyName.OUT_PRODUCER, "stats.SimpleOutProducer" );
put(PropertyName.OFFICE_PROVIDER, "helper.OfficeProvider" );
put(PropertyName.LOG_WRITER, "stats.SimpleLogWriter" );
put(PropertyName.APP_EXECUTION_COMMAND, "" );
put(PropertyName.TIME_OUT, Integer.valueOf(3000000 ));
put(PropertyName.THREAD_TIME_OUT, Integer.valueOf(3000000 ));
put(PropertyName.AUTO_RESTART, Boolean .FALSE );
// get the operating system
put(PropertyName.UNORC_NAME, getUnoRcName());
//For compatibility Reasons
System.setProperty("DOCPTH" , DefaultTestDocumentPath);
}
/**
* @ return a XMultiServiceFactory to be used by a test ( tests ) .
*/
public XMultiServiceFactory getMSF() {
Object ret = null ;
ret = get("ServiceFactory" );
return (XMultiServiceFactory) ret;
}
public XComponentContext getComponentContext() {
Object context = get( "ComponentContext" );
if ( context == null )
{
XPropertySet factoryProps = com.sun.star.uno.UnoRuntime.queryInterface(
XPropertySet.class , getMSF() );
try
{
context = com.sun.star.uno.UnoRuntime.queryInterface(
XComponentContext.class , factoryProps.getPropertyValue( "DefaultContext" ) );
put( "ComponentContext" , context );
}
catch ( com.sun.star.beans.UnknownPropertyException e ) { }
catch ( com.sun.star.lang.WrappedTargetException e ) { }
}
return (XComponentContext)context;
}
/**
* @ return The uno rc file name uno . ini for windows and unorc for everything else
*/
private String getUnoRcName() {
String osname = System.getProperty ("os.name" ).toLowerCase ();
if (osname.indexOf ("windows" )>-1 ) {
return "uno.ini" ;
}
return "unorc" ;
}
}// finish class TestParameters
Messung V0.5 in Prozent C=90 H=97 G=93
¤ Dauer der Verarbeitung: 0.10 Sekunden
(vorverarbeitet am 2026-09-29)
¤
*© Formatika GbR, Deutschland