sync master with lastest vba changes
[ooovba.git] / testautomation / dbaccess / required / includes / MainApp.inc
blob599c767e0b7cc2575fbad0992711606fda2fd67c
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: MainApp.inc,v $
11 '* $Revision: 1.2 $
13 '* last change: $Author: obo $ $Date: 2008-07-22 12:34:32 $
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 : marc.neumann@sun.com
36 '* short description : test the Main Application Window
38 '************************************************************************
40 ' #1 tMainApp
41 ' #1 tMainMenuBar
42 ' #1 tDatabaseProperties    
43 ' #1 tTableView
44 ' #1 tPreview    
45 ' #1 tTableFilters
46 ' #1 tRegisterDatabaseDialog
47 ' #1 tDatabaseBeamer
49 '\***********************************************************************************
50 sub MainApp
52     printlog "------------------ MainApp.inc ---------------------"
53     
54     call tMainApp
55     call tMainMenuBar
56     call tDatabaseProperties    
57     call tTableView
58     call tPreview    
59     call tTableFilters
60     
61     call tRegisterDatabaseDialog
62     call tDatabaseBeamer
63     
64 end sub
65 '-------------------------------------------------------------------------
66 '-------------------------------------------------------------------------
67 '-------------------------------------------------------------------------
68 testcase tTableFilters
69     
70     hFileOpen( gOfficePath & "user/database/biblio.odb" )
71         
72     Kontext "Insight"
73     
74     Insight.MouseDown(50,50)
75     Insight.MouseUp(50,50)
76     sleep(1)
77     TableFilters
78     sleep(1)
79     Kontext "TablesFilter"
80     
81     TablesFilter.Cancel
82     sleep 1
83     
84     call hCloseDocument
85     
86     
87 endcase
88 '-------------------------------------------------------------------------
89 testcase tTableView
90    
91     hFileOpen( gOfficePath & "user/database/biblio.odb" )
92         
93     Kontext "Insight"
95     Insight.MouseDown(50,50)
96     Insight.MouseUp(50,50)
97         
98     if not InsightSwapIconView.exists(1) then        
99         warnlog "InsightSwapIconView doesn't exists"
100         goto endsub
101     end if
102         
103     '/// display Tables View
104     printlog "display Tables View"
105     ViewTables
106     Kontext "ContainerView"
107     if not TableTree.exists(1) then        
108         warnlog "TableTree doesn't appear"
109         goto endsub
110     end if
111     
112     TableTree.TypeKeys("<HOME>")
113     TableTree.TypeKeys("<UP>")
114     
115     sleep(5)
116     
117     call hCloseDocument
118     
119 endcase
120 '-------------------------------------------------------------------------
121 testcase tMainApp
122     
123     dim iCount as integer ' the numbers of the items in the creation list.
124     
125     hFileOpen( gOfficePath & "user/database/biblio.odb" )
127     Kontext "Insight"
128     
129     Insight.MouseDown(50,50)
130     Insight.MouseUp(50,50)
131     
132     Kontext "Insight"
133     if Insight.exists() then
134         printlog "Insight appear"
135     else
136         warnlog "Insight doesn't appear"
137         goto endsub
138     end if
139     
140     if InsightSwapView.exists() then
141         printlog "InsightSwapView appear"        
142     else
143         warnlog "InsightSwapView doesn't appear"
144         goto endsub
145     end if
146         
147     '/// display Tables View
148     printlog "display Tables View"
149     ViewTables    
150     if InsightTablesView.exists(1) then
151         printlog "InsightTablesView appear"        
152     else
153         warnlog "InsightTablesView doesn't appear"
154         goto endsub
155     end if
156     
157     '/// count the items in the CreationList
158     printlog "count the items in the CreationList"
159     iCount = CreationList.getItemCount() 
160     if ( iCount <> 2) then
161         warnlog "There are not 2 items in the CreationList. There are " + iCount + " items."
162     end if
163         
164     '/// display Queries View
165     printlog "display Queries View"
166     ViewQueries    
167     if InsightQueriesView.exists(1) then
168         printlog "InsightQueriesView appear"        
169     else
170         warnlog "InsightQueriesView doesn't appear"
171         goto endsub
172     end if
173     
174     '/// count the items in the CreationList
175     printlog "count the items in the CreationList"
176     iCount = CreationList.getItemCount() 
177     if ( iCount <> 3) then
178         warnlog "There are not 3 items in the CreationList. There are " + iCount + " items."
179     end if
180     
181     '/// display Forms View
182     printlog "display Forms View"
183         ViewForms
184     Kontext "ContainerView"    
185     if FormTree.exists(1) then
186         printlog "InsightFormsView appear"        
187     else
188         warnlog "InsightFormsView doesn't appear"
189         goto endsub
190     end if
191     Kontext "Insight"
192     '/// count the items in the CreationList
193     printlog "count the items in the CreationList"
194     iCount = CreationList.getItemCount() 
195     if ( iCount <> 2) then
196         warnlog "There are not 2 items in the CreationList. There are " + iCount + " items."
197     end if
198     
199     '/// display Reports View
200     printlog "display Reports View"
201     ViewReports    
202     if InsightReportsView.exists(1) then
203         printlog "InsightReportsView appear"        
204     else
205         warnlog "InsightReportsView doesn't appear"
206         goto endsub
207     end if
208     
209     '/// count the items in the CreationList
210     printlog "count the items in the CreationList"
211     Dim iCheckCount as Integer
212     iCount = CreationList.getItemCount()
213     if ( hIsExtensionAlreadyInstalled("sun-report-builder.oxt")) then
214         iCheckCount = 2
215     else    
216         iCheckCount = 1
217     endif
218     if ( iCount <> iCheckCount ) then
219         warnlog "There are not " + iCheckCount + " items in the CreationList. There are " + iCount + " items."
220     end if
221     
222     call hCloseDocument
223     
224 endcase
225 '-------------------------------------------------------------------------
226 testcase tPreview
228     hFileOpen( gOfficePath & "user/database/biblio.odb" )
230     Kontext "Insight"
231     
232     Insight.MouseDown(50,50)
233     Insight.MouseUp(50,50)    
234     
235     ViewTables
236     
237     sleep(1)
238     
239     Kontext "ContainerView"        
240         TableTree.select 1
241     
242     Kontext "Insight"
243         Insight.UseMenu
244         hMenuSelectNr(3)
245         hMenuSelectNr(4)
246         hMenuSelectNr(3)
247         
248     sleep(5)
249     
250     
251     Kontext "DatabaseBeamer"
252         if ( not DatabaseBeamer.exists(1) ) then
253             warnlog "the preview doesn't display the table"
254         else
255             printlog "preview displayed"
256         endif    
257         
258     Kontext "Insight"
259         Insight.UseMenu
260         hMenuSelectNr(3)
261         hMenuSelectNr(4)
262         hMenuSelectNr(1)
263     
264     sleep(5)    
265         
266     Kontext "DatabaseBeamer"
267         if ( DatabaseBeamer.exists(1) ) then
268             warnlog "the preview is still there"
269         else
270             printlog "preview turn off"
271         endif        
272         
273     sleep(1)    
274         
275     call fCloseDatabase
276     
277 endcase
278 '-------------------------------------------------------------------------
279 testcase tMainMenuBar
281     dim iCount as integer ' the numbers of the items in the menu.    
282     
283     hFileOpen( gOfficePath & "user/database/biblio.odb" )
284     
285     Kontext "Insight"
286         Insight.UseMenu        
287         '/// check if there are 11 items in the file menu.
288         printlog "check if there are 11 items in the file menu."
289         '/// + there different count related to the file pick list.                
290         printlog "+ there different count related to the file pick list."        
291         hMenuSelectNr(1) ' the file menu        
292         iCount = getMenuItemCount()        
293         if ( lcase( gPlatform ) = "osx" ) then
294             if ( iCount <> 10 ) then
295                 warnlog( "File menu: 10 items expected, found " & iCount )
296             endif
297         else
298             if (iCount <> 11 ) then
299                warnlog "There should be 11 items in the file menu but there are " + iCount + " items."
300             end if
301         endif
303         '/// check if there are 12 items in the FILE/NEW menu.
304         printlog "check if there are 12 items in the FILE/NEW menu."
305         hMenuSelectNr(1) ' FILE/NEW menu        
306         iCount = hMenuItemGetCount()        
307         if (iCount <> 12) then
308             warnlog "There should 12 items in the FILE/NEW menu but there are " + iCount + " items."
309         end if        
310         call hMenuClose() ' close the FILE menu
311         
312         '/// check the FILE/AUTOPILOTS
313         printlog "check the FILE/AUTOPILOTS"
314         Insight.UseMenu        
315         hMenuSelectNr(1) ' the file menu
316         hMenuSelectNr(4) ' the autopilots menu        
317         iCount = hMenuItemGetCount()
318         if (iCount <> 8) then
319             warnlog "There should 8 items in the FILE/AUTOPILOTS menu but there are " + iCount + " items."
320         endif
321         call hMenuClose()
322         
323         '/// check if there are 15 items in the edit menu.
324         printlog "check if there are 15 items in the edit menu."
325         Insight.UseMenu 
326         hMenuSelectNr(2)        
327         iCount = hMenuItemGetCount()
328         if (iCount <> 15) then
329             warnlog "There should 15 items in the edit menu but there are " + iCount + " items."
330         end if
331         call hMenuClose()
333         '/// check if there are 6 items in the view menu.
334         printlog "check if there are 6 items in the view menu."
335         Insight.UseMenu 
336         hMenuSelectNr(3)        
337         iCount = hMenuItemGetCount()
338         if (iCount <> 6) then
339             warnlog "There should 6 items in the view menu but there are " + iCount + " items."
340         end if
341         call hMenuClose()
343         '/// check the VIEW/DATABASE OBJECTS
344         printlog "check the VIEW/DATABASE OBJECTS"
345         Insight.UseMenu
346         hMenuSelectNr(3)
347         hMenuSelectNr(1)                
348         iCount = hMenuItemGetCount()        
349         if (iCount <> 4) then
350             warnlog "There should 4 items in the VIEW/DATABASE menu but there are " + iCount + " items."
351         end if        
352         call hMenuClose()
354         '/// check the VIEW/SORT OBJECTS
355         printlog "check the VIEW/SORT OBJECTS"
356         Insight.UseMenu
357         hMenuSelectNr(3)
358         hMenuSelectNr(5)                
359         iCount = hMenuItemGetCount()        
360         if (iCount <> 2) then
361             warnlog "There should 2 items in the VIEW/SORT menu but there are " + iCount + " items."
362         end if        
363         call hMenuClose()
365         '/// check the VIEW/PREVIEW
366         printlog "check the VIEW/PREVIEW"
367         Insight.UseMenu
368         hMenuSelectNr(3)
369         hMenuSelectNr(4 )                
370         iCount = hMenuItemGetCount()        
371         if (iCount <> 3) then
372             warnlog "There should 3 items in the VIEW/PREVIEW menu but there are " + iCount + " items."
373         end if        
374         call hMenuClose()
375         
376         '/// check if there are 8 items in the insert menu.
377         printlog "check if there are 8 items in the insert menu."
378         Insight.UseMenu 
379         hMenuSelectNr(4)       
380         iCount = hMenuItemGetCount()
381         if (iCount <> 8) then
382             warnlog "There should 8 items in the insert menu but there are " + iCount + " items."
383         end if
384         call hMenuClose()
386         '/// check if there are 10 items in the tools menu.
387         printlog "check if there are 10 items in the tools menu."        
388         Insight.UseMenu 
389         hMenuSelectNr(5)        
390         iCount = hMenuItemGetCount()
391         if ( lcase( gPlatform ) = "osx" ) then
392             if ( iCount <> 9 ) then
393                 warnlog( "Tools menu: 9 items expected, found " & iCount ) 
394             endif
395         else
396             if (iCount <> 10) then
397                 warnlog "There should 10 items in the tools menu but there are " + iCount + " items."
398             end if
399         endif
400         call hMenuClose()
401         
402         '/// check if there are 4 items in the TOOLS/MACRO menu.
403         printlog "check if there are 4 items in the TOOLS/MACRO menu."        
404         Insight.UseMenu 
405         hMenuSelectNr(5)
406         hMenuSelectNr(6)        
407         iCount = hMenuItemGetCount()
408         if (iCount <> 4) then
409             warnlog "There should 4 items in the TOOLS/MACRO menu but there are " + iCount + " items."
410         end if
411         call hMenuClose()
412         
413     call hCloseDocument
414         
415 endcase
416 '-------------------------------------------------------------------------
417 testcase tDatabaseProperties 
418     
419     dim sValue as string
420     
421     hFileOpen( gOfficePath & "user/database/biblio.odb" )
422     
423     Kontext "Insight"        
424         Insight.MouseDown(50,50)
425         Insight.MouseUp(50,50)
426     
427     Kontext "Insight"    
428         Insight.UseMenu    
429         hMenuSelectNr(2)
430         hMenuSelectNr(15)
431         hMenuSelectNr(1)
432     sleep(1)
433     Kontext "DatabaseProperties"
434         call DialogTest(DatabaseProperties)
435         ' TabControl.SetPage TabGeneral
436     ' 
437     ' '/// check the general tabpage
438     ' printlog "check the general tabpage"     
439     ' Kontext "TabGeneral"
440     ' 'TODO: check real names. 
441         ' sValue = SourceName.getText()
442         ' if ( strComp(sValue,"TT_Biblio") <> 0 ) then
443             ' warnlog "The datasource name is not right. it should be 'TT_Biblio' but it is " + sValue
444         ' end if
445         ' sValue = DataBaseType.getSelText()
446         ' if ( strComp(sValue,"dBASE") <> 0 ) then
447             ' warnlog "The datasource type is not right. it should be 'dBase' but it is " + sValue
448         ' end if
449         ' 
450         ' Advanced.Click
451     ' Kontext "Advanced"
452         ' Advanced.Close
453         
454 ' tabconnection in this script == tabgeneral in the office ( historic reasons )        
455     '/// check the connection tabpage
456     printlog "check the connection tabpage"
457     Kontext "DatabaseProperties"             
458         TabControl.SetPage TabConnection
459     
460     Kontext "TabConnection"
461         if NOT TabConnection.exists(1) then
462             warnlog "Tabpage doesn't exists."
463         end if
464         '/// check if the text in the path is correct
465         'printlog "check if the text in the path is correct"
466         sValue = dBasePath.getText()
467         'if ( strComp(sValue,"sdbc:dbase:$(userurl)/database/biblio") <> 0 ) then
468         '    warnlog "the path is not correct. It is " + sValue
469         'end if
470         '/// click the select path button
471         printlog "click the select path button"        
472         SelectPath.Click        
473     
474     Kontext "GeneralFileDialog"
475         '/// cancel the open dialog
476         printlog "cancel the open dialog"
477         GeneralFileDialog.Cancel
478     
479     Kontext "TabConnection"
480         '/// click the test connection button
481         printlog "click the test connection button"
482         TestConnection.Click
483     
484     Kontext "Active"
485         '/// close the messagesdialog
486         printlog "close the messagesdialog"
487         Active.OK
488     
489     Kontext "DatabaseProperties"             
490         '/// switch to the additional Settings
491         printlog "switch to the additional Settings"
492         TabControl.SetPage TabdBase
493     
494     Kontext "TabdBase"        
495         '/// open the index dialog
496         printlog "open the index dialog"
497         Indexes.Click
498     
499     Kontext "Indexes"
500         '/// close the index dialog with cancel
501         Indexes.Cancel
502     
503     Kontext "DatabaseProperties"
504         '/// Cancel the datasource admin dialog
505         printlog "Cancel the datasource admin dialog"
506         DatabaseProperties.Cancel
507         
508     call hCloseDocument()
509     
510 endcase
511 '--------------------------------------------------------------------
512 testcase tRegisterDatabaseDialog
513     
514     dim i as integer
515     '/// open new document
516     printlog "open new document"
517     call hNewDocument
518     '/// open TOOLS / OPTIONS
519     printlog "open TOOLS / OPTIONS"
520     ToolsOptions
521     '/// open Data Source / DATABASES
522     printlog "open Data Source / DATABASES"    
523     call hToolsOptions ( "Datasources", "Databases" )
524        
525     Kontext "TabRegisteredDatabase"
526         call DialogTest( TabRegisteredDatabase )    
527         if (RegisteredDatabases.getItemCount() = 0 ) then
528             warnlog "there are no registered databases. There should be at least a  registered 'Bibliography' database."
529             Kontext "OptionenDlg"
530                 OptionenDlg.Cancel
531             call hCloseDocument
532             goto endsub
533         endif            
534         RegisteredDatabases.select 1
535         '/// check if the Bibliography is registered
536         printlog "check if the Bibliography is registered"
537         if RegisteredDatabases.getSeltext() <> "Bibliography" then
538             warnlog "the bibliography database is not registered"
539         else
540             printlog "database bibliography is registered"
541         endif
542         '/// click in the delete button but don't delete the database
543         printlog "click in the delete button but don't delete the database"
544         DeleteBtn.Click 
545         Kontext "Active"
546             Active.no
547     '/// click on the new button
548     printlog "click on the new button"            
549     Kontext "TabRegisteredDatabase"
550         NewBtn.Click
551     sleep(1)
552     '/// cancel the new dialog
553     printlog "cancel the new dialog"
554     Kontext "CreateDatabaseLink"
555         call DialogTest( CreateDatabaseLink )
556         CreateDatabaseLink.Cancel
558     '/// click on the edit button
559     printlog "click on the edit button"            
560     Kontext "TabRegisteredDatabase"
561         EditBtn.Click
562     sleep(1)
563     '/// cancel the edit dialog
564     Kontext "CreateDatabaseLink"
565         call DialogTest( CreateDatabaseLink )
566         CreateDatabaseLink.Cancel        
567         
568     sleep(1)
569     '/// close TOOLS / OPTIONS with cancel
570     printlog "close TOOLS / OPTIONS with cancel"
571     Kontext "OptionenDlg"
572         OptionenDlg.Cancel
573         
574     '/// close document
575     printlog "close document"
576         
577     call hCloseDocument        
578         
579 endcase
580 '--------------------------------------------------------------------
581 testcase tDatabaseBeamer
582     
583     printlog "open new document"    
584     call hNewDocument
585     
586     printlog "open the database beamer"    
587     ViewCurrentDatabase
588     WaitSlot(1)
589     
590     printlog "select database Bibliography"
591     Kontext "DatabaseSelection"
592     DatabaseSelection.select 1
593     
594     printlog "open the selected database"
595     DatabaseSelection.OpenContextmenu    
596     hMenuSelectNr(1)
597     WaitSlot(1)
598     
599     Kontext "Insight"
600     If Insight.exists(10) then
601         printlog "database open -> OK"
602         printlog "close the open database"
603         call fCloseDatabase
604     else
605         warnlog "database mot open"
606     endif
607     
608     printlog "close the open document"        
609     call hCloseDocument        
610         
611 endcase
612 '-------------------------------------------------------------------------
613 '-------------------------------------------------------------------------
614 '-------------------------------------------------------------------------
615 function getMenuItemCount as Integer
616 'use this function becasue this doesn't count the pick list
617     Dim i, j, Ende, nID as Integer
618     Sleep 2
619     j=0
620     for i=1 to MenuGetItemCount
621         if NOT MenuIsSeperator ( i ) then            
622             dim s as String 
623             s = Mid(MenuGetItemText( MenuGetItemID(i)),3,1)
624             'printlog "s = " + s
625             'printlog "MenuGetItemText( MenuGetItemID(i)) = " + MenuGetItemText( MenuGetItemID(i))
626             if s <> ":" then             
627                 j=j+1
628             endif
629         endif
630     next i
631     getMenuItemCount = j
632 end function