diff options
Diffstat (limited to 'testautomation/global/tools/includes/optional/t_ole.inc')
-rwxr-xr-x | testautomation/global/tools/includes/optional/t_ole.inc | 143 |
1 files changed, 143 insertions, 0 deletions
diff --git a/testautomation/global/tools/includes/optional/t_ole.inc b/testautomation/global/tools/includes/optional/t_ole.inc new file mode 100755 index 000000000000..13138dfc52ab --- /dev/null +++ b/testautomation/global/tools/includes/optional/t_ole.inc @@ -0,0 +1,143 @@ +'encoding UTF-8 Do not remove or change this line! +'******************************************************************************* +' DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +' +' Copyright 2000, 2010 Oracle and/or its affiliates. +' +' OpenOffice.org - a multi-platform office productivity suite +' +' This file is part of OpenOffice.org. +' +' OpenOffice.org is free software: you can redistribute it and/or modify +' it under the terms of the GNU Lesser General Public License version 3 +' only, as published by the Free Software Foundation. +' +' OpenOffice.org is distributed in the hope that it will be useful, +' but WITHOUT ANY WARRANTY; without even the implied warranty of +' MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +' GNU Lesser General Public License version 3 for more details +' (a copy is included in the LICENSE file that accompanied this code). +' +' You should have received a copy of the GNU Lesser General Public License +' version 3 along with OpenOffice.org. If not, see +' <http://www.openoffice.org/license.html> +' for a copy of the LGPLv3 License. +' +'/****************************************************************************** +'* +'* owner : joerg.skottke@oracle.com +'* +'* short description : Tools for OLE objects +'* +'\****************************************************************************** + +function hGetOfficeVersion() as string + + ' The "Insert OLE object" dialog lists the OLE Objects with application name + ' and version number. THe version numbers are tracked in the officeinfo.txt + ' file which must be adjusted each time we change to a new major version. + + const CFN = "global::tools::includes::optional::t_ole.inc::hGetOfficeVersion(): " + const DATAFILE = "global/input/officeinfo.txt" + const MAX_LINES_IN_DATAFILE = 20 + + dim cPath as string + dim aItemList( MAX_LINES_IN_DATAFILE ) as string + + ' Path to info file + cPath = convertpath( gTesttoolPath & DATAFILE ) + if ( GVERBOSE ) then printlog( CFN & "Reading: " & cPath ) + + ' Read the file, store the list of known office versions + hGetDatafileSection( cPath, aItemList(), "", "", "" ) + + ' Search for the version number matching the product name, store value in global variable + gOfficeVersion = hGetValueForKeyAsString( aItemList(), gProductName ) + + ' Return content of the global variable as well + hGetOfficeVersion() = gOfficeVersion + +end function + +'******************************************************************************* + +function hGetOleObjectName( cApplication as string ) as string + + ' for cApplication you may pass gApplication. + + dim Application_API_Name as string + dim oUnoOfficeConnection as object + dim oUnoConfigurationAccess as object + dim aPropertyValue(1) as new com.sun.star.beans.PropertyValue + dim xViewRoot as object + dim cConfigString as string + dim cString as string + + const CFN = "global::tools::includes::optional::t_ole.inc::hGetOleObjectName(): " + + ' The application names for the API are case sensitive so we cannot use gApplication + select case ( ucase( cApplication ) ) + case "WRITER" : Application_API_Name = "Writer" + case "CALC" : Application_API_Name = "Calc" + case "IMPRESS": Application_API_Name = "Impress" + case "DRAW" : Application_API_Name = "Draw" + case "MATH" : Application_API_Name = "Math" + case "CHART" : Application_API_Name = "Chart" + case else + warnlog( CFN & "Invalid object type passed to function: " & cApplication ) + hGetOleObjectName() = "" + exit function + end select + + if ( GVERBOSE ) then printlog( CFN & "Retrieving OLE name for: " & cApplication ) + + ' ...Embedding is physical path, ObjectNames the top node + aPropertyValue( 0 ).Name = "nodepath" + aPropertyValue( 0 ).Value = "/org.openoffice.Office.Embedding/ObjectNames/" & Application_API_Name + + ' Connect to remote UNO + oUnoOfficeConnection = hGetUnoService( TRUE ) + + if ( isNull( oUnoOfficeConnection )) then + warnlog( CFN & "Failed to establish UNO connection, hGetUnoService failed" ) + hGetOleObjectName() = "" + else + ' Get a configuration provider + oUnoConfigurationAccess = oUnoOfficeConnection.createInstance( "com.sun.star.configuration.ConfigurationProvider" ) + + ' Get access + xViewRoot = oUnoConfigurationAccess.createInstanceWithArguments( "com.sun.star.configuration.ConfigurationAccess", aPropertyValue() ) + cConfigString = xViewRoot.getByName( "ObjectUIName" ) + + ' The string contains placeholders %PRODUCTNAME and %PRODUCTVERSION which have to be replaced + if ( gOfficeVersion = "" ) then + warnlog( CFN & "gOOoBaseVersion is empty, run hGetOfficeVersion() first" ) + cString = right( cConfigString, len( cConfigString ) - 29 ) + else + cString = gProductName & " " & gOfficeVersion & " " & right( cConfigString, len( cConfigString ) - 29 ) + endif + + endif + + hGetOleObjectName() = cString + +end function + +'******************************************************************************* + +function GetOleDefaultNames() + + const CFN = "global::tools::includes::optional::t_ole.inc::GetOleDefaultNames(): " + if ( GVERBOSE ) then printlog( CFN & "Retrieving OLE names" ) + + hGetOfficeVersion() + gOLEWriter = hGetOleObjectName( "Writer" ) + gOLECalc = hGetOleObjectName( "Calc" ) + gOLEChart = hGetOleObjectName( "Chart" ) + gOLEImpress = hGetOleObjectName( "Impress" ) + gOLEDraw = hGetOleObjectName( "Draw" ) + gOLEMath = hGetOleObjectName( "Math" ) + +end function + +'******************************************************************************* |