1323ac9c5SLi Feng Wang /************************************************************** 2323ac9c5SLi Feng Wang * 3323ac9c5SLi Feng Wang * Licensed to the Apache Software Foundation (ASF) under one 4323ac9c5SLi Feng Wang * or more contributor license agreements. See the NOTICE file 5323ac9c5SLi Feng Wang * distributed with this work for additional information 6323ac9c5SLi Feng Wang * regarding copyright ownership. The ASF licenses this file 7323ac9c5SLi Feng Wang * to you under the Apache License, Version 2.0 (the 8323ac9c5SLi Feng Wang * "License"); you may not use this file except in compliance 9323ac9c5SLi Feng Wang * with the License. You may obtain a copy of the License at 10323ac9c5SLi Feng Wang * 11323ac9c5SLi Feng Wang * http://www.apache.org/licenses/LICENSE-2.0 12323ac9c5SLi Feng Wang * 13323ac9c5SLi Feng Wang * Unless required by applicable law or agreed to in writing, 14323ac9c5SLi Feng Wang * software distributed under the License is distributed on an 15323ac9c5SLi Feng Wang * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16323ac9c5SLi Feng Wang * KIND, either express or implied. See the License for the 17323ac9c5SLi Feng Wang * specific language governing permissions and limitations 18323ac9c5SLi Feng Wang * under the License. 19323ac9c5SLi Feng Wang * 20323ac9c5SLi Feng Wang *************************************************************/ 21323ac9c5SLi Feng Wang /** 22323ac9c5SLi Feng Wang * 23323ac9c5SLi Feng Wang */ 24323ac9c5SLi Feng Wang package fvt.uno.sd.bullet; 25323ac9c5SLi Feng Wang import static org.junit.Assert.*; 26323ac9c5SLi Feng Wang import static testlib.uno.PageUtil.getDrawPageByIndex; 27323ac9c5SLi Feng Wang import static testlib.uno.ShapeUtil.*; 28323ac9c5SLi Feng Wang 29323ac9c5SLi Feng Wang import org.junit.After; 30323ac9c5SLi Feng Wang import org.junit.AfterClass; 31323ac9c5SLi Feng Wang import org.junit.Before; 32323ac9c5SLi Feng Wang import org.junit.BeforeClass; 33323ac9c5SLi Feng Wang import org.junit.Test; 34323ac9c5SLi Feng Wang import org.openoffice.test.common.FileUtil; 35323ac9c5SLi Feng Wang import org.openoffice.test.common.Testspace; 36323ac9c5SLi Feng Wang import org.openoffice.test.uno.UnoApp; 37323ac9c5SLi Feng Wang 38323ac9c5SLi Feng Wang import com.sun.star.beans.PropertyValue; 39323ac9c5SLi Feng Wang import com.sun.star.beans.XPropertySet; 40323ac9c5SLi Feng Wang import com.sun.star.container.XIndexReplace; 41323ac9c5SLi Feng Wang import com.sun.star.drawing.XShape; 42323ac9c5SLi Feng Wang 43323ac9c5SLi Feng Wang import com.sun.star.lang.XComponent; 44323ac9c5SLi Feng Wang 45323ac9c5SLi Feng Wang import com.sun.star.style.NumberingType; 46323ac9c5SLi Feng Wang import com.sun.star.uno.UnoRuntime; 47323ac9c5SLi Feng Wang import testlib.uno.SDUtil; 48323ac9c5SLi Feng Wang 49323ac9c5SLi Feng Wang /** 50323ac9c5SLi Feng Wang * 1. New a SD 51323ac9c5SLi Feng Wang 2. Insert some text 52323ac9c5SLi Feng Wang 3. Set bullet on 53323ac9c5SLi Feng Wang 4. Change the bullet color and bullet size 54323ac9c5SLi Feng Wang 5. save/close/reopen and then check the bullet color and size 55323ac9c5SLi Feng Wang * 56323ac9c5SLi Feng Wang */ 57323ac9c5SLi Feng Wang public class CheckBulletStyle { 58323ac9c5SLi Feng Wang 59323ac9c5SLi Feng Wang private static final UnoApp app = new UnoApp(); 60323ac9c5SLi Feng Wang 61323ac9c5SLi Feng Wang private XComponent m_xSDComponent = null; 62323ac9c5SLi Feng Wang private String m_filePath = null; 63323ac9c5SLi Feng Wang // private XShape m_xsecondTextBox = null; 64323ac9c5SLi Feng Wang Object m_numberingRules = null; 65323ac9c5SLi Feng Wang XPropertySet m_textProperty = null; 66323ac9c5SLi Feng Wang XIndexReplace m_xReplace = null; 67323ac9c5SLi Feng Wang 68323ac9c5SLi Feng Wang @Before setUpDocument()69323ac9c5SLi Feng Wang public void setUpDocument() throws Exception { 70*28725c19SLi Feng Wang m_filePath = Testspace.getPath("temp/CheckBulletStyle.odp"); 71323ac9c5SLi Feng Wang if(FileUtil.fileExists(m_filePath)) 72323ac9c5SLi Feng Wang { //load 73323ac9c5SLi Feng Wang m_xReplace = load(); 74323ac9c5SLi Feng Wang } 75323ac9c5SLi Feng Wang else{ 76323ac9c5SLi Feng Wang //create a sd 77323ac9c5SLi Feng Wang m_xSDComponent = (XComponent) UnoRuntime.queryInterface(XComponent.class, app.newDocument("simpress")); 78323ac9c5SLi Feng Wang Object firstPage = getDrawPageByIndex(m_xSDComponent, 0); 79323ac9c5SLi Feng Wang Object secondTextBox = SDUtil.getShapeOfPageByIndex(firstPage, 1); 80323ac9c5SLi Feng Wang XShape xsecondTextBox = (XShape)UnoRuntime.queryInterface(XShape.class, secondTextBox); 81323ac9c5SLi Feng Wang m_textProperty = addPortion(xsecondTextBox, "Test Bullet Style", false); 82323ac9c5SLi Feng Wang 83323ac9c5SLi Feng Wang //get numberingRules 84323ac9c5SLi Feng Wang m_numberingRules = m_textProperty.getPropertyValue("NumberingRules"); 85323ac9c5SLi Feng Wang 86323ac9c5SLi Feng Wang m_xReplace = (XIndexReplace) UnoRuntime.queryInterface( 87323ac9c5SLi Feng Wang XIndexReplace.class, m_numberingRules); 88323ac9c5SLi Feng Wang 89323ac9c5SLi Feng Wang PropertyValue[] props = new PropertyValue[1]; 90323ac9c5SLi Feng Wang props[0] = new PropertyValue(); 91323ac9c5SLi Feng Wang props[0].Name = "NumberingType"; 92323ac9c5SLi Feng Wang props[0].Value = new Short(NumberingType.CHAR_SPECIAL ); 93323ac9c5SLi Feng Wang 94323ac9c5SLi Feng Wang //set numberingType 95323ac9c5SLi Feng Wang m_xReplace.replaceByIndex(0, props); 96323ac9c5SLi Feng Wang m_textProperty.setPropertyValue("NumberingRules", m_numberingRules); 97323ac9c5SLi Feng Wang //set numbering level to 0 98323ac9c5SLi Feng Wang m_textProperty.setPropertyValue("NumberingLevel", new Short((short)0)); 99323ac9c5SLi Feng Wang } 100323ac9c5SLi Feng Wang } load()101323ac9c5SLi Feng Wang private XIndexReplace load() throws Exception{ 102323ac9c5SLi Feng Wang m_xSDComponent = (XComponent) UnoRuntime.queryInterface(XComponent.class, 103323ac9c5SLi Feng Wang app.loadDocument(m_filePath)); 104323ac9c5SLi Feng Wang Object firstPage = getDrawPageByIndex(m_xSDComponent, 0); 105323ac9c5SLi Feng Wang Object secondTextBox = SDUtil.getShapeOfPageByIndex(firstPage, 1); 106323ac9c5SLi Feng Wang XShape xsecondTextBox = (XShape)UnoRuntime.queryInterface(XShape.class, secondTextBox); 107323ac9c5SLi Feng Wang m_textProperty = getPortion(xsecondTextBox, 0); 108323ac9c5SLi Feng Wang 109323ac9c5SLi Feng Wang m_numberingRules = m_textProperty.getPropertyValue("NumberingRules"); 110323ac9c5SLi Feng Wang 111323ac9c5SLi Feng Wang XIndexReplace xReplace = (XIndexReplace) UnoRuntime.queryInterface( 112323ac9c5SLi Feng Wang XIndexReplace.class, m_numberingRules); 113323ac9c5SLi Feng Wang return xReplace; 114323ac9c5SLi Feng Wang } 115323ac9c5SLi Feng Wang 116323ac9c5SLi Feng Wang @After tearDownDocument()117323ac9c5SLi Feng Wang public void tearDownDocument() { 118323ac9c5SLi Feng Wang app.closeDocument(m_xSDComponent); 119*28725c19SLi Feng Wang 120*28725c19SLi Feng Wang //remove the temp file 121*28725c19SLi Feng Wang FileUtil.deleteFile(Testspace.getPath("temp")); 122323ac9c5SLi Feng Wang } 123323ac9c5SLi Feng Wang 124323ac9c5SLi Feng Wang @BeforeClass setUpConnection()125323ac9c5SLi Feng Wang public static void setUpConnection() throws Exception { 126323ac9c5SLi Feng Wang app.start(); 127323ac9c5SLi Feng Wang } 128323ac9c5SLi Feng Wang 129323ac9c5SLi Feng Wang @AfterClass tearDownConnection()130323ac9c5SLi Feng Wang public static void tearDownConnection() throws InterruptedException, 131323ac9c5SLi Feng Wang Exception { 132323ac9c5SLi Feng Wang app.close(); 133*28725c19SLi Feng Wang 134323ac9c5SLi Feng Wang } 135323ac9c5SLi Feng Wang 136323ac9c5SLi Feng Wang @Test testBulletColor()137323ac9c5SLi Feng Wang public void testBulletColor() throws Exception { 138323ac9c5SLi Feng Wang //BulletColor, Integer 139323ac9c5SLi Feng Wang PropertyValue[] props = new PropertyValue[1]; 140323ac9c5SLi Feng Wang props[0] = new PropertyValue(); 141323ac9c5SLi Feng Wang props[0].Name = "BulletColor"; 142323ac9c5SLi Feng Wang props[0].Value = new Integer(255); 143323ac9c5SLi Feng Wang 144323ac9c5SLi Feng Wang m_xReplace.replaceByIndex(0, props); 145323ac9c5SLi Feng Wang m_textProperty.setPropertyValue("NumberingRules", m_numberingRules); 146323ac9c5SLi Feng Wang 147323ac9c5SLi Feng Wang app.saveDocument(m_xSDComponent, m_filePath); 148323ac9c5SLi Feng Wang app.closeDocument(m_xSDComponent); 149323ac9c5SLi Feng Wang 150323ac9c5SLi Feng Wang XIndexReplace xReplace = load(); 151323ac9c5SLi Feng Wang PropertyValue[] proValues = (PropertyValue[])xReplace.getByIndex(0); 152323ac9c5SLi Feng Wang assertEquals("name should be BulletColor", "BulletColor", proValues[11].Name); 153323ac9c5SLi Feng Wang assertEquals("BulletColor should be 255(Blue)", new Integer(255), proValues[11].Value); 154323ac9c5SLi Feng Wang } 155323ac9c5SLi Feng Wang 156323ac9c5SLi Feng Wang @Test testBulletSize()157323ac9c5SLi Feng Wang public void testBulletSize() throws Exception { 158323ac9c5SLi Feng Wang //BulletRelSize, default 45 159323ac9c5SLi Feng Wang PropertyValue[] props = new PropertyValue[1]; 160323ac9c5SLi Feng Wang props[0] = new PropertyValue(); 161323ac9c5SLi Feng Wang props[0].Name = "BulletRelSize"; 162323ac9c5SLi Feng Wang props[0].Value = new Short((short)200); 163323ac9c5SLi Feng Wang 164323ac9c5SLi Feng Wang m_xReplace.replaceByIndex(0, props); 165323ac9c5SLi Feng Wang m_textProperty.setPropertyValue("NumberingRules", m_numberingRules); 166323ac9c5SLi Feng Wang 167323ac9c5SLi Feng Wang app.saveDocument(m_xSDComponent, m_filePath); 168323ac9c5SLi Feng Wang app.closeDocument(m_xSDComponent); 169323ac9c5SLi Feng Wang 170323ac9c5SLi Feng Wang XIndexReplace xReplace = load(); 171323ac9c5SLi Feng Wang PropertyValue[] proValues = (PropertyValue[])xReplace.getByIndex(0); 172323ac9c5SLi Feng Wang assertEquals("name should be BulletRelSize", "BulletRelSize", proValues[12].Name); 173323ac9c5SLi Feng Wang assertEquals("BulletRelSize should be 200%", new Short((short)200), proValues[12].Value); 174323ac9c5SLi Feng Wang } 175323ac9c5SLi Feng Wang } 176