1739258c9SLi Feng Wang /************************************************************** 2739258c9SLi Feng Wang * 3739258c9SLi Feng Wang * Licensed to the Apache Software Foundation (ASF) under one 4739258c9SLi Feng Wang * or more contributor license agreements. See the NOTICE file 5739258c9SLi Feng Wang * distributed with this work for additional information 6739258c9SLi Feng Wang * regarding copyright ownership. The ASF licenses this file 7739258c9SLi Feng Wang * to you under the Apache License, Version 2.0 (the 8739258c9SLi Feng Wang * "License"); you may not use this file except in compliance 9739258c9SLi Feng Wang * with the License. You may obtain a copy of the License at 10739258c9SLi Feng Wang * 11739258c9SLi Feng Wang * http://www.apache.org/licenses/LICENSE-2.0 12739258c9SLi Feng Wang * 13739258c9SLi Feng Wang * Unless required by applicable law or agreed to in writing, 14739258c9SLi Feng Wang * software distributed under the License is distributed on an 15739258c9SLi Feng Wang * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16739258c9SLi Feng Wang * KIND, either express or implied. See the License for the 17739258c9SLi Feng Wang * specific language governing permissions and limitations 18739258c9SLi Feng Wang * under the License. 19739258c9SLi Feng Wang * 20739258c9SLi Feng Wang *************************************************************/ 21739258c9SLi Feng Wang 22739258c9SLi Feng Wang /** 23739258c9SLi Feng Wang * 24739258c9SLi Feng Wang */ 25739258c9SLi Feng Wang 26739258c9SLi Feng Wang package svt.gui.sd; 27739258c9SLi Feng Wang 28739258c9SLi Feng Wang import static org.junit.Assert.assertEquals; 29739258c9SLi Feng Wang import static org.openoffice.test.common.Testspace.*; 30739258c9SLi Feng Wang import static org.openoffice.test.vcl.Tester.*; 31739258c9SLi Feng Wang import static testlib.gui.AppTool.*; 32739258c9SLi Feng Wang import static testlib.gui.UIMap.*; 33739258c9SLi Feng Wang 34739258c9SLi Feng Wang import java.io.FileOutputStream; 35739258c9SLi Feng Wang import java.io.PrintStream; 36739258c9SLi Feng Wang import java.util.HashMap; 37*122356beSHerbert Dürr import java.util.logging.Level; 38739258c9SLi Feng Wang 39739258c9SLi Feng Wang import org.junit.After; 40739258c9SLi Feng Wang import org.junit.AfterClass; 41739258c9SLi Feng Wang import org.junit.Before; 42739258c9SLi Feng Wang import org.junit.BeforeClass; 43739258c9SLi Feng Wang import org.junit.Ignore; 44739258c9SLi Feng Wang import org.junit.Rule; 45739258c9SLi Feng Wang import org.junit.Test; 46739258c9SLi Feng Wang import org.junit.rules.TestName; 47739258c9SLi Feng Wang import org.openoffice.test.OpenOffice; 48739258c9SLi Feng Wang import org.openoffice.test.common.DataSheet; 49739258c9SLi Feng Wang import org.openoffice.test.common.FileUtil; 50739258c9SLi Feng Wang import org.openoffice.test.common.Logger; 51739258c9SLi Feng Wang import org.openoffice.test.common.SystemUtil; 52739258c9SLi Feng Wang import org.openoffice.test.common.Testspace; 53739258c9SLi Feng Wang 54739258c9SLi Feng Wang import testlib.gui.SCTool; 55739258c9SLi Feng Wang 56739258c9SLi Feng Wang public class BasicFuncOnImpress { 57739258c9SLi Feng Wang @Rule 58739258c9SLi Feng Wang public Logger log = Logger.getLogger(this); 59739258c9SLi Feng Wang 60739258c9SLi Feng Wang @Rule 61739258c9SLi Feng Wang public TestName testname = new TestName(); 62739258c9SLi Feng Wang 63739258c9SLi Feng Wang private static DataSheet xmlResult; 64739258c9SLi Feng Wang 65739258c9SLi Feng Wang private String pid = null; 66739258c9SLi Feng Wang 6766d0652aSLi Feng Wang private static int iterator = 100; 68739258c9SLi Feng Wang 69739258c9SLi Feng Wang private int i = 0; 70739258c9SLi Feng Wang 71739258c9SLi Feng Wang /** 72739258c9SLi Feng Wang * @throws java.lang.Exception 73739258c9SLi Feng Wang */ 74739258c9SLi Feng Wang @BeforeClass beforeClass()75739258c9SLi Feng Wang public static void beforeClass() throws Exception { 76688c272fSLi Feng Wang xmlResult = new DataSheet(getFile("output/svt_impress.xml")); 77ac2ddd9cSLi Feng Wang xmlResult.addRow("Data", "Method", "No", "Consumed Time(MS)", "Memory(VSZ)", "Memory(RSS)", "Handles(Windows Only)"); 78739258c9SLi Feng Wang } 79739258c9SLi Feng Wang 80739258c9SLi Feng Wang @AfterClass afterClass()81739258c9SLi Feng Wang public static void afterClass() throws Exception { 82739258c9SLi Feng Wang app.stop(); 83739258c9SLi Feng Wang } 84739258c9SLi Feng Wang 85739258c9SLi Feng Wang @Before before()86739258c9SLi Feng Wang public void before() throws Exception{ 87739258c9SLi Feng Wang app.start(true); 88739258c9SLi Feng Wang } 89739258c9SLi Feng Wang 90739258c9SLi Feng Wang @Test saveNewSDWithNewSlides()91739258c9SLi Feng Wang public void saveNewSDWithNewSlides() throws Exception { 92739258c9SLi Feng Wang for (i = 1; i <= iterator; i++) { 93739258c9SLi Feng Wang long start = System.currentTimeMillis(); 94739258c9SLi Feng Wang createNewSD(); 95739258c9SLi Feng Wang impress.menuItem("Insert->Slide").select(); 96739258c9SLi Feng Wang sleep(2); 97739258c9SLi Feng Wang saveAndReopenNewSD(i); 98739258c9SLi Feng Wang long end = System.currentTimeMillis(); 99739258c9SLi Feng Wang addRecord(i, start, end); 100739258c9SLi Feng Wang } 101739258c9SLi Feng Wang } 102739258c9SLi Feng Wang 103739258c9SLi Feng Wang @Test saveNewSDWithTable()104739258c9SLi Feng Wang public void saveNewSDWithTable() throws Exception { 105739258c9SLi Feng Wang for (i = 1; i <= iterator; i++) { 106739258c9SLi Feng Wang long start = System.currentTimeMillis(); 107739258c9SLi Feng Wang createNewSD(); 108739258c9SLi Feng Wang app.dispatch(".uno:InsertTable", 3); 109739258c9SLi Feng Wang sleep(2); 110739258c9SLi Feng Wang numberofCol.setText("5"); 111739258c9SLi Feng Wang numberofRow.setText("4"); 112739258c9SLi Feng Wang sleep(2); 113739258c9SLi Feng Wang insertTable.ok(); 114739258c9SLi Feng Wang impress.typeKeys("<enter>"); 115739258c9SLi Feng Wang impress.typeKeys("2"); 116739258c9SLi Feng Wang impress.typeKeys("<right>"); 117739258c9SLi Feng Wang impress.typeKeys("2"); 118739258c9SLi Feng Wang impress.typeKeys("<right>"); 119739258c9SLi Feng Wang impress.typeKeys("<ctrl end>"); 120739258c9SLi Feng Wang impress.typeKeys("2"); 121739258c9SLi Feng Wang sleep(2); 122739258c9SLi Feng Wang saveAndReopenNewSD(i); 123739258c9SLi Feng Wang long end = System.currentTimeMillis(); 124739258c9SLi Feng Wang addRecord(i, start, end); 125739258c9SLi Feng Wang } 126739258c9SLi Feng Wang } 127739258c9SLi Feng Wang 128739258c9SLi Feng Wang @Test saveNewSDWithPic()129739258c9SLi Feng Wang public void saveNewSDWithPic() throws Exception { 130739258c9SLi Feng Wang String pic = prepareData("image/blue_256x256.jpg"); 131739258c9SLi Feng Wang for (i = 1; i <= iterator; i++) { 132739258c9SLi Feng Wang long start = System.currentTimeMillis(); 133739258c9SLi Feng Wang createNewSD(); 134ac2ddd9cSLi Feng Wang app.dispatch(".uno:InsertGraphic"); 135ac2ddd9cSLi Feng Wang // impress.menuItem("Insert->Picture->From File...").select(); 136739258c9SLi Feng Wang sleep(2); 137739258c9SLi Feng Wang filePickerPath.setText(pic); 138739258c9SLi Feng Wang sleep(1); 139739258c9SLi Feng Wang filePickerOpen.click(); 140739258c9SLi Feng Wang sleep(5); 141739258c9SLi Feng Wang impress.typeKeys("<esc>"); 142739258c9SLi Feng Wang sleep(2); 143739258c9SLi Feng Wang saveAndReopenNewSD(i); 144739258c9SLi Feng Wang long end = System.currentTimeMillis(); 145739258c9SLi Feng Wang addRecord(i, start, end); 146739258c9SLi Feng Wang } 147739258c9SLi Feng Wang } 148739258c9SLi Feng Wang 149739258c9SLi Feng Wang @Test saveNewSDWithTextbox()150739258c9SLi Feng Wang public void saveNewSDWithTextbox()throws Exception{ 151739258c9SLi Feng Wang if(!sdDrawingToolbar.exists()){ 152739258c9SLi Feng Wang app.dispatch(".uno:AvailableToolbars?Toolbar:string=toolbar"); 153739258c9SLi Feng Wang } 154739258c9SLi Feng Wang for (i = 1; i <= iterator; i++) { 155739258c9SLi Feng Wang long start = System.currentTimeMillis(); 156739258c9SLi Feng Wang createNewSD(); 157739258c9SLi Feng Wang sdInsertTextboxButtonOnToolbar.click(); 158739258c9SLi Feng Wang impress.focus(); 159739258c9SLi Feng Wang impress.drag(100, 100, 200, 200); 160739258c9SLi Feng Wang typeKeys("test"); 161739258c9SLi Feng Wang typeKeys("<esc>"); 162739258c9SLi Feng Wang sleep(2); 163739258c9SLi Feng Wang saveAndReopenNewSD(i); 164739258c9SLi Feng Wang long end = System.currentTimeMillis(); 165739258c9SLi Feng Wang addRecord(i, start, end); 166739258c9SLi Feng Wang } 167739258c9SLi Feng Wang } 168739258c9SLi Feng Wang 169739258c9SLi Feng Wang @Test saveNewSDWithExternalSlides()170739258c9SLi Feng Wang public void saveNewSDWithExternalSlides() throws Exception { 171739258c9SLi Feng Wang String externalFile = prepareData("pvt/plain_200p.odp"); 172739258c9SLi Feng Wang for (i = 1; i <= iterator; i++) { 173739258c9SLi Feng Wang long start = System.currentTimeMillis(); 174739258c9SLi Feng Wang createNewSD(); 175739258c9SLi Feng Wang app.dispatch(".uno:ImportFromFile"); 176739258c9SLi Feng Wang sleep(2); 177739258c9SLi Feng Wang filePickerPath.setText(externalFile); 178739258c9SLi Feng Wang filePickerOpen.click(); 179739258c9SLi Feng Wang sleep(2); 180739258c9SLi Feng Wang insertSlideObjects.ok(); 181739258c9SLi Feng Wang sleep(5); 182739258c9SLi Feng Wang saveAndReopenNewSD(i); 183739258c9SLi Feng Wang long end = System.currentTimeMillis(); 184739258c9SLi Feng Wang addRecord(i, start, end); 185739258c9SLi Feng Wang } 186739258c9SLi Feng Wang } 187739258c9SLi Feng Wang 188739258c9SLi Feng Wang @Test saveNewSDWithAnimation()189739258c9SLi Feng Wang public void saveNewSDWithAnimation()throws Exception{ 190739258c9SLi Feng Wang for (i = 1; i <= iterator; i++) { 191739258c9SLi Feng Wang long start = System.currentTimeMillis(); 192739258c9SLi Feng Wang createNewSD(); 193739258c9SLi Feng Wang //Insert a Shape and select it via Navigator 194739258c9SLi Feng Wang sdCalloutShapes.click(); 195739258c9SLi Feng Wang impress.focus(); 196739258c9SLi Feng Wang impress.drag(100, 100, 200, 200); 197739258c9SLi Feng Wang app.dispatch(".uno:CustomAnimation"); 198739258c9SLi Feng Wang sdAddAnimation.click(); 199739258c9SLi Feng Wang sdEntranceAnimationTab.waitForExistence(60, 2); 200739258c9SLi Feng Wang sdEntranceAnimationTab.select("Circle"); 201739258c9SLi Feng Wang typeKeys("<enter>"); 202739258c9SLi Feng Wang sdAnimationList.openContextMenu(); 203739258c9SLi Feng Wang typeKeys("<down><down><enter>"); 204739258c9SLi Feng Wang impress.menuItem("Slide Show->Slide Show").select(); 205739258c9SLi Feng Wang sleep(10); 206739258c9SLi Feng Wang impress.typeKeys("<esc>"); 207739258c9SLi Feng Wang sleep(5); 208739258c9SLi Feng Wang saveAndReopenNewSD(i); 209739258c9SLi Feng Wang long end = System.currentTimeMillis(); 210739258c9SLi Feng Wang addRecord(i, start, end); 211739258c9SLi Feng Wang } 212739258c9SLi Feng Wang } 213739258c9SLi Feng Wang 214739258c9SLi Feng Wang @Test saveNewSDWithShowSettings()215739258c9SLi Feng Wang public void saveNewSDWithShowSettings() throws Exception { 216739258c9SLi Feng Wang String externalFile = prepareData("pvt/plain_200p.odp"); 217739258c9SLi Feng Wang for (i = 1; i <= iterator; i++) { 218739258c9SLi Feng Wang long start = System.currentTimeMillis(); 219739258c9SLi Feng Wang createNewSD(); 220739258c9SLi Feng Wang // Insert Slides from External Sample files 221739258c9SLi Feng Wang impress.menuItem("Insert->File...").select(); 222739258c9SLi Feng Wang sleep(2); 223739258c9SLi Feng Wang filePickerPath.setText(externalFile); 224739258c9SLi Feng Wang filePickerOpen.click(); 225739258c9SLi Feng Wang sleep(2); 226739258c9SLi Feng Wang insertSlideObjects.ok(); 227739258c9SLi Feng Wang sleep(20); 228739258c9SLi Feng Wang 229739258c9SLi Feng Wang // Slide Screen Show Settings 230739258c9SLi Feng Wang impress.menuItem("Slide Show->Slide Transition...").select(); 231739258c9SLi Feng Wang sleep(2); 232739258c9SLi Feng Wang impressSlideTransitions.select("Uncover Up"); 233739258c9SLi Feng Wang sleep(2); 234739258c9SLi Feng Wang slideShowSpeed.select("Slow"); 235739258c9SLi Feng Wang sleep(5); 236739258c9SLi Feng Wang slideAutoAfter.check(); 237739258c9SLi Feng Wang sleep(2); 238739258c9SLi Feng Wang applyToAllSlides.click(); 239739258c9SLi Feng Wang sleep(2); 240739258c9SLi Feng Wang impress.menuItem("Slide Show->Slide Show").select(); 241739258c9SLi Feng Wang sleep(70); 242739258c9SLi Feng Wang impress.typeKeys("<esc>"); 243739258c9SLi Feng Wang sleep(5); 244739258c9SLi Feng Wang saveAndReopenNewSD(i); 245739258c9SLi Feng Wang long end = System.currentTimeMillis(); 246739258c9SLi Feng Wang addRecord(i, start, end); 247739258c9SLi Feng Wang } 248739258c9SLi Feng Wang } 249739258c9SLi Feng Wang 250739258c9SLi Feng Wang @Test saveSDTemplate()251739258c9SLi Feng Wang public void saveSDTemplate()throws Exception{ 252739258c9SLi Feng Wang String templateFile = prepareData("svt/DarkBlue.otp"); 253739258c9SLi Feng Wang for (i = 1; i <= iterator; i++) { 254739258c9SLi Feng Wang long start = System.currentTimeMillis(); 255739258c9SLi Feng Wang app.dispatch(".uno:Open"); 256739258c9SLi Feng Wang submitOpenDlg(templateFile); 257739258c9SLi Feng Wang impress.waitForExistence(10, 2); 258739258c9SLi Feng Wang sleep(5); 259739258c9SLi Feng Wang saveAndReopenNewSD(i); 260739258c9SLi Feng Wang long end = System.currentTimeMillis(); 261739258c9SLi Feng Wang addRecord(i, start, end); 262739258c9SLi Feng Wang } 263739258c9SLi Feng Wang } 264739258c9SLi Feng Wang 265739258c9SLi Feng Wang @Test 266ac2ddd9cSLi Feng Wang @Ignore opChartOnOpenedSD()267739258c9SLi Feng Wang public void opChartOnOpenedSD() throws Exception { 268739258c9SLi Feng Wang String file = prepareData("svt/OLEinODP.odp"); 269739258c9SLi Feng Wang for (i = 1; i <= iterator; i++) { 270739258c9SLi Feng Wang long start = System.currentTimeMillis(); 271739258c9SLi Feng Wang app.dispatch(".uno:Open"); 272739258c9SLi Feng Wang submitOpenDlg(file); 273739258c9SLi Feng Wang impress.waitForExistence(10, 2); 274739258c9SLi Feng Wang sleep(5); 275739258c9SLi Feng Wang if (!sdNavigatorDlg.exists()) { 276739258c9SLi Feng Wang app.dispatch(".uno:Navigator"); 277739258c9SLi Feng Wang } 278739258c9SLi Feng Wang impress.focus(); 279739258c9SLi Feng Wang sdNavigator.focus(); 280739258c9SLi Feng Wang sdNavigator.collapseAll(); 281739258c9SLi Feng Wang sdNavigator.expand(0); 282739258c9SLi Feng Wang sdNavigator.select(1); 283739258c9SLi Feng Wang typeKeys("<enter>"); 284739258c9SLi Feng Wang impress.menuItem("Edit->Copy").select(); 285739258c9SLi Feng Wang sleep(2); 286739258c9SLi Feng Wang impress.menuItem("Edit->Paste").select(); 287739258c9SLi Feng Wang sleep(2); 288739258c9SLi Feng Wang 289739258c9SLi Feng Wang sdNavigator.focus(); 290739258c9SLi Feng Wang sdNavigator.collapseAll(); 291739258c9SLi Feng Wang sdNavigator.expand(0); 292739258c9SLi Feng Wang sdNavigator.select(2); 293739258c9SLi Feng Wang typeKeys("<enter>"); 294739258c9SLi Feng Wang impress.menuItem("Edit->Copy").select(); 295739258c9SLi Feng Wang sleep(2); 296739258c9SLi Feng Wang impress.menuItem("Edit->Paste").select(); 297739258c9SLi Feng Wang sleep(2); 298739258c9SLi Feng Wang 299739258c9SLi Feng Wang sdNavigator.focus(); 300739258c9SLi Feng Wang sdNavigator.collapseAll(); 301739258c9SLi Feng Wang sdNavigator.expand(0); 302739258c9SLi Feng Wang sdNavigator.select(3); 303739258c9SLi Feng Wang typeKeys("<enter>"); 304739258c9SLi Feng Wang impress.menuItem("Edit->Copy").select(); 305739258c9SLi Feng Wang sleep(2); 306739258c9SLi Feng Wang impress.menuItem("Edit->Paste").select(); 307739258c9SLi Feng Wang sleep(2); 308739258c9SLi Feng Wang closeWithoutSaveSD(); 309739258c9SLi Feng Wang long end = System.currentTimeMillis(); 310739258c9SLi Feng Wang addRecord(i, start, end); 311739258c9SLi Feng Wang } 312739258c9SLi Feng Wang } 313739258c9SLi Feng Wang 314739258c9SLi Feng Wang @Test switchViewOfOpenedSD()315739258c9SLi Feng Wang public void switchViewOfOpenedSD() throws Exception { 316739258c9SLi Feng Wang String file = prepareData("pvt/plain_200p.odp"); 317739258c9SLi Feng Wang for (i = 1; i <= iterator; i++) { 318739258c9SLi Feng Wang long start = System.currentTimeMillis(); 319739258c9SLi Feng Wang app.dispatch(".uno:Open"); 320739258c9SLi Feng Wang submitOpenDlg(file); 321739258c9SLi Feng Wang impress.waitForExistence(10, 2); 322739258c9SLi Feng Wang sleep(5); 323739258c9SLi Feng Wang 324739258c9SLi Feng Wang impress.menuItem("View->Outline").select(); 325739258c9SLi Feng Wang sleep(2); 326739258c9SLi Feng Wang impressOutline.menuItem("View->Slide Sorter").select(); 327739258c9SLi Feng Wang sleep(10); 328739258c9SLi Feng Wang impressSlideSorter.menuItem("View->Notes Page").select(); 329739258c9SLi Feng Wang sleep(2); 330739258c9SLi Feng Wang impressHandoutView.menuItem("View->Master->Slide Master").select(); 331739258c9SLi Feng Wang sleep(2); 332739258c9SLi Feng Wang impress.menuItem("View->Master->Notes Master").select(); 333739258c9SLi Feng Wang sleep(2); 334739258c9SLi Feng Wang 335739258c9SLi Feng Wang impressHandoutView.menuItem("View->Normal").select(); 336739258c9SLi Feng Wang sleep(2); 337739258c9SLi Feng Wang closeWithoutSaveSD(); 338739258c9SLi Feng Wang long end = System.currentTimeMillis(); 339739258c9SLi Feng Wang addRecord(i, start, end); 340739258c9SLi Feng Wang } 341739258c9SLi Feng Wang } 342739258c9SLi Feng Wang createNewSD()343739258c9SLi Feng Wang private void createNewSD() { 344739258c9SLi Feng Wang app.dispatch("private:factory/simpress?slot=6686"); 345739258c9SLi Feng Wang presentationWizard.ok(); 346739258c9SLi Feng Wang } 347739258c9SLi Feng Wang saveAndReopenNewSD(int iterator)348739258c9SLi Feng Wang private void saveAndReopenNewSD(int iterator) { 349739258c9SLi Feng Wang String saveTo = getPath("temp/" + "tempSD_New" + iterator + ".odp"); 350739258c9SLi Feng Wang impress.menuItem("File->Save As...").select(); 351739258c9SLi Feng Wang FileUtil.deleteFile(saveTo); 352739258c9SLi Feng Wang submitSaveDlg(saveTo); 353739258c9SLi Feng Wang if (activeMsgBox.exists()) { 354739258c9SLi Feng Wang activeMsgBox.yes(); 355739258c9SLi Feng Wang sleep(2); 356739258c9SLi Feng Wang } 357739258c9SLi Feng Wang sleep(5); 358739258c9SLi Feng Wang app.dispatch(".uno:CloseDoc"); 359739258c9SLi Feng Wang startCenterOpenButton.waitForExistence(30, 2); 360739258c9SLi Feng Wang startCenterOpenButton.click(); 361739258c9SLi Feng Wang submitOpenDlg(saveTo); 362739258c9SLi Feng Wang sleep(2); 363739258c9SLi Feng Wang app.dispatch(".uno:CloseDoc"); 364739258c9SLi Feng Wang } 365739258c9SLi Feng Wang closeWithoutSaveSD()366739258c9SLi Feng Wang private void closeWithoutSaveSD() { 367739258c9SLi Feng Wang impress.menuItem("File->Close").select(); 368739258c9SLi Feng Wang if (activeMsgBox.exists()) { 369739258c9SLi Feng Wang activeMsgBox.no(); 370739258c9SLi Feng Wang sleep(2); 371739258c9SLi Feng Wang } 372739258c9SLi Feng Wang } 373739258c9SLi Feng Wang addRecord(int i, long start, long end)374739258c9SLi Feng Wang private void addRecord(int i, long start, long end) { 375ac2ddd9cSLi Feng Wang HashMap<String, Object> perf = aoo.getPerfData(); 376ac2ddd9cSLi Feng Wang xmlResult.addRow("Data",testname.getMethodName(), i, (end - start), 377ac2ddd9cSLi Feng Wang perf.get("vsz"), perf.get("rss"), perf.get("handles")); 378*122356beSHerbert Dürr log.log( Level.INFO, "\t"+testname.getMethodName()+"["+i+"] took "+(end-start)+"ms"); 379739258c9SLi Feng Wang } 380739258c9SLi Feng Wang } 381