merge the formfield patch from ooo-build
[ooovba.git] / testautomation / dbaccess / tools / dbtools.inc
blob22e16211360c6476196fa90b6205976a01ab5926
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: dbtools.inc,v $
11 '* $Revision: 1.1 $
13 '* last change: $Author: jsi $ $Date: 2008-06-16 07:43:46 $
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 : Helper Routines for Base tests.
38 '***************************************************************************************
40 ' #1 fSelectDatasourceInBeamer
41 ' #1 fConnectToDatasourceInBeamer
42 ' #1 fSelectSchemaInTableFilter
43 ' #1 fOpenNewDataBase
44 ' #1 fOpenDataBase
45 ' #1 fCloseDatabase
46 ' #1 tools_dbtools_fgetMySQLDatabaseProperties
48 '\***********************************************************************************
49 '--------------------------------------------------------------------
50 function fSelectDatasourceInBeamer(sDSName1)
51         '/// select a datasource in the beamer with the given name
52     '/// <u>parameter:</u>
53     '/// <b>sDSName1:</b> the name of the datasource which shall be seleced
54             
55         dim i as integer
56         dim bfindDS as boolean
57         dim iNoDS as integer    
58     
59     bfindDS = false
60         Kontext "DatabaseBeamer"
61     Kontext "DatabaseSelection"
62                 
63     iNoDS = DatabaseSelection.getItemCount      
64         for i = 1 to iNoDS
65                 DatabaseSelection.Select i
66                 if DatabaseSelection.getText = sDSName1 then
67                         i = iNoDS
68             bfindDS = TRUE
69                 endif
70         next i  
71         
72     fSelectDatasourceInBeamer = bfindDS
73         
74     sleep(1)
75     
76 end function
77 '--------------------------------------------------------------------
78 function fConnectToDatasourceInBeamer(sDSName , sPWD, optional bNewDoc)
79     
80     if ( isMissing (bNewDoc) )then
81         bNewDoc = false
82     endif
83     
84     if (bNewDoc) then
85         call hNewDocument()
86         ViewCurrentDatabase
87     endif
88     
89     sleep(1)
90     dim bConnect as boolean 
91     bConnect = false
92     if fFindDatasource(sDSName) = true then
93         DatabaseSelection.TypeKeys "<ADD>"
94         DatabaseSelection.TypeKeys "<DOWN>"
95         DatabaseSelection.TypeKeys "<DOWN>"
96         DatabaseSelection.TypeKeys "<DOWN>"
97         DatabaseSelection.TypeKeys "<ADD>"                
98         Kontext "LoginDialog"
99             if LoginDialog.Exists(3) then
100                 Password.SetText sPWD
101                 LoginDialog.OK                
102             end if
103         bConnect = true    
104     else
105         warnlog "Could not found the datasource " + sDSName
106     endif
107     
108     if (bNewDoc) then
109         call hCloseDocument
110     endif
111     
112     fConnectToDatasource = bConnect
113     
114 end function
115 '--------------------------------------------------------------------
116 function fSelectSchemaInTableFilter(sSchema as String)
117         '/// select the given schema in the table filter dialog in an open database
118         '/// <u>parameter:</u>
119         '/// <b>sSchema:</b> the name of the schema
120     dim bOK as boolean
121     bOK = false
122     
123     dim iRem as integer
124         iRem = 0
125     Kontext "DATABASE"
126         Database.useMenu
127         hMenuSelectNr 5
128         hMenuSelectNr 3
129     
130      
131     Kontext "TablesFilter"
132         printlog Tables.getItemCount
133         TablesFilter.OK
134         
135     fSelectSchemaInTableFilter = true
136     
137 end function
138 '-------------------------------------------------------------------------
139 function fOpenNewDataBase ( sSaveFileName )    
140     '/// open a database window and sabe it to the given name
141     '/// <u>parameter:</u>
142     '/// <b>sSaveFileName:</b> the file name for the database file
143     FileOpen "FileName", "private:factory/sdatabase" , "FrameName", "_blank" , "SynchronMode" ,True
144     
145     sleep(2)
146     
147     Kontext "SpeichernDlg"
148         Dateiname.setText Convertpath(gOfficePath + "/user/work/" + sSaveFileName)    
149         Speichern.click
150         sleep(1)
151         
152     Kontext "MessageBox" 
153         if MessageBox.exists then
154             MessageBox.yes
155         end if
156         
157     sleep(5)
159 end function
160 '-------------------------------------------------------------------------
161 function fOpenDataBase ( sFileName , optional sPassword)    
162     '/// open a database file with the given name and try to connect
163     '/// <u>parameter:</u>
164     '/// <b>sFileName:</b> the file name which shall be open
165     '/// <b><i>optional</i>sFileName:</b> the password for connecting                
167     Dim bOK as boolean
168     bOK = true
169     
170     Dim DieDatei as String
171     DieDatei = ConvertPath ( sFileName )
172     '/// open the File Open dialog
173     printlog "open the File Open dialog"
174     FileOpen
175     sleep (1)
176     Kontext "OeffnenDlg"
177     '/// open the given file
178     printlog "open the given file: " + sFileName
179     Dateiname.SetText DieDatei
180     sleep (3)
181     Oeffnen.Click
182     sleep (3)
183     
184     'click on the main window to get the focus
185     Kontext "DATABASE"    
186     Database.MouseDown(50,50)
187     Database.MouseUp(50,50) 
188     
189     ViewTables
190     sleep(1)
191     
192     Kontext "DATABASE"
193     '/// if the password is given add the password    
194     if ( Not IsMissing(sPassword) ) then
195         printlog "set password : " + sPassword
196         Kontext "LoginDialog"
197         if LoginDialog.Exists then
198                 Password.setText sPassword
199                 LoginDialog.OK
200             sleep(1)
201         endif
202     endif
203     Kontext "MessageBox"
204     if (MessageBox.exists(2)) then
205         'an error occurr    
206         bOK = false
207         dim iNrTexts as integer
208         Dim i as integer
209         iNrtexts = MessageBox.getFixedtextCount
210         for i = 1 to iNrtexts
211             qaerrorlog MessageBox.getFixedtext(i)
212         next
213         MessageBox.OK
214         ' try again to close the dialog if exists
215         if (MessageBox.exists(2)) then         
216             MessageBox.OK
217         endif
218         call fCloseDatabase
219     endif
220     
221     fOpenDataBase = bOK
222     
223 end function
224 '-------------------------------------------------------------------------
225 function fCloseDatabase(optional bSave)
226     '/// close the database
227     '/// <u>parameter:</u>
228     '/// <b><i>optional</i>bSave:</b> if true the the database is saved if false then the changes are lost
229     sleep(1)
230         Kontext "DATABASE"
231         Database.MouseDown(50,50)
232         Database.MouseUp(50,50)
233         Database.useMenu
234         hMenuSelectNr 1
235         hMenuSelectNr 5    
236         
237     Kontext "Messagebox"
238         if Messagebox.Exists(3) then
239             if ( IsMissing( bSave ) ) then
240                 Messagebox.No
241             else
242                 if bSave then
243                     Messagebox.Yes
244                 else
245                     Messagebox.No
246                 endif
247             endif
248         end if
249         
250     sleep(1)        
251         
252 end function
253 '-------------------------------------------------------------------------
254 sub sCloseAllToolbars
255     
256     Kontext "FormControls"
257     if FormControls.exists(1) then 
258         FormControls.close()
259     endif
261     Kontext "MoreControls"
262     if MoreControls.exists(1) then
263         MoreControls.close()
264     endif
266     Kontext "FormDesignTools"
267     if FormDesignTools.exists(1) then
268         FormDesignTools.close()
269     endif
271 end sub
272 '-------------------------------------------------------------------------
273 function tools_dbtools_fgetMySQLJDBCDatabaseProperties()
274     '/// return the databaseserver properties from the environment directory
275         '/// <u>parameter:</u>
276         '/// <br>
277     '/// <u>return:</u>
278         '/// the properties as an array
279     '/// entry 1 defined (yes or no)
280     '/// entry 2 server name 
281     '/// entry 3 database name
282     '/// entry 4 database port
283     '/// entry 5 database user name
284     '/// entry 6 database user password        
286     dim i as integer
287     dim b(10000) as String
288     dim c
289     c = hGetDataFileSection( gTesttoolPath + gPrivateEnvironmentLocation + "input/base.txt", b(), "mysql_jdbc" , "" , "" )
290     
291     ' split the string at = and return the right part 
292     for i = 1 to 6
293         'printlog b(i)
294         b(i) = Right(b(i),len(b(i))-Instr(b(i),"="))    
295         'printlog b(i)        
296     next
297     
298     tools_dbtools_fgetMySQLJDBCDatabaseProperties = b() 
300 end function
301 '-------------------------------------------------------------------------
302 function tools_dbtools_fgetMySQLODBCDatabaseProperties()
303     '/// return the databaseserver properties from the environment directory
304         '/// <u>parameter:</u>
305         '/// <br>
306     '/// <u>return:</u>
307         '/// the properties as an array
308     '/// entry 1 defined (yes or no)
309     '/// entry 2 odbc dsn name
310     '/// entry 3 database user name
311     '/// entry 4 database user password        
313     dim i as integer
314     dim b(10000) as String
315     dim c
316     c = hGetDataFileSection( gTesttoolPath + gPrivateEnvironmentLocation + "input/base.txt", b(), "mysql_odbc" , "" , "" )
317     
318     ' split the string at = and return the right part 
319     for i = 1 to 4
320         'printlog b(i)
321         b(i) = Right(b(i),len(b(i))-Instr(b(i),"="))    
322         'printlog b(i)        
323     next
324     
325     tools_dbtools_fgetMySQLODBCDatabaseProperties = b() 
327 end function
328 '-------------------------------------------------------------------------
329 function tools_dbtools_fgetAdabasDatabaseProperties()
330     '/// return the databaseserver properties from the environment directory
331         '/// <u>parameter:</u>
332         '/// <br>
333     '/// <u>return:</u>
334         '/// the properties as an array
335     '/// entry 1 defined (yes or no)
336     '/// entry 2 server name 
337     '/// entry 3 database name    
338     '/// entry 4 database user name
339     '/// entry 5 database user password        
341     dim i as integer
342     dim b(10000) as String
343     dim c
344     c = hGetDataFileSection( gTesttoolPath + gPrivateEnvironmentLocation + "input/base.txt", b(), "adabas" , "" , "" )
345     
346     ' split the string at = and return the right part 
347     for i = 1 to 5
348         'printlog b(i)
349         b(i) = Right(b(i),len(b(i))-Instr(b(i),"="))    
350         'printlog b(i)        
351     next
352     
353     tools_dbtools_fgetAdabasDatabaseProperties = b() 
355 end function