merge the formfield patch from ooo-build
[ooovba.git] / testautomation / framework / optional / includes / filedlg_autocomplete.inc
blob76fa8769acf248792d5c6f3bfa2a1f1f1d4e8cbc
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: filedlg_autocomplete.inc,v $
11 '* $Revision: 1.1 $
13 '* last change: $Author: jsi $ $Date: 2008-06-16 12:18:14 $
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 : Autocompletion feature
38 '\******************************************************************************
40 testcase tAutocomplete
42     '///<h1>Autocompletion feature</h1>
44     '///<u><pre>Synopsis</pre></u>Test the autocompletion feature, filename completion<br>
45     '///<u><pre>Specification document</pre></u>No specification document available<br>
46     '///<u><pre>Files used</pre></u>
47     '///+ (User-Layer)/user/work/autocomplete<br>
48     '///+ (User-Layer)/user/work/autocomplete/autocomplete_a.odt</br>
49     '///+ (User-Layer)/user/work/autocomplete/autocomplete_b.odt</br>
50     '///+ (User-Layer)/user/work/autocomplete/autocomplete_bb.odt</br>    
51     
52     ' IMPORTANT NOTE: Autocompletion is asynchronous. This means that no rule 
53     '                 exists when exactly it is going to strike. If you are
54     '                 using a networked environment you have to make sure that
55     '                 all network ressources deliver a decent performance as 
56     '                 this seriously influences the speed of the autocompletion.
57         
58     dim cBasePath as string
59         
60     const WORKDIR = "autocomplete"
61         
62     ' These are the files we create in the users homedirectory
63     dim aWorkFile( 3 ) as string
64         aWorkFile( 1 ) = "autocomplete_a.odt"
65         aWorkFile( 2 ) = "autocomplete_b.odt"
66         aWorkFile( 3 ) = "autocomplete_bb.odt"
67         
68     ' These are the full paths to the files
69     dim aFullPath( 3 ) as string
70         
71     ' These are the wildcarded filter strings
72     dim aWildCard( 3 )
73         aWildCard( 1 ) = "autocomplete_?.odt"
74         aWildCard( 2 ) = "autocomplete_b?.odt"
75         aWildCard( 3 ) = "autocomplete_*.odt"
76                 
77         
78     dim cCurrentPath as string
79     dim cAutocomplete as string
80     
81     dim iCurrentDocument as integer
82             
83     dim cLeft as string
84     dim iLeft as integer
85         iLeft = 4
86         
87     dim cEFString as string
88     
89     dim slot
90         
91     '///<u><pre>Test case specification</pre></u>
92     '///<ul>
93     '///+<li>Init: Make sure we only have no open documents</li>
94     do while( getDocumentCount > 0 )
95         call hCloseDocument()
96     loop
97     
98     '///+<li>Init: Get the current workpath</li>
99     cBasePath = hGetWorkPath()
100     aFullPath( 1 ) = cBasePath & WORKDIR & gPathSigne & aWorkFile( 1 )
101     aFullPath( 2 ) = cBasePath & WORKDIR & gPathSigne & aWorkFile( 2 )
102     aFullPath( 3 ) = cBasePath & WORKDIR & gPathSigne & aWorkFile( 3 )
103     hDeleteFile( aFullPath( 1 ) )
104     hDeleteFile( aFullPath( 2 ) )
105     hDeleteFile( aFullPath( 3 ) )
106     if ( dir( cBasePath & WORKDIR ) <> "" ) then
107         rmdir( cBasePath & WORKDIR )
108     endif
109         
110     '///+<li>Init: Create a directory called &quot;autocomplete&quot; in the user directory</li>
111     mkdir( cBasePath & WORKDIR )
112     if ( dir( cBasePath & WORKDIR ) = "" ) then
113         warnlog( "Failed to create work directory, aborting" )
114         goto endsub
115     endif
116     
117     '///+<li>Init: Create three documents within the workdir - autocomplete_a.odt/_b.odt/_bb.odt</li>
118     gApplication = "WRITER"
119     for iCurrentDocument = 1 to 3
120         call hNewDocument()
121         kontext "DocumentWriter"
122         DocumentWriter.typeKeys( aWorkFile( iCurrentDocument ) )
123         hFileSaveAs( aFullPath( iCurrentDocument ) )
124         FileClose
125     next iCurrentDocument
126     
127     
128     '///+<li>
129     '///+<li>Open the File Open dialog</li>
130     printlog( "open the File Open dialog" )
131     FileOpen
132     
133     '///+<li>Test case 1: Workdirectory and folder autocompletion</li>
134     '///<ul>
135     '///+<li>Go to the work directory using the &quot;Home&quot; button</li>
136     kontext "OeffnenDlg"
137     Standard.click()
138     
139     '///+<li>Enter the first 4 characters of the testdirectory</li>
140     cLeft     = left( WORKDIR, iLeft )
141     cEFString = convertpath( WORKDIR & "/" )
142     printlog( "Type """ & cLeft & """ into the filename entryfield" )
143     DateiName.typeKeys( cLeft )
144     
145     '///+<li>Press the &quot;END&quot; key</li>
146     printlog( "Press the <END> key and wait for two seconds" )
147     DateiName.typeKeys( "<END>" )
148     sleep( 1 ) ' Required, do not remove
149     
150     '///+<li>Verify that the &quot;autocomplete&quot; dir has been autocompleted</li>
151     cAutocomplete = DateiName.getSelText()
152     if ( cEFString = cAutocomplete ) then
153         printlog( "Autocompletion succeeded for workdirectory" )
154     else
155         warnlog( "Autocompletion failed" )
156         printlog( "Expected: " & cRight )
157         printlog( "Found...: " & cAutocomplete )
158     endif
159     
160     '///+<li>Press return on the FileOpen dialog</li>
161     printlog( "Press <RETURN> on the file open dialog -> Open"
162     kontext "OeffnenDlg"
163     OeffnenDlg.typeKeys( "<RETURN>" )
164     '///</ul>
165     
166     '///+<li>Test case 2: Filename autocompletion/selection</li>
167     '///<ul>
168     '///+<li>Enter the string &quot;auto&quot; into the entryfield</li>
169     printlog( "Type "" auto "" into the entryfield" )
170     cLeft = left( aWorkFile( 1 ), 4 )
171     DateiName.typeKeys( cLeft )
172     sleep( 1 )
173     
174     '///+<li>Verify that the filename is expanded to autocomplete_a.odt</li>
175     cAutocomplete = DateiName.getSelText()
176     if ( aWorkFile( 1 ) = cAutocomplete ) then
177         printlog( "Autocompletion succeeded for first file" )
178     else
179         warnlog( "Autocompletion failed" )
180         printlog( "Expected: " & cRight )
181         printlog( "Found...: " & cAutocomplete )
182     endif   
184     '///+<li>Press the down-key in the entry field</li>
185     printlog( "Press down key in entry field" )
186     DateiName.typeKeys( "<DOWN>" ) 
187     sleep( 1 )
188     
189     '///+<li>Verify that the filename is expanded to autocomplete_b.odt</li>
190     cAutocomplete = DateiName.getSelText()
191     if ( aWorkFile( 2 ) = cAutocomplete ) then
192         printlog( "Autocompletion succeeded for second file" )
193     else
194         warnlog( "Autocompletion failed" )
195         printlog( "Expected: " & cRight )
196         printlog( "Found...: " & cAutocomplete )
197     endif
198     '///</ul>
200     '///+<li>Test case 3: Wildcards ? and * (click &quot;Open&quot; to apply)</li>
201     '///<ul>
202     '///+<li>Enter autocomplete_?.odt -> 2 matches expected</li>
203     printlog( "Enter autocomplete_?.odt -> 2 matches expected" )
204     Dateiname.setText( aWildCard( 1 ) )
205     Oeffnen.click()
206     if ( DateiAuswahl.getItemCount() <> 2 ) then
207         warnlog( "Incorrect number of files displayed, 2 expected" )
208     else
209         printlog( "Correct number of files listed in files-list" )
210     endif
211     
212     '///+<li>Enter autocomplete_b?.odt -> 1 match expected</li>
213     printlog( "Enter autocomplete_b?.odt -> 1 match expected" )
214     Dateiname.setText( aWildCard( 2 ) )
215     Oeffnen.click()
216     if ( DateiAuswahl.getItemCount() <> 1 ) then
217         warnlog( "Incorrect number of files displayed, 1 expected" )
218     else
219         printlog( "Correct number of files listed in files-list" )
220     endif
221     
222     '///+<li>Enter autocomplete_*.odt -> 3 matches expected</li>
223     printlog( "Enter autocomplete_*.odt -> 3 matches expected" )
224     Dateiname.setText( aWildCard( 3 ) )
225     Oeffnen.click()
226     if ( DateiAuswahl.getItemCount() <> 3 ) then
227         warnlog( "Incorrect number of files displayed, 3 expected" )
228     else
229         printlog( "Correct number of files listed in files-list" )
230     endif
231     '///</ul>
232     
233     
234     '///+<li>Close File Open dialog</li>
235     printlog( "Close File Open dialog" )
236     kontext "OeffnenDlg"
237     OeffnenDlg.cancel()
238     
239     '///+<li>Cleanup: Remove files, directories</li>
240     hDeleteFile( aFullPath( 1 ) )
241     hDeleteFile( aFullPath( 2 ) )
242     hDeleteFile( aFullPath( 3 ) )
243     rmdir( cBasePath & WORKDIR )
244     '///</ul>
246 endcase