update dev300-m58
[ooovba.git] / testautomation / writer / optional / includes / undo / w_undo_history_2.inc
blobbd0b3880c093daf18bd4580e9458c8a6020ce8c8
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: w_undo_history_2.inc,v $
11 '* $Revision: 1.3 $
13 '* last change: $Author: rt $ $Date: 2008-09-04 09:20:32 $
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 : helge.delfs@sun.com
36 '* short description : Writer Undo-History - Test
38 '\***********************************************************************
40 sub w_undo_history_2
42         ' a > 20 characters long string
43         Call tUndoOverwriteLong                 ' Typing & Overwrite
44         Call tUndoFindAndReplaceLong                    ' Replace
45         Call tUndoDeleteMultiSelection                  ' Delete a multi-selection
46         Call tUndoParagraph                     ' Paragraphs
47         Call tUndoClipboard             ' Copy/Paste
48         Call tUndoChanges               ' Changes accept an reject
49         Call tUndoLineBreak             ' Manual breaks - line break
50         Call tUndoColumnBreak           ' Manual breaks - column break
51         Call tUndoPageBreak             ' Manual breaks - page break
52         Call tUndoFields                ' Fields (Insert/Modify / Delete)
53         Call tUndoSpecialCharacter              ' Special Character (Insert/ Delete)
54         Call tUndoStyles                ' Styles (Apply/Modify/Find&Replace/Promote/Demote)
56 end sub
58 testcase tUndoOverwriteLong
60         '/// <B>Typing & overwrite a > 20 characters long string</B>
61         '/// new document
62         Call hNewDocument
63         '/// <U><B>CHECK: Typing</B></U>
64         printlog "- TYPING"
65         '/// write a > 20 characters long string: ThisSentenceHasMoreThan20Characters
66         Call wTypeKeys ( "ThisSentenceHasMoreThan20Characters" )
67         '/// string in Undo list has to be: Typing: ThisSente...aracters
68         Call CheckUndoStringInUndoList ( 1, "'ThisSent...racters'" )
70         '/// <U><B>CHECK: Overwrite</B></U>
71         printlog "- OVERWRITE"
72         '/// press 'Home' key
73         Call wTypeKeys "<Home>"
74         '/// press 'Ins' key
75         Call wTypeKeys "<Insert>"
76         '/// write a > 20 characters long string: ThePreviousSentenceHasBeenOverwritten
77         Call wTypeKeys ( "ThePreviousSentenceHasBeenOverwritten" )
78         '/// string in Undo list has to be: Overwrite: ThePrevio...rwritten
79         Call CheckUndoStringInUndoList ( 2, "'ThePrevio...rwritten'" )
81         '/// CloseDocument
82         Call hCloseDocument
83 endcase
86 testcase tUndoFindAndReplaceLong
88         '/// <B>Replace a > 20 characters long string</B>
89         '/// new Document
90         '/// <U><B>CHECK: Replace</B></U>
91         printlog "- REPLACE"
92         Call hNewDocument
93         '/// write a > 20 characters long string: ThePreviousSentenceHasBeenOverwritten
94         Call wTypeKeys ( "ThePreviousSentenceHasBeenOverwritten" )
95         '/// Select text
96         Call wTypeKeys ( "<Shift Home>" )
97         '/// Edit / Find and Replace
98         EditSearchAndReplace
99         Kontext "FindAndReplace"
100         '/// Type 'ThisIsAboutALongTextThatHadToBeReplaced' in 'Replace with' field
101         ReplaceWith.Settext "ThisIsAboutALongTextThatHadToBeReplaced"
102         '/// Choose Button 'Replace' and close dialog
103         Replace.Click
104         wait 500
105         Kontext "Active"
106         if Active.Exists then
107                 if Active.GetRT = 304 then
108                         try
109                                 Active.Yes
110                         catch
111                                 Active.Ok
112                         endcatch
113                 end if
114         end if
115         Kontext "FindAndReplace"
116         FindAndReplace.Close
117         Kontext "DocumentWriter"
118         '/// string in Undo list has to be: Replace: 'ThePrevio...rwritten' -> 'ThisIsAbo...Replaced'
119         Call CheckUndoStringInUndoList ( 3, "'ThePrevio...rwritten' -> 'ThisIsAbo...Replaced'" )
121         '/// Close document
122         Call hCloseDocument
123 endcase
126 testcase tUndoDeleteMultiSelection
128         '/// <B>Delete a multi-selection</B>
129         printlog "- Delete a multi-selection"
130         '/// new Document
131         Call hNewDocument
132         '/// write down: the deletion of a multi-selection
133         Call wTypeKeys ( "the deletion of a multi-selection" )
134         '/// with Shift + F8 enter multi-selection mode
135         Call wTypeKeys ( "<SHIFT F8>" )
136         '/// multi-select "the ", " a" and "multi-"
137         Call wTypeKeys ( "<MOD1 Left>" )
138         Call wTypeKeys ( "<MOD1 SHIFT Left>", 2)
139         Call wTypeKeys ( "<Left>" )
140         Call wTypeKeys ( "<SHIFT Left>", 2)
141         Call wTypeKeys ( "<Left>" )     
142         Call wTypeKeys ( "<MOD1 Left>", 2)
143         Call wTypeKeys ( "<Left>" )
144         Call wTypeKeys ( "<MOD1 SHIFT Left>")
145         '/// Delete the multi-selection
146         Call wTypeKeys ( "<DELETE>" )
147         '/// string in Undo-list has to be: 'Delete: multi-selection'"
148         Call CheckUndoStringInUndoList ( 4, "Delete multiple selection" )
149         '/// Close document
150         Call hCloseDocument
152 endcase
155 testcase tUndoParagraph
157         '/// <B>Insert and delete a paragraph</B>
158         printlog "- Insert Paragraph"
159         '/// new document
160         Call hNewDocument
161         '/// press return to insert a new paragraph
162         Call wTypeKeys ( "<Return>" )
163         '///  string in Undo-list has to be: "New paragraph"
164         Call CheckUndoStringInUndoList ( 8, "New Paragraph" )
165         printlog "- Delete Paragraph"
166         '/// press Backspace to delete paragraph
167         Call wTypeKeys ( "<Backspace>" )
168         '///  string in Undo-list has to be: "Delete paragraph"
169         Call CheckUndoStringInUndoList ( 8, "Delete Paragraph" )
171         '/// close document
172         Call hCloseDocument
173 endcase
176 testcase tUndoClipboard
177         Dim i as integer
179         '/// <B>Copy / Paste</B>
180         printlog "- Copy/Paste"
181         '/// new document
182         Call hNewDocument
183         '/// Insert some text in document and copy it
184         Call wTypeKeys ( "CopyAndPasteInUndoList" )
185         Call wTypeKeys ( "<Shift Home>" )
186         EditCopy
187         Call wTypeKeys ( "<End><Return>" )
188         '/// Paste the text in all available formats
189         For i = 1 to 4
190                 Sleep 2
191                 try
192                         EditPasteSpecialWriter
193                 catch
194                         i=5
195                 endcatch
196                 Kontext "InhaltEinfuegen"
197                 try
198                         Auswahl.Select i
199                         printlog " - Paste as: " + Auswahl.GetSeltext
200                         wait 500
201                 catch
202                         Warnlog "Not 4 but " & Auswahl.GetItemCount & " Clipboard-formats"
203                 endcatch
204                 InhaltEinfuegen.Ok
205                 '///  string in Undo-list has to be: "Paste clipboard"
206                 Call CheckUndoStringInUndoList ( 9 )
207                 Call wTypeKeys ( "<Return>" )
208         next i
209         '/// close document
210         Call hCloseDocument
211 endcase
214 testcase tUndoChanges
215         
216         '/// <B>Changes accept and reject</B>
217         printlog "- Changes accept and reject"
218         '/// new document
219         Call hNewDocument
220     UseBindings
221     '/// Select Edit / Changes / Record
222     EditChangesRecord
223         '/// Insert a string in document
224         Call wTypeKeys ( "This is a test" )
225         '/// Select Edit / Changes / Accept or Reject
226     EditChangesAcceptOrReject
227     '/// Dialog 'Accept or reject changes' has to come up ///
228     Kontext "Redlining"
229     if Redlining.Exists then
230            '/// + Select tabpage 'List'
231            TabControl.SetPage TabListe
232            '/// + Select 'Accept All'
233            Akzeptieren.Click
234            Sleep 2
235            '/// + Close Redlining dialog
236            Redlining.Close
237         else
238                 Warnlog "Redlining dialog not up!"
239                 Call hCloseDocument
240                 goto endsub
241         end if
242         '///  string in Undo-list has to be: "Accept change: Insert 'this is a test'")
243         Call CheckUndoStringInUndoList ( 10, "Accept" )
245         '/// Insert a line break in document
246         Call wTypeKeys ( "<Return>" )
247         '/// Insert a string in document
248         Call wTypeKeys ( "This is a test" )
249         '/// Select Edit / Changes / Accept or Reject
250     EditChangesAcceptOrReject
251     '/// Dialog 'Accept or reject changes' has to come up ///
252     Kontext "Redlining"
253     if Redlining.Exists then
254            '/// + Select tabpage 'List'
255            TabControl.SetPage TabListe
256            '/// + Select 'Accept All'
257            wait 500
258            ListItem.TypeKeys "<Up>"
259            wait 500
260            Ablehnen.Click
261            Sleep 2
262            '/// + Close Redlining dialog
263            Redlining.Close
264         else
265                 Warnlog "Redlining dialog not up!"
266                 Call hCloseDocument
267                 goto endsub
268         end if
270         '///  string in Undo-list has to be: "Reject change: Insert 'this is a test'")
271         Call CheckUndoStringInUndoList ( 10, "Reject" )
273         Call hCloseDocument
274 endcase
277 testcase tUndoLineBreak
279         '/// <B>Manual breaks (line breaks)</B>
280         printlog "Manual breaks (line breaks)"
281         printlog "- Insert line break"
282         '/// new document
283         Call hNewDocument
284         '/// Insert a line break (Shift return)
285         Call wTypeKeys ( "<SHIFT RETURN>" )
286         '///  string in Undo-list has to be: "Insert line break")
287         Call CheckUndoStringInUndoList ( 10, "InsertLineBreak" )
289         '/// Delete line break
290         printlog "- Delete line break"
291         Call wTypeKeys ( "<SHIFT RETURN><Backspace>" )
292         '///  string in Undo-list has to be: "Delete line break")
293         Call CheckUndoStringInUndoList ( 10, "DeleteLineBreak" )
295         '/// Close document
296         Call hCloseDocument
297 endcase
300 testcase tUndoColumnBreak
302         '/// <B>Column breaks</B>
303         printlog "- Column breaks"
304         '/// new document
305         Call hNewDocument
306         '/// Format / Columns
307         FormatColumns
308         Kontext "FormatColumn"
309         '/// set number of columns to 2
310         Columns.Settext 2
311         FormatColumn.Ok
312         '/// Insert a column break (Strg+Shift+Return)
313         Call wTypeKeys ( "<Mod1 Shift Return>" )
314         printlog "Insert a column break"
315         '///  string in Undo-list has to be: "Insert column break") 
316         Call CheckUndoStringInUndoList ( 10, "InsertColumnBreak" )
318         '/// Delete a column break (Strg+Shift+Return+Backspace)
319         printlog "Delete a column break"
320         Call wTypeKeys ( "<Mod1 Shift Return><Backspace>" )
321         '///  string in Undo-list has to be: "Delete column break") 
322         Call CheckUndoStringInUndoList ( 10, "DeleteColumnBreak" )
324         '/// Close document
325         Call hCloseDocument
326 endcase
329 testcase tUndoPageBreak
331         '/// <B>Page breaks</B>
332         printlog "- Page breaks"
333         '/// new document
334         Call hNewDocument
335         '/// Format / Columns
336         InsertManualBreak
337         Kontext "UmbruchEinfuegen"
338         printlog "Insert a page break"
339         Seitenumbruch.Check
340         UmbruchEinfuegen.Ok
341         '///  string in Undo-list has to be: "Insert page break") 
342         Call CheckUndoStringInUndoList ( 10, "InsertPageBreak" )
344         printlog "Delete a page break"
345         InsertManualBreak
346         Kontext "UmbruchEinfuegen"
347         '/// Insert a page break
348         Seitenumbruch.Check
349         UmbruchEinfuegen.Ok
350         Call wTypeKeys ( "<Backspace>" )
351         '///  string in Undo-list has to be: "Delete page break") 
352         Call CheckUndoStringInUndoList ( 10, "DeletePageBreak" )
354         '/// Close document
355         Call hCloseDocument
356 endcase
359 testcase tUndoFields
361         '/// <B>Fields (Insert/Modify / Delete)</B>
362         printlog "- Fields (Insert)"
363         '/// new document
364         Call hNewDocument
365         '/// Insert Field 'Date'
366         InsertFieldsDate
367         '///  string in Undo-list has to be: "Insert field") 
368         Call CheckUndoStringInUndoList ( 10, "InsertField" )
370         printlog "- Fields (Modify)"
371         '/// Press Home-key
372         Call wTypeKeys ( "<Home>" )
373         '/// Edit fields and select 4th entry in Format-list
374         EditFields
375         Kontext "FeldbefehlBearbeitenDokument"
376         Zahlenformat.Select 4
377         FeldbefehlBearbeitenDokument.Ok 
378         '///  string in Undo-list has to be: "Changed field") 
379         Call CheckUndoStringInUndoList ( 10, "ChangedField" )
381         printlog "- Fields (Delete)"
382         '/// Press delete-key
383         Call wTypeKeys ( "<Delete>" )
384         '///  string in Undo-list has to be: "Delete field") 
385         Call CheckUndoStringInUndoList ( 10, "DeleteField" )
387         '/// Close document
388         Call hCloseDocument
389 endcase
392 testcase tUndoSpecialCharacter
394         '/// <B>Special Character (Insert / Delete )</B>
395         printlog "- Special Character (Insert)"
396         '/// new document
397         Call hNewDocument
398         '/// Insert a special Character
399     InsertSpecialCharacterWriter
400     Kontext "Sonderzeichen"
401         SchriftListe.TypeKeys "<Home>"
402         SchriftListe.TypeKeys "<Right>", 3
403         Sonderzeichen.Ok
404         '///  string in Undo-list has to be: "Insert special character") 
405         Call CheckUndoStringInUndoList ( 10, "InsertSpecialCharacter" )
407         printlog "- Special Character (Delete)"
408         '/// Delete special character with <Backspace>
409         Call wTypeKeys ("<Backspace>" )
410         Call CheckUndoStringInUndoList ( 10, "DeleteSpecialCharacter" )
412         '/// Close document
413         Call hCloseDocument
414 endcase
417 testcase tUndoStyles
418         Dim i as integer, StyleText as string, UndoText as string
419         Dim NewStyle as string
421         '/// <B>Styles (Apply/Modify/Find&Replace/Promote/Demote)</B>
422         printlog "- Styles (Apply)"
423         '/// new document
424         Call hNewDocument
425         '/// type some text
426         Call wTypeKeys ( "I have the new style" )
427         '/// Select text
428         Call wTypeKeys ( "<Shift Home>" )
429         '/// Apply Style to a newly created style
430         Call wStyleCreate ( "AUndoHistory", "Paragraph" )
431         '///  string in Undo-list has to be: "Apply styles: AUndoHistory")
432         Call CheckUndoStringInUndoList ( 10, "ApplyStyles" )
434         '/// Modify Style through Stylist
435         if wStyleSelect ( "AUndoHistory" ) = false then
436                 Warnlog "Defined style has not been found in Stylist->Test aborted"
437                 Call hCloseDocument
438                 goto endsub
439         end if
441         Vorlagenliste.OpenContextMenu
442         Call hMenuSelectNr(2)
443         Kontext
444         Active.Setpage TabFontEffects
445         Kontext "TabFontEffects"
446         FontColor.Select FontColor.GetItemCount
447         TabFontEffects.Ok
448         Sleep 1
449         '///  string in Undo-list has to be: "Change styles: AUndoHistory") 
450         Call CheckUndoStringInUndoList ( 10, "ChangeStyles" )
452         printlog "Styles (Replace)"
453         '/// Edit / Search and Replace
454         EditSearchAndReplace
455         kontext "FindAndReplace"
456         if SearchForStyles.IsVisible = False then More.Click
457         SearchForStyles.Check
458         Sleep 1
459         ReplaceWithStyle.Select 4
460         wait 500
461         Replace.Click
462         NewStyle = ReplaceWithStyle.GetSelText
463         Select Case iSprache
464                 Case 01: StyleText = "Replace style: AUndoHistory -> " & NewStyle
465                 Case 34: StyleText = "Reemplazar estilo: AUndoHistory -> " & NewStyle
466                 Case 86: StyleText = "替换样式: AUndoHistory -> " & NewStyle
467                 Case else: QAErrorlog "Please adapt test for this language"
468         end select
469         wait 500
470         Kontext "Active"
471         if Active.Exists then
472                 if Active.GetRT = 304 then
473                         try
474                                 Active.Yes
475                         catch
476                                 Active.Ok
477                         endcatch
478                 end if
479         end if
480         kontext "FindAndReplace"
481         SearchForStyles.UnCheck
482         FindAndReplace.Close
484         '///  string in Undo-list has to be: "Replace Styles: 'AUndoHistory -> ...")
485         Kontext "StandardBar"
486         try
487                 Undo.OpenMenu
488                 Kontext "UndoRedoBox"
489                 UndoText = UndoRedoList.GetItemText(1)
490                 if UndoText <> StyleText then
491                         Warnlog "Wrong text in Undo-List: " & UndoText
492                 end if
493                 Kontext "StandardBar"
494                 Undo.Click
495         catch
496                 Warnlog "Something wrong checking Undo-List!"
497         endcatch
499         printlog "Styles (Promote)"
500         '/// point cursor to beginning of document
501         Call wTypeKeys ( "<Mod1 Home>" )
502         ' To promote style it has to be in the heading group
503         ToolsOutlineNumbering
504         Kontext
505         Active.SetPage TabKapitelnumerierung
506         Kontext "TabKapitelnumerierung"
507         Absatzvorlage.Select NewStyle
508         TabKapitelnumerierung.Ok
510         Call wNavigatorAuswahl ( 1, 1, true )
511         Kontext "NavigatorWriter"
512         '/// Select Promote in Navigator
513         try
514                 Senken.Click
515                 '///  string in Undo-list has to be: "Demote Outline")
516                 Call CheckUndoStringInUndoList ( 10, "DemoteOutline" )
517         catch
518                 Warnlog "Unable to demote outline"
519         endcatch
521         '/// Select Demote in Navigator
522         printlog "Styles (Demote)"
523         Kontext "NavigatorWriter"
524         try
525                 Senken.Click
526                 '///  string in Undo-list has to be: "Promote Outline") 
527                 Call CheckUndoStringInUndoList ( 10, "PromoteOutline" )
528         catch
529                 Warnlog "Unable to promote outline"
530         endcatch
532         '/// CloseDocument
533         Call hCloseDocument
534 endcase