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 package svt.gui.sw; 26739258c9SLi Feng Wang 27739258c9SLi Feng Wang import static org.openoffice.test.common.Testspace.getFile; 28739258c9SLi Feng Wang import static org.openoffice.test.common.Testspace.getPath; 29739258c9SLi Feng Wang import static org.openoffice.test.common.Testspace.prepareData; 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; 37122356beSHerbert 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.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 public class FileTypeAboutWriter { 54739258c9SLi Feng Wang @Rule 55739258c9SLi Feng Wang public Logger log = Logger.getLogger(this); 56739258c9SLi Feng Wang 57739258c9SLi Feng Wang @Rule 58739258c9SLi Feng Wang public TestName testname = new TestName(); 59739258c9SLi Feng Wang 60739258c9SLi Feng Wang private static DataSheet xmlResult; 61739258c9SLi Feng Wang 62739258c9SLi Feng Wang private String pid = null; 63739258c9SLi Feng Wang 6466d0652aSLi Feng Wang private static int iterator = 100; 65739258c9SLi Feng Wang 66739258c9SLi Feng Wang private int i = 0; 67739258c9SLi Feng Wang 68739258c9SLi Feng Wang 69739258c9SLi Feng Wang /** 70739258c9SLi Feng Wang * @throws java.lang.Exception 71739258c9SLi Feng Wang */ 72739258c9SLi Feng Wang @BeforeClass beforeClass()73739258c9SLi Feng Wang public static void beforeClass() throws Exception { 74688c272fSLi Feng Wang xmlResult = new DataSheet(getFile("output/svt_writertype.xml")); 75ac2ddd9cSLi Feng Wang xmlResult.addRow("Data", "Method", "No", "Consumed Time(MS)", "Memory(VSZ)", "Memory(RSS)", "Handles(Windows Only)"); 76739258c9SLi Feng Wang } 77739258c9SLi Feng Wang 78739258c9SLi Feng Wang @AfterClass afterClass()79739258c9SLi Feng Wang public static void afterClass() throws Exception { 80739258c9SLi Feng Wang app.stop(); 81739258c9SLi Feng Wang } 82739258c9SLi Feng Wang 83739258c9SLi Feng Wang @Before before()84739258c9SLi Feng Wang public void before()throws Exception{ 85739258c9SLi Feng Wang app.start(true); 86739258c9SLi Feng Wang } 87739258c9SLi Feng Wang 88739258c9SLi Feng Wang 89739258c9SLi Feng Wang @Test saveNewSWWithShapeToHTML()90739258c9SLi Feng Wang public void saveNewSWWithShapeToHTML()throws Exception{ 91739258c9SLi Feng Wang for ( i = 1; i <= iterator; i++) { 92739258c9SLi Feng Wang long start = System.currentTimeMillis(); 93739258c9SLi Feng Wang createNewSW(); 94739258c9SLi Feng Wang if(!swDrawingToolbar.exists()){ 95739258c9SLi Feng Wang app.dispatch(".uno:AvailableToolbars?Toolbar:string=drawbar"); 96739258c9SLi Feng Wang } 97739258c9SLi Feng Wang sleep(2); 98739258c9SLi Feng Wang app.dispatch(".uno:Rect"); 99739258c9SLi Feng Wang writer.focus(); 100739258c9SLi Feng Wang writer.drag(200, 200, 300, 300); 101739258c9SLi Feng Wang sleep(2); 102739258c9SLi Feng Wang 103739258c9SLi Feng Wang typeKeys("<esc>"); 104739258c9SLi Feng Wang sleep(2); 105739258c9SLi Feng Wang saveToOther(i,".html"); 106739258c9SLi Feng Wang //reopen 107739258c9SLi Feng Wang String saveTo = getPath("temp/" + "tempDOC" + i + ".html"); 108739258c9SLi Feng Wang startCenterOpenButton.click(); 109739258c9SLi Feng Wang submitOpenDlg(saveTo); 110739258c9SLi Feng Wang sleep(1); 111739258c9SLi Feng Wang app.dispatch(".uno:CloseDoc"); 112739258c9SLi Feng Wang long end = System.currentTimeMillis(); 113739258c9SLi Feng Wang addRecord(i, start, end); 114739258c9SLi Feng Wang } 115739258c9SLi Feng Wang } 116739258c9SLi Feng Wang 117739258c9SLi Feng Wang @Test saveNewSWWithLineToDoc()118739258c9SLi Feng Wang public void saveNewSWWithLineToDoc()throws Exception{ 119739258c9SLi Feng Wang for (i = 1; i <= iterator; i++) { 120739258c9SLi Feng Wang long start = System.currentTimeMillis(); 121739258c9SLi Feng Wang createNewSW(); 122739258c9SLi Feng Wang if(!swDrawingToolbar.exists()){ 123739258c9SLi Feng Wang app.dispatch(".uno:AvailableToolbars?Toolbar:string=drawbar"); 124739258c9SLi Feng Wang } 125739258c9SLi Feng Wang sleep(2); 126739258c9SLi Feng Wang swInsertLineButtonOnToolbar.click(); 127739258c9SLi Feng Wang writer.focus(); 128739258c9SLi Feng Wang for(int j=0;j<10;j++){ 129*3bf97486SHerbert Dürr // due to snap-to-grid the lines below will not all be parallel! 130*3bf97486SHerbert Dürr writer.drag( 150+j, 150+j*10, 200+j, 200+j*10); 131*3bf97486SHerbert Dürr sleep( 0.5); 132739258c9SLi Feng Wang } 133739258c9SLi Feng Wang typeKeys("<esc>"); 134739258c9SLi Feng Wang sleep(2); 135739258c9SLi Feng Wang saveToOther(i,".doc"); 136739258c9SLi Feng Wang long end = System.currentTimeMillis(); 137739258c9SLi Feng Wang addRecord(i, start, end); 138739258c9SLi Feng Wang } 139739258c9SLi Feng Wang } 140739258c9SLi Feng Wang 141739258c9SLi Feng Wang @Test saveNewSWWithPicToDoc()142739258c9SLi Feng Wang public void saveNewSWWithPicToDoc() throws Exception { 143739258c9SLi Feng Wang String pic = prepareData("image/blue_256x256.jpg"); 144739258c9SLi Feng Wang for (i = 1; i <= iterator; i++) { 145739258c9SLi Feng Wang long start = System.currentTimeMillis(); 146739258c9SLi Feng Wang createNewSW(); 147739258c9SLi Feng Wang writer.menuItem("Insert->Picture->From File...").select(); 148739258c9SLi Feng Wang sleep(2); 149739258c9SLi Feng Wang filePickerPath.setText(pic); 150739258c9SLi Feng Wang sleep(1); 151739258c9SLi Feng Wang filePickerOpen.click(); 152739258c9SLi Feng Wang sleep(3); 153739258c9SLi Feng Wang typeKeys("<esc>"); 154739258c9SLi Feng Wang sleep(2); 155739258c9SLi Feng Wang saveToOther(i,".doc"); 156739258c9SLi Feng Wang long end = System.currentTimeMillis(); 157739258c9SLi Feng Wang addRecord(i, start, end); 158739258c9SLi Feng Wang } 159739258c9SLi Feng Wang } 160739258c9SLi Feng Wang createNewSW()161739258c9SLi Feng Wang private void createNewSW() { 162739258c9SLi Feng Wang app.dispatch("private:factory/swriter"); 163739258c9SLi Feng Wang } 164739258c9SLi Feng Wang saveToOther(int iterator, String type)165739258c9SLi Feng Wang private void saveToOther(int iterator, String type){ 166739258c9SLi Feng Wang String saveTo = getPath("temp/" + "tempDOC" + iterator + type); 167739258c9SLi Feng Wang writer.menuItem("File->Save As...").select(); 168739258c9SLi Feng Wang FileUtil.deleteFile(saveTo); 169739258c9SLi Feng Wang submitSaveDlg(saveTo); 170739258c9SLi Feng Wang if (activeMsgBox.exists()) { 171739258c9SLi Feng Wang activeMsgBox.yes(); 172739258c9SLi Feng Wang sleep(2); 173739258c9SLi Feng Wang } 174739258c9SLi Feng Wang if (alienFormatDlg.exists(3)) 175739258c9SLi Feng Wang alienFormatDlg.ok(); 176739258c9SLi Feng Wang app.dispatch(".uno:CloseDoc"); 177739258c9SLi Feng Wang startCenterOpenButton.waitForExistence(30, 2); 178739258c9SLi Feng Wang startCenterOpenButton.click(); 179739258c9SLi Feng Wang submitOpenDlg(saveTo); 180739258c9SLi Feng Wang sleep(2); 181739258c9SLi Feng Wang app.dispatch(".uno:CloseDoc"); 182ac2ddd9cSLi Feng Wang 183739258c9SLi Feng Wang } 184739258c9SLi Feng Wang addRecord(int i, long start, long end)185739258c9SLi Feng Wang private void addRecord(int i, long start, long end) { 186ac2ddd9cSLi Feng Wang HashMap<String, Object> perf = aoo.getPerfData(); 187ac2ddd9cSLi Feng Wang xmlResult.addRow("Data",testname.getMethodName(), i, (end - start), 188ac2ddd9cSLi Feng Wang perf.get("vsz"), perf.get("rss"), perf.get("handles")); 189122356beSHerbert Dürr log.log( Level.INFO, "\t"+testname.getMethodName()+"["+i+"] took "+(end-start)+"ms"); 190739258c9SLi Feng Wang } 191ac2ddd9cSLi Feng Wang 192739258c9SLi Feng Wang 193739258c9SLi Feng Wang } 194