sync master with lastest vba changes
[ooovba.git] / testautomation / dbaccess / required / includes / Query.inc
blob37367e6e371d88caee2d8886f1229a9813e5e719
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: Query.inc,v $
11 '* $Revision: 1.2 $
13 '* last change: $Author: obo $ $Date: 2008-07-22 12:34:44 $
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 Query Application Window
38 '************************************************************************
40 ' #1 tMainMenuBar
41 ' #1 tExecute
42 ' #1 tClearQuery
43 ' #1 tAddTable
44 ' #1 tSwitchDesign
45 ' #1 tNativeSQL
46 ' #1 tFunctions
47 ' #1 tTableName
48 ' #1 tAliasName
49 ' #1 tDistinctvalues
50 ' #1 tEdit    
51 ' #1 tCut
52 ' #1 tCopy    
53 ' #1 tPaste
54 ' #1 tUndo    
56 '\***********************************************************************************
57 sub Query
59     printlog "------------------ Query.inc ---------------------"
60     
61     printlog "-------------------- main menu -------------------------"
62     call tMainMenuBar
63     
64     printlog "--------------------- toolbar --------------------------"
65     call tExecute
66     call tClearQuery
67     call tAddTable
68     call tSwitchDesign
69     call tNativeSQL
70     call tFunctions
71     call tTableName
72     call tAliasName
73     call tDistinctvalues
74     call tEdit    
75     call tCut
76     call tCopy    
77     call tPaste
78     call tUndo
79     
80 end sub
81 '-------------------------------------------------------------------------
82 testcase tClearQuery
83    
84     dim sTableName as String
85     
86     initQueryDesign
87     
88     Kontext "AddTables"
89         if not AddTables.Exists(5) then
90             warnlog "The Add Table dialog doesn't appear."
91             goto endsub
92         end if
93         sTableName = TableName.GetSelText
94         printlog "- Add 'biblio' table to query design"
95         if sTableName <> "biblio" then
96             warnlog "It should be the 'biblio'-database table but it is the '" + sTableName  + "' database table?!"
97             goto endsub
98         else
99             AddTable.Click
100             sleep(2)
101         end if
102         Kontext "Toolbar"
103             printlog "- Deleting query"
104             ClearQuery.Click
105             sleep(5)
106         Kontext "Toolbar"
107             if ClearQuery.IsEnabled = TRUE then
108                 warnlog "'Delete Query' button should be disabled after using it!"
109             end if
110         
111         call fCloseQueryDesign
112         call fCloseDatabase
113         
114 endcase
115 '-------------------------------------------------------------------------
116 testcase tNativeSQL
118     dim sTableName as String
119     
120     initQueryDesign
121     
122     Kontext "AddTables"
123         '/// close the add table dialog
124         printlog "close the add table dialog"        
125         if AddTables.Exists(5) then
126             CloseDlg.Click
127         end if    
128         '/// switch to the SQL View and turn on the native SQL mode
129         printlog "switch to the SQL View and turn on the native SQL mode"    
130         Kontext "Toolbar"
131             sleep(1)
132             DesignView.Click
133             sleep(1)
134         Kontext "Sqlobjectbar"
135             NativeSQL.Click
136             '/// check if the design view icon is disabled
137         Kontext "Toolbar"        
138             if DesignView.isEnabled then
139                 warnlog "The designview icon is enabled, but in Native SQL it mustn't"
140             end if
141             sleep(2)       
143         Kontext "Sqlobjectbar"
144             NativeSQL.Click
145             
146         Kontext "Toolbar"            
147             DesignView.Click
148                         
149         call fCloseQueryDesign
150         call fCloseDatabase
152 endcase
153 '-------------------------------------------------------------------------
154 testcase tSwitchDesign
156     dim sTableName as String
157     
158     call initQueryDesign
159     
160     Kontext "AddTables"
161         if AddTables.Exists(5) then
162             sTableName = TableName.GetSelText
163             printlog "- Add 'biblio' table to query design"
164             if sTableName <> "biblio" then
165                 warnlog "It should be the 'biblio'-database table but it is the '" & SelEntry  & "' database table?!"
166                 goto endsub
167             else
168                 AddTable.Click
169                 sleep(2)
170             end if
171             Kontext "Toolbar"
172                 printlog "- Design view clicked"
173                 DesignView.Click
174                 sleep(5)
175             Kontext "QueryEditWindow"
176                 if QueryEditWindow.IsVisible = FALSE then
177                     warnlog "The design window has not been disabled by clicking 'Design view' button!"
178                 else
179                     Kontext "Toolbar"
180                     printlog "- Design view cliecked to switch back"
181                     DesignView.Click
182                     Kontext "QueryDesignTable"
183                     if QueryDesignTable.IsVisible = FALSE then
184                         warnlog "Switching back to 'design view' failed!"
185                     end if
186                 end if
187         end if
188         
189         call fCloseQueryDesign
190         call fCloseDatabase
191         
192 endcase
193 '-------------------------------------------------------------------------
194 testcase tTableName
196     call initQueryDesign
197     
198     Kontext "AddTables"
199         if AddTables.Exists(5) then
200             TableName.Select 1
201             AddTable.Click
202         else
203                 warnlog "AddTables doesn't exists"
204         end if
205     sleep(1)
206     Kontext "QueryDesignCriterion"
207         QueryDesignCriterion.TypeKeys "<MOD1 PAGEUP>" , true
208         sleep(1)
209         QueryDesignCriterion.TypeKeys "Type" , true        
210         sleep(1)
211         QueryDesignCriterion.TypeKeys "<DOWN>" , 6 , true
212         sleep(1)
213         QueryDesignCriterion.TypeKeys "test" , true        
214         sleep(1)
215         QueryDesignCriterion.TypeKeys "<DOWN>" , true
216         sleep(1)        
217     '/// turn off the table name field
218     printlog "turn off the table name field"        
219     Kontext "Designobjectbar"    
220         if Designobjectbar.exists(1) then
221             DBViewTableNames.Click
222             sleep(1)
223         else
224             warnlog "The Designobjectbar toolbar isn't visible."
225         end if    
226     '/// check if the table field still there
227     printlog "check if the table field still there" 
228     sleep(1)       
229     Kontext "QueryDesignCriterion"
230         QueryDesignCriterion.TypeKeys "<MOD1 PAGEUP>" , true
231         sleep(1)        
232         QueryDesignCriterion.TypeKeys "<DOWN>" , 6 , true        
233         sleep(1)        
234         QueryDesignCriterion.TypeKeys "<HOME>" , true        
235         sleep(1)
236         QueryDesignCriterion.TypeKeys "<SHIFT END>" , true        
237         sleep(1)
238         QueryDesignCriterion.TypeKeys "<MOD1 C>" , true
239         sleep(1)            
240         if getClipboard = "'test'" then
241             warnlog "TableName still there but I have switch them off"
242         end if
244     call fCloseQueryDesign
245     call fCloseDatabase
247 endcase
248 '-------------------------------------------------------------------------
249 '-------------------------------------------------------------------------
250 testcase tExecute
251    
252     dim sTableName as String
254     call initQueryDesign
255     
256     Kontext "AddTables"
257         if AddTables.Exists(5) then
258             '/// Adding biblio table to query design.
259             printlog "Adding biblio table to query design."
260             sTableName = TableName.GetSelText
261             printlog "- Add 'biblio' table to query design"
262             if sTableName <> "biblio" then
263                 warnlog "It should be the 'biblio'-database table but it is the '" + sTableName  + "' database table?!"
264                 goto endsub
265             else
266                 AddTable.Click
267                 sleep(2)
268             end if
269         end if
270     Kontext "QueryDesignTable"
271         printlog "- Changing window"
272         '/// Switching with <b>&lt;F6&gt;</b> to <i>criterion</i> window (<a href="http://so-web4.germany.sun.com/eis/servlet/qa.FeatureEditServlet?Id=1168">feature 1168</a>)  .
273         QueryDesignTable.TypeKeys "<F6>" , TRUE
274     Kontext "QueryDesignCriterion"
275         printlog "- Selecting 'field' as criteria"
276         '/// Selecting field as criteria.
277         sleep( 1 )
278         Field.Select(2)
279         sleep(1)
280         '/// Typing <b>&lt;TAB&gt;</b> to switch to the <i>tool bar</i>.
281         QueryDesignCriterion.TypeKeys "<TAB>" , TRUE
282         sleep(1)
283     Kontext "Toolbar"
284         printlog "- Executing query"
285         '/// Ececuting query. 
286         ExecuteBtn.Click
287         sleep(5)
288     Kontext "TableView"
289         '/// Verifying that <i>database beamer</i> (=result) is available.
290         if NOT TableView.Exists(3) then
291             warnlog "Execution of a query failed!"
292         end if
293     
294     call fCloseQueryDesign
295     call fCloseDatabase
296     
297 endcase
298 '-------------------------------------------------------------------------
299 testcase tAddTable
300    
301     dim sTableName as String
302     
303     call initQueryDesign
304     
305     '/// close the add table dialog
306     printlog "close the add table dialog"
307     Kontext "AddTables"
308     if AddTables.Exists(5) then
309         CloseDlg.Click
310     end if    
311     '/// click on the add table icon in the toolbar of the query design
312     printlog "click on the add table icon in the toolbar of the query design"
313     Kontext "Designobjectbar"
314         sleep(1)
315         if Designobjectbar.exists(1) then
316             AddTables.Click
317             sleep(1)
318         else
319             warnlog "The Designobjectbar toolbar isn't visible."
320         end if
321         '/// check if the dialog opens
322         printlog "check if the dialog opens"
323     Kontext "AddTables"
324     if AddTables.Exists(5) then
325         CloseDlg.Click
326     else
327         warnlog "The AddTable dialog doesn't open" 
328     end if        
329     
330     call fCloseQueryDesign
331     call fCloseDatabase
332     
333 endcase
334 '-------------------------------------------------------------------------
335 testcase tFunctions
337     initQueryDesign
338     
339     Kontext "AddTables"
340         if AddTables.Exists(5) then
341             TableName.Select 1
342             AddTable.Click
343         end if
344         sleep(1)
345     Kontext "QueryDesignCriterion"
346         QueryDesignCriterion.TypeKeys "<MOD1 PAGEUP>" , true
347         sleep(1)
348         QueryDesignCriterion.TypeKeys "Type" , true        
349         sleep(1)
350         QueryDesignCriterion.TypeKeys "<DOWN>" , 6 , true
351         sleep(1)
352         QueryDesignCriterion.TypeKeys "test" , true        
353         sleep(1)
354         QueryDesignCriterion.TypeKeys "<DOWN>" , true
355         sleep(1)        
356         '/// turn off the function field
357         printlog "turn off the function field"    
358     Kontext "Designobjectbar"
359         if Designobjectbar.exists(1) then
360             DBViewFunctions.Click
361             sleep(1)
362         else
363             warnlog "The Designobjectbar toolbar isn't visible."
364         end if
365         
366         sleep(1)
367         '/// check if the function field still there
368         printlog "check if the function field still there" 
369         sleep(1)
370     Kontext "QueryDesignCriterion"
371         QueryDesignCriterion.TypeKeys "<MOD1 PAGEUP>" , true
372         sleep(1)        
373         QueryDesignCriterion.TypeKeys "<DOWN>" , 6 , true        
374         sleep(1)        
375         QueryDesignCriterion.TypeKeys "<HOME>" , true        
376         sleep(1)
377         QueryDesignCriterion.TypeKeys "<SHIFT END>" , true        
378         sleep(1)
379         QueryDesignCriterion.TypeKeys "<MOD1 C>" , true
380         sleep(1)            
381         if getClipboard = "'test'" then
382             warnlog "Functions still there but I have switch them off"
383         end if        
385     call fCloseQueryDesign
386     call fCloseDatabase        
387         
388 endcase
389 '-------------------------------------------------------------------------
390 testcase tAliasName
392     initQueryDesign
393     
394     Kontext "AddTables"
395         if AddTables.Exists(5) then
396             CloseDlg.Click
397         end if
398     '/// insert any aliasname into the alias field
399     printlog "insert any aliasname into the alias field"
400     sleep(1)
401     Kontext "QueryDesignCriterion"
402         QueryDesignCriterion.TypeKeys "<MOD1 PAGEUP>" , true
403         sleep(1)
404         QueryDesignCriterion.TypeKeys "<DOWN>" , true
405         sleep(1)
406         QueryDesignCriterion.TypeKeys "test" , true
407         sleep(1)
408     '/// turn off the alias field
409     printlog "turn off the alias field"
410     Kontext "Designobjectbar"
411         if Designobjectbar.exists(1) then
412             DBViewAliases.Click
413             sleep(1)
414         else
415             warnlog "The Designobjectbar toolbar isn't visible."
416         end if
417         sleep(1)
418     '/// check if the alias field still there
419     printlog "check if the alias field still there"
420     sleep(1)
421     Kontext "QueryDesignCriterion"
422         QueryDesignCriterion.TypeKeys "<MOD1 PAGEUP>" , true
423         sleep(1)
424         QueryDesignCriterion.TypeKeys "<DOWN>" , true
425         sleep(1)
426         QueryDesignCriterion.TypeKeys "<HOME>" , true
427         sleep(1)
428         QueryDesignCriterion.TypeKeys "<SHIFT END>" , true
429         sleep(1)
430         QueryDesignCriterion.TypeKeys "<MOD1 C>" , true
431         sleep(1)            
432         if getClipboard = "test" then
433             warnlog "Alias still there but I have switch them off"
434         end if        
435     
436     call fCloseQueryDesign
437     call fCloseDatabase 
438 endcase
439 '-------------------------------------------------------------------------
440 testcase tDistinctValues
442     initQueryDesign
443     
444     Kontext "AddTables"
445         if AddTables.Exists(5) then
446             CloseDlg.Click
447         end if
448     '/// turn on the distinct vales
449     printlog "turn on the distinct vales"    
450     Kontext "Designobjectbar"
451         sleep(1)
452         if Designobjectbar.exists(1) then
453             DBDistinctValues.Click
454             sleep(1)          
455             DBDistinctValues.Click
456             sleep(1)
457         else
458             warnlog "The Designobjectbar toolbar isn't visible."
459         end if
460     call fCloseQueryDesign
461     call fCloseDatabase
462     
463 endcase
464 '-------------------------------------------------------------------------
465 testcase tEdit
467     initQueryDesign    
469     Kontext "AddTables"
470         if AddTables.Exists(5) then
471             CloseDlg.Click
472         end if
473     '/// turn off the edit mode
474     printlog "turn off the edit mode"        
475     Kontext "Toolbar"
476         sleep(1)        
477         Edit.Click
478         sleep(1)
479     Kontext "Designobjectbar"
480         if Designobjectbar.exists(1) then
481             if DBDistinctValues.isEnabled then warnlog "DistincValues icon is enable, but when Edit is turn off, it mustn't."
482             if AddTables.isEnabled then warnlog "AddTables icon is enable, but when Edit is turn off, it mustn't."
483         else
484             warnlog "The Designobjectbar toolbar isn't visible."
485         end if
486         
487     Kontext "Toolbar"        
488         if ClearQuery.isEnabled  then warnlog "ClearQuery icon is enable, but when Edit is turn off, it mustn't."
489     
490     call fCloseQueryDesign
491     call fCloseDatabase
492     
493 endcase
494 '-------------------------------------------------------------------------
495 testcase tCut
497     initQueryDesign
498     
499     '/// add any table ans select any field
500     printlog "add any table ans select any field"
501     Kontext "AddTables"
502         if AddTables.Exists(5) then
503             TableName.Select 1
504             AddTable.Click
505         end if
506     Kontext "Toolbar"
507         sleep(1)
508         if Cut.isenabled then warnlog "The cut icon is enabled but it is nothing selected."
509     '/// select the fieldname and check if the cut button works
510     printlog "select the fieldname and check if the cut button works"
511     sleep(1)
512     Kontext "QueryDesignCriterion"
513         QueryDesignCriterion.TypeKeys "<MOD1 PAGEUP>" , true
514         sleep(1)
515         QueryDesignCriterion.TypeKeys "Type" , true        
516         sleep(1)
517         QueryDesignCriterion.TypeKeys "<DOWN>" , true
518         sleep(1)
519         QueryDesignCriterion.TypeKeys "<UP>" , true        
520         sleep(1)
521         QueryDesignCriterion.TypeKeys "<SHIFT END>" , true
522         sleep(1)
523                 
524     Kontext "Toolbar"
525         if Cut.isenabled then
526             Cut.Click
527         else
528             warnlog "The Cut icon is not enabled but I have select something"
529             DatabaseClose
530             Kontext "Messagebox"
531                 if Messagebox.Exists(3) then
532                     Messagebox.No
533                 else
534                     warnlog "There should be a message box because the query has been changed!"
535                 end if
536             sleep(1)
537             call hCloseDocument
538             goto endsub
539         endif    
540             
541         sleep(1)
542         '/// check if the text is in the clipboard
543         printlog "check if the text is in the clipboard"                
544         if getClipboard <> "Type" then
545             warnlog "The Cut button doesn't work"
546         end if        
547        
548     call fCloseQueryDesign
549     call fCloseDatabase   
550         
551 endcase
552 '-------------------------------------------------------------------------
553 testcase tCopy
555     initQueryDesign
556     
557     '/// add any table ans select any field
558     printlog "add any table ans select any field"
559     Kontext "AddTables"
560         if AddTables.Exists(5) then
561             TableName.Select 1
562             AddTable.Click
563         end if
564     Kontext "Toolbar"
565         sleep(1)
566         if Copy.isenabled then warnlog "The copy icon is enabled but it is nothing selected.Bug 107845"
567     '/// select the fieldname and check if the copy button works
568     printlog "select the fieldname and check if the copy button works"
569     sleep(1)
570     Kontext "QueryDesignCriterion"
571         QueryDesignCriterion.TypeKeys "<MOD1 PAGEUP>" , true
572         sleep(1)
573         QueryDesignCriterion.TypeKeys "Type" , true        
574         sleep(1)
575         QueryDesignCriterion.TypeKeys "<DOWN>" , true
576         sleep(1)
577         QueryDesignCriterion.TypeKeys "<UP>" , true        
578         sleep(1)
579         QueryDesignCriterion.TypeKeys "<SHIFT END>" , true
580         sleep(1)
581                 
582     Kontext "Toolbar"
583         if Copy.isenabled then
584             Copy.Click
585         else
586             warnlog "The Copy icon is not enabled but I have select something"
587             DatabaseClose
588             Kontext "Messagebox"
589                 if Messagebox.Exists(3) then
590                     Messagebox.No
591                 else
592                     warnlog "There should be a message box because the query has been changed!"
593                 end if
594             sleep(1)
595             call hCloseDocument
596             goto endsub
597         endif    
598             
599         sleep(1)
600         '/// check if the text is in the clipboard
601         printlog "check if the text is in the clipboard"                
602         if getClipboard <> "Type" then
603             warnlog "The Cut button doesn't work"
604         end if        
605         
606     call fCloseQueryDesign
607     call fCloseDatabase   
608         
609 endcase
610 '-------------------------------------------------------------------------
611 testcase tPaste
613     initQueryDesign    
614     
615     '/// add any table and select any field
616     printlog "add any table and select any field"
617     Kontext "AddTables"
618         if AddTables.Exists(5) then
619             TableName.Select 1
620             AddTable.Click            
621         else
622             warnlog "The AddTable dialog doesn't appear."
623             printlog "TEST STOPPED"
624             call fCloseQueryDesign
625             call fCloseDatabase
626             goto endsub
627         end if    
628     '/// select the fieldname and check if the paste button works
629     printlog "select the fieldname and check if the paste button works"
630     sleep(1)    
631     Kontext "QueryDesignCriterion"
632         QueryDesignCriterion.TypeKeys "<MOD1 PAGEUP>" , true
633         sleep(1)
634         QueryDesignCriterion.TypeKeys "Type" , true        
635         sleep(1)
636         QueryDesignCriterion.TypeKeys "<DOWN>" , true
637         sleep(1)
638         QueryDesignCriterion.TypeKeys "<UP>" , true        
639         sleep(1)
640         QueryDesignCriterion.TypeKeys "<SHIFT END>" , true
641         sleep(1)
642                 
643     Kontext "Toolbar"
644         if Copy.isenabled then
645             Copy.Click            
646         else
647             warnlog "The Copy icon is not enabled but I have select something"
648             printlog "TEST STOPPED"
649             call fCloseQueryDesign
650             call fCloseDatabase
651             goto endsub
652         endif    
653             
654     sleep(1)
655     '/// check if the text is in the clipboard
656     printlog "check if the text is in the clipboard"                
657     if getClipboard <> "Type" then
658         warnlog "The Copy button doesn't work"
659         printlog "TEST STOPPED"
660         call fCloseQueryDesign
661         call fCloseDatabase        
662         goto endsub
663     end if        
664         
665     Kontext "QueryDesignCriterion"
666         QueryDesignCriterion.TypeKeys "<RIGHT>" , 2 , true
667         sleep(1)
669     Kontext "Toolbar"
670         if Paste.isenabled then
671             Paste.Click            
672         else
673             warnlog "The Paste icon is not enabled but I have copy something"
674             printlog "TEST STOPPED"
675             call fCloseQueryDesign
676             call fCloseDatabase
677             goto endsub
678         endif 
679     sleep(1)    
680     Kontext "QueryDesignCriterion"
681         QueryDesignCriterion.TypeKeys "1" , true
682         sleep(1)
683         QueryDesignCriterion.TypeKeys "<HOME>" , true
684         sleep(1)
685         QueryDesignCriterion.TypeKeys "<SHIFT END>" , true
686         sleep(1)
687         QueryDesignCriterion.TypeKeys "<MOD1 C>" , true
688         sleep(1)
689     
690     if getClipboard <> "Type1" then
691         warnlog "The Paste button doesn't work"    
692     end if
693     
694     call fCloseQueryDesign
695     call fCloseDatabase   
696         
697     
698 endcase
699 '-------------------------------------------------------------------------
700 testcase tUndo
702    initQueryDesign
703    
704    '/// close the add table dialog
705    printlog "close the add table dialog"
706    Kontext "AddTables"
707         if AddTables.Exists(5) then
708             CloseDlg.Click
709         end if    
710     '/// click on the add table icon in the toolbar of the query design
711     printlog "click on the add table icon in the toolbar of the query design"
712     Kontext "Toolbar"
713         sleep(1)
714         if Undo.isenabled then warnlog "The undo icon is enabled but I have nothing done"
715         sleep(1)
716     '/// check if the dialog opens
717     printlog "check if the dialog opens"
718     Kontext "Designobjectbar"    
719         if Designobjectbar.exists(1) then
720             AddTables.Click
721             sleep(1)
722         else
723             warnlog "The Designobjectbar toolbar isn't visible."
724         end if        
725     Kontext "AddTables"
726         if AddTables.Exists(5) then
727             TableName.Select 1
728             AddTable.Click
729         else
730             warnlog "The AddTable dialog doesn't open" 
731         end if        
732     Kontext "Toolbar"
733         if Undo.isenabled then
734             Undo.Click
735             Kontext "Designobjectbar"
736             if Designobjectbar.exists(1) then
737                 if not AddTables.isenabled then warnlog "The undo button doesn't work"
738                 sleep(1)
739             else
740                 warnlog "The Designobjectbar toolbar isn't visible."
741             end if           
742         else
743             warnlog "The undo icon is disabled but I have insert a table"
744         endif
745     
746     call fCloseQueryDesign
747     call fCloseDatabase  
748     
749 endcase
750 '-------------------------------------------------------------------------
751 testcase tRedo
753     initQueryDesign
754     
755    '/// close the add table dialog
756    printlog "close the add table dialog"
757    Kontext "AddTables"
758         if AddTables.Exists(5) then
759             CloseDlg.Click
760             printlog "The AddTables dialog exists, I close it."
761                 else
762             printlog "The AddTables dialog doesn't exists, thats OK."            
763         end if    
764     '/// click on the add table icon in the toolbar of the query design
765     printlog "click on the add table icon in the toolbar of the query design"
766     Kontext "Toolbar"
767         sleep(1)
768         if Redo.isenabled then warnlog "The redo icon is enabled but I have nothing done"        
769     '/// check if the dialog opens
770     printlog "check if the dialog opens"
771     Kontext "Toolbar"
772         sleep(1)
773         AddTables.Click
774     Kontext "AddTables"
775         if AddTables.Exists(5) then
776             TableName.Select 1
777             AddTable.Click
778         else
779             warnlog "The AddTable dialog doesn't open" 
780         end if        
781     Kontext "Toolbar"
782         if Undo.isenabled then
783             Undo.Click
784             sleep(1)
785             Redo.Click             
786             sleep(1)
787             if AddTables.isenabled then warnlog "The redo button doesn't work"
788         else
789             warnlog "The undo icon is disabled but I have insert a table"
790         endif
791         
792     sleep(1)    
793     
794     call fCloseQueryDesign
795     call fCloseDatabase
796     
797 endcase
798 '-------------------------------------------------------------------------
799 '-------------------------------------------------------------------------
800 testcase tMainMenuBar
802     dim iCount as integer ' the numbers of the items in the menu.    
803     
804     initQueryDesign
805     '/// close the add table dialog
806     printlog "close the add table dialog"
807     Kontext "AddTables"
808         if AddTables.Exists(5) then
809             CloseDlg.Click
810             printlog "The AddTables dialog exists, I close it."                     
811         end if 
812         
813     Kontext "QueryDesignTable"
814         QueryDesignTable.UseMenu
815            
816         '/// check if there are between 8 and 12 items in the file menu.
817         printlog "check if there are between 8 and 12 items in the file menu."
818         '/// + there different count related to the file pick list.                
819         printlog "+ there different count related to the file pick list."        
820         hMenuSelectNr(1) ' the file menu        
821         iCount = getMenuItemCount()        
822         if ( lcase( gPlatform ) = "osx" ) then
823             if ( iCount <> 7 ) then
824                 warnlog( "File menu: 7 items expected, found " & iCount )
825             endif
826         else
827             if (iCount <> 8 ) then
828                 warnlog "There should between 8 and 12 items in the file menu but there are " + iCount + " items."
829              end if    
830         endif    
831         
832         '/// check if there are 12 items in the FILE/NEW menu.
833         printlog "check if there are 12 items in the FILE/NEW menu."        
834         hMenuSelectNr(1) ' FILE/NEW menu        
835         iCount = hMenuItemGetCount()        
836         if (iCount <> 12) then
837             warnlog "There should 12 items in the FILE/NEW menu but there are " + iCount + " items."
838         end if        
839         call hMenuClose() ' close the FILE menu
840         
841         '/// check the FILE/AUTOPILOTS
842         printlog "check the FILE/AUTOPILOTS"
843         QueryDesignTable.UseMenu        
844         hMenuSelectNr(1) ' the file menu
845         hMenuSelectNr(3) ' the autopilots menu        
846         iCount = hMenuItemGetCount()        
847         if (iCount <> 8) then
848             warnlog "There should 8 items in the FILE/AUTOPILOTS menu but there are " + iCount + " items."
849         endif        
850         call hMenuClose()
851         
852         '/// check if there are 9 items in the edit menu.
853         printlog "check if there are 9 items in the edit menu."
854         QueryDesignTable.UseMenu 
855         hMenuSelectNr(2)        
856         iCount = hMenuItemGetCount()
857         if (iCount <> 9) then
858             warnlog "There should 9 items in the edit menu but there are " + iCount + " items."
859         end if
860         call hMenuClose()
862         '/// check if there are 7 items in the view menu.
863         printlog "check if there are 7 items in the view menu."
864         QueryDesignTable.UseMenu 
865         hMenuSelectNr(3)        
866         iCount = hMenuItemGetCount()
867         if (iCount <> 7) then
868             warnlog "There should 7 items in the view menu but there are " + iCount + " items."
869         end if
870         call hMenuClose()
871         
872         '/// check if there are 2 items in the insert menu.
873         printlog "check if there are 2 items in the insert menu."
874         QueryDesignTable.UseMenu 
875         hMenuSelectNr(4)       
876         iCount = hMenuItemGetCount()
877         if (iCount <> 2) then
878             warnlog "There should 2 items in the insert menu but there are " + iCount + " items."
879         end if
880         call hMenuClose()
882         '/// check if there are 4 items in the tools menu.
883         printlog "check if there are 4 items in the tools menu."        
884         QueryDesignTable.UseMenu 
885         hMenuSelectNr(5)        
886         iCount = hMenuItemGetCount()
887         if ( lcase( gPlatform ) = "osx" ) then
888             if ( iCount <> 3 ) then
889                 warnlog( "Tools menu: 3 items expected, found " & iCount )
890             endif
891         else
892             if (iCount <> 4) then
893                 warnlog "There should 4 items in the tools menu but there are " + iCount + " items."
894             end if
895         endif
896         call hMenuClose()
897         
898         '/// check if there are 4 items in the TOOLS/MACRO menu.
899         printlog "check if there are 4 items in the TOOLS/MACRO menu."        
900         QueryDesignTable.UseMenu 
901         hMenuSelectNr(5)
902         hMenuSelectNr(1)        
903         iCount = hMenuItemGetCount()
904         if (iCount <> 4) then
905             warnlog "There should 4 items in the TOOLS/MACRO menu but there are " + iCount + " items."
906         end if
907         call hMenuClose()
908     
909     call fCloseQueryDesign
910     call fCloseDatabase   
911      
912 endcase
913 '-------------------------------------------------------------------------
914 '-------------------------------------------------------------------------
915 '-------------------------------------------------------------------------
916 function getMenuItemCount as Integer
917 'use this function becasue this doesn't count the pick list
918     Dim i, j, Ende, nID as Integer
919     Sleep 2
920     j=0
921     for i=1 to MenuGetItemCount
922         if NOT MenuIsSeperator ( i ) then            
923             dim s as String 
924             s = Mid(MenuGetItemText( MenuGetItemID(i)),3,1)
925             'printlog "s = " + s
926             'printlog "MenuGetItemText( MenuGetItemID(i)) = " + MenuGetItemText( MenuGetItemID(i))
927             if s <> ":" then             
928                 j=j+1
929             endif
930         endif
931     next i
932     getMenuItemCount = j
933 end function
934 '-------------------------------------------------------------------------
935 sub initQueryDesign
937     hFileOpen( gOfficePath & "user/database/biblio.odb" )
938         
939     Kontext "Insight"
940     
941     Insight.MouseDown(50,50)
942     Insight.MouseUp(50,50)
943     
944     sleep(1)
945     
946     NewQueryDesign
947         
948     ' if not InsightSwapIconView.exists(1) then        
949         ' warnlog "InsightSwapIconView doesn't exists"
950         ' exit sub
951     ' end if
952         ' 
953     ' '/// display Queries View
954     ' printlog "display Queries View"
955     ' ViewQueries    
956     ' if InsightQueriesView.exists(1) then
957         ' printlog "InsightQueriesView appear"        
958     ' else
959         ' warnlog "InsightQueriesView doesn't appear"
960         ' exit sub
961     ' end if
962     ' 
963     ' Kontext "Insight"
964         ' CreationList.select(1)
965         ' sleep(1)
966         ' Insight.TypeKeys "<TAB>" , true
967         ' Insight.TypeKeys "<RETURN>" , true
968         ' sleep(1)
969 end sub