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; 37739258c9SLi Feng Wang 38739258c9SLi Feng Wang import org.junit.After; 39739258c9SLi Feng Wang import org.junit.AfterClass; 40739258c9SLi Feng Wang import org.junit.Before; 41739258c9SLi Feng Wang import org.junit.BeforeClass; 42739258c9SLi Feng Wang import org.junit.Ignore; 43739258c9SLi Feng Wang import org.junit.Rule; 44739258c9SLi Feng Wang import org.junit.Test; 45739258c9SLi Feng Wang import org.junit.rules.TestName; 46739258c9SLi Feng Wang import org.openoffice.test.OpenOffice; 47739258c9SLi Feng Wang import org.openoffice.test.common.DataSheet; 48739258c9SLi Feng Wang import org.openoffice.test.common.FileUtil; 49739258c9SLi Feng Wang import org.openoffice.test.common.Logger; 50739258c9SLi Feng Wang import org.openoffice.test.common.SystemUtil; 51739258c9SLi Feng Wang import org.openoffice.test.common.Testspace; 52739258c9SLi Feng Wang 53739258c9SLi Feng Wang import testlib.gui.SCTool; 54739258c9SLi Feng Wang 55739258c9SLi Feng Wang public class BasicFuncOnImpress { 56739258c9SLi Feng Wang @Rule 57739258c9SLi Feng Wang public Logger log = Logger.getLogger(this); 58739258c9SLi Feng Wang 59739258c9SLi Feng Wang @Rule 60739258c9SLi Feng Wang public TestName testname = new TestName(); 61739258c9SLi Feng Wang 62739258c9SLi Feng Wang private static DataSheet xmlResult; 63739258c9SLi Feng Wang 64739258c9SLi Feng Wang private String pid = null; 65739258c9SLi Feng Wang 66*66d0652aSLi Feng Wang private static int iterator = 100; 67739258c9SLi Feng Wang 68739258c9SLi Feng Wang private int i = 0; 69739258c9SLi Feng Wang 70739258c9SLi Feng Wang /** 71739258c9SLi Feng Wang * @throws java.lang.Exception 72739258c9SLi Feng Wang */ 73739258c9SLi Feng Wang @BeforeClass 74739258c9SLi Feng Wang public static void beforeClass() throws Exception { 75ac2ddd9cSLi Feng Wang xmlResult = new DataSheet(getFile("output/svt.xml")); 76ac2ddd9cSLi Feng Wang xmlResult.addRow("Data", "Method", "No", "Consumed Time(MS)", "Memory(VSZ)", "Memory(RSS)", "Handles(Windows Only)"); 77739258c9SLi Feng Wang } 78739258c9SLi Feng Wang 79739258c9SLi Feng Wang @AfterClass 80739258c9SLi Feng Wang public static void afterClass() throws Exception { 81739258c9SLi Feng Wang app.stop(); 82739258c9SLi Feng Wang } 83739258c9SLi Feng Wang 84739258c9SLi Feng Wang @Before 85739258c9SLi Feng Wang public void before() throws Exception{ 86739258c9SLi Feng Wang app.start(true); 87739258c9SLi Feng Wang } 88739258c9SLi Feng Wang 89739258c9SLi Feng Wang @Test 90739258c9SLi Feng Wang public void saveNewSDWithNewSlides() throws Exception { 91739258c9SLi Feng Wang for (i = 1; i <= iterator; i++) { 92739258c9SLi Feng Wang long start = System.currentTimeMillis(); 93739258c9SLi Feng Wang createNewSD(); 94739258c9SLi Feng Wang impress.menuItem("Insert->Slide").select(); 95739258c9SLi Feng Wang sleep(2); 96739258c9SLi Feng Wang saveAndReopenNewSD(i); 97739258c9SLi Feng Wang long end = System.currentTimeMillis(); 98739258c9SLi Feng Wang addRecord(i, start, end); 99739258c9SLi Feng Wang } 100739258c9SLi Feng Wang } 101739258c9SLi Feng Wang 102739258c9SLi Feng Wang @Test 103739258c9SLi Feng Wang public void saveNewSDWithTable() throws Exception { 104739258c9SLi Feng Wang for (i = 1; i <= iterator; i++) { 105739258c9SLi Feng Wang long start = System.currentTimeMillis(); 106739258c9SLi Feng Wang createNewSD(); 107739258c9SLi Feng Wang app.dispatch(".uno:InsertTable", 3); 108739258c9SLi Feng Wang sleep(2); 109739258c9SLi Feng Wang numberofCol.setText("5"); 110739258c9SLi Feng Wang numberofRow.setText("4"); 111739258c9SLi Feng Wang sleep(2); 112739258c9SLi Feng Wang insertTable.ok(); 113739258c9SLi Feng Wang impress.typeKeys("<enter>"); 114739258c9SLi Feng Wang impress.typeKeys("2"); 115739258c9SLi Feng Wang impress.typeKeys("<right>"); 116739258c9SLi Feng Wang impress.typeKeys("2"); 117739258c9SLi Feng Wang impress.typeKeys("<right>"); 118739258c9SLi Feng Wang impress.typeKeys("<ctrl end>"); 119739258c9SLi Feng Wang impress.typeKeys("2"); 120739258c9SLi Feng Wang sleep(2); 121739258c9SLi Feng Wang saveAndReopenNewSD(i); 122739258c9SLi Feng Wang long end = System.currentTimeMillis(); 123739258c9SLi Feng Wang addRecord(i, start, end); 124739258c9SLi Feng Wang } 125739258c9SLi Feng Wang } 126739258c9SLi Feng Wang 127739258c9SLi Feng Wang @Test 128739258c9SLi Feng Wang public void saveNewSDWithPic() throws Exception { 129739258c9SLi Feng Wang String pic = prepareData("image/blue_256x256.jpg"); 130739258c9SLi Feng Wang for (i = 1; i <= iterator; i++) { 131739258c9SLi Feng Wang long start = System.currentTimeMillis(); 132739258c9SLi Feng Wang createNewSD(); 133ac2ddd9cSLi Feng Wang app.dispatch(".uno:InsertGraphic"); 134ac2ddd9cSLi Feng Wang // impress.menuItem("Insert->Picture->From File...").select(); 135739258c9SLi Feng Wang sleep(2); 136739258c9SLi Feng Wang filePickerPath.setText(pic); 137739258c9SLi Feng Wang sleep(1); 138739258c9SLi Feng Wang filePickerOpen.click(); 139739258c9SLi Feng Wang sleep(5); 140739258c9SLi Feng Wang impress.typeKeys("<esc>"); 141739258c9SLi Feng Wang sleep(2); 142739258c9SLi Feng Wang saveAndReopenNewSD(i); 143739258c9SLi Feng Wang long end = System.currentTimeMillis(); 144739258c9SLi Feng Wang addRecord(i, start, end); 145739258c9SLi Feng Wang } 146739258c9SLi Feng Wang } 147739258c9SLi Feng Wang 148739258c9SLi Feng Wang @Test 149739258c9SLi Feng Wang public void saveNewSDWithTextbox()throws Exception{ 150739258c9SLi Feng Wang if(!sdDrawingToolbar.exists()){ 151739258c9SLi Feng Wang app.dispatch(".uno:AvailableToolbars?Toolbar:string=toolbar"); 152739258c9SLi Feng Wang } 153739258c9SLi Feng Wang for (i = 1; i <= iterator; i++) { 154739258c9SLi Feng Wang long start = System.currentTimeMillis(); 155739258c9SLi Feng Wang createNewSD(); 156739258c9SLi Feng Wang sdInsertTextboxButtonOnToolbar.click(); 157739258c9SLi Feng Wang impress.focus(); 158739258c9SLi Feng Wang impress.drag(100, 100, 200, 200); 159739258c9SLi Feng Wang typeKeys("test"); 160739258c9SLi Feng Wang typeKeys("<esc>"); 161739258c9SLi Feng Wang sleep(2); 162739258c9SLi Feng Wang saveAndReopenNewSD(i); 163739258c9SLi Feng Wang long end = System.currentTimeMillis(); 164739258c9SLi Feng Wang addRecord(i, start, end); 165739258c9SLi Feng Wang } 166739258c9SLi Feng Wang } 167739258c9SLi Feng Wang 168739258c9SLi Feng Wang @Test 169739258c9SLi Feng Wang public void saveNewSDWithExternalSlides() throws Exception { 170739258c9SLi Feng Wang String externalFile = prepareData("pvt/plain_200p.odp"); 171739258c9SLi Feng Wang for (i = 1; i <= iterator; i++) { 172739258c9SLi Feng Wang long start = System.currentTimeMillis(); 173739258c9SLi Feng Wang createNewSD(); 174739258c9SLi Feng Wang app.dispatch(".uno:ImportFromFile"); 175739258c9SLi Feng Wang sleep(2); 176739258c9SLi Feng Wang filePickerPath.setText(externalFile); 177739258c9SLi Feng Wang filePickerOpen.click(); 178739258c9SLi Feng Wang sleep(2); 179739258c9SLi Feng Wang insertSlideObjects.ok(); 180739258c9SLi Feng Wang sleep(5); 181739258c9SLi Feng Wang saveAndReopenNewSD(i); 182739258c9SLi Feng Wang long end = System.currentTimeMillis(); 183739258c9SLi Feng Wang addRecord(i, start, end); 184739258c9SLi Feng Wang } 185739258c9SLi Feng Wang } 186739258c9SLi Feng Wang 187739258c9SLi Feng Wang @Test 188739258c9SLi Feng Wang public void saveNewSDWithAnimation()throws Exception{ 189739258c9SLi Feng Wang for (i = 1; i <= iterator; i++) { 190739258c9SLi Feng Wang long start = System.currentTimeMillis(); 191739258c9SLi Feng Wang createNewSD(); 192739258c9SLi Feng Wang //Insert a Shape and select it via Navigator 193739258c9SLi Feng Wang sdCalloutShapes.click(); 194739258c9SLi Feng Wang impress.focus(); 195739258c9SLi Feng Wang impress.drag(100, 100, 200, 200); 196739258c9SLi Feng Wang app.dispatch(".uno:CustomAnimation"); 197739258c9SLi Feng Wang sdAddAnimation.click(); 198739258c9SLi Feng Wang sdEntranceAnimationTab.waitForExistence(60, 2); 199739258c9SLi Feng Wang sdEntranceAnimationTab.select("Circle"); 200739258c9SLi Feng Wang typeKeys("<enter>"); 201739258c9SLi Feng Wang sdAnimationList.openContextMenu(); 202739258c9SLi Feng Wang typeKeys("<down><down><enter>"); 203739258c9SLi Feng Wang impress.menuItem("Slide Show->Slide Show").select(); 204739258c9SLi Feng Wang sleep(10); 205739258c9SLi Feng Wang impress.typeKeys("<esc>"); 206739258c9SLi Feng Wang sleep(5); 207739258c9SLi Feng Wang saveAndReopenNewSD(i); 208739258c9SLi Feng Wang long end = System.currentTimeMillis(); 209739258c9SLi Feng Wang addRecord(i, start, end); 210739258c9SLi Feng Wang } 211739258c9SLi Feng Wang } 212739258c9SLi Feng Wang 213739258c9SLi Feng Wang @Test 214739258c9SLi Feng Wang public void saveNewSDWithShowSettings() throws Exception { 215739258c9SLi Feng Wang String externalFile = prepareData("pvt/plain_200p.odp"); 216739258c9SLi Feng Wang for (i = 1; i <= iterator; i++) { 217739258c9SLi Feng Wang long start = System.currentTimeMillis(); 218739258c9SLi Feng Wang createNewSD(); 219739258c9SLi Feng Wang // Insert Slides from External Sample files 220739258c9SLi Feng Wang impress.menuItem("Insert->File...").select(); 221739258c9SLi Feng Wang sleep(2); 222739258c9SLi Feng Wang filePickerPath.setText(externalFile); 223739258c9SLi Feng Wang filePickerOpen.click(); 224739258c9SLi Feng Wang sleep(2); 225739258c9SLi Feng Wang insertSlideObjects.ok(); 226739258c9SLi Feng Wang sleep(20); 227739258c9SLi Feng Wang 228739258c9SLi Feng Wang // Slide Screen Show Settings 229739258c9SLi Feng Wang impress.menuItem("Slide Show->Slide Transition...").select(); 230739258c9SLi Feng Wang sleep(2); 231739258c9SLi Feng Wang impressSlideTransitions.select("Uncover Up"); 232739258c9SLi Feng Wang sleep(2); 233739258c9SLi Feng Wang slideShowSpeed.select("Slow"); 234739258c9SLi Feng Wang sleep(5); 235739258c9SLi Feng Wang slideAutoAfter.check(); 236739258c9SLi Feng Wang sleep(2); 237739258c9SLi Feng Wang applyToAllSlides.click(); 238739258c9SLi Feng Wang sleep(2); 239739258c9SLi Feng Wang impress.menuItem("Slide Show->Slide Show").select(); 240739258c9SLi Feng Wang sleep(70); 241739258c9SLi Feng Wang impress.typeKeys("<esc>"); 242739258c9SLi Feng Wang sleep(5); 243739258c9SLi Feng Wang saveAndReopenNewSD(i); 244739258c9SLi Feng Wang long end = System.currentTimeMillis(); 245739258c9SLi Feng Wang addRecord(i, start, end); 246739258c9SLi Feng Wang } 247739258c9SLi Feng Wang } 248739258c9SLi Feng Wang 249739258c9SLi Feng Wang @Test 250739258c9SLi Feng Wang public void saveSDTemplate()throws Exception{ 251739258c9SLi Feng Wang String templateFile = prepareData("svt/DarkBlue.otp"); 252739258c9SLi Feng Wang for (i = 1; i <= iterator; i++) { 253739258c9SLi Feng Wang long start = System.currentTimeMillis(); 254739258c9SLi Feng Wang app.dispatch(".uno:Open"); 255739258c9SLi Feng Wang submitOpenDlg(templateFile); 256739258c9SLi Feng Wang impress.waitForExistence(10, 2); 257739258c9SLi Feng Wang sleep(5); 258739258c9SLi Feng Wang saveAndReopenNewSD(i); 259739258c9SLi Feng Wang long end = System.currentTimeMillis(); 260739258c9SLi Feng Wang addRecord(i, start, end); 261739258c9SLi Feng Wang } 262739258c9SLi Feng Wang } 263739258c9SLi Feng Wang 264739258c9SLi Feng Wang @Test 265ac2ddd9cSLi Feng Wang @Ignore 266739258c9SLi Feng Wang public void opChartOnOpenedSD() throws Exception { 267739258c9SLi Feng Wang String file = prepareData("svt/OLEinODP.odp"); 268739258c9SLi Feng Wang for (i = 1; i <= iterator; i++) { 269739258c9SLi Feng Wang long start = System.currentTimeMillis(); 270739258c9SLi Feng Wang app.dispatch(".uno:Open"); 271739258c9SLi Feng Wang submitOpenDlg(file); 272739258c9SLi Feng Wang impress.waitForExistence(10, 2); 273739258c9SLi Feng Wang sleep(5); 274739258c9SLi Feng Wang if (!sdNavigatorDlg.exists()) { 275739258c9SLi Feng Wang app.dispatch(".uno:Navigator"); 276739258c9SLi Feng Wang } 277739258c9SLi Feng Wang impress.focus(); 278739258c9SLi Feng Wang sdNavigator.focus(); 279739258c9SLi Feng Wang sdNavigator.collapseAll(); 280739258c9SLi Feng Wang sdNavigator.expand(0); 281739258c9SLi Feng Wang sdNavigator.select(1); 282739258c9SLi Feng Wang typeKeys("<enter>"); 283739258c9SLi Feng Wang impress.menuItem("Edit->Copy").select(); 284739258c9SLi Feng Wang sleep(2); 285739258c9SLi Feng Wang impress.menuItem("Edit->Paste").select(); 286739258c9SLi Feng Wang sleep(2); 287739258c9SLi Feng Wang 288739258c9SLi Feng Wang sdNavigator.focus(); 289739258c9SLi Feng Wang sdNavigator.collapseAll(); 290739258c9SLi Feng Wang sdNavigator.expand(0); 291739258c9SLi Feng Wang sdNavigator.select(2); 292739258c9SLi Feng Wang typeKeys("<enter>"); 293739258c9SLi Feng Wang impress.menuItem("Edit->Copy").select(); 294739258c9SLi Feng Wang sleep(2); 295739258c9SLi Feng Wang impress.menuItem("Edit->Paste").select(); 296739258c9SLi Feng Wang sleep(2); 297739258c9SLi Feng Wang 298739258c9SLi Feng Wang sdNavigator.focus(); 299739258c9SLi Feng Wang sdNavigator.collapseAll(); 300739258c9SLi Feng Wang sdNavigator.expand(0); 301739258c9SLi Feng Wang sdNavigator.select(3); 302739258c9SLi Feng Wang typeKeys("<enter>"); 303739258c9SLi Feng Wang impress.menuItem("Edit->Copy").select(); 304739258c9SLi Feng Wang sleep(2); 305739258c9SLi Feng Wang impress.menuItem("Edit->Paste").select(); 306739258c9SLi Feng Wang sleep(2); 307739258c9SLi Feng Wang closeWithoutSaveSD(); 308739258c9SLi Feng Wang long end = System.currentTimeMillis(); 309739258c9SLi Feng Wang addRecord(i, start, end); 310739258c9SLi Feng Wang } 311739258c9SLi Feng Wang } 312739258c9SLi Feng Wang 313739258c9SLi Feng Wang @Test 314739258c9SLi Feng Wang public void switchViewOfOpenedSD() throws Exception { 315739258c9SLi Feng Wang String file = prepareData("pvt/plain_200p.odp"); 316739258c9SLi Feng Wang for (i = 1; i <= iterator; i++) { 317739258c9SLi Feng Wang long start = System.currentTimeMillis(); 318739258c9SLi Feng Wang app.dispatch(".uno:Open"); 319739258c9SLi Feng Wang submitOpenDlg(file); 320739258c9SLi Feng Wang impress.waitForExistence(10, 2); 321739258c9SLi Feng Wang sleep(5); 322739258c9SLi Feng Wang 323739258c9SLi Feng Wang impress.menuItem("View->Outline").select(); 324739258c9SLi Feng Wang sleep(2); 325739258c9SLi Feng Wang impressOutline.menuItem("View->Slide Sorter").select(); 326739258c9SLi Feng Wang sleep(10); 327739258c9SLi Feng Wang impressSlideSorter.menuItem("View->Notes Page").select(); 328739258c9SLi Feng Wang sleep(2); 329739258c9SLi Feng Wang impressHandoutView.menuItem("View->Master->Slide Master").select(); 330739258c9SLi Feng Wang sleep(2); 331739258c9SLi Feng Wang impress.menuItem("View->Master->Notes Master").select(); 332739258c9SLi Feng Wang sleep(2); 333739258c9SLi Feng Wang 334739258c9SLi Feng Wang impressHandoutView.menuItem("View->Normal").select(); 335739258c9SLi Feng Wang sleep(2); 336739258c9SLi Feng Wang closeWithoutSaveSD(); 337739258c9SLi Feng Wang long end = System.currentTimeMillis(); 338739258c9SLi Feng Wang addRecord(i, start, end); 339739258c9SLi Feng Wang } 340739258c9SLi Feng Wang } 341739258c9SLi Feng Wang 342739258c9SLi Feng Wang private void createNewSD() { 343739258c9SLi Feng Wang app.dispatch("private:factory/simpress?slot=6686"); 344739258c9SLi Feng Wang presentationWizard.ok(); 345739258c9SLi Feng Wang } 346739258c9SLi Feng Wang 347739258c9SLi Feng Wang private void saveAndReopenNewSD(int iterator) { 348739258c9SLi Feng Wang String saveTo = getPath("temp/" + "tempSD_New" + iterator + ".odp"); 349739258c9SLi Feng Wang impress.menuItem("File->Save As...").select(); 350739258c9SLi Feng Wang FileUtil.deleteFile(saveTo); 351739258c9SLi Feng Wang submitSaveDlg(saveTo); 352739258c9SLi Feng Wang if (activeMsgBox.exists()) { 353739258c9SLi Feng Wang activeMsgBox.yes(); 354739258c9SLi Feng Wang sleep(2); 355739258c9SLi Feng Wang } 356739258c9SLi Feng Wang sleep(5); 357739258c9SLi Feng Wang app.dispatch(".uno:CloseDoc"); 358739258c9SLi Feng Wang startCenterOpenButton.waitForExistence(30, 2); 359739258c9SLi Feng Wang startCenterOpenButton.click(); 360739258c9SLi Feng Wang submitOpenDlg(saveTo); 361739258c9SLi Feng Wang sleep(2); 362739258c9SLi Feng Wang app.dispatch(".uno:CloseDoc"); 363739258c9SLi Feng Wang } 364739258c9SLi Feng Wang 365739258c9SLi Feng Wang private void closeWithoutSaveSD() { 366739258c9SLi Feng Wang impress.menuItem("File->Close").select(); 367739258c9SLi Feng Wang if (activeMsgBox.exists()) { 368739258c9SLi Feng Wang activeMsgBox.no(); 369739258c9SLi Feng Wang sleep(2); 370739258c9SLi Feng Wang } 371739258c9SLi Feng Wang } 372739258c9SLi Feng Wang 373739258c9SLi Feng Wang private void addRecord(int i, long start, long end) { 374ac2ddd9cSLi Feng Wang HashMap<String, Object> perf = aoo.getPerfData(); 375ac2ddd9cSLi Feng Wang xmlResult.addRow("Data",testname.getMethodName(), i, (end - start), 376ac2ddd9cSLi Feng Wang perf.get("vsz"), perf.get("rss"), perf.get("handles")); 377739258c9SLi Feng Wang } 378739258c9SLi Feng Wang } 379