summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIvo Hinkelmann <ihi@openoffice.org>2010-05-11 11:26:34 +0200
committerIvo Hinkelmann <ihi@openoffice.org>2010-05-11 11:26:34 +0200
commitb565fa46ee035651fe1072f1aea2c2ccdd10982d (patch)
tree0a3eb39145c7a71b1facaf193f9ffc3be7dc03fd
parente0a8d76ccbf103a75d4884bc12914dca7ae22b6a (diff)
parente6a9b63b6cea4d65e76af484b6206570f836f8ec (diff)
CWS-TOOLING: integrate CWS npower14miscfixes
-rwxr-xr-xtestautomation/framework/optional/f_basic_vba-compat.bas7
-rwxr-xr-x[-rw-r--r--]testautomation/framework/optional/includes/basic_issues.inc106
-rw-r--r--testautomation/framework/optional/includes/basic_vba-compat_security_check.inc105
-rw-r--r--testautomation/framework/optional/input/vba-compat/Book1.xlsbin0 -> 18432 bytes
-rwxr-xr-xtestautomation/global/input/macros.txt45
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
new file mode 100644
index 000000000000..425c2e0687b0
--- /dev/null
+++ b/testautomation/framework/optional/input/vba-compat/Book1.xls
Binary files differ
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
+