update dev300-m58
[ooovba.git] / testautomation / graphics / optional / includes / global / g_ole.inc
blob407fd0d368caabe2408597abfec2c03cffc1cbbd
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: g_ole.inc,v $
11 '* $Revision: 1.1 $
13 '* last change: $Author: jsi $ $Date: 2008-06-16 10:42:40 $
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 : wolfram.garten@sun.com
36 '* short description: includefile for Ole-testing
38 '**************************************************************************************
39 ' #1 tOLE_Copy
40 ' #1 tOLE_SaveLoad
41 ' #1 tiOpenOLECrash
42 '\*************************************************************************************
44 testcase tOLE_Copy
45     qaerrorlog "not running due to reconstruction"
46     goto endsub
47     printlog "Test to see if three different OLEs can be copied and identified correctly."
48     
49     dim writerfilename1 as string
50     writerfilename1 = ConvertPath (gTesttoolPath + "graphics\required\input\oletest.odg")
51     
52     printlog "Open draw-file" & writerfilename1
53     FileOpen
54     Kontext "OeffnenDlg"
55     sleep 1
56     Dateiname.SetText (writerfilename1)
57     Oeffnen.Click
58     Sleep 3
59     
60     printlog "When messagebox about Update all links shows up - press yes."
61     kontext "Messagebox"
62     if Messagebox.exists then
63     Messagebox.Yes
64     endif
65     
66     sleep 3
67     gApplication = "DRAW"
68     printlog "Select first object. Use EditCopy to copy it to the clipboard"
69     sleep 1
70     kontext "DocumentDraw"
71     DocumentDraw.mousedown (10,10)
72     DocumentDraw.mouseup (10,10)
73     sleep 1
74     DocumentDraw.Typekeys "<TAB>"
75     EditCopy
76     
77     printlog "Close document. Open new Impress-Document. Paste the OLE-Object."
78     Call hCloseDocument
79     gApplication = "IMPRESS"
80     Call hNewDocument
81     EditPaste
82     
83     printlog "Select object and check via the Context-menu what it has been opened as."
84     sleep 1
85     Kontext "DocumentImpress"
86     hTypekeys "<MOD1> A"
87     hTypekeys "<RETURN>"
88     hOpenContextMenu
89     
90     printlog "Count the number of entries. If 5 (including a menuseparator), then its a spreadsheet"
91     if MenuGetItemCount <> 5 then
92         Warnlog "This doesn't seem to be recognized as a Metafile. It has " + MenuGetItemCount + " entries."
93     end if
95     printlog "Close Context menu. Then check if a Edit-line for the Cells is visible."
96     sleep 3
97     MenuSelect (1)  'Default
98     
99     Kontext "RechenleisteCalc"
100     if RechenleisteCalc.Exists then
101         Printlog "This is a spreadsheet-Document. Good"
102     endif
103     
104     Kontext "DocumentImpress"
105     printlog "Click outside the OLE to deactivate it. Then close the Document "
106     DocumentImpress.mousedown (10,10)
107     DocumentImpress.mouseup (10,10)
108     sleep 3
109     Call hCloseDocument
110     
111     printlog "Open Draw-file "
112     FileOpen
113     Kontext "OeffnenDlg"
114     sleep 1
115     Dateiname.SetText (writerfilename1)
116     Oeffnen.Click
117     Sleep 3
118     
119     printlog " When messagebox about Update all links shows up - press yes."
120     kontext "Messagebox"
121     if Messagebox.exists then
122         Messagebox.Yes
123     endif
124     sleep 3
125     
126     printlog "Select second object. Use EditCopy to copy it to the clipboard."
127     gApplication = "DRAW"
128     sleep 1
129     kontext "DocumentDraw"
130     DocumentDraw.mousedown (10,10)
131     DocumentDraw.mouseup (10,10)
132     sleep 1
133     DocumentDraw.Typekeys "<TAB><TAB>"
134     EditCopy
135     
136     printlog "Close document. Open new Impress-Document. Paste the OLE-Object."
137     sleep 1
138     DocumentDraw.mousedown (10,10)
139     DocumentDraw.mouseup (10,10)
140     sleep 1
141     Call hCloseDocument
142     
143     gApplication = "IMPRESS"
144     Call hNewDocument
145     EditPaste
146     
147     printlog "Select the object, and check via the Context-menu what it has been opened as."
148     sleep 1
149     Kontext "DocumentImpress"
150     hTypekeys "<MOD1> A"
151     hTypekeys "<RETURN>"
152     hOpenContextMenu
154     printlog "Count the number of entries. If 5 (including a menuseparator), then its a spreadsheet"
155     if MenuGetItemCount <> 5 then
156         Warnlog "This doesn't seem to be recognized as a Metafile. It has " + MenuGetItemCount + " entries."
157     end if
158     
159     printlog "Close Context menu. Then check if a Edit-line for the Cells is visible."
160     sleep 3
161     MenuSelect (1)  'Default
162     
163     Kontext "RechenleisteCalc"
164     if RechenleisteCalc.Exists then
165         Printlog "This is a spreadsheet-Document. Good"
166     endif
167     
168     kontext "DocumentImpress"
169     sleep 1
170     DocumentImpress.mousedown (10,10)
171     DocumentImpress.mouseup (10,10)
172     sleep 1
173     
174     printlog "Close document"
175     Call hCloseDocument
176     
177     printlog "Open draw-file"
178     FileOpen
179     Kontext "OeffnenDlg"
180     sleep 1
181     Dateiname.SetText (writerfilename1)
182     Oeffnen.Click
183     Sleep 3
184     kontext "Messagebox"
185     printlog "When messagebox about Update all links shows up - press yes."
186     if Messagebox.exists then
187         Messagebox.Yes
188     endif
189     sleep 3
190     
191     printlog "Select third object. Use EditCopy to copy it to the clipboard."
192     gApplication = "DRAW"
193     sleep 1
194     kontext "DocumentDraw"
195     DocumentDraw.mousedown (10,10)
196     DocumentDraw.mouseup (10,10)
197     sleep 1
198     DocumentDraw.Typekeys "<TAB><TAB><TAB>"
199     EditCopy
200     
201     printlog "Close the Document. Open new Impress-Document. Paste the OLE-Object."
202     sleep 1
203     DocumentDraw.mousedown (10,10)
204     DocumentDraw.mouseup (10,10)
205     sleep 1
206     Call hCloseDocument
208     gApplication = "IMPRESS"
209     Call hNewDocument
210     EditPaste
211     
212     printlog "Select the object, and check via the Context-menu what it has been opened as."
213     Kontext "DocumentImpress"
214     hTypekeys "<MOD1> A"
215     hTypekeys "<RETURN>"
216     hOpenContextMenu
217     
218     printlog "Count the number of entries. If 5 (including a menuseparator), then its a spreadsheet"
219     if MenuGetItemCount <> 5 then
220         Warnlog "This doesn't seem to be recognized as a Metafile. It has " + MenuGetItemCount + " entries."
221     end if
222     
223     printlog "Close Context menu. Then check if a Edit-line for the Cells is visible."
224     sleep 3
225     MenuSelect (1)  'Default
226     
227     Kontext "RechenleisteCalc"
228     if RechenleisteCalc.Exists then
229         Printlog "This is a spreadsheet-Document. Good"
230     endif
231     
232     printlog "Close Context menu. Then close the Document"
233     Call hCloseDocument
234     
235 endcase 'tOLE_Copy
236 '-----------------------------------------------------------------------------------------------------------'
237 testcase tOLE_SaveLoad
239     printlog "Test to see if an OLE can be inserted, saved and loaded correctly."
240     dim filename as string
241     dim filetype as string
242     dim filetype2 as string
243     
244     if (gApplication = "IMPRESS") then 
245         ExtensionString = "odp"
246     else
247         ExtensionString = "odg"
248     end if
249     setClipboard(" ")
250     filename = ConvertPath (gOfficePath + "user\work\oletest." & ExtensionString)
251     printlog "Create a new document."
252     Call hNewDocument
253     printlog "Insert->Object->OLE Object..."
254     InsertObjectOLEObject
255     Kontext "OLEObjektInsert"
256     
257     printlog "Choose create new. Select Writer."
258     Objekttyp.Select 5
259     
260     printlog "Click OK to close dialog and insert OLE."
261     OLEObjektInsert.OK
262     
263     printlog "Deselect object."
264     sleep 1
265     kontext "DocumentImpress"
266     DocumentImpress.mousedown (10,10)
267     DocumentImpress.mouseup (10,10)
268     sleep 1
269     printlog "Select object."
270     hTypekeys "<MOD1 A>"
271     hOpenContextMenu
272     printlog "Count number of context menu entries. If 20 (including menuseparators), then its a OLE."
273     if MenuGetItemCount <> 20 then
274         Warnlog "This doesnt seem to be a Writer-OLE. It has " + MenuGetItemCount + " entries."
275     else
276         printlog "Right number of context menu entries for OLE."
277     end if
278     printlog "Closing Context Menu"
279     MenuSelect (0)
280     printlog "Save the File."
281     FileSaveAs
282     sleep 1
283     Kontext "SpeichernDlg"
284     Dateiname.Settext (filename)
285     printlog "Saving as: " & filename
286     Speichern.Click
287     
288     printlog "If the file already exists - press yes to overwrite it."
289     Sleep 3
290     kontext "Messagebox"
291     if Messagebox.exists then
292         Messagebox.Yes
293     endif
294     Sleep 3
295    
296     printlog "Getting type of OLE from save as dialog."
297     hOpenContextMenu
298     hMenuSelectNr(-1)
299     Kontext "SpeichernDlg"
300     filetype = Dateityp.GetSelText (1)
301     printlog "Filetype is " & Dateityp.GetSelText (1)
302     SpeichernDlg.Cancel
304     printlog "Close Document."
305     Call hCloseDocument
306     Call hNewDocument
308     Kontext "DocumentImpress"
309     printlog "Open saved file."
310     Call hFileOpen (filename)
311     sleep 1
312     hTypekeys "<MOD1 A>"
313     hOpenContextMenu                               
314     hMenuSelectNr(-1)
315     Kontext "SpeichernDlg"
316     filetype2 = Dateityp.GetSelText
317     SpeichernDlg.Cancel
318     printlog "Check if it has the same number of context menu entries."
319     Printlog "The OLE created was a: " + filetype + " and the one which was loaded was a: " + filetype2
320     if ((left(right(filetype,4),3))) <> ((left(right(filetype2,4),3))) then
321         warnlog "The first was a: " + ((left(right(filetype,4),3))) + " and second was a: " + ((left(right(filetype2,4),3)))
322     else
323         printlog "Good: the first one was a: " + ((left(right(filetype,4),3))) + "-file, and second one was a: " + ((left(right(filetype2,4),3))) + "-file."
324     endif
325     printlog "Closing document."
326     Call hCloseDocument
328     'FHA TODO
329     'testcase tOLE_DragDrop
330     printlog " Create OLE, drag n drop within the document. "
331     printlog " If Impress, drag and drop from document to another slide. "
332     'endcase 'tOLE_DragDrop
334 endcase ' tOLE_Save
335 '-------------------------------------------------------------------------------
336 testcase tiOpenOLECrash
338     dim sFileodp as string
339     dim oFile as string
340     dim i as integer
341     printlog "Testing for bug nr: i70019"
342     
343     printlog "Open Application"
344     Call hNewDocument
345     sleep 1
346     printlog "1. Open file: generic_de.ppt"
347     FileOpen
348     sleep 1
349     Kontext "OeffnenDlg"
350     printlog " Use file: graphics\\optional\\input\\generic_de.ppt "
351     oFile = ConvertPath (gTesttoolPath + "graphics\required\input\generic_de.ppt")
352     Printlog "file:    '" + oFile + "'"
353     Dateiname.SetText (oFile)
354     printlog "2. Save this document as an *.odp -file."
355     Oeffnen.Click
356     kontext "DocumentImpress"
357     i = 0
358     do while (i < 20)
359         try
360             ApplicationBusy
361         catch
362             sleep (1)
363             i = i + 1
364         endcatch
365     loop
366     if DocumentImpress.StatusIsProgress AND i > 19 then
367         warnlog "   Took over 20 seconds to load the document Document. Stalled?"
368     endif
369     
370     FileSaveAs
371     Kontext "SpeichernDlg"
372     sFileodp = (ConvertPath(gOfficePath + "user\work\generic_de"))
373     Dateiname.SetText (sFileodp)
374     Dateityp.Select (1)
375     Speichern.Click
376     Kontext "Messagebox"
377     if Messagebox.Exists(2) then
378         Messagebox.Yes
379         Kontext "AlienWarning"
380     if AlienWarning.Exists(2) then
381         Warnlog "Should not be any alienwarning when saving in our own format!"
382         AlienWarning.OK
383     end if
384     printlog "Saved as: " + sFileodp
385     end if
386     Sleep 3
387     kontext "DocumentImpress"
388     printlog "3. Close Impress."
389     Call hCloseDocument
390     
391     printlog "4.Reopen the *.odp file again"
392     FileOpen
393     Kontext "OeffnenDlg"
394     Dateiname.SetText (sFileodp + ".odp")
395     Oeffnen.Click
396     kontext
397     if Active.exists (5) then
398         Printlog "ACTIVE: "+active.gettext
399         Active.ok
400         Warnlog "failed to open file? :-("
401     end if
402     
403     i = 0
404     do while (i < 20)
405         try
406             ApplicationBusy
407         catch
408             sleep (1)
409             i = i + 1
410         endcatch
411     loop
412     if DocumentImpress.StatusIsProgress AND i > 19 then
413     warnlog "Took over 20 seconds to load the document Document. Stalled?"
414     endif
415     
416     printlog "5. Right-click on the second slide and click on New slide. "
417     Kontext "Slides"
418     SlidesControl.TypeKeys "<PAGEDOWN>" 'Goto second slide. (and get the focus right)
419     SlidesControl.TypeKeys "<SHIFT F10>"  'OpenContextMenu (True)  'Open Context-menu
420     hMenuSelectNr (1) 'New Slide
422     printlog "6. Change the title-(the text was F�r den TCM-Test, but this should irrelevant... ;) )."
423     hTypeKeys "<TAB>" 'To select the title.
424     hTypeKeys "Fuer den TCM-Test" 'To enter text
425     printlog " 7. Clicked two times on the Click twice to insert object "
426     hTypeKeys "<ESCAPE>"
427     gMouseClick 1,1
428     hTypeKeys "<TAB><TAB>" '(to select the second object)
429     hTypeKeys "<RETURN>"
430     sleep (2)
431     
432     printlog "8. Choose OpenOffice.org 2.0 Formular"
433     Kontext "OLEObjektInsert"
434     Objekttyp.Select (3)
435     sleep (2)
436     PrintLog "    Object: " + Objekttyp.GetSelText + "  will be inserted."
437     printlog "Leave dialog 'Insert OLE Object' with OK"
438     OLEObjektInsert.OK
439     sleep (2)
440     
441     kontext "CommandsMath"
442     Commands.TypeKeys "A over B + FACT 6 = x"
443     
444     'printlog " Leave edit mode by typing key [Escape] "
445     'Comment: If I do this, the bug wont occur...
446     'hTypeKeys "<ESCAPE>"
447     
448     printlog "10. Click on the Save button."
449     kontext "Standardbar"
450     Speichern.Click
451     
452     printlog "11. Click on the X to close the window while the OLE-object still in Edit-mode."
453     Call hCloseDocument
454 endcase 'tiOpenOLECrash