summaryrefslogtreecommitdiff
path: root/testautomation/framework/optional/includes/basic_vba-compat_security_check.inc
diff options
context:
space:
mode:
Diffstat (limited to 'testautomation/framework/optional/includes/basic_vba-compat_security_check.inc')
-rw-r--r--testautomation/framework/optional/includes/basic_vba-compat_security_check.inc105
1 files changed, 105 insertions, 0 deletions
diff --git a/testautomation/framework/optional/includes/basic_vba-compat_security_check.inc b/testautomation/framework/optional/includes/basic_vba-compat_security_check.inc
new file mode 100644
index 000000000000..ae26d996db6e
--- /dev/null
+++ b/testautomation/framework/optional/includes/basic_vba-compat_security_check.inc
@@ -0,0 +1,105 @@
+'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 : Test VBA compatibility switches
+'*
+'\******************************************************************************
+
+testcase tBasicVBACompatSecurityCheck()
+
+ printlog( "Test VBA Security feature" )
+ printlog( "VBA macros may not ignore global macro security setting" )
+
+ ' This test case is based on the use cases provided in issue #i109699
+
+ const IMPORT_EXCEL_MACROS = TRUE
+ const EXEC_EXCEL_MACROS = TRUE
+
+ const MACRO_IDENTIFICATION_MESSAGE = "Clicked"
+ const MACRO_NAME = "CommandButton1_Click"
+
+ const WORK_FILE = "framework/optional/input/vba-compat/Book1.xls"
+
+ dim cTestFile as string : cTestFile = gTesttoolPath & WORK_FILE
+ dim iSecurityLevel as integer
+
+
+ printlog( "Set VBA macro handling to import and execute" )
+ hSetExcelBasicImportMode( IMPORT_EXCEL_MACROS, EXEC_EXCEL_MACROS )
+
+ for iSecurityLevel = GC_MACRO_SECURITY_LEVEL_MEDIUM to GC_MACRO_SECURITY_LEVEL_VERYHIGH
+
+ printlog( "Adjust security level" )
+ hSetMacroSecurityAPI( iSecurityLevel )
+
+ printlog( "Load the test file" )
+ hFileOpen( cTestFile )
+
+ printlog( "Deny macro execution or close macros blocked message" )
+ if ( iSecurityLevel = GC_MACRO_SECURITY_LEVEL_MEDIUM ) then
+ hDenyMacroExecution()
+ else
+ kontext "Active"
+ Active.ok()
+ endif
+
+ printlog( "Try to execute macro via macro organizer" )
+ hMacroOrganizerRunMacro( MACRO_NAME )
+
+ printlog( "Probe for warning message (or macro)" )
+ kontext "Active"
+ if ( Active.exists( 2 ) ) then
+ if ( Active.getText() = MACRO_IDENTIFICATION_MESSAGE ) then
+ warnlog( "Macro was executed though macro execution has been denied" )
+ Active.ok()
+ else
+ printlog( "Macro execution blocked - warning is displayed." )
+ Active.ok()
+ endif
+ else
+ warnlog( "No warning message for blocked macro execution" )
+ endif
+
+ ' recover silently, the warnings above should say it all.
+ kontext "Makro"
+ if ( Makro.exists() ) then Makro.cancel()
+
+ printlog( "Close file" )
+ hDestroyDocument()
+
+ next iSecurityLevel
+
+ printlog( "Reset VBA import options to default" )
+ hSetExcelImportModeDefault()
+
+ printlog( "Reset macro security level to default" )
+ hSetMacroSecurityAPI( GC_MACRO_SECURITY_LEVEL_DEFAULT )
+
+endcase
+