merge the formfield patch from ooo-build
[ooovba.git] / testautomation / framework / required / includes / printer_administration.inc
blob84cfb83a6686c8b55b1ea43dd7364933459438b7
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: printer_administration.inc,v $
11 '* $Revision: 1.1 $
13 '* last change: $Author: jsi $ $Date: 2008-06-16 12:19:03 $
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 : joerg.skottke@sun.com
36 '* short description : updatetest for the printer configuration
38 '\******************************************************************************
40 testcase t_updt_spadmin
42     '///<h1>Update test for the SpAdmin printer configuration tool</h1>
43     '///<ul>
45     '///+<li>Do not test on eComStation</li> 
46     if ( gtSysName = "eComStation" ) then
47         printlog( "No SpAdmin for eComStation" )
48         goto endsub
49     endif
50     
51     '///+<li>Do not test on MacOS X</li>
52     if ( lcase(gPlatform) = "osx") then
53         printlog( "No SPAdmin on MacOS X" )
54         goto endsub
55     endif
56     
57     '///+<li>Do not test on Windows</li>   
58     if ( gPlatGroup = "w95" ) then
59         printlog( "No SPAdmin on Windows" )
60         goto endsub
61     endif
63     const CPRINTER = "tt-testprinter"
64     dim irc as integer
65     dim brc as boolean
66    
67     '///+<li>Shut down the office completely</li>
68     hShutdownOffice()
69    
70     '///+<li>Open SpAdmin</li>
71     brc = hOpenSpAdmin()
72     if ( brc ) then
73     
74         '///+<li>wait for the spadmin to open, on failure we end the test</li>
75         brc = hWaitForSpAdmin()
76         if ( not brc ) then
77             warnlog( "SpAdmin is not open, the test cannot continue" )
78             goto endsub
79         endif        
80    
81         '///+<li>If a printer queue was left over from prior run: Delete ist</li>
82         irc = hDelPrinter( CPRINTER )
83         select case irc
84         case 0 : printlog( "Maybe printer was left over by prior run?" )
85         case 3 : printlog( "OK, printer does not exist" )
86         end select
87       
88         '///+<li>wait for the spadmin to open, on failure we end the test</li>
89         brc = hWaitForSpAdmin()
90         if ( not brc ) then
91             warnlog( "SpAdmin is not open, the test cannot continue" )
92             goto endsub
93         endif
94         
95         '///+<li>Create a new fax device</li>
96         call TestNewPrinter( CPRINTER )
97       
98         ' wait for the spadmin to open, on failure we end the test
99         brc = hWaitForSpAdmin()
100         if ( not brc ) then
101             warnlog( "SpAdmin is not open, the test cannot continue" )
102             goto endsub
103         endif
104         
105         '///+<li>Walk through the properties of the new fax device</li>
106         call TestProperties( CPRINTER )        
107       
108         ' wait for the spadmin to open, on failure we end the test
109         brc = hWaitForSpAdmin()
110         if ( not brc ) then
111             warnlog( "SpAdmin is not open, the test cannot continue" )
112             goto endsub
113         endif
114         
115         '///+<li>Rename the fax device</li>
116         call TestRename( CPRINTER )
117         
118         ' wait for the spadmin to open, on failure we end the test
119         brc = hWaitForSpAdmin()
120         if ( not brc ) then
121             warnlog( "SpAdmin is not open, the test cannot continue" )
122             goto endsub
123         endif
125         '///+<li>Look at the font settings</li>
126         call TestFonts( CPRINTER )   
127         
128         ' wait for the spadmin to open, on failure we end the test
129         brc = hWaitForSpAdmin()
130         if ( not brc ) then
131             warnlog( "SpAdmin is not open, the test cannot continue" )
132             goto endsub
133         endif        
134          
135         
136         '///+<li>Delete the fax device</li>
137         irc = hDelPrinter( CPRINTER )
138         if ( irc <> 0 ) then
139             warnlog( "We created a Fax printer but it could not be deleted" )
140         endif
141         
142     endif
143     '///</ul>
144    
145 endcase
147 '*******************************************************************************
149 sub TestNewPrinter( cPrinter as string )
151     '///<h3>Update test for creation of a new device in SpAdmin</h3>
152     '///<i>Starting point: SpAdmin</i><br>
153     '///<u>Input</u>:
154     '///<ol>
155     '///+<li>Name of the device (string)</li>
156     '///</ol>
157     '///<u>Returns</u>:
158     '///<ol>
159     '///+<li>Nothing</li>
160     '///</ol>
161     '///<u>Description</u>:
162     '///<ul>
163     
165     dim iWait as integer
166     
167     '///+<li>Click to create a new printer</li>
168     printlog( " * New Printer" )
169     Kontext "SPAdmin"
170     PBNewPrinter.click()
171     waitslot
172     
173     '///+<li>Check to create a fax device</li>
174     printlog( "   * select 'Connect a Fax Device'" )
175     Kontext "TabPWDeviceSelector"
176     call dialogtest( TabPWDeviceSelector )
177     RBFax.check()
178     
179     '///+<li>Click the &quot;Next&quot; button</li>
180     printlog( "   * next ->" )
181     Kontext "SpPrinterWizard"
182     PBNext.click()
183     waitslot
184     
185     '///+<li>Keep the default settings on this page</li>
186     printlog( "   * accept the default driver (first entry)" )
187     Kontext "TabPWFaxDriverSelector"
188     call dialogtest( TabPWFaxDriverSelector )
189     
190     '///+<li>Click the &quot;Next&quot; button</li>
191     printlog( "   * next ->" )
192     Kontext "SpPrinterWizard"
193     PBNext.click()
194     waitslot
195     
196     '///+<li>Enter &quot;(PHONE)&quot; as queue</li>
197     printlog( "   * enter '(PHONE)' as queue" )
198     Kontext "TabPWQueueCommand"
199     call dialogtest( TabPWQueueCommand )
200     CBCommand.setText( """(PHONE)""" )
201     
202     '///+<li>Click the &quot;Next&quot; button</li>
203     printlog( "   * next ->" )
204     Kontext "SpPrinterWizard"
205     PBNext.click()
206     waitslot
207     
208     '///+<li>Enter a name for the fax printer</li>
209     printlog( "   * enter a name for the fax-printer" )
210     Kontext "TabPWPrinterName"
211     call dialogtest( TabPWPrinterName )
212     EFFaxName.setText( cPrinter )
213     waitslot( 2000 )
214     
215     '///+<li>Click the &quot;Finish&quot; button</li>
216     printlog( "   * Finish" )
217     for iWait = 1 to 3
218         try
219             Kontext "SpPrinterWizard"
220             SpPrinterWizard.ok()
221             iWait = 4 ' leave the loop
222         catch
223             printlog( "Waiting for dialog" )
224             sleep( 1 )
225             if ( iWait = 3 ) then
226                 qaerrorlog( "Could not click 'finish' on printerwizard" )
227             endif
228         endcatch
229     next iWait
230     
231     printlog( "" )
232     '///</ul>
233       
234 end sub
236 '*******************************************************************************
238 sub TestProperties( cPrinter as string )
240     '///<h3>Update test for the device properties in SpAdmin</h3>
241     '///<i>Starting point: SpAdmin</i><br>
242     '///<u>Input</u>:
243     '///<ol>
244     '///+<li>Name of the printer (string)</li>
245     '///</ol>
246     '///<u>Returns</u>:
247     '///<ol>
248     '///+<li>Nothing</li>
249     '///</ol>
250     '///<u>Description</u>:
251     '///<ul>
252     
254     dim iPrinterPos as integer
256     '///+<li>Find the printer in the list</li>
257     kontext "SpAdmin"
258     iPrinterPos = hGetPrinterPosition( CPRINTER , true )
259     
260     '///+<li>Select it</li>
261     LBPrinters.select( iPrinterPos )
262          
263     '///+<li>Click the properties-button</li>
264     PBProperties.click()
265     waitslot
266     printlog( " * Properties for the new fax device" )
267         
268     '///<ol>
269     '///+<li>Command-Page</li>
270     kontext 
271     active.setpage TabSPACommand
272       
273     kontext "TabSPACommand"
274     printlog( "   * Tab: Command" ) 
275     call dialogtest( TabSPACommand )
276          
277     '///+<li>Paper-Page</li>
278     kontext 
279     active.setpage TabSPAPaper
280       
281     kontext "TabSPAPaper"
282     printlog( "   * Tab: Paper" ) 
283     call dialogtest( TabSPAPaper )
284          
285     '///+<li>Device-Page</li>
286     kontext 
287     active.setpage TabSPADevice
288       
289     kontext "TabSPADevice"
290     printlog( "   * Tab: Device" ) 
291     call dialogtest( TabSPADevice )
292          
293     '///+<li>Fontreplacement-Page</li>
294     kontext 
295     active.setpage TabSPAFontReplacement
296       
297     kontext "TabSPAFontReplacement"
298     printlog( "   * Tab: FontReplacement" ) 
299     call dialogtest( TabSPAFontReplacement )
300        
301     '///+<li>Other-Page</li>
302     kontext 
303     active.setpage TabSPAOther
304       
305     kontext "TabSPAOther"
306     printlog( "   * Tab: Other" ) 
307     call dialogtest( TabSPAOther )
308          
309     '///</ol>
310     '///+<li>Cancel dialog</li>
311     printlog( "   * close Properties" )
312     TabSPAOther.cancel()
313     
314     printlog( "" )
315     '///</ul>
316       
317 end sub
319 '*******************************************************************************
321 sub TestRename( cPrinter as string )
323     '///<h3>Update test for the rename dialog in SpAdmin</h3>
324     '///<i>Starting point: SpAdmin</i><br>
325     '///<u>Input</u>:
326     '///<ol>
327     '///+<li>Name of the printer queue to rename (string)</li>
328     '///<ul>
329     '///+<li>The named queue must exist</li>
330     '///</ul>
331     '///</ol>
332     '///<u>Returns</u>:
333     '///<ol>
334     '///+<li>Nothing</li>
335     '///</ol>
336     '///<u>Description</u>:
337     '///<ul>
338     
340     '///+<li>Find the requested printer queue</li>
341     Kontext "SpAdmin"
342     LBPrinters.select( hGetPrinterPosition( CPRINTER , true ) )
343     waitslot
344       
345     '///+<li>Click to rename the queue</li>
346     printlog( " * Open 'Rename' dialog" )
347     PBRename.click()
348     waitslot
349       
350     '///+<li>Cancel the rename dialog</li>
351     Kontext "SPRenamePrinterDLG"
352     call dialogtest( SPRenamePrinterDLG )
353     printlog( "   * Close 'Rename' dialog" )
354     SPRenamePrinterDLG.cancel()
355     
356     printlog( "" )
357     '///</ul>
359 end sub
361 '*******************************************************************************
363 sub TestFonts( cPrinter as string )
365     '///<h3>Update test for SpAdmin printer font replacement</h3>
366     '///<i>Starting point: SpAdmin</i><br>
367     '///<u>Input</u>:
368     '///<ol>
369     '///+<li>Name of the printer queue (string)</li>
370     '///<ul>
371     '///+<li>The queue must exist</li>
372     '///</ul>
373     '///</ol>
374     '///<u>Returns</u>:
375     '///<ol>
376     '///+<li>Nothing</li>
377     '///</ol>
378     '///<u>Description</u>:
379     '///<ul>
380     
381     '///+<li>Press the Fonts-button - the fonts dialog opens</li>
382     printlog( " * Open 'Fonts...' dialog" )
383     
384     Kontext "SpAdmin"
385     if ( PBFonts.isEnabled() ) then
386         PBFonts.click()
387         waitslot
388           
389         printlog( "   * Test the font-dialog" )
390         Kontext "SPFontNameDLG"
391         call dialogtest( SPFontNameDLG )
392           
393         '///+<li>Click to add fonts - import dialog opens</li>
394         printlog( "   * Press 'Add ...'" )
395         PBAdd.click()
396         waitslot
397           
398         '///+<li>Cancel the font-import dialog</li>
399         printlog( "   * Test the import-dialog" )
400         kontext "SPFontImportDLG"
401         call dialogtest( SPFontImportDLG )
402           
403         printlog( "   * close import dialog" )
404         SPFontImportDLG.cancel()
405           
406         '///+<li>Close the Font-dialog with ok</li>
407         Kontext "SPFontNameDLG"
408         printlog( "   * close fonts-dialog" )
409         SPFontNameDLG.ok()
410         waitslot
411     else
412         printlog( "Fonts... not available, skipping." )
413     endif
414         
415     '///</ul>
417 end sub