summaryrefslogtreecommitdiff
path: root/testautomation/framework/optional/includes/filedlg_multiselection.inc
diff options
context:
space:
mode:
Diffstat (limited to 'testautomation/framework/optional/includes/filedlg_multiselection.inc')
-rw-r--r--testautomation/framework/optional/includes/filedlg_multiselection.inc197
1 files changed, 197 insertions, 0 deletions
diff --git a/testautomation/framework/optional/includes/filedlg_multiselection.inc b/testautomation/framework/optional/includes/filedlg_multiselection.inc
new file mode 100644
index 000000000000..ed6fc3670db8
--- /dev/null
+++ b/testautomation/framework/optional/includes/filedlg_multiselection.inc
@@ -0,0 +1,197 @@
+'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@sun.com
+'*
+'* short description : Select a huge number of documents and load
+'*
+'\******************************************************************************
+
+testcase tFiledlgMultiselection1()
+
+ printlog( "Stress test: Load a great number of documents simultaneously" )
+
+ GLOBAL_USE_NEW_SLEEP = true
+
+ ' This is a test requested by framework development to be used in multi-
+ ' user environments like Terminal Servers. It is used to quickly create
+ ' a certain load. Furthermore issues (mostly unconfirmed) have been reported
+ ' that loading files using multiselection might lead to a crash.
+
+ dim cWorkPath as string : cWorkPath = hGetWorkPath() & "multiselection"
+ dim cMsg as string
+
+ dim iCurrentFile as integer
+ dim iOpenDocuments as integer
+ dim lTime as long
+ dim lWait as long
+ dim lTimeSum as long
+ dim iCurrentTime as long
+
+
+ dim iDocType as integer
+ dim iDocument as integer
+ dim cFilter( 4 ) as string
+ cFilter( 1 ) = "writer8"
+ cFilter( 2 ) = "calc8"
+ cFilter( 3 ) = "impress8"
+ cFilter( 4 ) = "draw8"
+
+ dim cFile as string
+
+ dim brc as boolean
+
+ const TESTFILE_COUNT = 60 ' the number of documents in cWorkPath
+ const TESTFILE_TIMEOUT = 480000
+
+ ' Minimum cleanup
+ while( getDocumentCount > 0 )
+ hCloseDocument()
+ wend
+
+ ' create the workdirectory
+ mkdir( cWorkPath )
+
+ ' dynamically create a bulk of files to be written to the work directory
+ lTimeSum = 0
+
+ for iDocType = 1 to 4
+ hNumericDocType( iDocType )
+ hNewDocument()
+ hChangeDoc()
+ lWait = 0
+ for iDocument = 1 to 15
+ cFile = cWorkPath & "\" & "test_" & cFilter( iDocType ) & iDocument
+ lTime = getSystemTicks
+ hFileSaveAsWithFilterKill( cFile, cFilter( iDocType ) )
+ lWait = lWait + getSystemTicks - lTime
+ next iDocument
+ hCloseDocument()
+ printlog( "Total time for saving 15 documents: " & lWait & " ms" )
+ lTimeSum = lTimeSum + lWait
+ next iDocType
+
+ if ( getDocumentCount > 0 ) then
+ warnlog( "Not all files were saved and closed" )
+ goto endsub
+ endif
+
+ printlog( "Time for saving 60 documents: " & lTimeSum & " ms" )
+ printlog( "Average time per document...: " & lTimeSum / TESTFILE_COUNT & " ms" )
+
+ printlog( "FileOpen" )
+ FileOpen
+
+ printlog( "Go to the workdirectory: " & cWorkPath )
+ kontext "OeffnenDlg"
+ if ( OeffnenDlg.exists( 1 ) ) then
+
+ DateiName.typeKeys( cWorkPath )
+ Oeffnen.click()
+
+ kontext "Active"
+ if ( active.exists( 2 ) ) then
+ cMsg = active.getText()
+ cMsg = hRemoveLineBreaks( cMsg )
+ warnlog( "Unexpected messagebox: " & cMsg )
+ active.ok()
+ kontext "OeffnenDlg"
+ if ( OeffnenDlg.exists() ) then
+ OeffnenDlg.cancel()
+ else
+ warnlog( "File Open dialog is not visible" )
+ endif
+ goto endsub
+ endif
+
+ printlog( "Select all documents and load them simultaneously" )
+ kontext "OeffnenDlg"
+ if ( OeffnenDlg.exists() ) then
+
+ DateiAuswahl.typeKeys( "<HOME>" )
+ DateiAuswahl.typeKeys( "<SHIFT END>" )
+ Oeffnen.Click()
+
+ lTime = GetSystemTicks
+ iOpenDocuments = 0
+ while ( iOpenDocuments < TESTFILE_COUNT )
+ iOpenDocuments = getDocumentCount()
+ iCurrentTime = getSystemTicks - lTime
+
+ ' exit the hard way
+ if ( iCurrentTime > TESTFILE_TIMEOUT ) then
+ warnlog( "Loading files max wait time exceed (" & _
+ TESTFILE_TIMEOUT/1000 & "), aborting" )
+ goto endsub
+ endif
+ wend
+
+ if ( iCurrentTime > 120000 ) then
+ 'Closed issue: qaerrorlog( "#i105289# Slow loading of files, should be less than 120 seconds on all platforms" )
+ printlog( "Slow file loading (exceeds 120 seconds)" )
+ endif
+ lWait = getSystemTicks - lTime ' time diff
+
+ printlog( "All documents loaded in " & lWait & " ms" )
+ sleep()
+
+ printlog( "Starting to close all documents" )
+ for iCurrentFile = 1 to TESTFILE_COUNT
+ FileClose
+ sleep()
+ next iCurrentFile
+ printlog( "Finished closing documents" )
+
+ if ( getDocumentCount > 0 ) then
+ warnlog( "Not all documents were closed." )
+ iOpenDocuments = getDocumentCount
+ for iCurrentFile = 1 to iOpenDocuments - 1
+ hCloseDocument()
+ next iCurrentFile
+ else
+ printlog( "All documents have been closed. Test succeeded." )
+ endif
+
+ printlog( "Deleting work files..." )
+ for iDocType = 1 to 4
+ hNumericDocType( iDocType )
+ for iDocument = 1 to 15
+ cFile = cWorkPath & "\" & "test_" & cFilter( iDocType ) & iDocument
+ hDeleteFile( cFile )
+ next iDocument
+ next iDocType
+
+ printlog( "Removing temporary work directory" )
+ rmdir( cWorkPath )
+ else
+ warnlog( "File Open dialog is not visible" )
+ endif
+ else
+ warnlog( "File Open dialog did not open." )
+ endif
+
+endcase