update dev300-m58
[ooovba.git] / testautomation / framework / optional / includes / basic_vba-compat_import_enabled.inc
blob7b8cce3b20072fa758dd84bb72a23c91757955b5
1 'encoding UTF-8  Do not remove or change this line!
2 '*******************************************************************************
3 '* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 '*
5 '* Copyright 2008 by Sun Microsystems, Inc.
6 '*
7 '* OpenOffice.org - a multi-platform office productivity suite
8 '*
9 '* $RCSfile: basic_vba-compat_import_enabled.inc,v $
11 '* $Revision: 1.1 $
13 '* last change: $Author: jsi $ $Date: 2008-06-16 12:18:13 $
15 '* This file is part of OpenOffice.org.
17 '* OpenOffice.org is free software: you can redistribute it and/or modify
18 '* it under the terms of the GNU Lesser General Public License version 3
19 '* only, as published by the Free Software Foundation.
21 '* OpenOffice.org is distributed in the hope that it will be useful,
22 '* but WITHOUT ANY WARRANTY; without even the implied warranty of
23 '* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
24 '* GNU Lesser General Public License version 3 for more details
25 '* (a copy is included in the LICENSE file that accompanied this code).
27 '* You should have received a copy of the GNU Lesser General Public License
28 '* version 3 along with OpenOffice.org.  If not, see
29 '* <http://www.openoffice.org/license.html>
30 '* for a copy of the LGPLv3 License.
32 '/******************************************************************************
34 '*  owner : joerg.skottke@sun.com
36 '*  short description : Test VBA compatibility switches
38 '\******************************************************************************
40 testcase tBasicVBACompatImportEnabled()
42     warnlog( "#i92666# loading sample document crashes the office" )
43     goto endsub
45     printlog( "Test VBA compatibility switch / executable Microsoft(R) Excel(R) Macros" )
46     printlog( "Test case 3: Import macros and set them executable" )
47     
48     
49     ' This test case is based on the use cases provided in issue #i88690
50     ' Spec: http://specs.openoffice.org/appwide/options_settings/Option_Dialog.odt
51     
52     dim cTestFile as string
53         cTestFile = gTesttoolPath & "framework/optional/input/vba-compat/vba-test.xls"
54         
55     dim cNodeCount as integer
56     
57     ' note that index 0 and 1 are ommitted intentionally
58     dim caNodeData( 3 ) as string
59         caNodeData( 2 ) = "Modul1"
60         caNodeData( 3 ) = "Modul2"
61         
62     dim caScripts( 3 ) as string
63         caScripts( 2 ) = "ConcatFct Ende"
64         caScripts( 3 ) = "WriteIt"
65         
66     dim iCurrentModule as integer  
67     dim iCurrentScript as integer
68     dim cCurrentModule as string
69     dim bFound as boolean  
70     
71     ' Depending on the mode of macro import we have differtent basic libraries listed
72     const NODE_COUNT = 76 
74     const DOCUMENT_POSITION_OFFSET = -3
75     
76     const IMPORT_EXCEL_MACROS = TRUE
77     const EXEC_EXCEL_MACROS   = TRUE
79     printlog( "Set macro security to low" )
80     hSetMacroSecurityAPI( GC_MACRO_SECURITY_LEVEL_LOW )
81     
82     printlog( "Open Tools/Options" )
84     hSetExcelBasicImportMode( IMPORT_EXCEL_MACROS, EXEC_EXCEL_MACROS )
85     
86     printlog( "Load the test file" )
87     hFileOpen( cTestFile )
88     
89     printlog( "Open the Basic organizer" )
90     hOpenBasicOrganizerFromDoc()
91     
92     printlog( "Expand all nodes" )
93     cNodeCount = hExpandAllNodes( MakroAus )
94     
95     printlog( "Verify that we have the correct node count for the current mode" )
96     if ( cNodeCount <> NODE_COUNT ) then
97         warnlog( "The number of nodes is incorrect: " & cNodeCount )
98     endif
99     
100     printlog( "Verify position of the document node" )
101     MakroAus.select( cNodeCount + DOCUMENT_POSITION_OFFSET )
102     if ( MakroAus.getSelText() <> "vba-test" ) then
103         qaerrorlog( "The document node is not at the expected position" )
104     endif
105     
106     for iCurrentModule = 2 to 3
107     
108         printlog( "Look for: " & caNodeData( iCurrentModule ) )
109         
110         bFound = FALSE
111     
112         MakroAus.select( cNodeCount + DOCUMENT_POSITION_OFFSET + iCurrentModule )
113         cCurrentModule = MakroAus.getSelText()
114         
115         if ( cCurrentModule = caNodeData( iCurrentModule ) ) then 
116             bFound = TRUE
117             for iCurrentScript = 1 to MakroListe.getItemCount()
118                 MakroListe.select( iCurrentScript )
119                 if ( instr( caScripts( iCurrentModule ), MakroListe.getSelText() ) = 0 ) then
120                     warnlog( "Script for the current module not found" )
121                     bFound = FALSE
122                 else
123                     printlog( "Script(s) found." )
124                 endif
125             next iCurrentScript
126         endif
127             
128         if ( not bFound ) then
129             warnlog( "The node was not found: " & cCurrentModule )
130         endif
131         
132     next iCurrentModule
133     
134     printlog( "Close Macro Organizer" )
135     Kontext "Makro"
136     Makro.close()
137     WaitSlot()
138     
139     hCloseDocument()
140     hSetExcelImportModeDefault()    
141     hSetMacroSecurityAPI( GC_MACRO_SECURITY_LEVEL_DEFAULT )
143 endcase