jl165 merging heads
[LibreOffice.git] / testautomation / dbaccess / tools / dbtools.inc
blob2e40a3f257265d24f24d4c5630fd06277295f232
1 'encoding UTF-8  Do not remove or change this line!
2 '**************************************************************************
3 ' DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
5 ' Copyright 2000, 2010 Oracle and/or its affiliates.
7 ' OpenOffice.org - a multi-platform office productivity suite
9 ' This file is part of OpenOffice.org.
11 ' OpenOffice.org is free software: you can redistribute it and/or modify
12 ' it under the terms of the GNU Lesser General Public License version 3
13 ' only, as published by the Free Software Foundation.
15 ' OpenOffice.org is distributed in the hope that it will be useful,
16 ' but WITHOUT ANY WARRANTY; without even the implied warranty of
17 ' MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18 ' GNU Lesser General Public License version 3 for more details
19 ' (a copy is included in the LICENSE file that accompanied this code).
21 ' You should have received a copy of the GNU Lesser General Public License
22 ' version 3 along with OpenOffice.org.  If not, see
23 ' <http://www.openoffice.org/license.html>
24 ' for a copy of the LGPLv3 License.
26 '/************************************************************************
28 '* owner : marc.neumann@oracle.com
30 '* short description : Helper Routines for Base tests.
32 '***************************************************************************************
34 ' #1 fSelectDatasourceInBeamer
35 ' #1 fConnectToDatasourceInBeamer
36 ' #1 fSelectSchemaInTableFilter
37 ' #1 fOpenNewDataBase
38 ' #1 fOpenDataBase
39 ' #1 fCloseDatabase
40 ' #1 tools_dbtools_fgetMySQLDatabaseProperties
42 '\***********************************************************************************
44 private const VERBOSE = true
46 '--------------------------------------------------------------------
47 function fSelectDatasourceInBeamer(sDSName1)
48         '/// select a datasource in the beamer with the given name
49     '/// <u>parameter:</u>
50     '/// <b>sDSName1:</b> the name of the datasource which shall be seleced
51             
52         dim i as integer
53         dim bfindDS as boolean
54         dim iNoDS as integer    
55     
56     bfindDS = false
57         Kontext "DatabaseBeamer"
58     Kontext "DatabaseSelection"
59                 
60     iNoDS = DatabaseSelection.getItemCount      
61         for i = 1 to iNoDS
62                 DatabaseSelection.Select i
63                 if DatabaseSelection.getText = sDSName1 then
64                         i = iNoDS
65             bfindDS = TRUE
66                 endif
67         next i  
68         
69     fSelectDatasourceInBeamer = bfindDS
70         
71     sleep(1)
72     
73 end function
74 '--------------------------------------------------------------------
75 function fConnectToDatasourceInBeamer(sDSName , sPWD, optional bNewDoc)
76     
77     if ( isMissing (bNewDoc) )then
78         bNewDoc = false
79     endif
80     
81     if (bNewDoc) then
82         call hNewDocument()
83         ViewCurrentDatabase
84     endif
85     
86     sleep(1)
87     dim bConnect as boolean 
88     bConnect = false
89     if fFindDatasource(sDSName) = true then
90         DatabaseSelection.TypeKeys "<ADD>"
91         DatabaseSelection.TypeKeys "<DOWN>"
92         DatabaseSelection.TypeKeys "<DOWN>"
93         DatabaseSelection.TypeKeys "<DOWN>"
94         DatabaseSelection.TypeKeys "<ADD>"                
95         Kontext "LoginDialog"
96         if LoginDialog.Exists(3) then
97             LoginPassword.SetText sPWD
98             LoginDialog.OK
99         end if
100         bConnect = true    
101     else
102         warnlog "Could not found the datasource " + sDSName
103     endif
104     
105     if (bNewDoc) then
106         call hCloseDocument
107     endif
108     
109     fConnectToDatasource = bConnect
110     
111 end function
112 '--------------------------------------------------------------------
113 function fSelectSchemaInTableFilter(sSchema as String)
114         '/// select the given schema in the table filter dialog in an open database
115         '/// <u>parameter:</u>
116         '/// <b>sSchema:</b> the name of the schema
117     dim bOK as boolean
118     bOK = false
119     
120     dim iRem as integer
121         iRem = 0
122     Kontext "DATABASE"
123         Database.useMenu
124         hMenuSelectNr 5
125         hMenuSelectNr 3
126     
127      
128     Kontext "TablesFilter"
129         printlog Tables.getItemCount
130         TablesFilter.OK
131         
132     fSelectSchemaInTableFilter = true
133     
134 end function
135 '-------------------------------------------------------------------------
136 function fOpenNewDataBase ( sSaveFileName )    
137     '/// open a database window and sabe it to the given name
138     '/// <u>parameter:</u>
139     '/// <b>sSaveFileName:</b> the file name for the database file
140     FileOpen "FileName", "private:factory/sdatabase" , "FrameName", "_blank" , "SynchronMode" ,True
141     
142     sleep(2)
143     
144     Kontext "SpeichernDlg"
145         Dateiname.setText Convertpath(gOfficePath + "/user/work/" + sSaveFileName)    
146         Speichern.click
147         sleep(1)
148         
149     Kontext "MessageBox" 
150         if MessageBox.exists then
151             MessageBox.yes
152         end if
153         
154     sleep(5)
156 end function
157 '-------------------------------------------------------------------------
158 function fOpenDataBase ( sFileName , optional sPassword)    
159     '/// open a database file with the given name and try to connect
160     '/// <u>parameter:</u>
161     '/// <b>sFileName:</b> the file name which shall be open
162     '/// <b><i>optional</i>sFileName:</b> the password for connecting                
164     Dim bOK as boolean
165     bOK = true
166     
167     Dim DieDatei as String
168     DieDatei = ConvertPath ( sFileName )
170     if(VERBOSE) then
171         printlog "Filename : " + sFileName
172         if(NOT isMissing(sPassword)) then
173             printlog "Password : " + sPassword
174         endif
175     endif
177     '/// open the File Open dialog
178     printlog "open the File Open dialog"
179     FileOpen
180     sleep (1)
181     Kontext "OeffnenDlg"
182     '/// open the given file    
183     Dateiname.SetText DieDatei
184     sleep (3)
185     Oeffnen.Click
186     sleep (3)
187     
188     'click on the main window to get the focus
189     Kontext "DATABASE"    
190     Database.MouseDown(50,50)
191     Database.MouseUp(50,50) 
192     
193     ViewTables
194     sleep(1)
195     
196     Kontext "DATABASE"
197     '/// if the password is given add the password    
198     if ( Not IsMissing(sPassword) ) then
199         printlog "set password : " + sPassword
200         Kontext "LoginDialog"
201         if LoginDialog.Exists then
202                 LoginPassword.setText sPassword
203                 LoginDialog.OK
204             sleep(1)
205         endif
206     endif
207     Kontext "MessageBox"
208     if (MessageBox.exists(2)) then
209         'an error occurr    
210         bOK = false
211         dim iNrTexts as integer
212         Dim i as integer
213         iNrtexts = MessageBox.getFixedtextCount
214         for i = 1 to iNrtexts
215             qaerrorlog MessageBox.getFixedtext(i)
216         next
217         MessageBox.OK
218         ' try again to close the dialog if exists
219         if (MessageBox.exists(2)) then         
220             MessageBox.OK
221         endif
222         call fCloseDatabase
223     endif
224     
225     fOpenDataBase = bOK
226     
227 end function
228 '-------------------------------------------------------------------------
229 function fCloseDatabase(optional bSave)
230     '/// close the database
231     '/// <u>parameter:</u>
232     '/// <b><i>optional</i>bSave:</b> if true the the database is saved if false then the changes are lost
233     sleep(1)
234         Kontext "DATABASE"
235         Database.MouseDown(50,50)
236         Database.MouseUp(50,50)
237         Database.useMenu
238         hMenuSelectNr 1
239         hMenuSelectNr 5    
240         
241     Kontext "Messagebox"
242         if Messagebox.Exists(3) then
243             if ( IsMissing( bSave ) ) then
244                 Messagebox.No
245             else
246                 if bSave then
247                     Messagebox.Yes
248                 else
249                     Messagebox.No
250                 endif
251             endif
252         end if
253         
254     sleep(1)        
255         
256 end function
257 '-------------------------------------------------------------------------
258 sub sCloseAllToolbars
259     
260     Kontext "FormControls"
261     if FormControls.exists(1) then 
262         FormControls.close()
263     endif
265     Kontext "MoreControls"
266     if MoreControls.exists(1) then
267         MoreControls.close()
268     endif
270     Kontext "FormDesignTools"
271     if FormDesignTools.exists(1) then
272         FormDesignTools.close()
273     endif
275 end sub
276 '-------------------------------------------------------------------------
277 function tools_dbtools_fgetMySQLJDBCDatabaseProperties(sDBConfigFileName as string)
278     '/// return the databaseserver properties from the environment directory
279         '/// <u>parameter:</u>
280         '/// <br>
281     '/// <u>return:</u>
282         '/// the properties as an array
283     '/// entry 1 defined (yes or no)
284     '/// entry 2 server name 
285     '/// entry 3 database name
286     '/// entry 4 database port
287     '/// entry 5 database user name
288     '/// entry 6 database user password
289     '/// entry 7 jdbc driver file path
291     tools_dbtools_fgetMySQLJDBCDatabaseProperties = fgetGenericDatabaseProperties( sDBConfigFileName, "mysql_jdbc" )
293 end function
294 '-------------------------------------------------------------------------
295 function tools_dbtools_fgetMySQLODBCDatabaseProperties()
296     '/// return the databaseserver properties from the environment directory
297         '/// <u>parameter:</u>
298         '/// <br>
299     '/// <u>return:</u>
300         '/// the properties as an array
301     '/// entry 1 defined (yes or no)
302     '/// entry 2 odbc dsn name
303     '/// entry 3 database user name
304     '/// entry 4 database user password        
306     dim i as integer
307     dim b(10000) as String
308     dim c
309     c = hGetDataFileSection( gTesttoolPath + gPrivateEnvironmentLocation + "input/base.txt", b(), "mysql_odbc" , "" , "" )
310     
311     ' split the string at = and return the right part 
312     for i = 1 to 4
313         'printlog b(i)
314         b(i) = Right(b(i),len(b(i))-Instr(b(i),"="))    
315         'printlog b(i)        
316     next
317     
318     tools_dbtools_fgetMySQLODBCDatabaseProperties = b() 
320 end function
321 '-------------------------------------------------------------------------
322 function tools_dbtools_fgetAdabasDatabaseProperties()
323     '/// return the databaseserver properties from the environment directory
324         '/// <u>parameter:</u>
325         '/// <br>
326     '/// <u>return:</u>
327         '/// the properties as an array
328     '/// entry 1 defined (yes or no)
329     '/// entry 2 server name 
330     '/// entry 3 database name    
331     '/// entry 4 database user name
332     '/// entry 5 database user password        
334     dim i as integer
335     dim b(10000) as String
336     dim c
337     c = hGetDataFileSection( gTesttoolPath + gPrivateEnvironmentLocation + "input/base.txt", b(), "adabas" , "" , "" )
338     
339     ' split the string at = and return the right part 
340     for i = 1 to 5
341         'printlog b(i)
342         b(i) = Right(b(i),len(b(i))-Instr(b(i),"="))    
343         'printlog b(i)        
344     next
345     
346     tools_dbtools_fgetAdabasDatabaseProperties = b() 
348 end function
349 '-------------------------------------------------------------------------------
350 function fgetGenericDatabaseProperties(sDBConfigFileName as string, sType as String)
352     dim i as integer
353     dim b(10000) as String
354     dim c
355     c = hGetDataFileSection( sDBConfigFileName, b(), sType , "" , "" )
357     ' split the string at = and return the right part
358     for i = 1 to 7
359         if(VERBOSE) then
360             printlog "orig. string : " + b(i)
361         endif
362         b(i) = Right(b(i),len(b(i))-Instr(b(i),"="))
363         if(VERBOSE) then
364             printlog "string after the '=' : " + b(i)
365         endif
366     next
371     fgetGenericDatabaseProperties = b()
373 end function