summaryrefslogtreecommitdiff
path: root/testautomation/framework/optional/includes/extras_file_open.inc
diff options
context:
space:
mode:
Diffstat (limited to 'testautomation/framework/optional/includes/extras_file_open.inc')
-rw-r--r--testautomation/framework/optional/includes/extras_file_open.inc215
1 files changed, 215 insertions, 0 deletions
diff --git a/testautomation/framework/optional/includes/extras_file_open.inc b/testautomation/framework/optional/includes/extras_file_open.inc
new file mode 100644
index 000000000000..969c45247d58
--- /dev/null
+++ b/testautomation/framework/optional/includes/extras_file_open.inc
@@ -0,0 +1,215 @@
+'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 : gregor.hartmann@oracle.com
+'*
+'* short description : Perform standard operations on all samples/templates etc.
+'*
+'\***********************************************************************
+
+private const MAX_FILE_COUNT = 3000 ' the max number of templates or samples
+
+' NOTE: Usually we have only about a 100 templates but in multi-language
+' installations there are more than 2100. You should not run these
+' tests on multi language installations. Really.
+
+testcase tOpenObjectsWithFileDialog( cCategory as string )
+
+ printlog( "Open templates and samples using the file open dialog" )
+
+ const CFN = "tOpenObjectsWithFileDialog::"
+
+
+ dim lsFile ( MAX_FILE_COUNT ) as String ' list of all files below samples or templates
+ dim sRootPath as String ' rootpath, depends on cCategory
+ dim sRootPathFallback as string
+
+ dim sFilter as string
+
+ dim sFileIn as String ' file to open
+ dim sFileOut as string ' file to save, reload, delete
+ dim sPathOut as string
+ sPathOut = hGetWorkPath()
+ dim sExtension as String ' filter: determines whether to test the file
+
+ dim iCurrentTemplate as Integer ' increment: current template from lsFile()
+ dim iTemplateCount as integer
+
+ dim bSkipFile as boolean ' turns true if file is to be skipped
+ dim brc as boolean ' some multi purpose boolan returncode
+ dim cOfficePath as string
+
+ ' the path where the samples/templates are located, verify function params
+ ' note that for some time the suffixes for the different filetypes are changed,
+ ' so we have separate names for samples and templates.
+
+ if ( FileExists( gOfficeBasisPath ) ) then
+ cOfficePath = gOfficeBasisPath
+ else
+ cOfficePath = mid( gOfficeBasisPath, len( gNetzOfficePath ) + 1 )
+ if ( FileExists( cOfficePath ) ) then
+ printlog( "Using: " & cOfficePath )
+ else
+ warnlog( "Test script error: Invalid Office path: " & cOfficePath )
+ goto endsub
+ endif
+ endif
+
+ printlog( "Build path to templates/samples directory" )
+ select case cCategory
+ case "SAMPLES" : sRootPath = cOfficePath & "share\samples\" & gISOLang
+ sRootPathFallback = "/opt/openoffice.org/basis3.0/share/samples/" & gISOLang
+ sFIlter = "*.od*"
+ case "TEMPLATES" : sRootPath = cOfficePath & "share\template\" & gISOLang
+ sRootPathFallback = "/opt/openoffice.org/basis3.0/share/template/" & gISOLang
+ sFilter = "*.ot*"
+ case default
+ warnlog( CFN & "Invalid category passed to function" )
+ goto endsub
+ end select
+
+ sRootPath = convertpath( sRootPath )
+
+ if ( NOT FileExists( sRootPath ) ) then
+ qaerrorlog( "Root Path does not exist: " & sRootPath )
+ sRootPath = sRootPathFallback
+ if ( NOT FileExists( sRootPathFallback ) ) then
+ warnlog( "No usable office root path found. Aborting test" )
+ goto endsub
+ printlog( "Using hard coded fallback" )
+ endif
+ endif
+
+ printlog( "Using path..: " & sRootPath )
+ printlog( "Using filter: " & sFilter )
+
+ printlog( "Retrieve filelist from directory" )
+ GetAllFileList ( sRootPath, sFilter, lsFile() )
+ hListDelete( lsFile(), 1 )
+
+ printlog( "Remove posible .lock-files from list" )
+ iTemplateCount = listCount( lsFile() )
+ iCurrentTemplate = 1
+ while( iCurrentTemplate <= iTemplateCount )
+ if ( instr( lsFile( iCurrentTemplate ), "~lock." ) > 0 ) then
+ hListDelete( lsFile(), iCurrentTemplate )
+ iTemplateCount = iTemplateCount - 1
+ else
+ iCurrentTemplate = iCurrentTemplate + 1
+ endif
+ wend
+
+ printlog( "Remove Wizard related files from list" )
+ iTemplateCount = listCount( lsFile() )
+ iCurrentTemplate = 1
+ while( iCurrentTemplate <= iTemplateCount )
+ if ( instr( lsFile( iCurrentTemplate ), "wizard" ) > 0 ) then
+ hListDelete( lsFile(), iCurrentTemplate )
+ iTemplateCount = iTemplateCount - 1
+ else
+ iCurrentTemplate = iCurrentTemplate + 1
+ endif
+ wend
+
+ printlog( "Files to be loaded:" )
+ hListPrint ( lsFile() , "" , "" )
+ if ( listcount( lsfile() ) = 1 ) then
+ if ( gProductName = "OpenOffice.org" ) then
+ printlog( gProductName & " comes with no samples, skipping" )
+ goto endsub
+ else
+ warnlog( "Filelist seems to be incomplete. GetAllFileList() failed!" )
+ goto endsub
+ endif
+ else
+ printlog( "List of samples/templates appears to be valid" )
+ endif
+
+ iTemplateCount = listCount( lsFile() )
+ for iCurrentTemplate = 1 to iTemplateCount
+
+ printlog( "" )
+ printlog( "Loading file " & iCurrentTemplate & " of " & iTemplateCount )
+
+ ' sFileIn holds the file we currently work with
+ sFileIn = lsFile( iCurrentTemplate )
+
+ printlog( "Load: " & sFileIn )
+ hFileOpen( sFileIn )
+
+ printlog( "Handle known dialogs" )
+ hHandleActivesOnLoad( 0 , 2 )
+
+ printlog( "Check for Filter Selection dialog" )
+ Kontext "FilterAuswahl"
+ if ( FilterAuswahl.exists( 1 ) ) then
+ warnlog( "Loading failed, ASCII filter dialog present" )
+ FilterAuswahl.cancel()
+ hFileCloseAll()
+ else
+
+ printlog( "Close navigator, if open" )
+ kontext "Navigator"
+ hCloseDialog( Navigator, "close,optional" )
+
+ sFileOut = cCategory & "_" & iCurrentTemplate
+ sFileOut = convertpath( sPathOut & sFileOut )
+
+ printlog( "Saving file to: " & sFileOut )
+ hFileSaveAsKill( sFileOut )
+
+ ' note: this is delayed, because the dialogs take time to pop up
+ ' even while the dialog is visible, we can work with the doc.
+ printlog( "Handle known dialogs" )
+ hHandleInitialDialogs()
+
+ printlog( "Close document" )
+ hDestroyDocument()
+
+ printlog( "Load document again" )
+ hFileOpen( sFileOut )
+
+ printlog( "Handle known dialogs" )
+ hHandleActivesOnLoad( 0 , 2 )
+
+ printlog( "Close navigator, if open" )
+ kontext "Navigator"
+ hCloseDialog( Navigator, "close,optional" )
+
+ printlog( "Close document" )
+ hDestroyDocument()
+
+ endif
+
+ printlog( "Delete file" )
+ hDeleteFile( sFileOut )
+
+ next iCurrentTemplate
+
+endcase
+
+