diff options
author | Ivo Hinkelmann <ihi@openoffice.org> | 2010-05-11 11:26:34 +0200 |
---|---|---|
committer | Ivo Hinkelmann <ihi@openoffice.org> | 2010-05-11 11:26:34 +0200 |
commit | b565fa46ee035651fe1072f1aea2c2ccdd10982d (patch) | |
tree | 0a3eb39145c7a71b1facaf193f9ffc3be7dc03fd /testautomation | |
parent | e0a8d76ccbf103a75d4884bc12914dca7ae22b6a (diff) | |
parent | e6a9b63b6cea4d65e76af484b6206570f836f8ec (diff) |
CWS-TOOLING: integrate CWS npower14miscfixes
Diffstat (limited to 'testautomation')
-rwxr-xr-x | testautomation/framework/optional/f_basic_vba-compat.bas | 7 | ||||
-rwxr-xr-x[-rw-r--r--] | testautomation/framework/optional/includes/basic_issues.inc | 106 | ||||
-rw-r--r-- | testautomation/framework/optional/includes/basic_vba-compat_security_check.inc | 105 | ||||
-rw-r--r-- | testautomation/framework/optional/input/vba-compat/Book1.xls | bin | 0 -> 18432 bytes | |||
-rwxr-xr-x | testautomation/global/input/macros.txt | 45 |
5 files changed, 221 insertions, 42 deletions
diff --git a/testautomation/framework/optional/f_basic_vba-compat.bas b/testautomation/framework/optional/f_basic_vba-compat.bas index 363e59c70cb4..3a6d41d3e0af 100755 --- a/testautomation/framework/optional/f_basic_vba-compat.bas +++ b/testautomation/framework/optional/f_basic_vba-compat.bas @@ -36,11 +36,13 @@ sub main use "framework\optional\includes\basic_vba-compat_import_nothing.inc" use "framework\optional\includes\basic_vba-compat_import_disabled.inc" use "framework\optional\includes\basic_vba-compat_import_enabled.inc" - + use "framework\optional\includes\basic_vba-compat_security_check.inc" + call hStatusIn( "framework" , "f_basic_vba-compat.bas" ) call tBasicVBACompatImportNothing() call tBasicVBACompatImportDisabled() call tBasicVBACompatImportEnabled() + call tBasicVBACompatSecurityCheck() call hStatusOut() end sub @@ -54,6 +56,9 @@ sub LoadIncludeFiles use "global\tools\includes\optional\t_basic_organizer_tools.inc" use "global\tools\includes\optional\t_treelist_tools.inc" + use "global\tools\includes\optional\t_security_tools.inc" + use "global\tools\includes\optional\t_macro_tools.inc" + use "global\tools\includes\optional\t_docfuncs.inc" use "framework\optional\includes\basic_vba_compat_tools.inc" diff --git a/testautomation/framework/optional/includes/basic_issues.inc b/testautomation/framework/optional/includes/basic_issues.inc index 0c38e743fb93..3fec49f61fbe 100644..100755 --- a/testautomation/framework/optional/includes/basic_issues.inc +++ b/testautomation/framework/optional/includes/basic_issues.inc @@ -54,7 +54,7 @@ function hTestActive( cString as string , iMethod as integer , bExact as boolean ' 1 - 4 = Number of buttons on the dialog ' internal states, if state = 0 we return the buttoncount instead - const STATE_SUCCESS = 0 + const STATE_SUCCESS = 0 const STATE_FUZZY_MATCH = -1 const STATE_NO_MATCH = -2 const STATE_IGNORE_MSGBOX = -3 @@ -111,6 +111,17 @@ end function testcase t_macros() + const RESTYPE_1 = 1 + const RESTYPE_2 = 2 + const RESTYPE_3 = 3 + + const CLOSE_METHOD_OK = 1 + const CLOSE_METHOD_CANCEL = 2 + const CLOSE_METHOD_NO = 4 + + const REQUIRES_EXACT_MATCH = TRUE + const REQUIRES_FUZZY_MATCH = FALSE + gApplication = "WRITER" call hNewDocument() hInitBasicIDE( "TestIssues" ) @@ -119,113 +130,126 @@ testcase t_macros() printlog( " ---------- i41695 ------------ " ) hInsertMacroFromFile( "i41695" ) hIDERunMacro() - hTestActive( "i41695-1", 1 , TRUE ) - hTestActive( "i41695-2", 1 , TRUE ) + hTestActive( "i41695-1", CLOSE_METHOD_OK , REQUIRES_EXACT_MATCH ) + hTestActive( "i41695-2", CLOSE_METHOD_OK , REQUIRES_EXACT_MATCH ) printlog( "" ) printlog( " ---------- i83978 ------------ " ) hInsertMacroFromFile( "i83978" ) hIDERunMacro() - hTestActive( "com.sun.star.container.NoSuchElementException", 1 , FALSE ) + hTestActive( "NoSuchElementException", CLOSE_METHOD_OK , REQUIRES_FUZZY_MATCH ) printlog( "" ) printlog( " ---------- i82830 ------------ " ) hInsertMacroFromFile( "i82830" ) hIDERunMacro() - hTestActive( "12D687" , 1 , TRUE ) - hTestActive( "4553207", 1 , TRUE ) + hTestActive( "12D687" , CLOSE_METHOD_OK , REQUIRES_EXACT_MATCH ) + hTestActive( "4553207", CLOSE_METHOD_OK , REQUIRES_EXACT_MATCH ) if ( gISOLang = "en-US" ) then printlog( "" ) printlog( " ---------- i81674 ------------ " ) hInsertMacroFromFile( "i81674" ) hIDERunMacro() - hTestActive( "250" , 1 , FALSE ) - hTestActive( "Yes" , 1 , TRUE ) - hTestActive( "True", 1 , TRUE ) - hTestActive( "On" , 1 , TRUE ) + hTestActive( "250" , CLOSE_METHOD_OK , REQUIRES_FUZZY_MATCH ) + hTestActive( "Yes" , CLOSE_METHOD_OK , REQUIRES_EXACT_MATCH ) + hTestActive( "True", CLOSE_METHOD_OK , REQUIRES_EXACT_MATCH ) + hTestActive( "On" , CLOSE_METHOD_OK , REQUIRES_EXACT_MATCH ) endif printlog( "" ) printlog( " ---------- i80532 ------------ " ) hInsertMacroFromFile( "i80532" ) hIDERunMacro() - hTestActive( "-10", 1 , FALSE ) - hTestActive( "1" , 1 , FALSE ) - hTestActive( "-10", 1 , FALSE ) + hTestActive( "-10", CLOSE_METHOD_OK , REQUIRES_FUZZY_MATCH ) + hTestActive( "1" , CLOSE_METHOD_OK , REQUIRES_FUZZY_MATCH ) + hTestActive( "-10", CLOSE_METHOD_OK , REQUIRES_FUZZY_MATCH ) printlog( "" ) printlog( " ---------- i84040 ------------ " ) hInsertMacroFromFile( "i84040" ) hIDERunMacro() - hTestActive( "False", 1 , TRUE ) - hTestActive( "False", 1 , TRUE ) + hTestActive( "False", CLOSE_METHOD_OK , REQUIRES_EXACT_MATCH ) + hTestActive( "False", CLOSE_METHOD_OK , REQUIRES_EXACT_MATCH ) printlog( "" ) printlog( " ---------- i86265 ------------ " ) hInsertMacroFromFile( "i86265" ) hIDERunMacro() - hTestActive( "i86265-1", 1 , TRUE ) - hTestActive( "i86265-2", 1 , TRUE ) + hTestActive( "i86265-1", CLOSE_METHOD_OK , REQUIRES_EXACT_MATCH ) + hTestActive( "i86265-2", CLOSE_METHOD_OK , REQUIRES_EXACT_MATCH ) printlog( "" ) printlog( " ---------- i92329 ------------ " ) hInsertMacroFromFile( "i92329" ) hIDERunMacro() - hTestActive( "Return an Array" , 1 ) + hTestActive( "Return an Array" , CLOSE_METHOD_OK ) printlog( "" ) printlog( " ---------- i97038 ------------ " ) hInsertMacroFromFile( "i97038" ) hIDERunMacro() - hTestActive( "1900" , 1 , FALSE ) - hTestActive( "2" , 1 , FALSE ) + hTestActive( "1900" , CLOSE_METHOD_OK , REQUIRES_FUZZY_MATCH ) + hTestActive( "2" , CLOSE_METHOD_OK , REQUIRES_FUZZY_MATCH ) printlog( "" ) printlog( " ---------- i103691 ------------ " ) hInsertMacroFromFile( "i103691" ) hIDERunMacro() - hTestActive( "Equal" , 1 , FALSE ) + hTestActive( "Equal" , CLOSE_METHOD_OK , REQUIRES_FUZZY_MATCH ) printlog( "" ) printlog( " ---------- i103697 ------------ " ) hInsertMacroFromFile( "i103697" ) hIDERunMacro() - hTestActive( "i103697" , 1 , FALSE ) + hTestActive( "i103697" , CLOSE_METHOD_OK , REQUIRES_FUZZY_MATCH ) printlog( "" ) printlog( " ---------- i103990 ------------ " ) hInsertMacroFromFile( "i103990" ) hIDERunMacro() - hTestActive( "42" , 1 , FALSE ) - hTestActive( "43" , 1 , FALSE ) - hTestActive( "Pi" , 1 , FALSE ) + hTestActive( "42" , CLOSE_METHOD_OK , REQUIRES_FUZZY_MATCH ) + hTestActive( "43" , CLOSE_METHOD_OK , REQUIRES_FUZZY_MATCH ) + hTestActive( "Pi" , CLOSE_METHOD_OK , REQUIRES_FUZZY_MATCH ) printlog( "" ) printlog( " ---------- i107070 ------------ " ) hInsertMacroFromFile( "i107070" ) hIDERunMacro() - hTestActive( "Dbg_Methods" , 1 , FALSE ) - hTestActive( "Dbg_Methods" , 1 , FALSE ) - hTestActive( "." , 1 , FALSE ) + hTestActive( "Dbg_Methods" , CLOSE_METHOD_OK , REQUIRES_FUZZY_MATCH ) + hTestActive( "Dbg_Methods" , CLOSE_METHOD_OK , REQUIRES_FUZZY_MATCH ) + hTestActive( "." , CLOSE_METHOD_OK , REQUIRES_FUZZY_MATCH ) + + printlog( "" ) + printlog( " ---------- i106744 ------------ " ) + hInsertMacroFromFile( "i106744-1" ) + hIDERunMacro() + hTestActive( "NOT EMPTY" , CLOSE_METHOD_OK , REQUIRES_EXACT_MATCH ) + + printlog( "" ) + printlog( " ---------- i106744 ------------ " ) + hInsertMacroFromFile( "i106744-2" ) + hIDERunMacro() + hTestActive( "NOT EMPTY" , CLOSE_METHOD_OK , REQUIRES_EXACT_MATCH ) printlog( "" ) printlog( " ---------- MessageBoxes ------------ " ) hInsertMacroFromFile( "MessageBoxes" ) hIDERunMacro() - if ( hTestActive( "0x" , 1 , TRUE ) > 1 ) then warnlog( "Wrong resource type" ) - if ( hTestActive( "1x" , 1 , TRUE ) > 2 ) then warnlog( "Wrong resource type" ) - if ( hTestActive( "2x" , 2 , TRUE ) > 3 ) then warnlog( "Wrong resource type" ) - if ( hTestActive( "3x" , 2 , TRUE ) > 3 ) then warnlog( "Wrong resource type" ) - if ( hTestActive( "4x" , 4 , TRUE ) > 2 ) then warnlog( "Wrong resource type" ) - if ( hTestActive( "5x" , 2 , TRUE ) > 2 ) then warnlog( "Wrong resource type" ) - if ( hTestActive( "16" , 2 , TRUE ) > 3 ) then warnlog( "Wrong resource type" ) - if ( hTestActive( "32" , 2 , TRUE ) > 3 ) then warnlog( "Wrong resource type" ) - if ( hTestActive( "48" , 2 , TRUE ) > 3 ) then warnlog( "Wrong resource type" ) - if ( hTestActive( "64" , 1 , TRUE ) > 1 ) then warnlog( "Wrong resource type" ) - if ( hTestActive( "128", 2 , TRUE ) > 3 ) then warnlog( "Wrong resource type" ) - if ( hTestActive( "256", 2 , TRUE ) > 3 ) then warnlog( "Wrong resource type" ) - if ( hTestActive( "512", 2 , TRUE ) > 3 ) then warnlog( "Wrong resource type" ) + + if ( hTestActive( "0x" , CLOSE_METHOD_OK , REQUIRES_EXACT_MATCH ) <> RESTYPE_1 ) then warnlog( "Wrong resource type" ) + if ( hTestActive( "1x" , CLOSE_METHOD_OK , REQUIRES_EXACT_MATCH ) <> RESTYPE_2 ) then warnlog( "Wrong resource type" ) + if ( hTestActive( "2x" , CLOSE_METHOD_CANCEL , REQUIRES_EXACT_MATCH ) <> RESTYPE_3 ) then warnlog( "Wrong resource type" ) + if ( hTestActive( "3x" , CLOSE_METHOD_CANCEL , REQUIRES_EXACT_MATCH ) <> RESTYPE_3 ) then warnlog( "Wrong resource type" ) + if ( hTestActive( "4x" , CLOSE_METHOD_NO , REQUIRES_EXACT_MATCH ) <> RESTYPE_2 ) then warnlog( "Wrong resource type" ) + if ( hTestActive( "5x" , CLOSE_METHOD_CANCEL , REQUIRES_EXACT_MATCH ) <> RESTYPE_2 ) then warnlog( "Wrong resource type" ) + if ( hTestActive( "16" , CLOSE_METHOD_CANCEL , REQUIRES_EXACT_MATCH ) <> RESTYPE_3 ) then warnlog( "Wrong resource type" ) + if ( hTestActive( "32" , CLOSE_METHOD_CANCEL , REQUIRES_EXACT_MATCH ) <> RESTYPE_3 ) then warnlog( "Wrong resource type" ) + if ( hTestActive( "48" , CLOSE_METHOD_CANCEL , REQUIRES_EXACT_MATCH ) <> RESTYPE_3 ) then warnlog( "Wrong resource type" ) + if ( hTestActive( "64" , CLOSE_METHOD_OK , REQUIRES_EXACT_MATCH ) <> RESTYPE_1 ) then warnlog( "Wrong resource type" ) + if ( hTestActive( "128", CLOSE_METHOD_CANCEL , REQUIRES_EXACT_MATCH ) <> RESTYPE_3 ) then warnlog( "Wrong resource type" ) + if ( hTestActive( "256", CLOSE_METHOD_CANCEL , REQUIRES_EXACT_MATCH ) <> RESTYPE_3 ) then warnlog( "Wrong resource type" ) + if ( hTestActive( "512", CLOSE_METHOD_CANCEL , REQUIRES_EXACT_MATCH ) <> RESTYPE_3 ) then warnlog( "Wrong resource type" ) printlog( "" ) hCloseBasicIDE() 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 + diff --git a/testautomation/framework/optional/input/vba-compat/Book1.xls b/testautomation/framework/optional/input/vba-compat/Book1.xls Binary files differnew file mode 100644 index 000000000000..425c2e0687b0 --- /dev/null +++ b/testautomation/framework/optional/input/vba-compat/Book1.xls diff --git a/testautomation/global/input/macros.txt b/testautomation/global/input/macros.txt index ffe95be431e3..e0423fec3858 100755 --- a/testautomation/global/input/macros.txt +++ b/testautomation/global/input/macros.txt @@ -279,3 +279,48 @@ Sub Main ' Uncommenting this should result in an error "Invalid procedure call" oInstanceErr1 = oSingleton.get( 42 ) End Sub + +# ---------------------------------------------------------------------------- # + +[i106744-1] +sub main + msgbox test1() +end sub + +Function test1() As String + + Dim foo As String : foo = "astring" + + On Error Resume Next + test1 = "GOT ERROR" + If IsEmpty(foo) Then + test1 = "EMPTY" + Else + test1 = "NOT EMPTY" + End If + +End Function + +# ---------------------------------------------------------------------------- # + +[i106744-2] +option VBASupport 1 + +sub main + msgbox test1() +end sub + +Function test1() As String + + Dim foo As String : foo = "astring" + + On Error Resume Next + test1 = "GOT ERROR" + If IsEmpty(foo) Then + test1 = "EMPTY" + Else + test1 = "NOT EMPTY" + End If + +End Function + |