/************************************************************** | |
* | |
* Licensed to the Apache Software Foundation (ASF) under one | |
* or more contributor license agreements. See the NOTICE file | |
* distributed with this work for additional information | |
* regarding copyright ownership. The ASF licenses this file | |
* to you under the Apache License, Version 2.0 (the | |
* "License"); you may not use this file except in compliance | |
* with the License. You may obtain a copy of the License at | |
* | |
* http://www.apache.org/licenses/LICENSE-2.0 | |
* | |
* Unless required by applicable law or agreed to in writing, | |
* software distributed under the License is distributed on an | |
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | |
* KIND, either express or implied. See the License for the | |
* specific language governing permissions and limitations | |
* under the License. | |
* | |
*************************************************************/ | |
/** | |
* check character style | |
* 1. new a impress | |
* 2. insert one line text in the first textbox | |
* 3. set the font color to red | |
* 4. save, close, reopen, then check the font color | |
* 5. set the underline to single | |
* 6. save, close, reopen, then check the underline | |
* 7. set the font size to 12 | |
* 8. save, close, reopen, then check the font size | |
* 9. set font style to Bold, Italic | |
* 10. save, close, reopen, then check the font style | |
*/ | |
package fvt.uno.sd.character; | |
import static org.junit.Assert.*; | |
import static testlib.uno.SDUtil.saveFileAs; | |
import java.io.File; | |
import org.junit.After; | |
import org.junit.AfterClass; | |
import org.junit.Before; | |
import org.junit.BeforeClass; | |
import org.junit.Test; | |
import org.openoffice.test.common.FileUtil; | |
import org.openoffice.test.common.Testspace; | |
import org.openoffice.test.uno.UnoApp; | |
import testlib.uno.SDUtil; | |
import com.sun.star.beans.PropertyValue; | |
import com.sun.star.beans.XPropertySet; | |
import com.sun.star.container.XIndexAccess; | |
import com.sun.star.drawing.XDrawPage; | |
import com.sun.star.drawing.XDrawPages; | |
import com.sun.star.drawing.XDrawPagesSupplier; | |
import com.sun.star.drawing.XShapes; | |
import com.sun.star.frame.XStorable; | |
import com.sun.star.lang.XComponent; | |
import com.sun.star.text.XText; | |
import com.sun.star.uno.UnoRuntime; | |
/** | |
* @author LouQL | |
* | |
*/ | |
public class CheckCharacterStyle { | |
private static final UnoApp app = new UnoApp(); | |
private XComponent m_xSDComponent = null; | |
private XText xShapeText = null; | |
private String filePath = null; | |
private XPropertySet xtextProps = null; | |
/** | |
* @throws java.lang.Exception | |
*/ | |
@BeforeClass | |
public static void setUpConnection() throws Exception { | |
app.start(); | |
File temp = new File(Testspace.getPath("temp")); | |
temp.mkdirs(); | |
} | |
@AfterClass | |
public static void tearDownConnection() throws Exception { | |
app.close(); | |
} | |
/** | |
* @throws java.lang.Exception | |
*/ | |
@Before | |
public void setUp() throws Exception { | |
filePath = Testspace.getPath("temp/CheckCharacterStyle.odp"); | |
if(FileUtil.fileExists(filePath)) | |
{ //load | |
m_xSDComponent = (XComponent) UnoRuntime.queryInterface(XComponent.class, | |
app.loadDocument(filePath)); | |
xShapeText = getFirstTextbox(); | |
} | |
else{ | |
//create a sd | |
m_xSDComponent = (XComponent) UnoRuntime.queryInterface(XComponent.class, app.newDocument("simpress")); | |
xShapeText = getFirstTextbox(); | |
xShapeText.setString("test"); | |
} | |
xtextProps = (XPropertySet)UnoRuntime.queryInterface(XPropertySet.class, xShapeText); | |
} | |
private XText getFirstTextbox() throws Exception | |
{ | |
Object firstPage = SDUtil.getPageByIndex(m_xSDComponent, 0); | |
Object firstTextBox = SDUtil.getShapeOfPageByIndex(firstPage, 0); | |
return (XText)UnoRuntime.queryInterface(XText.class, firstTextBox); | |
} | |
/** | |
* @throws java.lang.Exception | |
*/ | |
@After | |
public void tearDown() throws Exception { | |
//close odp after each test | |
m_xSDComponent.dispose(); | |
//remove the temp file | |
FileUtil.deleteFile(Testspace.getPath("temp")); | |
} | |
@Test | |
public void testFontColor() throws Exception{ | |
//set font color to red | |
xtextProps.setPropertyValue("CharColor", 0xFF0000); | |
// saveFileAs(m_xSDComponent, filePath, ".odp"); | |
app.saveDocument(m_xSDComponent, filePath); | |
m_xSDComponent.dispose(); | |
//reopen | |
m_xSDComponent = (XComponent) UnoRuntime.queryInterface(XComponent.class, | |
app.loadDocument(filePath)); | |
xShapeText = getFirstTextbox(); | |
xtextProps = (XPropertySet)UnoRuntime.queryInterface(XPropertySet.class, xShapeText); | |
//check character styles | |
assertEquals("character color should be red", 0xFF0000,xtextProps.getPropertyValue("CharColor")); | |
} | |
@Test | |
public void testFontUnderline() throws Exception{ | |
//set font color to red | |
xtextProps.setPropertyValue("CharUnderline", com.sun.star.awt.FontUnderline.SINGLE); | |
app.saveDocument(m_xSDComponent, filePath); | |
m_xSDComponent.dispose(); | |
//reopen | |
m_xSDComponent = (XComponent) UnoRuntime.queryInterface(XComponent.class, | |
app.loadDocument(filePath)); | |
xShapeText = getFirstTextbox(); | |
xtextProps = (XPropertySet)UnoRuntime.queryInterface(XPropertySet.class, xShapeText); | |
//check character styles | |
assertEquals("character should be underlined", com.sun.star.awt.FontUnderline.SINGLE, xtextProps.getPropertyValue("CharUnderline")); | |
} | |
@Test | |
public void testFontSize() throws Exception{ | |
//set font color to red | |
xtextProps.setPropertyValue("CharHeight", 12); | |
app.saveDocument(m_xSDComponent, filePath); | |
m_xSDComponent.dispose(); | |
//reopen | |
m_xSDComponent = (XComponent) UnoRuntime.queryInterface(XComponent.class, | |
app.loadDocument(filePath)); | |
xShapeText = getFirstTextbox(); | |
xtextProps = (XPropertySet)UnoRuntime.queryInterface(XPropertySet.class, xShapeText); | |
//check character styles | |
assertEquals("font size should be 12.0", "12.0", xtextProps.getPropertyValue("CharHeight").toString()); | |
} | |
@Test | |
public void testFontBoldStyle() throws Exception { | |
//change the font style to Bold | |
xtextProps.setPropertyValue("CharWeight", com.sun.star.awt.FontWeight.BOLD); | |
app.saveDocument(m_xSDComponent, filePath); | |
m_xSDComponent.dispose(); | |
//reopen | |
m_xSDComponent = (XComponent) UnoRuntime.queryInterface(XComponent.class, | |
app.loadDocument(filePath)); | |
xShapeText = getFirstTextbox(); | |
xtextProps = (XPropertySet)UnoRuntime.queryInterface(XPropertySet.class, xShapeText); | |
assertEquals("font style should be bold", com.sun.star.awt.FontWeight.BOLD, xtextProps.getPropertyValue("CharWeight")); | |
} | |
@Test | |
public void testFontItalicStyle() throws Exception { | |
//change the font style to Bold | |
xtextProps.setPropertyValue("CharPosture", com.sun.star.awt.FontSlant.ITALIC); | |
app.saveDocument(m_xSDComponent, filePath); | |
m_xSDComponent.dispose(); | |
//reopen | |
m_xSDComponent = (XComponent) UnoRuntime.queryInterface(XComponent.class, | |
app.loadDocument(filePath)); | |
xShapeText = getFirstTextbox(); | |
xtextProps = (XPropertySet)UnoRuntime.queryInterface(XPropertySet.class, xShapeText); | |
assertEquals("font style should be bold", com.sun.star.awt.FontSlant.ITALIC, xtextProps.getPropertyValue("CharPosture")); | |
} | |
} |