merge the formfield patch from ooo-build
[ooovba.git] / testautomation / dbaccess / required / includes / Table.inc
blob00a9f8f6c36073e4ee08ce40d6da3d6820426625
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: Table.inc,v $
11 '* $Revision: 1.2 $
13 '* last change: $Author: obo $ $Date: 2008-07-22 12:35:10 $
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 Table Application Window
38 '************************************************************************
40 ' #1 tMainMenuBar    
41 ' #1 tSearch            
42 ' #1 tSortAscending
43 ' #1 tSortDescending                              
44 ' #1 tAutoFilter
45 ' #1 tDefaultFilter
46 ' #1 tSortOrder
47 ' #1 tRemoveFilter
48 ' #1 tApplyFilter
49 ' #1 tRefresh
50 ' #1 tEdit
51 ' #1 tCut
52 ' #1 tCopy
53 ' #1 tPaste
54 ' #1 tUndo
55 ' #1 tSave
57 '\***********************************************************************************
58 sub Table
60     printlog "------------------ Table.inc ---------------------"
61     
62     printlog "-------------------- main menu -------------------------"
63     call tMainMenuBar
64     
65     printlog "--------------------- toolbar --------------------------"    
66     call tSearch 
67     call tSortAscending
68     call tSortDescending
69     call tAutoFilter
70     call tDefaultFilter
71     call tSortOrder
72     call tRemoveFilter
73     call tApplyFilter
74     call tRefresh
75     call tEdit
76     call tCut
77     call tCopy
78     call tPaste
79     call tUndo
80     call tSave
81      
82 end sub
83 '-------------------------------------------------------------------------
84 testcase tSearch
86     '/// open a new table
87     printlog "open a new table"
88     initTable
89     sleep(1)    
90     '/// click on the search button
91     printlog "click on the search button"
92     Kontext "Toolbar"
93         RecSearch.Click
94         sleep(1)
95     '/// check if the search dialog appear
96     printlog "check if the search dialog appear"
97     Kontext "RecordSearch"
98         if RecordSearch.Exists(3) then
99             '/// close the search dialog
100             printlog "close the search dialog"        
101             CloseBtn.click
102             sleep(2)
103         else
104             warnlog "The search dialog doesn't appear"            
105         end if
106         
107     
108     '/// close the table and the database
109     printlog "close the table and the database"    
110     call fCloseTableView
111     call fCloseDatabase
112     
113 endcase
114 '-------------------------------------------------------------------------
115 testcase tSortAscending
117     '/// open a new table
118     printlog "open a new table"
119     initTable
120     sleep(1)    
121     '/// click on the search button
122     printlog "click on the search button"
123     Kontext "Toolbar"
124         SortAscending.Click
125         sleep(1)
126         
127     '/// close the table and the database
128     printlog "close the table and the database"    
129     call fCloseTableView
130     call fCloseDatabase
131     
132 endcase
133 '-------------------------------------------------------------------------
134 testcase tSortDescending
136     '/// open a new table
137     printlog "open a new table"
138     initTable
139     sleep(1)    
140     '/// click on the search button
141     printlog "click on the search button"
142     Kontext "Toolbar"
143         SortDescending.Click
144         sleep(1)
145     
146     '/// close the table and the database
147     printlog "close the table and the database"    
148     call fCloseTableView
149     call fCloseDatabase
150     
151 endcase
152 '-------------------------------------------------------------------------
153 testcase tAutoFilter
155     warnlog "#102712# AutoFilter does not work"
156     goto endsub
157     
158     '/// open a new table
159     printlog "open a new table"
160     initTable
161     sleep(1)    
162     '/// click on the auto filter button
163     printlog "click on the auto filter button"
164     Kontext "Toolbar"
165         DBAutoFilter.Click
166         sleep(1)
167         
168     '/// close the table and the database
169     printlog "close the table and the database"    
170     call fCloseTableView
171     call fCloseDatabase
172     
173 endcase
174 '-------------------------------------------------------------------------
175 testcase tDefaultFilter
177     '/// open a new table
178     printlog "open a new table"
179     initTable
180     sleep(1)    
181     '/// click on the DefaultFilter button
182     printlog "click on the DefaultFilter button"
183     Kontext "Toolbar"
184         DefaultFilter.Click
185         sleep(1)
186     '/// check if the default filter dialog appear
187     printlog "check if the default filter dialog appear"
188     Kontext "FilterDialog"
189         if FilterDialog.Exists(2) then
190             FilterDialog.Cancel    
191         else
192             warnlog "The filter dialog doesn't appear"
193         end if
194         
195     '/// close the table and the database
196     printlog "close the table and the database"    
197     call fCloseTableView
198     call fCloseDatabase
199     
200 endcase
201 '-------------------------------------------------------------------------
202 testcase tSortOrder
204     '/// open a new table
205     printlog "open a new table"
206     initTable
207     sleep(1)    
208     '/// click on the sort order button
209     printlog "click on the sort order button"
210     Kontext "Toolbar"
211         SortOrder.Click
212         sleep(1)
213     '/// check if the sort order dialog appear
214     printlog "check if the sort order dialog appear"        
215     Kontext "SortOrder"    
216         if SortOrder.Exists(2) then
217             SortOrder.Cancel    
218         else
219             warnlog "The sort order dialog doesn't appear"
220         end if
221         
222     '/// close the table and the database
223     printlog "close the table and the database"    
224     call fCloseTableView
225     call fCloseDatabase
226     
227 endcase
228 '-------------------------------------------------------------------------
229 testcase tRemoveFilter
231     warnlog "#102712# AutoFilter does not work"
232     goto endsub
234     '/// open a new table
235     printlog "open a new table"
236     initTable
237     sleep(1)    
238     '/// click on the remove filter button
239     printlog "click on the remove filter button"
240     Kontext "Toolbar"
241         DBAutoFilter.Click
242         sleep(1)
243         if RemoveFilter.isenabled then
244             RemoveFilter.Click
245         else
246             warnlog "The remove filter icon isn't activ"
247         end if
248     '/// close the table and the database
249     printlog "close the table and the database"    
250     call fCloseTableView
251     call fCloseDatabase
252     
253 endcase
254 '-------------------------------------------------------------------------
255 testcase tApplyFilter
257     warnlog "#102712# AutoFilter does not work"
258     goto endsub
260     '/// open a new table
261     printlog "open a new table"
262     initTable
263     sleep(1)    
264     '/// click on the applay filter button
265     printlog "click on the apply filter button"
266     Kontext "Toolbar"
267         DBAutoFilter.Click
268         sleep(1)
269         if ApplyFilter.isenabled then
270             ApplyFilter.Click
271         else
272             warnlog "The apply filter icon isn't activ"
273         end if
274     '/// close the table and the database
275     printlog "close the table and the database"    
276     call fCloseTableView
277     call fCloseDatabase
278     
279 endcase
280 '-------------------------------------------------------------------------
281 testcase tRefresh
283     '/// open a new table
284     printlog "open a new table"
285     initTable
286     sleep(1)    
287     '/// click on the applay filter button
288     printlog "click on the apply filter button"
289     Kontext "Toolbar"
290         Refresh.Click
291         sleep(1)        
292     '/// close the table and the database
293     printlog "close the table and the database"    
294     call fCloseTableView
295     call fCloseDatabase
296     
297 endcase
298 '-------------------------------------------------------------------------
299 testcase tEdit
301     '/// open a new table
302     printlog "open a new table"
303     initTable
304     sleep(1)    
305     '/// click on the applay filter button
306     printlog "click on the apply filter button"
307     Kontext "Toolbar"
308         DBEditDoc.Click
309         sleep(1)        
310     '/// close the table and the database
311     printlog "close the table and the database"    
312     call fCloseTableView
313     call fCloseDatabase
314     
315 endcase
316 '-------------------------------------------------------------------------
317 testcase tSave
319     '/// open a new table
320     printlog "open a new table"
321     initTable    
322     sleep(1)
323     '/// change a record
324     printlog "change a record"
325     Kontext "TableView"
326         TableView.TypeKeys "hello" , true
327     sleep(1)
328     '/// check if the save button is active
329     '/// but do not click on it
330     printlog "check if the save button is active"
331     printlog "but do not click on it"
332     Kontext "Toolbar"
333         if not RecSave.isEnabled then
334             warnlog "the save button is not enabled."
335         endif
336         sleep(1)
337     call fCloseTableView
338     call fCloseDatabase
339     
340 endcase
341 '-------------------------------------------------------------------------
342 testcase tCut
344     '/// open a table
345     printlog "open a table"
346     initTable
347     sleep(1)
348     
349     '/// click on the cut button
350     printlog "click on the cut button"
351     Kontext "Toolbar"
352         Cut.Click
353         sleep(1)
354         
355     '/// check if the text is in the clipboard
356     printlog "check if the text is in the clipboard"                
357     if getClipboard <> "GUR00" then
358         warnlog "The Cut button doesn't work"
359     end if        
361     '/// check if the cut icon is disabled
362     Kontext "Toolbar"
363         if Cut.isEnabled then
364             warnlog "The CUT icon is enabled, but I have nothing selected"
365         endif
366         sleep(1)
367         
368     '/// close the table and the database
369     printlog "close the table and the database"
370     call fCloseTableView
371     call fCloseDatabase   
372         
373 endcase
374 '-------------------------------------------------------------------------
375 testcase tCopy
376     
377     '/// open a table
378     printlog "open a table"
379     initTable
380     sleep(1)
381     
382     '/// click on the copy button
383     printlog "click on the copy button"
384     Kontext "Toolbar"
385         Copy.Click
386         sleep(1)
387         
388     '/// check if the text is in the clipboard
389     printlog "check if the text is in the clipboard"                
390     if getClipboard <> "GUR00" then
391         warnlog "The Cut button doesn't work"
392     end if        
393     
394     '/// close the table and the database
395     printlog "close the table and the database"
396     call fCloseTableView
397     call fCloseDatabase   
398        
399         
400 endcase
401 '-------------------------------------------------------------------------
402 testcase tPaste
404     '/// opene new table
405     printlog "opene new table"    
406     initTable
408     '/// set a string to the clipboard
409     printlog "set a string to the clipboard"
410     setClipboard "word"
411     
412     '/// press the cursor left key
413     printlog "press the cursor left key"
414     Kontext "TableView"
415         TableView.TypeKeys "<LEFT>" , true
416         sleep(1)
417     '/// paste the text from the clipbaord
418     printlog "paste the text from the clipbaord"
419     Kontext "Toolbar"
420         Paste.Click
421         sleep(1)
422     '/// check if the text is pasted to the fieldname
423     printlog "check if the text is pasted to the fieldname"    
424     Kontext "TableView"
425         TableView.TypeKeys "<HOME>" , true
426         sleep(1)
427         TableView.TypeKeys "<SHIFT END>" , true
428         sleep(1)
429     '/// click the copy icon
430     printlog "click the copy icon"
431     Kontext "Toolbar"
432         Copy.Click
433         sleep(1)        
434         if getClipboard <> "wordGUR00" then
435             warnlog "the paste button doesn't work"
436         end if
437     '/// close the table design and the database
438     printlog "close the table design and the database"    
439     call fCloseTableView
440     call fCloseDatabase     
441     
442 endcase
443 '-------------------------------------------------------------------------
444 testcase tUndo
446     '/// open a table
447     printlog "open a table"
448     initTable
449     
450     '/// set a string to the clipboard
451     printlog "set a string to the clipboard"
452     setClipboard "word"
453           
454     '/// press the cursor left key
455     printlog "press the cursor left key"
456     Kontext "TableView"
457         TableView.TypeKeys "<LEFT>" , true
458         sleep(1)
459     '/// paste the text from the clipbaord
460     printlog "paste the text from the clipbaord"
461     Kontext "Toolbar"
462         Paste.Click
463         sleep(1)
464     '/// check if the text is pasted to the fieldname
465     printlog "check if the text is pasted to the fieldname"    
466     Kontext "TableView"
467         TableView.TypeKeys "<HOME>" , true
468         sleep(1)
469         TableView.TypeKeys "<SHIFT END>" , true
470         sleep(1)
471     '/// click the copy icon
472     printlog "click the copy icon"
473     Kontext "Toolbar"
474         Copy.Click
475         sleep(1)        
476         if getClipboard <> "wordGUR00" then
477             warnlog "the paste button doesn't work"
478         end if
479     
480     
481     '/// click the undo icon
482     printlog "click the undo icon"
483     Kontext "Toolbar"
484         RecUndo.Click
485         sleep(1)
486     
487     '/// click the copy icon
488     Kontext "Toolbar"
489         Copy.Click
490         sleep(1)        
491         if getClipboard <> "GUR00" then
492             warnlog "the undo button doesn't work"
493         end if
494     
495     '/// close the table design and the database
496     printlog "close the table design and the database"    
497     call fCloseTableView
498     call fCloseDatabase   
499     
500 endcase
501 '-------------------------------------------------------------------------
502 '-------------------------------------------------------------------------
503 testcase tMainMenuBar
505     dim iCount as integer ' the numbers of the items in the menu.    
506     
507     call initTable
508     
509     Kontext "TableView"
510         TableView.UseMenu
511            
512         '/// check if there are between 8 and 12 items in the file menu.
513         printlog "check if there are between 8 and 12 items in the file menu."
514         '/// + there different count related to the file pick list.                
515         printlog "+ there different count related to the file pick list."        
516         hMenuSelectNr(1) ' the file menu        
517         iCount = getMenuItemCount()        
518         if ( lcase( gPlatform ) = "osx" ) then
519             if ( iCount <> 7 ) then
520                 warnlog( "File menu: 8 items expected, found " & iCount ) 
521             endif
522         else
523             if (iCount <> 8 ) then
524                warnlog "There should between 8 and 12 items in the file menu but there are " + iCount + " items."
525             end if
526         endif
527         
528         '/// check if there are 12 items in the FILE/NEW menu.
529         printlog "check if there are 12 items in the FILE/NEW menu."
530         printlog "check the FILE/NEW"
531         hMenuSelectNr(1) ' FILE/NEW menu        
532         iCount = hMenuItemGetCount()        
533         if (iCount <> 12) then
534             warnlog "There should 12 items in the FILE/NEW menu but there are " + iCount + " items."
535         end if        
536         call hMenuClose() ' close the FILE menu
537         
538         '/// check the FILE/AUTOPILOTS
539         printlog "check the FILE/AUTOPILOTS"
540         TableView.UseMenu        
541         hMenuSelectNr(1) ' the file menu
542         hMenuSelectNr(3) ' the autopilots menu        
543         iCount = hMenuItemGetCount()
544         if (iCount <> 8) then
545             warnlog "There should 8 items in the FILE/AUTOPILOTS menu but there are " + iCount + " items."
546         endif
547         call hMenuClose()
548         
549         '/// check if there are 8 items in the edit menu.
550         printlog "check if there are 8 items in the edit menu."
551         TableView.UseMenu 
552         hMenuSelectNr(2)        
553         iCount = hMenuItemGetCount()
554         if (iCount <> 8) then
555             warnlog "There should 8 items in the edit menu but there are " + iCount + " items."
556         end if
557         call hMenuClose()
558         
559         '/// check if there are 2 items in the view menu.
560         printlog "check if there are 2 items in the view menu."
561         TableView.UseMenu 
562         hMenuSelectNr(3)        
563         iCount = hMenuItemGetCount()
564         if (iCount <> 2) then
565             warnlog "There should 2 items in the view menu but there are " + iCount + " items."
566         end if
567         call hMenuClose()
569         '/// check if there are 4 items in the tools menu.
570         printlog "check if there are 4 items in the tools menu."        
571         TableView.UseMenu 
572         hMenuSelectNr(5)        
573         iCount = hMenuItemGetCount()
574         if ( lcase( gPlatform ) = "osx" ) then
575             if ( iCount <> 3 ) then
576                 warnlog( "Tools menu: 3 items expected, found " & iCount )
577             endif
578         else
579             if (iCount <> 4) then
580                 warnlog "There should 4 items in the tools menu but there are " + iCount + " items."
581             end if
582         endif
583         call hMenuClose()
584         
585         '/// check if there are 4 items in the TOOLS/MACRO menu.
586         printlog "check if there are 4 items in the TOOLS/MACRO menu."        
587         TableView.UseMenu 
588         hMenuSelectNr(5)
589         hMenuSelectNr(1)        
590         iCount = hMenuItemGetCount()
591         if (iCount <> 4) then
592             warnlog "There should 4 items in the TOOLS/MACRO menu but there are " + iCount + " items."
593         end if
594         call hMenuClose()
595         
596         call fCloseTableView
597         
598         call fCloseDatabase
599         
600 endcase
601 '-------------------------------------------------------------------------
602 '-------------------------------------------------------------------------
603 '-------------------------------------------------------------------------
604 function getMenuItemCount as Integer
605 'use this function becasue this doesn't count the pick list
606     Dim i, j, Ende, nID as Integer
607     Sleep 2
608     j=0
609     for i=1 to MenuGetItemCount
610         if NOT MenuIsSeperator ( i ) then            
611             dim s as String 
612             s = Mid(MenuGetItemText( MenuGetItemID(i)),3,1)
613             'printlog "s = " + s
614             'printlog "MenuGetItemText( MenuGetItemID(i)) = " + MenuGetItemText( MenuGetItemID(i))
615             if s <> ":" then             
616                 j=j+1
617             endif
618         endif
619     next i
620     getMenuItemCount = j
621 end function
622 '-------------------------------------------------------------------------
623 sub initTable
625     
626     hFileOpen( gOfficePath & "user/database/biblio.odb" )    
627     
628     Kontext "DATABASE"
629     
630     Database.MouseDown(50,50)
631     Database.MouseUp(50,50)
632     
633     sleep(1)
634     
635     ViewTables
636     
637     Kontext "ContainerView"
638     TableTree.select 1
639     
640     OpenTable
641     
642     sleep(2)
643     
644 end sub