update dev300-m58
[ooovba.git] / testautomation / framework / tools / includes / options_tools.inc
blob862d85e587d6480d5e679fe5e1ef2bacb3fcd859
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: options_tools.inc,v $
11 '* $Revision: 1.1 $
13 '* last change: $Author: jsi $ $Date: 2008-06-16 12:19:06 $
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 : thorsten.bosbach@sun.com
36 '* short description : tools for options tests
38 '\******************************************************************************
40 sub GetPathList ( ls1 () as String, ls2 () as String, ls3 () as String )
42     Dim lsInterim ( 50 ) as String
43     Dim i as Integer
44     Dim sList as String
45     Dim bNewCreate as Boolean
46     '///routine to get the correct comparison list for path-options
47     '///+ if the list does not exist => CreatePathList
48     '///+ you can find the lists for all languages in separate files
49     '///+[TesttoolPath]\framework\options\input\paths_[LanguageCode].txt
50     ls1 (0) = 0 : ls2 (0) = 0 :  ls3 (0) = 0
51     sList = gTesttoolPath + "framework\optional\input\options\paths_" + iSprache + ".txt"
52     sList = convertpath( sList )
54     if App.Dir ( sList ) = "" then
55         bNewCreate = TRUE
56         CreatePathList
57     else
58         bNewCreate = FALSE
59     end if
61     if bAsianLan = TRUE then
63         select case iSystemSprache
64         case 01, 33, 34, 39, 46, 49
65             ListRead ( lsInterim (), sList, "utf8" )
66         case else
68             if bNewCreate = FALSE then
69                 CreatePathList
70             endif
72             ListRead ( lsInterim (), sList, "utf8" )
73         end select
75     else
76         ListRead ( lsInterim (), sList , "utf8" )
77     end if
79     for i = 1 to ListCount ( lsInterim () )
80         ListAppend ( ls1 (), Left ( lsInterim (i), Instr ( lsInterim (i), ";" ) - 1 ) )
81         ListAppend ( ls2 (), Mid ( lsInterim (i), Len ( lsInterim (i) ) - 2, 1 ) )
82         ListAppend ( ls3 (), Right  ( lsInterim (i), 1 ) )
83     next i
85 end sub
87 '*******************************************************************************
89 sub CreatePathList
91     Dim i as Integer, iNum as Integer
92     Dim sType as String, sVario as String, sList as String
93     Dim lsInterim ( 50 ) as String
94     '///create the comparison list for path-options
95     '///+[TesttoolPath]\framework\options\input\paths_[LanguageCode].txt
96     sList = ConvertPath ( gTesttoolPath + "framework\optional\input\options\paths_" + iSprache + ".txt" )
97     call hNewDocument()
98     ToolsOptions
99     hToolsOptions ( "StarOffice", "Paths" )
101     for i=1 to Typ.GetItemCount
103         Kontext "TabPfade"
105         if i=1 then
106             Typ.TypeKeys "<Down>"
107             Typ.TypeKeys "<Home>"
108         else
109             Typ.TypeKeys "<Down>"
110         end if
112         sType = Typ.GetSelText
114         if Bearbeiten.IsEnabled then
115             Bearbeiten.Click
117             Kontext "OeffnenDlg"
119             if OeffnenDlg.Exists then
120                 sVario = 1
121                 iNum = 1
122                 OeffnenDlg.Cancel
123             end if
125             Kontext "PfadeAuswaehlen"
126             if PfadeAuswaehlen.Exists then
127                 sVario = 2
128                 iNum = Pfade.GetItemCount
129                 PfadeAuswaehlen.Cancel
130             end if
132         else
133             sVario = 0
134             iNum = 0
135         end if
137         ListAppend ( lsInterim(), sType + ";" + sVario + ";" + iNum )
138     next i
140     if bAsianLan = FALSE then
141         Warnlog "The file for comparison does not exists. The file will be written!"
142         Warnlog "Please check : " + sList
143         ListWrite ( lsInterim(), sList )
144     else
145         Warnlog "The file for comparison does not exists. The file will be written!"
146         Warnlog "Please check : " + sList
147         ListWrite ( lsInterim(), sList, "utf8" )
148     end if
150 end sub
152 '*******************************************************************************
154 function URLGraphicCheck ( bRelativ as Boolean, sFile as String )
156     Dim sGraphicPath, sTestString, sDummy as String
157     Dim lsFile ( 200 ) as String
158     Dim i as Integer
159     '///check if the pathname of a linked file is relative or not ( only for func_LoadSaveGeneral_2 )
160     sGraphicPath = ( "/share/gallery/photos/desert1.jpg" )
161     ListRead ( lsFile(), sFile )
163     for i=1 to ListCount ( lsFile() )
165         if Instr( lsFile(i), "IMG SRC" ) <> 0 then
166             sTestString = lsFile(i)
167             i=1000
168         end if
170     next i
172     if bRelativ = TRUE then
174         if Instr( sTestString, "../.." )      = 0  then
175             Warnlog "Bug => The path is not relativ!"
176         endif
178         if Instr( sTestString, "file:///" )   <> 0 then
179             Warnlog "Bug => The relativ path contains 'file:///'"
180         endif
182     else
183         if Instr( sTestString, "file:///" )   = 0  then
184             Warnlog "Bug => The path is relativ!"
185         endif
187         if Instr( sTestString, "../.." )      <> 0 then
188             Warnlog "Bug => The nonrelativ path ( file:/// ) is not correct. It contains '../..'!"
189         endif
191     end if
193     if Instr( sTestString, sGraphicPath ) = 0 then
194         Warnlog "Wrong path to file, the graphic-part in filename is not correct!"
195     endif
197 end function
199 '*******************************************************************************
201 sub DialogTestForViewOptions
203     FormatParagraph
204     '///Dialog test for view options
206     Kontext
207     active.SetPage TabEinzuegeUndAbstaende
208     Active.SetPage TabAusrichtungAbsatz
209     active.SetPage TabTextfluss
211     try
212         active.SetPage TabAsianTypography
213     catch
214     endcatch
216     active.SetPage TabNumerierungAbsatz
217     active.SetPage TabTabulator
218     active.SetPage TabInitialen
219     active.SetPage TabUmrandung
220     active.SetPage TabHintergrund
222     kontext "TabHintergrund"
223     TabHintergrund.Close
224     EditSearchAndReplace
226     Kontext "FindAndReplace"
227     FindAndReplace.Close
229 end sub
231 '*******************************************************************************
233 sub DialogTextForViewOptions_move
235     Dim xPos, yPos, xSize, ySize
236     '///Dialog test for view options
238     Kontext "NavigatorWriter"
240     if Not NavigatorWriter.Exists then
241         ViewNavigator
242     endif
244     Kontext "Navigator"
245     xPos = Navigator.GetPosX
246     yPos = Navigator.GetPosY
247     xSize = Navigator.GetSizeX
248     ySize = Navigator.GetSizeY
249     Navigator.Move 10, 10
250     Sleep 1
251     Navigator.Move 50, 50
252     Sleep 1
253     Navigator.Size 200, 150
254     Sleep 1
255     Navigator.Size 150, 80
256     Sleep 1
257     Navigator.Size xSize, ySize
258     Sleep 1
259     Navigator.Move xPos, yPos
260     Sleep 1
261     Navigator.Close
263 end sub
265 '*******************************************************************************
267 sub MouseTestForViewOptions
269     '///mouse test for view options
271     Kontext "DocumentWriter"
272     DocumentWriter.MouseMove( 50, 50 )
273     DocumentWriter.OpenContextMenu()
274     Sleep( 1 )
276     Kontext "DocumentWriter"
277     DocumentWriter.MouseMove 50, 70
278     hMenuClose()
280 end sub
282 '*******************************************************************************
284 sub Make3D
286     '///test with 3D-objects when 3D-options are changed ( view page )
287     gApplication = "IMPRESS"
288     call hNewDocument()
289     WL_SD_Wuerfel
290     Sleep 1
292     Kontext "Documentimpress"
293     DocumentImpress.MouseDown 50, 50
294     DocumentImpress.MouseMove 30, 60
295     DocumentImpress.MouseUp 30, 60
296     Sleep 3
297     call hCloseDocument()
298     gApplication = "WRITER"
300 end sub
302 '*******************************************************************************
304 sub hResetAutosave()
305     ' this sub resets the autosave feature to 15 minutes with confirmation and
306     ' disables the feature entirely afterwards.
307     printlog( " * Resetting autosave feature to defaults" )
308     ToolsOptions
309     hToolsOptions( "LoadSave" , "General" )
310     AutomatischSpeichern.check
311     Minuten.setText( "15" )
312     AutomatischSpeichern.unCheck
314     Kontext "ExtrasOptionenDlg"
315     ExtrasOptionenDlg.OK
316 end sub
318 '*******************************************************************************
320 sub DeleteColor( cColorName as String )
321     'Deletes a color by name. The color is selected in the listbox
322     'and should - if it exists - be visible in the entryfield above the list.
323     'If this is not the case the color probably not exists and thus
324     'cannot be deleted.
325     'Remember i18n, only use this sub for colors you created yourself!
326     dim iItems as Integer     'Number of listed colors
327     dim i as Integer          'counter
328     dim bExists as Boolean    'TRUE if color has been successfully deleted
329     dim iPos as Integer       'Position of the deleted color
330     dim sColor as string
332     printlog "DeleteColor:: - Trying to delete color: '" + cColorName + "'"
333     Kontext "TabFarben"
334     bExists = FALSE
335     iItems = Farbe.getItemCount
336     i = 0
337     while ((i<iItems) AND (NOT bExists))
338         sColor = Farbe.getItemText(i+1)
339         if (sColor = cColorName) then
340             Loeschen.Click
341             Kontext "Active"
342             if Active.Exists then
343                 printlog active.getText
344                 Active.Yes
345             else
346                 qaErrorlog "No warning about deleting the color."
347             endif
348             printlog " - successfully deleted color @ " + (i+1) + "/" + iItems
349             bExists = TRUE
350         else
351             inc (i)
352         endif
353 '        if FarbName.getText = cColorName then
354     wend
355     iPos = i+1
357     if bExists then
358         'The userdefined colors usually are appended to the list. If they are
359         'somewhere else this might be a bug.
360         if iItems <> iPos then
361             warnlog  "   The color was not located at the end of the list."
362             printlog "   The Order of the list might be corrupted"
363         end if
364     else
365         'Inform that the color did not exist. This usually is perfectly ok.
366         printlog "   (The color was not deleted, it was not found)"
367     endif
368 end sub
370 '*******************************************************************************
372 sub modifyColorRGB_PGUP( iColor as Integer )
373     'The current color's values are set to maximum (255) for RGB
374     printlog( "modifyColorRGB_PGUP:: - change the color by pressing PAGE UP in RGB listboxes." )
375     
376     Kontext "TabFarben"
377     Farbe.Select(iColor)
378     R.TypeKeys("<PageUp>")
379     G.TypeKeys("<PageUp>")
380     B.TypeKeys("<PageUp>")
381     printlog("modifyColorRGB_PGUP:: Press 'modify'")
382     Aendern.Click()
383     Sleep (1)
384 end sub
386 '*******************************************************************************
388 sub createNewColor( aColor() as String )
389     ' INPUT : array: (1): Name; (2): Red value; (3): Green value; (4): Blue value
390     ' OUTPUT: 
391     'The desired color is selected by name and created.
392     'If it already exists, there is a problem
393     printlog( "createNewColor:: Adding a color to the list: '" + aColor(1) + "'"
394     Kontext "TabFarben"
395     FarbName.setText(aColor(1))
396     R.SetText(aColor(2))
397     G.SetText(aColor(3))
398     B.SetText(aColor(4))
399     Sleep(1)
400     Hinzufuegen.Click
401     Sleep(1)
402     
403     Kontext "DuplicateNameWarning"
404     if DuplicateNameWarning.Exists then
405         warnlog "createNewColor:: Color already exists."
406         DuplicateNameWarning.OK
407         Kontext "NameDlg"
408         if NameDlg.Exists then
409             printlog "createNewColor:: Naming dialog shown. Good, cancelling"
410             NameDlg.Cancel
411         else
412             warnlog "createNewColor:: Naming dialog didn't came up."
413         end if
414     else
415         printlog "createNewColor:: New color has been created"
416     end if
417 end sub
419 '*******************************************************************************
421 sub getColorRGB( aColor() as String )
422     ' INPUT : array with index 1-4 that will get deleted
423     ' OUTPUT: array: (1): Name; (2): Red value; (3): Green value; (4): Blue value
424     'A RGB color always has four attributes:
425     'The name and the three RGB values (0...255)
426     printlog( "GetColorRGB:: Determining the current color" )
427     FarbModell.Select(1)
428     
429     aColor(1) = FarbName.GetText()
430     aColor(2) = R.GetText()
431     aColor(3) = G.GetText()
432     aColor(4) = B.GetText()
433     
434     printlog( "GetColorRGB:: N = " & aColor(1) )
435     printlog( "GetColorRGB:: R = " & aColor(2) )
436     printlog( "GetColorRGB:: G = " & aColor(3) )
437     printlog( "GetColorRGB:: B = " & aColor(4) )
438 end sub
440 '*******************************************************************************
442 sub compareTwoColorsRGB( aColor() as String )
443     ' INPUT : array: (1): Name; (2): Red value; (3): Green value; (4): Blue value
444     '         and a selected color
445     ' OUTPUT: 
446     'Comparision of two colors. Tested values are:
447     'Name and three RGB values
448     'aColor is the expected value, bColor is the current color
449     dim i as Integer
450     dim bColor(4) as String
452     printlog( "compareTwoColorsRGB:: Compare saved default color with the current" )
453     call getColorRGB(bColor()) 
454     for i = 1 to 4
455         if aColor(i) <> bColor(i) then
456             warnlog( "compareTwoColorsRGB:: " & "(" & i & ") Expected: '" _
457             & aColor( i ) & "' found: '" & bColor(i) & "'" )
458         else
459             printlog( "compareTwoColorsRGB:: " & "(" & i & ") OK" )
460         endif
461     next i
462 end sub
464 '*******************************************************************************
466 sub ModifyColorRGB( aColor() as String )
467     'A RGB color always has four attributes:
468     'The name and the three RGB values (0...255)
470     Kontext "TabFarben"
471     FarbName.SetText( aColor( 1 ) )
472     FarbModell.Select( 1 )
473     R.SetText( aColor( 2 ) )
474     G.SetText( aColor( 3 ) )
475     B.SetText( aColor( 4 ) )
476     Aendern.Click
477 end sub