update dev300-m58
[ooovba.git] / testautomation / framework / optional / includes / basic_documents.inc
blobe79a2dcf32aa0e098e5d5d43e496b97324e4efa9
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_documents.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 : BASIC organizers and documents
38 '\******************************************************************************
40 private const IDOCS = 5
41     
42 testcase tBasicDocuments
44     qaerrorlog( "#i90435# Untitled documents unnumbered in BASIC organizer" )
45     goto endsub
47     const CFN = "tBasicDocuments::"
49     '///<H1>Documents in BASIC organizers</H1>
50     '///<i>Compare the names of the documents listed in various treelists
51     '///+ in Basic Organizer and Basic Object Organizer (Manage...)</i>
52     '///<ul>
54     dim brc as boolean
55     dim sFileWriter as string
56     dim sFileCalc as string
57     dim iDocumentCount as integer
58     dim cNodeListA( 10 ) as string
59     dim cNodeListB( 10 ) as string
60     dim iSecLevel as integer
61     dim iHitCount as integer
62     
63     ' NOTE: hCreateBasicWorkFiles() creates files of the naming scheme 
64     ' basic.odt, ...odc etc. All these files will show up with just "basic"
65     ' in the Macro Organizer
66     const DOC_NAME = "basic"
67     
68     '///+<li>Set the Macro Security Level to &quot;Medium&quot;</li>
69     printlog( "" )
70     iSecLevel = hSetMacroSecurityAPI( GC_MACRO_SECURITY_LEVEL_MEDIUM )
71     
72     '///+<li>Create one initial document</li>
73     hInitSingleDoc()
74     
75     '///+<li>Write identifier string to the document</li>
76     kontext "DocumentWriter"
77     DocumentWriter.typeKeys( "tBasicDocuments - initial document - discard after test" )
79     '///+<li>Create a writer document containing a macro, name it basic.odt</li>
80     gApplication = "WRITER"
81     printlog( "" )
82     brc = hCreateBasicWorkFiles()
83     sFileWriter = hGetBasicWorkFile( "current" )
85     '///+<li>Create a calc document containing a macro, name it basic.ods</li>
86     gApplication = "CALC"
87     printlog( "" )
88     brc = hCreateBasicWorkFiles()
89     sFileCalc = hGetBasicWorkFile( "current" )
91     '///+<li>Reload the files we just created</li>
92     printlog( "" )
93     brc = hFileOpen( sFileWriter )
94     brc = hAllowMacroExecution()
95     if ( not brc ) then 
96         warnlog( "Missing Macro execution dialog. Please check the file/security settings" )
97     endif
98     brc = hFileOpen( sFileCalc )
99     brc = hAllowMacroExecution()
100     if ( not brc ) then 
101         warnlog( "Missing Macro execution dialog. Please check the file/security settings" )
102     endif
104     '///+<li>Go to Tools/Macro->Basic Macros</li>
105     printlog( "" )
106     brc = hOpenBasicOrganizerFromDoc()
108     '///+<li>Verify that the treelist contains five items</li>
109     hGetVisibleNodeNames( MakroAus , cNodeListA() )
110     
111     '///+<li>Verify the names of the docs: Untitled, basic(odt), basic(ods)</li>
112     printlog( "" )
113     iHitCount = hCountMatchesInList( cNodeListA() , DOC_NAME )
114     if ( iHitCount <> 2 ) then
115         warnlog( "There should be two documents with the name " & DOC_NAME & "listed." )
116     endif
117     
118     '///+<li>Click the <Manage...> button</li>
119     verwalten.click()
120     
121     '///+<li>Switch to the modules-Tab (should be open by default)</li>
122     printlog( "" )
123     brc = hSelectBasicObjectOrganizerTab( 1 )
124     ListAllDelete( cNodeListB() )
125     hGetVisibleNodeNames( ModulListe , cNodeListB() )
126     
127     '///+<li>Verify that we have two files with the same name in the list</li>
128     printlog( "" )
129     iHitCount = hCountMatchesInList( cNodeListA() , DOC_NAME )
130     if ( iHitCount <> 2 ) then
131         warnlog( "There should be two documents with the name " & DOC_NAME & "listed." )
132     endif
134     '///+<li>Switch to the Dialogs-Tab (the second one)</li>
135     '///+<li>Verify that the treelist contains five items</li>
136     printlog( "" )
137     brc = hSelectBasicObjectOrganizerTab( 2 )
138     ListAllDelete( cNodeListB() )
139     hGetVisibleNodeNames( ModuleList , cNodeListB() )
140     if ( listcount( cNodeListB() ) <> 5 ) then
141         warnlog( CFN & "#i49239# Incorrect object count in treelist" )
142         hListPrint( cNodeListB() , "List of objects found in treelist" )
143     endif     
144     
145     '///+<li>Verify that we have two files with the same name in the list</li>
146     printlog( "" )
147     iHitCount = hCountMatchesInList( cNodeListB() , DOC_NAME )
148     if ( iHitCount <> 2 ) then
149         warnlog( "There should be two documents with the name " & DOC_NAME & "listed." )
150     endif
152     '///+<li>Switch to Libraries Tab and look at the entries in the listbox</li>
153     '///+<li>Verify that we have two files with the same name in the list</li>
154     printlog( "" )
155     brc = hSelectBasicObjectOrganizerTab( 3 )
156     brc = hTestLibraryListBox( cNodeListA() )
157     
158     '///+<li>Close the Basic Object Organizer</li>
159     printlog( "" )
160     printlog( CFN & "Closing dialogs..." )
161     TabBibliotheken.cancel()
162     
163     '///+<li>Close the Macro Organizer</li>
164     Kontext "Makro"
165     Makro.cancel()
167     '///+<li>Close the two documents we worked with</li>
168     brc = hDestroyDocument()
169     brc = hDestroyDocument()
170     
171     '///+<li>Delete the two workfiles</li>
172     brc = hDeleteFile( sFileWriter )
173     brc = hDeleteFile( sFileCalc )
174     
175     '///+<li>Reset the Macro security level</li>
176     hSetMacroSecurityAPI( GC_MACRO_SECURITY_LEVEL_DEFAULT )
177     
178     '///+<li>Close the initial document</li>
179     hDestroyDocument()
180     
181     '///</ul>
183 endcase
185 '*******************************************************************************
187 function hTestLibraryListBox( cNodeList() ) as boolean
189     const CFN = "hTestLibraryListBox::"
191     '///<h3>Compare library-Listbox with Macro-Organizer listbox</h3>
192     '///<i>Part of: tBasicDocuments</i><br>
193     '///<u>Input</u>:
194     '///<ol>
195     '///+<li>List of items found in Basic Macro Organizer Treelist (MakroAus)</li>
196     '///</ol>
197     '///<u>Returns</u>:
198     '///<ol>
199     '///+<li>Errorstatus (boolean)</li>
200     '///<ul>
201     '///+<li>TRUE if all items are identical</li>
202     '///+<li>FALSE on any other error</li>
203     '///</ul>
204     '///</ol>
205     '///<u>Description</u>:
206     '///<ul>
207     
209     dim iEntry as integer
210     dim cEntry as string
211     dim brc as boolean
212     dim irc as integer
213     
214     brc = true
215     
216     '///+<li>Check that the number of objects is ok</li>
217     if ( bibliothek.getItemCount() <> IDOCS ) then
218         warnlog( CFN & "Incorrect number of items in listbox" )
219         printlog( CFN & "Expected: " & bibliothek.getItemCount() )
220         printlog( CFN & "Found...: " & listcount( cNodeList() ) )
221         brc = false
222     endif
223         
224     '///+<li>Compare objects 3 -5 (1+2 always differ)</li>
225     for iEntry = 3 to IDOCS
226     
227         Bibliothek.select( iEntry )
228         cEntry = Bibliothek.getSelText()
229         
230         irc = hCompareSubStrings( cNodeList( iEntry ) , cEntry )
231         if ( irc <> 1 ) then
232             warnlog( CFN & "Comparision failed" )
233             printlog( CFN & "Expected: " & cNodeList( iEntry ) & "<>" & cEntry )
234             brc = false
235         else
236             printlog( CFN & "Comparision succeeded:" & cEntry )
237         endif
238         
239     next iEntry
240     
241     '///</ul>
242     
243 end function