Author: liuzhe
Date: Fri Aug 17 06:27:58 2012
New Revision: 1374156
URL: http://svn.apache.org/viewvc?rev=1374156&view=rev
Log:
#120561# - [testuno] - save document, export as pdf
Patch by: Xiao Xiao Ting <[email protected]>
Review by: Liu Zhe <[email protected]>
Added:
incubator/ooo/trunk/main/test/testuno/source/testcase/uno/sw/DocumentTest.java
incubator/ooo/trunk/main/test/testuno/source/testcase/uno/sw/DocumentTest.odt
(with props)
incubator/ooo/trunk/main/test/testuno/source/testcase/uno/sw/DocumentTest.ott
(with props)
Added:
incubator/ooo/trunk/main/test/testuno/source/testcase/uno/sw/DocumentTest.java
URL:
http://svn.apache.org/viewvc/incubator/ooo/trunk/main/test/testuno/source/testcase/uno/sw/DocumentTest.java?rev=1374156&view=auto
==============================================================================
---
incubator/ooo/trunk/main/test/testuno/source/testcase/uno/sw/DocumentTest.java
(added)
+++
incubator/ooo/trunk/main/test/testuno/source/testcase/uno/sw/DocumentTest.java
Fri Aug 17 06:27:58 2012
@@ -0,0 +1,232 @@
+package testcase.uno.sw;
+
+import static org.openoffice.test.common.Testspace.*;
+
+import java.io.File;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.Assert;
+import org.openoffice.test.common.FileUtil;
+import org.openoffice.test.uno.UnoApp;
+
+import com.sun.star.text.XTextDocument;
+import com.sun.star.text.XTextCursor;
+import com.sun.star.text.XText;
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.beans.PropertyValue;
+import com.sun.star.frame.*;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.lang.XComponent;
+
+
+public class DocumentTest {
+ UnoApp unoApp = new UnoApp();
+ XTextDocument textDocument = null;
+ File temp = null;
+ String workingFilePath = "";
+ String workingTemplatePath = "";
+
+ /**
+ * @throws java.lang.Exception
+ */
+ @Before
+ public void setUp() throws Exception {
+ unoApp.start();
+
+ FileUtil.deleteFile(getPath("temp"));
+ temp = new File(getPath("temp"));
+ temp.mkdirs();
+
+ //copy sample file to temp folder
+ String originalFilePath =
prepareData("testcase/uno/sw/DocumentTest.odt");
+ String originalTemplatePath =
prepareData("testcase/uno/sw/DocumentTest.ott");
+ workingFilePath = temp + "/DocumentTest.odt";
+ workingTemplatePath = temp + "/DocumentTest.ott";
+ FileUtil.copyFile(new File(originalFilePath), new
File(workingFilePath));
+ FileUtil.copyFile(new File(originalTemplatePath), new
File(workingTemplatePath));
+ }
+
+ @After
+ public void tearDown() throws Exception {
+ unoApp.close();
+ }
+
+ private XComponent newDocumentFromTemplate(String templatePath) throws
Exception
+ {
+ XComponentLoader componentLoader = (XComponentLoader)
UnoRuntime.queryInterface(XComponentLoader.class, unoApp.getDesktop());
+ PropertyValue[] pros = new PropertyValue[1];
+ pros[0] = new PropertyValue();
+ pros[0].Name = "AsTemplate";
+ pros[0].Value = new Boolean(true);
+
+ XComponent component =
componentLoader.loadComponentFromURL(FileUtil.getUrl(workingTemplatePath),
"_blank", 0,pros);
+ return component;
+ }
+
+
+ @Test
+ public void testNewDocument() throws Exception
+ {
+ XComponentLoader componentLoader = (XComponentLoader)
UnoRuntime.queryInterface(XComponentLoader.class, unoApp.getDesktop());
+ XComponent component =
componentLoader.loadComponentFromURL("private:factory/" + "swriter", "_blank",
0, new PropertyValue[0]);
+ textDocument = (XTextDocument)
UnoRuntime.queryInterface(XTextDocument.class, component);
+ XTitle xTitle = (XTitle)UnoRuntime.queryInterface(XTitle.class,
textDocument);
+ String title = xTitle.getTitle();
+ Assert.assertEquals("New Document title start with
\"Untitled\"",true, title.startsWith("Untitled"));
+ unoApp.closeDocument(textDocument);
+ }
+
+
+ @Test
+ public void testNewDocumentFromTemplate() throws Exception
+ {
+ XComponent component =
this.newDocumentFromTemplate(workingTemplatePath);
+ textDocument = (XTextDocument)
UnoRuntime.queryInterface(XTextDocument.class, component);
+ XText xText = textDocument.getText();
+ XTitle xTitle = (XTitle)UnoRuntime.queryInterface(XTitle.class,
textDocument);
+ xText = textDocument.getText();
+ XTextCursor xTextCursor = xText.createTextCursor();
+ xTextCursor.gotoEnd(true);
+ XPropertySet xPropertySet =
(XPropertySet)UnoRuntime.queryInterface(XPropertySet.class, xTextCursor);
+ String paraStyle =
(String)xPropertySet.getPropertyValue("ParaStyleName");
+
+ Assert.assertEquals("new document from template, heading style in
template is remained. ", "Heading 1", paraStyle);
+
+ Assert.assertEquals("new document from template, title start with
\"Untitled\".", true, xTitle.getTitle().startsWith("Untitled"));
+
+ unoApp.closeDocument(textDocument);
+ }
+
+ @Test
+ public void testSaveDocument() throws Exception
+ {
+ XComponent component = unoApp.loadDocument(workingFilePath);
+ textDocument = (XTextDocument)
UnoRuntime.queryInterface(XTextDocument.class, component);
+ XText xText = textDocument.getText();
+ XTextCursor xTextCursor = xText.createTextCursor();
+ xTextCursor.gotoEnd(true);
+ XPropertySet xPropertySet =
(XPropertySet)UnoRuntime.queryInterface(XPropertySet.class, xTextCursor);
+
+ xPropertySet.setPropertyValue("ParaStyleName", "Heading 1");
+
+ XStorable xStorable =
(XStorable)UnoRuntime.queryInterface(XStorable.class, component);
+ xStorable.store();
+ unoApp.closeDocument(textDocument);
+
+ component = unoApp.loadDocument(workingFilePath);
+ textDocument = (XTextDocument)
UnoRuntime.queryInterface(XTextDocument.class, component);
+ xText = textDocument.getText();
+ xTextCursor = xText.createTextCursor();
+ xTextCursor.gotoEnd(true);
+ xPropertySet =
(XPropertySet)UnoRuntime.queryInterface(XPropertySet.class, xTextCursor);
+
+ Assert.assertEquals("Modify plain text to heading 1 style. ", "Heading
1", (String)xPropertySet.getPropertyValue("ParaStyleName"));
+ unoApp.closeDocument(textDocument);
+ }
+
+ @Test
+ public void testSaveAsDocument() throws Exception
+ {
+ File saveAsFile = new File(workingFilePath + ".doc");
+ XComponent component = unoApp.loadDocument(workingFilePath);
+ textDocument = (XTextDocument)
UnoRuntime.queryInterface(XTextDocument.class, component);
+ XText xText = textDocument.getText();
+ XTextCursor xTextCursor = xText.createTextCursor();
+ XPropertySet xPropertySet =
(XPropertySet)UnoRuntime.queryInterface(XPropertySet.class, xTextCursor);
+
+ xPropertySet.setPropertyValue("ParaStyleName", "Heading 1");
+ xText.insertString(xTextCursor, "test Save odt as doc.", false);
+
+ XStorable xStorable =
(XStorable)UnoRuntime.queryInterface(XStorable.class, component);
+ PropertyValue[] storeProps = new PropertyValue[2];
+
+ storeProps[0] = new PropertyValue();
+ storeProps[0].Name = "Overwrite";
+ storeProps[0].Value = new Boolean(true);
+
+ storeProps[1] = new PropertyValue();
+ storeProps[1].Name = "FilterName";
+ storeProps[1].Value = "MS Word 97";
+
+ xStorable.storeAsURL(FileUtil.getUrl(saveAsFile), storeProps);
+ Assert.assertTrue("Save odt document as doc the file exist: " +
saveAsFile.getAbsolutePath(), saveAsFile.exists());
+ unoApp.closeDocument(textDocument);
+ }
+
+ @Test
+ public void testExportAsPDF() throws Exception
+ {
+ File saveAsFile = new File(workingFilePath + ".pdf");
+ XComponent component = unoApp.loadDocument(workingFilePath);
+ textDocument = (XTextDocument)
UnoRuntime.queryInterface(XTextDocument.class, component);
+
+ XStorable xStorable =
(XStorable)UnoRuntime.queryInterface(XStorable.class, component);
+ PropertyValue[] storeProps = new PropertyValue[3];
+
+ storeProps[0] = new PropertyValue();
+ storeProps[0].Name = "Overwrite";
+ storeProps[0].Value = new Boolean(true);
+
+ storeProps[1] = new PropertyValue();
+ storeProps[1].Name = "FilterName";
+ storeProps[1].Value = "writer_pdf_Export";
+
+ storeProps[2] = new PropertyValue();
+ storeProps[2].Name = "CompressionMode";
+ storeProps[2].Value = "1";
+
+ xStorable.storeToURL(FileUtil.getUrl(saveAsFile), storeProps);
+
+ Assert.assertTrue("Export document as PDF.", saveAsFile.exists());
+
+ unoApp.closeDocument(textDocument);
+ }
+
+ @Test
+ public void testSaveAsTemplate() throws Exception
+ {
+ File saveAsFile = new File(workingFilePath + ".ott");
+ XComponent component = unoApp.loadDocument(workingFilePath);
+ textDocument = (XTextDocument)
UnoRuntime.queryInterface(XTextDocument.class, component);
+ XText xText = textDocument.getText();
+ XTextCursor xTextCursor = xText.createTextCursor();
+ xTextCursor.gotoEnd(true);
+ XPropertySet xPropertySet =
(XPropertySet)UnoRuntime.queryInterface(XPropertySet.class, xTextCursor);
+
+ xPropertySet.setPropertyValue("ParaStyleName", "Heading 1");
+
+ XStorable xStorable =
(XStorable)UnoRuntime.queryInterface(XStorable.class, component);
+ xStorable.store();
+
+ PropertyValue[] storeProps = new PropertyValue[3];
+ storeProps[0] = new PropertyValue();
+ storeProps[0].Name="TemplateName";
+ storeProps[0].Value="MyNewCreatedTemplate";
+
+ storeProps[1] = new PropertyValue();
+ storeProps[1].Name="TemplateRegionName";
+ storeProps[1].Value="My Templates";
+
+ storeProps[2] = new PropertyValue();
+ storeProps[2].Name="AsTemplate";
+ storeProps[2].Value=new Boolean(true);
+
+ xStorable.storeToURL(FileUtil.getUrl(saveAsFile), storeProps);
+ unoApp.closeDocument(textDocument);
+
+ component =
this.newDocumentFromTemplate(saveAsFile.getAbsolutePath());
+ textDocument = (XTextDocument)
UnoRuntime.queryInterface(XTextDocument.class, component);
+ XTitle xTitle = (XTitle)UnoRuntime.queryInterface(XTitle.class,
textDocument);
+ xText = textDocument.getText();
+ xTextCursor = xText.createTextCursor();
+ xTextCursor.gotoEnd(true);
+ xPropertySet =
(XPropertySet)UnoRuntime.queryInterface(XPropertySet.class, xTextCursor);
+ String paraStyle =
(String)xPropertySet.getPropertyValue("ParaStyleName");
+ Assert.assertEquals("Save document as template, heading style
is remained. ", "Heading 1", paraStyle);
+ Assert.assertEquals("Save document as template, title start with
\"Untitled\".", true, xTitle.getTitle().startsWith("Untitled"));
+ unoApp.closeDocument(textDocument);
+ }
+
+}
Added:
incubator/ooo/trunk/main/test/testuno/source/testcase/uno/sw/DocumentTest.odt
URL:
http://svn.apache.org/viewvc/incubator/ooo/trunk/main/test/testuno/source/testcase/uno/sw/DocumentTest.odt?rev=1374156&view=auto
==============================================================================
Binary file - no diff available.
Propchange:
incubator/ooo/trunk/main/test/testuno/source/testcase/uno/sw/DocumentTest.odt
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added:
incubator/ooo/trunk/main/test/testuno/source/testcase/uno/sw/DocumentTest.ott
URL:
http://svn.apache.org/viewvc/incubator/ooo/trunk/main/test/testuno/source/testcase/uno/sw/DocumentTest.ott?rev=1374156&view=auto
==============================================================================
Binary file - no diff available.
Propchange:
incubator/ooo/trunk/main/test/testuno/source/testcase/uno/sw/DocumentTest.ott
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream