summaryrefslogtreecommitdiff
path: root/testautomation/framework
diff options
context:
space:
mode:
authorJoerg Skottke [jsk] <jsk@openoffice.org>2010-05-31 10:55:36 +0200
committerJoerg Skottke [jsk] <jsk@openoffice.org>2010-05-31 10:55:36 +0200
commit7784ef3e8af06017f6fb4522e4e6fe9bf2ae2931 (patch)
tree285e543b5895fa9f09c40d1d729c24ebeb9ee5a6 /testautomation/framework
parenta60b65b5ab97a7aa3ffb39da7ae2a90b5841575a (diff)
parent0d294687b6d1111589a30edc3b41075c4ef8ca0c (diff)
vitomation01: Local merge with DEV300_79
Diffstat (limited to 'testautomation/framework')
-rwxr-xr-xtestautomation/framework/optional/f_basic_vba-compat.bas11
-rwxr-xr-xtestautomation/framework/optional/includes/basic_gridcontrol.inc33
-rwxr-xr-xtestautomation/framework/optional/includes/basic_vba-compat_application-union.inc132
-rwxr-xr-xtestautomation/framework/optional/includes/basic_vba-compat_import_disabled.inc33
-rwxr-xr-xtestautomation/framework/optional/includes/basic_vba-compat_import_enabled.inc76
-rwxr-xr-xtestautomation/framework/optional/includes/basic_vba-compat_import_nothing.inc35
-rwxr-xr-xtestautomation/framework/optional/includes/basic_vba-compat_thisworkbook.inc143
-rwxr-xr-xtestautomation/framework/optional/includes/basic_vba-compat_xlsm-xlsb.inc187
-rwxr-xr-xtestautomation/framework/optional/input/gridcontrol.odtbin11602 -> 12000 bytes
-rwxr-xr-xtestautomation/framework/optional/input/vba-compat/vba-application-union.xlsbin0 -> 31744 bytes
-rwxr-xr-xtestautomation/framework/optional/input/vba-compat/vba-project.xlsbbin0 -> 19603 bytes
-rwxr-xr-xtestautomation/framework/optional/input/vba-compat/vba-project.xlsmbin0 -> 20276 bytes
-rw-r--r--testautomation/framework/optional/input/vba-compat/vba-thisworkbook.xlsbin0 -> 39424 bytes
13 files changed, 556 insertions, 94 deletions
diff --git a/testautomation/framework/optional/f_basic_vba-compat.bas b/testautomation/framework/optional/f_basic_vba-compat.bas
index 3a6d41d3e0af..80b48eb5c1e6 100755
--- a/testautomation/framework/optional/f_basic_vba-compat.bas
+++ b/testautomation/framework/optional/f_basic_vba-compat.bas
@@ -36,13 +36,17 @@ 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"
-
+ use "framework\optional\includes\basic_vba-compat_thisworkbook.inc"
+ use "framework\optional\includes\basic_vba-compat_application-union.inc"
+ use "framework\optional\includes\basic_vba-compat_xlsm-xlsb.inc"
+
call hStatusIn( "framework" , "f_basic_vba-compat.bas" )
call tBasicVBACompatImportNothing()
call tBasicVBACompatImportDisabled()
call tBasicVBACompatImportEnabled()
- call tBasicVBACompatSecurityCheck()
+ call tBasicVBACompatThisWorkBook()
+ call tBasicVBACompatApplicationUnion()
+ call tBasicVBACompatXLSM_XLSB()
call hStatusOut()
end sub
@@ -56,6 +60,7 @@ 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_stringtools.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"
diff --git a/testautomation/framework/optional/includes/basic_gridcontrol.inc b/testautomation/framework/optional/includes/basic_gridcontrol.inc
index 346e929b886d..7002fad5b1e4 100755
--- a/testautomation/framework/optional/includes/basic_gridcontrol.inc
+++ b/testautomation/framework/optional/includes/basic_gridcontrol.inc
@@ -49,28 +49,19 @@ testcase tGridcontrolLoad
Kontext "ScriptSelector"
if ( ScriptSelector.exists( 10 ) ) then
- printlog( "Select the last node" )
- hSelectTheLastNode( LibraryTreeList )
-
- printlog( "Search for the macro within the current module" )
- iPos = hFindInList( ScriptList, MACRO_NAME )
- if ( iPos <> MACRO_NOT_FOUND ) then
-
- printlog( "The requested macro was found: " & MACRO_NAME )
- ScriptList.select( iPos )
- hCloseDialog( ScriptSelector, "ok" )
-
- printlog( "Probe for unexpected messagebox" )
- kontext "Active"
- if ( Active.exists( 5 ) ) then
- warnlog( "Unexpected messagebox: " & Active.getText() )
- Active.ok()
- endif
- else
- warnlog( "The requested Macro could not be found: " & MACRO_NAME )
- endif
+ printlog "Start the macro, that performs the test"
+ Kontext "GridControlDialogStarter"
+ ShowGridcontrol.typeKeys "<space>"
+ Kontext "GridControlDialog"
+ if GridControlDialog.exists(5) then
+ for i=1 to gridcontrolcontrol.getcolumncount
+ for a=1 to gridcontrolcontrol.getrowcount
+ printlog " " + i + ":"+a+": '" + gridcontrolcontrol.getitemtype (i,a) + "' '" + gridcontrolcontrol.getitemtext (i,a) + "'"
+ next a
+ next i
+ GridControlDialog.close
else
- warnlog( "ScriptSelector failed to open" )
+ warnlog "Gridcontrol Dialog did not come up after pressing button"
endif
printlog( "Test exit, cleanup" )
diff --git a/testautomation/framework/optional/includes/basic_vba-compat_application-union.inc b/testautomation/framework/optional/includes/basic_vba-compat_application-union.inc
new file mode 100755
index 000000000000..222b99215f81
--- /dev/null
+++ b/testautomation/framework/optional/includes/basic_vba-compat_application-union.inc
@@ -0,0 +1,132 @@
+'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 tBasicVBACompatApplicationUnion()
+
+ printlog( "Functionality of Application.Union" )
+ ' Based on issue #i110724
+
+ const IMPORT_EXCEL_MACROS = TRUE
+ const EXEC_EXCEL_MACROS = TRUE
+ const DOCUMENT_NAME = "vba-application-union.xls"
+ const LIBRARY_NAME = "Standard"
+ const MODULE_NAME = "Module1"
+ const EXPECTED_MACRO_COUNT = 6
+ const MAX_WAIT = 2
+ const RC_FAILURE = -1
+
+ dim macro_identifier( EXPECTED_MACRO_COUNT )
+ macro_identifier( 1 ) = "1: True"
+ macro_identifier( 2 ) = "2: True"
+ macro_identifier( 3 ) = "3: True"
+ macro_identifier( 4 ) = "4: True"
+ macro_identifier( 5 ) = "5: True"
+ macro_identifier( 6 ) = "6: True"
+
+ dim cTestFile as string
+ cTestFile = gTesttoolPath & "framework/optional/input/vba-compat/" & DOCUMENT_NAME
+
+ dim iMacroPosition as integer
+ dim iCurrentMacro as integer
+ dim iRepeat as integer
+
+ printlog( "Set macro security to low" )
+ hSetMacroSecurityAPI( GC_MACRO_SECURITY_LEVEL_LOW )
+
+ printlog( "Open Tools/Options" )
+ hSetExcelBasicImportMode( IMPORT_EXCEL_MACROS, EXEC_EXCEL_MACROS )
+
+ printlog( "Load the test file" )
+ hFileOpen( cTestFile )
+
+ ToolsMacro_uno
+
+ kontext "Makro"
+ if ( Makro.exists( MAX_WAIT ) ) then
+
+ iMacroPosition = hSelectNodeByName( MakroAus, DOCUMENT_NAME )
+ hExpandNode( MakroAus, iMacroPosition )
+
+ printlog( "Move to node <" & LIBRARY_NAME & ">" )
+ iMacroPosition = hSelectNextNode( MakroAus )
+ if ( not hVerifyNodeName( MakroAus, LIBRARY_NAME ) ) then
+ warnlog( "This is not the expected library" )
+ endif
+
+ printlog( "Move to node <" & MODULE_NAME & ">" )
+ hSelectNextNode( MakroAus )
+ if ( not hVerifyNodeName( MakroAus, MODULE_NAME ) ) then
+ warnlog( "This is not the expected module" )
+ endif
+
+ printlog( "Click <Ausfuehren> to execute the macro" )
+ if ( hClickButton( Ausfuehren ) <> RC_FAILURE ) then
+
+ printlog( "Check for the " & EXPECTED_MACRO_COUNT & " expected messageboxes" )
+ for iCurrentMacro = 1 to EXPECTED_MACRO_COUNT
+
+ printlog( "" )
+ kontext "Active"
+ printlog( iCurrentMacro & ": Check for messagebox: " & macro_identifier( iCurrentMacro ) )
+ if ( Active.exists( MAX_WAIT ) ) then
+
+ if ( Active.getText() = macro_identifier( iCurrentMacro ) ) then
+ printlog( "The expected macro was executed" )
+ else
+ warnlog( "Unexpected macro executed: " & Active.getText() )
+ endif
+ Active.ok()
+
+ else
+ warnlog( "Expected messagebox not displayed within reasonable timeframe" )
+ goto endsub
+ endif
+
+ next iCurrentMacro
+ else
+ warnlog( "Unable to execute macro, the <Run Macro> button is disabled" )
+ kontext "Makro"
+ Makro.close()
+ endif
+ else
+ warnlog( "Failed to open BASIC organizer" )
+ endif
+
+ printlog( "Cleanup" )
+ hCloseDocument()
+ hSetExcelImportModeDefault()
+ hSetMacroSecurityAPI( GC_MACRO_SECURITY_LEVEL_DEFAULT )
+
+endcase
+
+
diff --git a/testautomation/framework/optional/includes/basic_vba-compat_import_disabled.inc b/testautomation/framework/optional/includes/basic_vba-compat_import_disabled.inc
index 682045da8139..1e361b6de0b2 100755
--- a/testautomation/framework/optional/includes/basic_vba-compat_import_disabled.inc
+++ b/testautomation/framework/optional/includes/basic_vba-compat_import_disabled.inc
@@ -36,12 +36,23 @@ testcase tBasicVBACompatImportDisabled()
printlog( "Test VBA compatibility switch / executable Microsoft(R) Excel(R) Macros" )
printlog( "Test case 2: Import macros but do not set the executable mode" )
-
' This test case is based on the use cases provided in issue #i88690
' Spec: http://specs.openoffice.org/appwide/options_settings/Option_Dialog.odt
+
+ const NODE_COUNT = 78
+
+ const DOCUMENT_POSITION_OFFSET = -7
+
+ const IMPORT_EXCEL_MACROS = TRUE
+ const EXEC_EXCEL_MACROS = FALSE
+
+ const DOCUMENT_NAME = "vba-test.xls"
+ const MATCH_NONE = 0
+ const MATCH_EXACT = 1
+ const MATCH_PARTLY = 2
dim cTestFile as string
- cTestFile = gTesttoolPath & "framework/optional/input/vba-compat/vba-test.xls"
+ cTestFile = gTesttoolPath & "framework/optional/input/vba-compat/" & DOCUMENT_NAME
dim cNodeCount as integer
@@ -57,15 +68,6 @@ testcase tBasicVBACompatImportDisabled()
dim iCurrentModule as integer
dim cCurrentModule as string
dim bFound as boolean
-
- ' Depending on the mode of macro import we have differtent basic libraries listed
- const NODE_COUNT_OOO = 78 ' OpenOffice.org
- const NODE_COUNT = 80 ' branded product
-
- const DOCUMENT_POSITION_OFFSET = -7
-
- const IMPORT_EXCEL_MACROS = TRUE
- const EXEC_EXCEL_MACROS = FALSE
printlog( "Set macro security to low" )
hSetMacroSecurityAPI( GC_MACRO_SECURITY_LEVEL_LOW )
@@ -93,9 +95,11 @@ testcase tBasicVBACompatImportDisabled()
printlog( "Verify position of the document node" )
MakroAus.select( cNodeCount + DOCUMENT_POSITION_OFFSET )
- if ( MakroAus.getSelText() <> "vba-test.xls" ) then
- printlog( "The document node is not at the expected position, searching..." )
- endif
+ select case( hCompareSubStrings( MakroAus.getSelText(), DOCUMENT_NAME ) )
+ case MATCH_NONE : warnlog ( "The document is not listed at the expected position" )
+ case MATCH_EXACT : printlog( "The document is at the expected position and writable" )
+ case MATCH_PARTLY : printlog( "The document is at the expected position and write protected" )
+ end select
for iCurrentModule = 2 to 7
@@ -136,7 +140,6 @@ testcase tBasicVBACompatImportDisabled()
hSetExcelImportModeDefault()
hSetMacroSecurityAPI( GC_MACRO_SECURITY_LEVEL_DEFAULT )
-
endcase
diff --git a/testautomation/framework/optional/includes/basic_vba-compat_import_enabled.inc b/testautomation/framework/optional/includes/basic_vba-compat_import_enabled.inc
index 243c31bb7fc5..660561322db6 100755
--- a/testautomation/framework/optional/includes/basic_vba-compat_import_enabled.inc
+++ b/testautomation/framework/optional/includes/basic_vba-compat_import_enabled.inc
@@ -39,22 +39,40 @@ testcase tBasicVBACompatImportEnabled()
' This test case is based on the use cases provided in issue #i88690
' Spec: http://specs.openoffice.org/appwide/options_settings/Option_Dialog.odt
-
- dim cFile as string : cFile = "vba-test.xls"
+
+ ' Depending on the mode of macro import we have differtent basic libraries listed
+ const NODE_COUNT = 78
+
+ const DOCUMENT_POSITION_OFFSET = -7
+
+ const IMPORT_EXCEL_MACROS = TRUE
+ const EXEC_EXCEL_MACROS = TRUE
+
+ const DOCUMENT_NAME = "vba-test.xls"
+ const MATCH_NONE = 0
+ const MATCH_EXACT = 1
+ const MATCH_PARTLY = 2
dim cTestFile as string
- cTestFile = gTesttoolPath & "framework/optional/input/vba-compat/" & cFile
+ cTestFile = gTesttoolPath & "framework/optional/input/vba-compat/" & DOCUMENT_NAME
dim cNodeCount as integer
- ' note that index 0 and 1 are ommitted intentionally
- dim caNodeData( 3 ) as string
- caNodeData( 2 ) = "Modul1"
- caNodeData( 3 ) = "Modul2"
-
- dim caScripts( 3 ) as string
- caScripts( 2 ) = "ConcatFct Ende"
- caScripts( 3 ) = "WriteIt"
+ dim caNodeData( 7 ) as string
+ caNodeData( 0 ) = DOCUMENT_NAME ' The document, not used
+ caNodeData( 1 ) = "Standard" ' The default library, not used
+ caNodeData( 2 ) = "DieseArbeitsmappe"
+ caNodeData( 3 ) = "Modul1"
+ caNodeData( 4 ) = "Modul2"
+ caNodeData( 5 ) = "Tabelle1"
+ caNodeData( 6 ) = "Tabelle2"
+ caNodeData( 7 ) = "Tabelle3"
+
+ ' These are the scripts belonging to each node above. If multiple scripts exist
+ ' they are separated by spaces. Example: "Modul1" has "ConcatFct" and "Ende" scripts.
+ dim caScripts( 7 ) as string
+ caScripts( 3 ) = "ConcatFct Ende"
+ caScripts( 4 ) = "WriteIt"
dim iCurrentModule as integer
dim iCurrentScript as integer
@@ -62,19 +80,10 @@ testcase tBasicVBACompatImportEnabled()
dim cTempString as string
dim bFound as boolean
- ' Depending on the mode of macro import we have differtent basic libraries listed
- const NODE_COUNT_OOO = 74
- const NODE_COUNT = 76
-
- const DOCUMENT_POSITION_OFFSET = -3
-
- const IMPORT_EXCEL_MACROS = TRUE
- const EXEC_EXCEL_MACROS = TRUE
-
printlog( "Set macro security to low" )
hSetMacroSecurityAPI( GC_MACRO_SECURITY_LEVEL_LOW )
- printlog( "Open Tools/Options" )
+ printlog( "Open Tools/Options and set the VBA macro execution mode" )
hSetExcelBasicImportMode( IMPORT_EXCEL_MACROS, EXEC_EXCEL_MACROS )
@@ -97,26 +106,13 @@ testcase tBasicVBACompatImportEnabled()
printlog( "Verify position of the document node." )
MakroAus.select( cNodeCount + DOCUMENT_POSITION_OFFSET )
- cTempString = MakroAus.getSelText()
- if ( cTempString <> cFile ) then
- printlog( "The filename does not match. File may be read-only." )
- if ( instr( cTempString, cFile ) > 1 ) then
- printlog( "Filename is contained in the UI string." )
- select case ( getAttr( cTestFile ) )
- case 0 : warnlog( "The file appears to be read-only but it is " & _
- "not write-protected on filesystem level." )
- case 1 : printlog( "The file is read-only on filesystem level. Ok." )
- case else
- warnlog( "getAttr() returned unexpected value. 1 or 2 are allowed" )
- printlog( "RC from getAttr() is: " & getAttr( cTestFile ) )
- end select
- else
- printlog( "The document node is not at the expected position." )
- printlog( "Object at this position is: " & MakroAus.getSelText() )
- endif
- endif
+ select case( hCompareSubStrings( MakroAus.getSelText(), DOCUMENT_NAME ) )
+ case MATCH_NONE : warnlog ( "The document is not listed at the expected position" )
+ case MATCH_EXACT : printlog( "The document is at the expected position and writable" )
+ case MATCH_PARTLY : printlog( "The document is at the expected position and write protected" )
+ end select
- for iCurrentModule = 2 to 3
+ for iCurrentModule = 2 to 7
printlog( "Look for: " & caNodeData( iCurrentModule ) )
diff --git a/testautomation/framework/optional/includes/basic_vba-compat_import_nothing.inc b/testautomation/framework/optional/includes/basic_vba-compat_import_nothing.inc
index d118b646c833..66cc7a77eae5 100755
--- a/testautomation/framework/optional/includes/basic_vba-compat_import_nothing.inc
+++ b/testautomation/framework/optional/includes/basic_vba-compat_import_nothing.inc
@@ -38,21 +38,24 @@ testcase tBasicVBACompatImportNothing()
' This test case is based on the use cases provided in issue #i88690
' Spec: http://specs.openoffice.org/appwide/options_settings/Option_Dialog.odt
-
- dim cTestFile as string
- cTestFile = gTesttoolPath & "framework/optional/input/vba-compat/vba-test.xls"
-
- dim cNodeCount as integer
-
- ' Depending on the mode of macro import we have differtent basic libraries listed
- const NODE_COUNT = 74 ' Do not import Microsoft(R) Excel(R) macros at all
- const NODE_COUNT_OOO = 72
- const MACRO_LIST = 0 ' The document library should have no scripts listed
+' Depending on the mode of macro import we have differtent basic libraries listed
+ const NODE_COUNT = 72 ' Do not import Microsoft(R) Excel(R) macros at all
+ const MACRO_LIST = 0 ' The document library should have no scripts listed
const DOCUMENT_POSITION_OFFSET = -1
-
+
const IMPORT_EXCEL_MACROS = FALSE
const EXEC_EXCEL_MACROS = FALSE
-
+
+ const DOCUMENT_NAME = "vba-test.xls"
+ const MATCH_NONE = 0
+ const MATCH_EXACT = 1
+ const MATCH_PARTLY = 2
+
+ dim cTestFile as string
+ cTestFile = gTesttoolPath & "framework/optional/input/vba-compat/" & DOCUMENT_NAME
+
+ dim cNodeCount as integer
+
printlog( "Set macro security to low" )
hSetMacroSecurityAPI( GC_MACRO_SECURITY_LEVEL_LOW )
@@ -79,9 +82,11 @@ testcase tBasicVBACompatImportNothing()
printlog( "Verify position of the document node" )
MakroAus.select( cNodeCount + DOCUMENT_POSITION_OFFSET )
- if ( MakroAus.getSelText() <> "vba-test.xls" ) then
- printlog( "The document node is not at the expected position, searching" )
- endif
+ select case( hCompareSubStrings( MakroAus.getSelText(), DOCUMENT_NAME ) )
+ case MATCH_NONE : warnlog ( "The document is not listed at the expected position" )
+ case MATCH_EXACT : printlog( "The document is at the expected position and writable" )
+ case MATCH_PARTLY : printlog( "The document is at the expected position and write protected" )
+ end select
printlog( "Select the last node, this should be the standard Library for the document" )
MakroAus.select( cNodeCount )
diff --git a/testautomation/framework/optional/includes/basic_vba-compat_thisworkbook.inc b/testautomation/framework/optional/includes/basic_vba-compat_thisworkbook.inc
new file mode 100755
index 000000000000..03c52146a8fb
--- /dev/null
+++ b/testautomation/framework/optional/includes/basic_vba-compat_thisworkbook.inc
@@ -0,0 +1,143 @@
+'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 tBasicVBACompatThisWorkBook()
+
+ printlog( "Functionality of .thisWorkbook" )
+ ' Based on issue #i110672
+
+ const IMPORT_EXCEL_MACROS = TRUE
+ const EXEC_EXCEL_MACROS = TRUE
+ const DOCUMENT_NAME = "vba-thisworkbook.xls"
+ const LIBRARY_NAME = "Standard"
+ const MODULE_NAME = "Module1"
+ const EXPECTED_MACRO_COUNT = 2
+ const MAX_REPEAT_COUNT = 2
+ const MAX_WAIT = 2
+
+ dim macro_identifier( EXPECTED_MACRO_COUNT )
+ macro_identifier( 1 ) = "Test 1 passed."
+ macro_identifier( 2 ) = "Test 2 passed."
+
+ dim cTestFile as string
+ cTestFile = gTesttoolPath & "framework/optional/input/vba-compat/" & DOCUMENT_NAME
+
+ dim iMacroPosition as integer
+ dim iCurrentMacro as integer
+ dim iRepeat as integer
+
+ printlog( "Set macro security to low" )
+ hSetMacroSecurityAPI( GC_MACRO_SECURITY_LEVEL_LOW )
+
+ printlog( "Open Tools/Options" )
+ hSetExcelBasicImportMode( IMPORT_EXCEL_MACROS, EXEC_EXCEL_MACROS )
+
+ printlog( "Load the test file" )
+ hFileOpen( cTestFile )
+
+ printlog( "Execute the procedure twice to trigger issue 111553" )
+ for iRepeat = 1 to MAX_REPEAT_COUNT
+
+ ToolsMacro_uno
+
+ kontext "Makro"
+ if ( Makro.exists( MAX_WAIT ) ) then
+
+ iMacroPosition = hSelectNodeByName( MakroAus, DOCUMENT_NAME )
+ hExpandNode( MakroAus, iMacroPosition )
+
+ printlog( "Move to node <" & LIBRARY_NAME & ">" )
+ iMacroPosition = hSelectNextNode( MakroAus )
+ if ( not hVerifyNodeName( MakroAus, LIBRARY_NAME ) ) then
+ warnlog( "This is not the expected library" )
+ endif
+
+ printlog( "Move to node <" & MODULE_NAME & ">" )
+ hSelectNextNode( MakroAus )
+ if ( not hVerifyNodeName( MakroAus, MODULE_NAME ) ) then
+ warnlog( "This is not the expected module" )
+ endif
+
+ printlog( "Click <Ausfuehren> to execute the macro" )
+ iMacroPosition = hClickButton( Ausfuehren )
+
+ printlog( "Check for two expected messageboxes" )
+ for iCurrentMacro = 1 to EXPECTED_MACRO_COUNT
+
+ kontext "Active"
+ printlog( "Check for messagebox: " & macro_identifier( iCurrentMacro ) )
+ if ( Active.exists( MAX_WAIT ) ) then
+
+ if ( Active.getText() = macro_identifier( iCurrentMacro ) ) then
+ printlog( "Correct macro executed" )
+ else
+ printlog( "Macro execution error, trying to identify..." )
+ if ( instr( Active.getText(), "BASIC runtime error." ) > 0 ) then
+ if ( iRepeat = MAX_REPEAT_COUNT ) then
+ warnlog( "#i111533 - Cannot execute ThisWorkbook macro twice" )
+ Active.ok()
+ hFileCloseAll()
+ goto endsub
+ else
+ warnlog( "Executing macro failed" )
+ goto endsub
+ endif
+ else
+ warnlog( "Unknown messagebox. Aborting test" )
+ goto endsub
+ endif
+ endif
+
+ Active.ok()
+
+ else
+ warnlog( "Expected messagebox not displayed within reasonable timeframe" )
+ goto endsub
+ endif
+
+ next iCurrentMacro
+ else
+ warnlog( "A macro with the name <" & MODULE_NAME & "> could not be found" )
+ goto endsub
+ endif
+
+ next iRepeat
+
+ printlog( "Cleanup" )
+ hCloseDocument()
+ hSetExcelImportModeDefault()
+ hSetMacroSecurityAPI( GC_MACRO_SECURITY_LEVEL_DEFAULT )
+
+endcase
+
+
diff --git a/testautomation/framework/optional/includes/basic_vba-compat_xlsm-xlsb.inc b/testautomation/framework/optional/includes/basic_vba-compat_xlsm-xlsb.inc
new file mode 100755
index 000000000000..cfc8f06072e3
--- /dev/null
+++ b/testautomation/framework/optional/includes/basic_vba-compat_xlsm-xlsb.inc
@@ -0,0 +1,187 @@
+'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 tBasicVBACompatXLSM_XLSB()
+
+ printlog( "Functionality of macros in XLSM/XLSB files" )
+ ' Based on issue #i111007
+
+ const IMPORT_EXCEL_MACROS = TRUE
+ const EXEC_EXCEL_MACROS = TRUE
+
+ const FILE_COUNT = 2
+ const MODULE_COUNT = 7
+
+ const MODULE_NOT_FOUND = 0
+ const MAX_DELAY = 3
+ const RC_TIMEOUT = -1
+
+ const THE_MODULE_THAT_BEHAVES_DIFFERENTLY = 6
+
+ const RELATIVE_PATH = "framework/optional/input/vba-compat/"
+
+ ' We have two files to load, on e .xlsm and one .xlsb
+ dim cFileList( FILE_COUNT ) as string
+ cFileList( 1 ) = "vba-project.xlsm"
+ cFileList( 2 ) = "vba-project.xlsb"
+
+ ' both documents import the same modules
+ dim cTestModuleList( MODULE_COUNT )
+ cTestModuleList( 1 ) = "MyChartModule"
+ cTestModuleList( 2 ) = "MyCodeModule"
+ cTestModuleList( 3 ) = "MyPrivateClassModule"
+ cTestModuleList( 4 ) = "MyPublicClassModule"
+ cTestModuleList( 5 ) = "MySheetModule"
+ cTestModuleList( 6 ) = "MyUserForm"
+ cTestModuleList( 7 ) = "MyWorkbookModule"
+
+ dim cTestFile as string
+ dim iCurrentFile as integer
+ dim iCurrentModule as integer
+
+ printlog( "Set macro security to low" )
+ hSetMacroSecurityAPI( GC_MACRO_SECURITY_LEVEL_LOW )
+
+ printlog( "Open Tools/Options" )
+ hSetExcelBasicImportMode( IMPORT_EXCEL_MACROS, EXEC_EXCEL_MACROS )
+
+ for iCurrentFile = 1 to FILE_COUNT
+
+ cTestFile = gTesttoolPath & RELATIVE_PATH & cFileList( iCurrentFile )
+
+ printlog( "Loading document: " & cTestFile )
+ hFileOpen( cTestFile )
+
+ for iCurrentModule = 1 to MODULE_COUNT
+
+ printlog( "" )
+ printlog( "Tryng to execute macro: " & cTestModuleList( iCurrentModule ) )
+ ToolsMacro_uno
+
+ kontext "Makro"
+ if ( Makro.exists( MAX_DELAY ) ) then
+
+ if ( hSelectNodeByName( MakroAus, cTestModuleList( iCurrentModule ) ) <> MODULE_NOT_FOUND ) then
+
+ printlog( "Execute the default macro <Test> for the current module" )
+
+ if ( hClickButton( Ausfuehren ) <> RC_TIMEOUT ) then
+ if ( iCurrentModule = THE_MODULE_THAT_BEHAVES_DIFFERENTLY ) then
+ ' Fuzzy matching message string
+ hTestMacroType2( cTestModuleList( iCurrentModule ) )
+ else
+ ' Exact matching message string
+ hTestMacroType1( cTestModuleList( iCurrentModule ) )
+ endif
+ else
+ warnlog( "No executable macro found for the current module / <Run> button is disabled" )
+ endif
+ else
+ warnlog( "the expected macro module could not be found" )
+ endif
+ else
+ warnlog( "BASIC Macro organizer did not open" )
+ endif
+
+ next iCurrentModule
+
+ printlog( "Close the document" )
+ hFileCloseAll()
+
+ next iCurrentFile
+
+ hSetExcelImportModeDefault()
+ hSetMacroSecurityAPI( GC_MACRO_SECURITY_LEVEL_DEFAULT )
+
+endcase
+
+'*******************************************************************************
+
+function hTestMacroType1( cMessage as string ) as boolean
+
+ ' exact matching
+
+ kontext "Active"
+ if ( Active.exists( 2 ) ) then
+ if ( Active.getText() = cMessage ) then
+ printlog( "Correct macro has been executed" )
+ hTestMacroType1() = true
+ else
+ warnlog( "Incorrect macro executed: " )
+ printlog( "Expected: " & cMessage )
+ printlog( "Found...: " & Active.getText() )
+ hTestMacroType1() = false
+ endif
+
+ Active.ok()
+ WaitSlot()
+
+ else
+ warnlog( "Messagebox missing, macro was not executed" )
+ hTestMacroType1() = false
+ endif
+
+end function
+
+'*******************************************************************************
+
+function hTestMacroType2( cMessage as string ) as boolean
+
+ ' fuzzy matching
+
+ dim iCurrentMessage as integer
+
+ for iCurrentMessage = 1 to 2
+
+ kontext "Active"
+ if ( Active.exists( 2 ) ) then
+ if ( instr( Active.getText() , cMessage ) > 0 ) then
+ printlog( "Correct macro has been executed" )
+ hTestMacroType2() = true
+ else
+ warnlog( "Incorrect macro executed: " )
+ printlog( "Expected: " & cMessage )
+ printlog( "Found...: " & Active.getText() )
+ hTestMacroType2() = false
+ endif
+
+ Active.ok()
+ WaitSlot()
+
+ else
+ warnlog( "Messagebox missing, macro not executed" )
+ hTestMacroType2() = false
+ endif
+ next iCurrentMessage
+
+end function \ No newline at end of file
diff --git a/testautomation/framework/optional/input/gridcontrol.odt b/testautomation/framework/optional/input/gridcontrol.odt
index b3e5c6fb40bb..d11d70cfbc09 100755
--- a/testautomation/framework/optional/input/gridcontrol.odt
+++ b/testautomation/framework/optional/input/gridcontrol.odt
Binary files differ
diff --git a/testautomation/framework/optional/input/vba-compat/vba-application-union.xls b/testautomation/framework/optional/input/vba-compat/vba-application-union.xls
new file mode 100755
index 000000000000..b1f1be816b7b
--- /dev/null
+++ b/testautomation/framework/optional/input/vba-compat/vba-application-union.xls
Binary files differ
diff --git a/testautomation/framework/optional/input/vba-compat/vba-project.xlsb b/testautomation/framework/optional/input/vba-compat/vba-project.xlsb
new file mode 100755
index 000000000000..9fd88a8e545c
--- /dev/null
+++ b/testautomation/framework/optional/input/vba-compat/vba-project.xlsb
Binary files differ
diff --git a/testautomation/framework/optional/input/vba-compat/vba-project.xlsm b/testautomation/framework/optional/input/vba-compat/vba-project.xlsm
new file mode 100755
index 000000000000..6a8896e18599
--- /dev/null
+++ b/testautomation/framework/optional/input/vba-compat/vba-project.xlsm
Binary files differ
diff --git a/testautomation/framework/optional/input/vba-compat/vba-thisworkbook.xls b/testautomation/framework/optional/input/vba-compat/vba-thisworkbook.xls
new file mode 100644
index 000000000000..f275fd9cca0e
--- /dev/null
+++ b/testautomation/framework/optional/input/vba-compat/vba-thisworkbook.xls
Binary files differ