Kaydet (Commit) 3c4da0f6 authored tarafından Noel Grandin's avatar Noel Grandin

java: let the unit-test framework catch exceptions

and report them for us, instead of inventing our own mechanisms

Change-Id: Id9186a2b01dad33c377e4785e1ca07bccea48b07
üst af412141
...@@ -18,55 +18,58 @@ ...@@ -18,55 +18,58 @@
package complex.sfx2; package complex.sfx2;
import com.sun.star.beans.Pair; import static org.junit.Assert.assertNotNull;
import com.sun.star.rdf.Literal; import static org.junit.Assert.assertTrue;
import com.sun.star.rdf.XLiteral; import static org.junit.Assert.fail;
import com.sun.star.rdf.XNamedGraph;
import com.sun.star.rdf.BlankNode;
import com.sun.star.rdf.XQuerySelectResult;
import com.sun.star.rdf.XNode;
import com.sun.star.rdf.XDocumentRepository;
import com.sun.star.rdf.XMetadatable;
import com.sun.star.rdf.Statement;
import com.sun.star.rdf.FileFormat;
import com.sun.star.rdf.URIs;
import com.sun.star.rdf.URI;
import com.sun.star.rdf.XDocumentMetadataAccess;
import com.sun.star.rdf.XRepositorySupplier;
import com.sun.star.rdf.XRepository;
import com.sun.star.rdf.XBlankNode;
import com.sun.star.rdf.XURI;
import helper.StreamSimulator; import helper.StreamSimulator;
import com.sun.star.uno.UnoRuntime; import java.io.IOException;
import com.sun.star.uno.XComponentContext;
import com.sun.star.lang.XMultiServiceFactory;
import com.sun.star.lang.XComponent;
import com.sun.star.lang.XServiceInfo;
import com.sun.star.lang.IllegalArgumentException;
import com.sun.star.beans.XPropertySet;
import com.sun.star.beans.PropertyValue;
import com.sun.star.beans.StringPair;
import com.sun.star.container.XEnumerationAccess;
import com.sun.star.container.XEnumeration;
import com.sun.star.io.XInputStream;
import com.sun.star.util.XCloseable;
import com.sun.star.frame.XStorable;
import com.sun.star.text.XTextDocument;
import com.sun.star.text.XTextRange;
import com.sun.star.text.XText;
import complex.sfx2.tools.TestDocument;
import lib.TestParameters; import lib.TestParameters;
import org.junit.After; import org.junit.After;
import org.junit.AfterClass; import org.junit.AfterClass;
import org.junit.Before; import org.junit.Before;
import org.junit.BeforeClass; import org.junit.BeforeClass;
import org.junit.Test; import org.junit.Test;
import org.openoffice.test.OfficeConnection; import org.openoffice.test.OfficeConnection;
import static org.junit.Assert.*;
import com.sun.star.beans.Pair;
import com.sun.star.beans.PropertyValue;
import com.sun.star.beans.StringPair;
import com.sun.star.beans.XPropertySet;
import com.sun.star.container.XEnumeration;
import com.sun.star.container.XEnumerationAccess;
import com.sun.star.frame.XStorable;
import com.sun.star.io.XInputStream;
import com.sun.star.lang.IllegalArgumentException;
import com.sun.star.lang.XComponent;
import com.sun.star.lang.XMultiServiceFactory;
import com.sun.star.lang.XServiceInfo;
import com.sun.star.rdf.BlankNode;
import com.sun.star.rdf.FileFormat;
import com.sun.star.rdf.Literal;
import com.sun.star.rdf.Statement;
import com.sun.star.rdf.URI;
import com.sun.star.rdf.URIs;
import com.sun.star.rdf.XBlankNode;
import com.sun.star.rdf.XDocumentMetadataAccess;
import com.sun.star.rdf.XDocumentRepository;
import com.sun.star.rdf.XLiteral;
import com.sun.star.rdf.XMetadatable;
import com.sun.star.rdf.XNamedGraph;
import com.sun.star.rdf.XNode;
import com.sun.star.rdf.XQuerySelectResult;
import com.sun.star.rdf.XRepository;
import com.sun.star.rdf.XRepositorySupplier;
import com.sun.star.rdf.XURI;
import com.sun.star.text.XText;
import com.sun.star.text.XTextDocument;
import com.sun.star.text.XTextRange;
import com.sun.star.uno.UnoRuntime;
import com.sun.star.uno.XComponentContext;
import com.sun.star.util.XCloseable;
import complex.sfx2.tools.TestDocument;
/** /**
* Test case for interface com.sun.star.rdf.XDocumentMetadataAccess * Test case for interface com.sun.star.rdf.XDocumentMetadataAccess
...@@ -119,58 +122,52 @@ public class DocumentMetadataAccess ...@@ -119,58 +122,52 @@ public class DocumentMetadataAccess
*/ */
private static TestParameters param = null; private static TestParameters param = null;
@Before public void before() @Before public void before() throws Exception
{ {
try { xMSF = getMSF();
param = new TestParameters();
xMSF = getMSF(); param.put("ServiceFactory", xMSF); // important for param.getMSF()
param = new TestParameters();
param.put("ServiceFactory", xMSF); // important for param.getMSF() assertNotNull("could not create MultiServiceFactory.", xMSF);
XPropertySet xPropertySet = UnoRuntime.queryInterface(XPropertySet.class, xMSF);
assertNotNull("could not create MultiServiceFactory.", xMSF); Object defaultCtx = xPropertySet.getPropertyValue("DefaultContext");
XPropertySet xPropertySet = UnoRuntime.queryInterface(XPropertySet.class, xMSF); xContext = UnoRuntime.queryInterface(XComponentContext.class, defaultCtx);
Object defaultCtx = xPropertySet.getPropertyValue("DefaultContext"); assertNotNull("could not get component context.", xContext);
xContext = UnoRuntime.queryInterface(XComponentContext.class, defaultCtx);
assertNotNull("could not get component context.", xContext); tempDir = util.utils.getOfficeTemp/*Dir*/(xMSF);
System.out.println("tempdir: " + tempDir);
tempDir = util.utils.getOfficeTemp/*Dir*/(xMSF);
System.out.println("tempdir: " + tempDir); foo = URI.create(xContext, "uri:foo");
assertNotNull("foo", foo);
foo = URI.create(xContext, "uri:foo"); bar = URI.create(xContext, "uri:bar");
assertNotNull("foo", foo); assertNotNull("bar", bar);
bar = URI.create(xContext, "uri:bar"); baz = URI.create(xContext, "uri:baz");
assertNotNull("bar", bar); assertNotNull("baz", baz);
baz = URI.create(xContext, "uri:baz");
assertNotNull("baz", baz); blank1 = BlankNode.create(xContext, "_:1");
assertNotNull("blank1", blank1);
blank1 = BlankNode.create(xContext, "_:1"); blank2 = BlankNode.create(xContext, "_:2");
assertNotNull("blank1", blank1); assertNotNull("blank2", blank2);
blank2 = BlankNode.create(xContext, "_:2"); blank3 = BlankNode.create(xContext, "_:3");
assertNotNull("blank2", blank2); assertNotNull("blank3", blank3);
blank3 = BlankNode.create(xContext, "_:3"); blank4 = BlankNode.create(xContext, "_:4");
assertNotNull("blank3", blank3); assertNotNull("blank4", blank4);
blank4 = BlankNode.create(xContext, "_:4"); rdf_type = URI.createKnown(xContext, URIs.RDF_TYPE);
assertNotNull("blank4", blank4); assertNotNull("rdf_type", rdf_type);
rdf_type = URI.createKnown(xContext, URIs.RDF_TYPE); rdfs_label = URI.createKnown(xContext, URIs.RDFS_LABEL);
assertNotNull("rdf_type", rdf_type); assertNotNull("rdfs_label", rdfs_label);
rdfs_label = URI.createKnown(xContext, URIs.RDFS_LABEL); pkg_Document = URI.createKnown(xContext, URIs.PKG_DOCUMENT);
assertNotNull("rdfs_label", rdfs_label); assertNotNull("pkg_Document", pkg_Document);
pkg_Document = URI.createKnown(xContext, URIs.PKG_DOCUMENT); pkg_hasPart = URI.createKnown(xContext, URIs.PKG_HASPART);
assertNotNull("pkg_Document", pkg_Document); assertNotNull("pkg_hasPart", pkg_hasPart);
pkg_hasPart = URI.createKnown(xContext, URIs.PKG_HASPART); pkg_MetadataFile = URI.createKnown(xContext, URIs.PKG_METADATAFILE);
assertNotNull("pkg_hasPart", pkg_hasPart); assertNotNull("pkg_MetadataFile", pkg_MetadataFile);
pkg_MetadataFile = URI.createKnown(xContext, URIs.PKG_METADATAFILE); odf_ContentFile = URI.createKnown(xContext, URIs.ODF_CONTENTFILE);
assertNotNull("pkg_MetadataFile", pkg_MetadataFile); assertNotNull("odf_ContentFile", odf_ContentFile);
odf_ContentFile = URI.createKnown(xContext, URIs.ODF_CONTENTFILE); odf_StylesFile = URI.createKnown(xContext, URIs.ODF_STYLESFILE);
assertNotNull("odf_ContentFile", odf_ContentFile); assertNotNull("odf_StylesFile", odf_StylesFile);
odf_StylesFile = URI.createKnown(xContext, URIs.ODF_STYLESFILE); odf_Element = URI.createKnown(xContext, URIs.ODF_ELEMENT);
assertNotNull("odf_StylesFile", odf_StylesFile); assertNotNull("odf_Element", odf_Element);
odf_Element = URI.createKnown(xContext, URIs.ODF_ELEMENT);
assertNotNull("odf_Element", odf_Element);
} catch (Exception e) {
report(e);
}
} }
@After public void after() @After public void after()
...@@ -180,7 +177,7 @@ public class DocumentMetadataAccess ...@@ -180,7 +177,7 @@ public class DocumentMetadataAccess
xDMA = null; xDMA = null;
} }
@Test public void check() @Test public void check() throws Exception
{ {
XComponent xComp = null; XComponent xComp = null;
XComponent xComp2 = null; XComponent xComp2 = null;
...@@ -595,15 +592,13 @@ public class DocumentMetadataAccess ...@@ -595,15 +592,13 @@ public class DocumentMetadataAccess
System.out.println("...done"); System.out.println("...done");
} catch (Exception e) {
report(e);
} finally { } finally {
close(xComp); close(xComp);
close(xComp2); close(xComp2);
} }
} }
@Test public void checkRDFa() @Test public void checkRDFa() throws Exception
{ {
XComponent xComp = null; XComponent xComp = null;
try { try {
...@@ -622,251 +617,234 @@ public class DocumentMetadataAccess ...@@ -622,251 +617,234 @@ public class DocumentMetadataAccess
} }
} }
private void storeRDFa(XComponent xComp, String file) private void storeRDFa(XComponent xComp, String file) throws com.sun.star.io.IOException
{ {
try { System.out.println("Storing test document...");
System.out.println("Storing test document..."); XStorable xStor = UnoRuntime.queryInterface(XStorable.class, xComp);
XStorable xStor = UnoRuntime.queryInterface(XStorable.class, xComp); xStor.storeToURL(file, new PropertyValue[0]);
xStor.storeToURL(file, new PropertyValue[0]); System.out.println("...done");
System.out.println("...done");
} catch (Exception e) {
report(e);
}
} }
private XComponent loadRDFa(String file) private XComponent loadRDFa(String file) throws Exception
{ {
XComponent xComp = null; XComponent xComp = null;
try {
System.out.println("Loading test document...");
PropertyValue[] loadProps = new PropertyValue[1];
loadProps[0] = new PropertyValue();
loadProps[0].Name = "Hidden";
loadProps[0].Value = true;
xComp = util.DesktopTools.loadDoc(xMSF, file, loadProps);
XRepositorySupplier xRepoSupplier = UnoRuntime.queryInterface(XRepositorySupplier.class, xComp);
assertTrue("xRS null", null != xRepoSupplier);
XDocumentRepository xDocRepository = UnoRuntime.queryInterface(XDocumentRepository.class, xRepoSupplier.getRDFRepository());
assertTrue("xRep null", null != xDocRepository);
XTextDocument xTextDoc = UnoRuntime.queryInterface(XTextDocument.class, xComp);
XText xText = xTextDoc.getText();
XEnumerationAccess xEA = UnoRuntime.queryInterface(XEnumerationAccess.class, xText);
XEnumeration xEnum = xEA.createEnumeration();
System.out.println("...done");
System.out.println("Checking RDFa in loaded test document...");
XMetadatable xPara;
Pair<Statement[], Boolean> result;
Statement x_FooBarLit1 = new Statement(foo, bar, mkLit("1"), null);
xPara = UnoRuntime.queryInterface(XMetadatable.class, xEnum.nextElement());
result = xDocRepository.getStatementRDFa(xPara);
assertTrue("RDFa: 1",
!result.Second &&
eq(result.First, new Statement[] {
x_FooBarLit1
}));
Statement x_FooBarLit2 = new Statement(foo, bar, mkLit("2"), null); System.out.println("Loading test document...");
xPara = UnoRuntime.queryInterface(XMetadatable.class, xEnum.nextElement());
result = xDocRepository.getStatementRDFa(xPara); PropertyValue[] loadProps = new PropertyValue[1];
assertTrue("RDFa: 2", loadProps[0] = new PropertyValue();
!result.Second && loadProps[0].Name = "Hidden";
eq(result.First, new Statement[] { loadProps[0].Value = true;
x_FooBarLit2
}));
Statement x_BlankBarLit3 = xComp = util.DesktopTools.loadDoc(xMSF, file, loadProps);
new Statement(blank1, bar, mkLit("3"), null);
xPara = UnoRuntime.queryInterface(XMetadatable.class, xEnum.nextElement()); XRepositorySupplier xRepoSupplier = UnoRuntime.queryInterface(XRepositorySupplier.class, xComp);
result = xDocRepository.getStatementRDFa(xPara); assertTrue("xRS null", null != xRepoSupplier);
assertTrue("RDFa: 3",
!result.Second && XDocumentRepository xDocRepository = UnoRuntime.queryInterface(XDocumentRepository.class, xRepoSupplier.getRDFRepository());
eq(result.First, new Statement[] { assertTrue("xRep null", null != xDocRepository);
x_BlankBarLit3
})); XTextDocument xTextDoc = UnoRuntime.queryInterface(XTextDocument.class, xComp);
XBlankNode b3 = UnoRuntime.queryInterface(XBlankNode.class, result.First[0].Subject);
XText xText = xTextDoc.getText();
Statement x_BlankBarLit4 =
new Statement(blank2, bar, mkLit("4"), null); XEnumerationAccess xEA = UnoRuntime.queryInterface(XEnumerationAccess.class, xText);
xPara = UnoRuntime.queryInterface(XMetadatable.class, xEnum.nextElement()); XEnumeration xEnum = xEA.createEnumeration();
result = xDocRepository.getStatementRDFa(xPara);
assertTrue("RDFa: 4", System.out.println("...done");
!result.Second &&
eq(result.First, new Statement[] { System.out.println("Checking RDFa in loaded test document...");
x_BlankBarLit4
})); XMetadatable xPara;
XBlankNode b4 = UnoRuntime.queryInterface(XBlankNode.class, result.First[0].Subject); Pair<Statement[], Boolean> result;
Statement x_BlankBarLit5 = Statement x_FooBarLit1 = new Statement(foo, bar, mkLit("1"), null);
new Statement(blank1, bar, mkLit("5"), null); xPara = UnoRuntime.queryInterface(XMetadatable.class, xEnum.nextElement());
xPara = UnoRuntime.queryInterface(XMetadatable.class, xEnum.nextElement()); result = xDocRepository.getStatementRDFa(xPara);
result = xDocRepository.getStatementRDFa(xPara); assertTrue("RDFa: 1",
assertTrue("RDFa: 5", !result.Second &&
!result.Second && eq(result.First, new Statement[] {
eq(result.First, new Statement[] { x_FooBarLit1
x_BlankBarLit5 }));
}));
XBlankNode b5 = UnoRuntime.queryInterface(XBlankNode.class, result.First[0].Subject); Statement x_FooBarLit2 = new Statement(foo, bar, mkLit("2"), null);
xPara = UnoRuntime.queryInterface(XMetadatable.class, xEnum.nextElement());
assertTrue("RDFa: 3 != 4", result = xDocRepository.getStatementRDFa(xPara);
!b3.getStringValue().equals(b4.getStringValue())); assertTrue("RDFa: 2",
assertTrue("RDFa: 3 == 5", !result.Second &&
b3.getStringValue().equals(b5.getStringValue())); eq(result.First, new Statement[] {
x_FooBarLit2
Statement x_FooBarLit6 = new Statement(foo, bar, mkLit("6"), null); }));
Statement x_FooBazLit6 = new Statement(foo, baz, mkLit("6"), null);
xPara = UnoRuntime.queryInterface(XMetadatable.class, xEnum.nextElement()); Statement x_BlankBarLit3 =
result = xDocRepository.getStatementRDFa(xPara); new Statement(blank1, bar, mkLit("3"), null);
assertTrue("RDFa: 6", xPara = UnoRuntime.queryInterface(XMetadatable.class, xEnum.nextElement());
!result.Second && result = xDocRepository.getStatementRDFa(xPara);
eq(result.First, new Statement[] { assertTrue("RDFa: 3",
x_FooBarLit6, x_FooBazLit6 !result.Second &&
})); eq(result.First, new Statement[] {
x_BlankBarLit3
Statement x_FooBarLit7 = new Statement(foo, bar, mkLit("7"), null); }));
Statement x_FooBazLit7 = new Statement(foo, baz, mkLit("7"), null); XBlankNode b3 = UnoRuntime.queryInterface(XBlankNode.class, result.First[0].Subject);
Statement x_FooFooLit7 = new Statement(foo, foo, mkLit("7"), null);
xPara = UnoRuntime.queryInterface(XMetadatable.class, xEnum.nextElement()); Statement x_BlankBarLit4 =
result = xDocRepository.getStatementRDFa(xPara); new Statement(blank2, bar, mkLit("4"), null);
assertTrue("RDFa: 7", xPara = UnoRuntime.queryInterface(XMetadatable.class, xEnum.nextElement());
!result.Second && result = xDocRepository.getStatementRDFa(xPara);
eq(result.First, new Statement[] { assertTrue("RDFa: 4",
x_FooBarLit7, x_FooBazLit7, x_FooFooLit7 !result.Second &&
})); eq(result.First, new Statement[] {
x_BlankBarLit4
XNode lit = mkLit("a fooish bar"); }));
XNode lit_type= mkLit("a fooish bar", bar); XBlankNode b4 = UnoRuntime.queryInterface(XBlankNode.class, result.First[0].Subject);
Statement x_FooBarLit = new Statement(foo, bar, lit, null);
Statement x_FooBarLittype = new Statement(foo, bar, lit_type, null); Statement x_BlankBarLit5 =
new Statement(blank1, bar, mkLit("5"), null);
xPara = UnoRuntime.queryInterface(XMetadatable.class, xEnum.nextElement()); xPara = UnoRuntime.queryInterface(XMetadatable.class, xEnum.nextElement());
result = xDocRepository.getStatementRDFa(xPara); result = xDocRepository.getStatementRDFa(xPara);
assertTrue("RDFa: 8", assertTrue("RDFa: 5",
result.Second && !result.Second &&
eq(result.First, new Statement[] { eq(result.First, new Statement[] {
x_FooBarLit x_BlankBarLit5
})); }));
XBlankNode b5 = UnoRuntime.queryInterface(XBlankNode.class, result.First[0].Subject);
xPara = UnoRuntime.queryInterface(XMetadatable.class, xEnum.nextElement());
result = xDocRepository.getStatementRDFa(xPara); assertTrue("RDFa: 3 != 4",
assertTrue("RDFa: 9", !b3.getStringValue().equals(b4.getStringValue()));
result.Second && assertTrue("RDFa: 3 == 5",
eq(result.First, new Statement[] { b3.getStringValue().equals(b5.getStringValue()));
x_FooBarLit
})); Statement x_FooBarLit6 = new Statement(foo, bar, mkLit("6"), null);
Statement x_FooBazLit6 = new Statement(foo, baz, mkLit("6"), null);
xPara = UnoRuntime.queryInterface(XMetadatable.class, xEnum.nextElement()); xPara = UnoRuntime.queryInterface(XMetadatable.class, xEnum.nextElement());
result = xDocRepository.getStatementRDFa(xPara); result = xDocRepository.getStatementRDFa(xPara);
assertTrue("RDFa: 10", assertTrue("RDFa: 6",
result.Second && !result.Second &&
eq(result.First, new Statement[] { eq(result.First, new Statement[] {
x_FooBarLittype x_FooBarLit6, x_FooBazLit6
})); }));
Statement x_FooBarLit11 Statement x_FooBarLit7 = new Statement(foo, bar, mkLit("7"), null);
= new Statement(foo, bar, mkLit("11", bar), null); Statement x_FooBazLit7 = new Statement(foo, baz, mkLit("7"), null);
xPara = UnoRuntime.queryInterface(XMetadatable.class, xEnum.nextElement()); Statement x_FooFooLit7 = new Statement(foo, foo, mkLit("7"), null);
result = xDocRepository.getStatementRDFa(xPara); xPara = UnoRuntime.queryInterface(XMetadatable.class, xEnum.nextElement());
assertTrue("RDFa: 11", result = xDocRepository.getStatementRDFa(xPara);
!result.Second && assertTrue("RDFa: 7",
eq(result.First, new Statement[] { !result.Second &&
x_FooBarLit11 eq(result.First, new Statement[] {
})); x_FooBarLit7, x_FooBazLit7, x_FooFooLit7
}));
XURI xFile = URI.createNS(xContext, file, "/" + contentPath);
Statement x_FileBarLit12 = XNode lit = mkLit("a fooish bar");
new Statement(xFile, bar, mkLit("12"), null); XNode lit_type= mkLit("a fooish bar", bar);
xPara = UnoRuntime.queryInterface(XMetadatable.class, xEnum.nextElement()); Statement x_FooBarLit = new Statement(foo, bar, lit, null);
result = xDocRepository.getStatementRDFa(xPara); Statement x_FooBarLittype = new Statement(foo, bar, lit_type, null);
assertTrue("RDFa: 12",
!result.Second && xPara = UnoRuntime.queryInterface(XMetadatable.class, xEnum.nextElement());
eq(result.First, new Statement[] { result = xDocRepository.getStatementRDFa(xPara);
x_FileBarLit12 assertTrue("RDFa: 8",
})); result.Second &&
eq(result.First, new Statement[] {
x_FooBarLit
}));
xPara = UnoRuntime.queryInterface(XMetadatable.class, xEnum.nextElement());
result = xDocRepository.getStatementRDFa(xPara);
assertTrue("RDFa: 9",
result.Second &&
eq(result.First, new Statement[] {
x_FooBarLit
}));
xPara = UnoRuntime.queryInterface(XMetadatable.class, xEnum.nextElement());
result = xDocRepository.getStatementRDFa(xPara);
assertTrue("RDFa: 10",
result.Second &&
eq(result.First, new Statement[] {
x_FooBarLittype
}));
Statement x_FooBarLit11
= new Statement(foo, bar, mkLit("11", bar), null);
xPara = UnoRuntime.queryInterface(XMetadatable.class, xEnum.nextElement());
result = xDocRepository.getStatementRDFa(xPara);
assertTrue("RDFa: 11",
!result.Second &&
eq(result.First, new Statement[] {
x_FooBarLit11
}));
XURI xFile = URI.createNS(xContext, file, "/" + contentPath);
Statement x_FileBarLit12 =
new Statement(xFile, bar, mkLit("12"), null);
xPara = UnoRuntime.queryInterface(XMetadatable.class, xEnum.nextElement());
result = xDocRepository.getStatementRDFa(xPara);
assertTrue("RDFa: 12",
!result.Second &&
eq(result.First, new Statement[] {
x_FileBarLit12
}));
xPara = UnoRuntime.queryInterface(XMetadatable.class, xEnum.nextElement());
result = xDocRepository.getStatementRDFa(xPara);
assertTrue("RDFa: 13",
result.Second &&
eq(result.First, new Statement[] {
x_FooBarLit
}));
new Statement(foo, rdfs_label, mkLit("14"), null);
xPara = UnoRuntime.queryInterface(XMetadatable.class, xEnum.nextElement());
result = xDocRepository.getStatementRDFa(xPara);
assertTrue("RDFa: 14",
result.Second &&
eq(result.First, new Statement[] {
/* x_FooLabelLit14 */ x_FooBarLit
}));
xPara = UnoRuntime.queryInterface(XMetadatable.class, xEnum.nextElement());
result = xDocRepository.getStatementRDFa(xPara);
assertTrue("RDFa: 15", eq(result.First, new Statement[] { } ));
xPara = UnoRuntime.queryInterface(XMetadatable.class, xEnum.nextElement());
result = xDocRepository.getStatementRDFa(xPara);
assertTrue("RDFa: 16", eq(result.First, new Statement[] { } ));
xPara = UnoRuntime.queryInterface(XMetadatable.class, xEnum.nextElement());
result = xDocRepository.getStatementRDFa(xPara);
assertTrue("RDFa: 17", eq(result.First, new Statement[] { } ));
xPara = UnoRuntime.queryInterface(XMetadatable.class, xEnum.nextElement());
result = xDocRepository.getStatementRDFa(xPara);
assertTrue("RDFa: 18", eq(result.First, new Statement[] { } ));
xPara = UnoRuntime.queryInterface(XMetadatable.class, xEnum.nextElement());
result = xDocRepository.getStatementRDFa(xPara);
assertTrue("RDFa: 19", eq(result.First, new Statement[] { } ));
xPara = UnoRuntime.queryInterface(
XMetadatable.class, xEnum.nextElement());
result = xDocRepository.getStatementRDFa(xPara);
assertTrue("RDFa: 20", eq(result.First, new Statement[] { } ));
xPara = UnoRuntime.queryInterface(
XMetadatable.class, xEnum.nextElement());
result = xDocRepository.getStatementRDFa(xPara);
assertTrue("RDFa: 21", eq(result.First, new Statement[] { } ));
System.out.println("...done");
xPara = UnoRuntime.queryInterface(XMetadatable.class, xEnum.nextElement());
result = xDocRepository.getStatementRDFa(xPara);
assertTrue("RDFa: 13",
result.Second &&
eq(result.First, new Statement[] {
x_FooBarLit
}));
new Statement(foo, rdfs_label, mkLit("14"), null);
xPara = UnoRuntime.queryInterface(XMetadatable.class, xEnum.nextElement());
result = xDocRepository.getStatementRDFa(xPara);
assertTrue("RDFa: 14",
result.Second &&
eq(result.First, new Statement[] {
/* x_FooLabelLit14 */ x_FooBarLit
}));
xPara = UnoRuntime.queryInterface(XMetadatable.class, xEnum.nextElement());
result = xDocRepository.getStatementRDFa(xPara);
assertTrue("RDFa: 15", eq(result.First, new Statement[] { } ));
xPara = UnoRuntime.queryInterface(XMetadatable.class, xEnum.nextElement());
result = xDocRepository.getStatementRDFa(xPara);
assertTrue("RDFa: 16", eq(result.First, new Statement[] { } ));
xPara = UnoRuntime.queryInterface(XMetadatable.class, xEnum.nextElement());
result = xDocRepository.getStatementRDFa(xPara);
assertTrue("RDFa: 17", eq(result.First, new Statement[] { } ));
xPara = UnoRuntime.queryInterface(XMetadatable.class, xEnum.nextElement());
result = xDocRepository.getStatementRDFa(xPara);
assertTrue("RDFa: 18", eq(result.First, new Statement[] { } ));
xPara = UnoRuntime.queryInterface(XMetadatable.class, xEnum.nextElement());
result = xDocRepository.getStatementRDFa(xPara);
assertTrue("RDFa: 19", eq(result.First, new Statement[] { } ));
xPara = UnoRuntime.queryInterface(
XMetadatable.class, xEnum.nextElement());
result = xDocRepository.getStatementRDFa(xPara);
assertTrue("RDFa: 20", eq(result.First, new Statement[] { } ));
xPara = UnoRuntime.queryInterface(
XMetadatable.class, xEnum.nextElement());
result = xDocRepository.getStatementRDFa(xPara);
assertTrue("RDFa: 21", eq(result.First, new Statement[] { } ));
System.out.println("...done");
} catch (Exception e) {
report(e);
close(xComp);
}
return xComp; return xComp;
} }
// utilities ------------------------------------------------------------- // utilities -------------------------------------------------------------
public void report(Exception e) {
System.out.println("Exception occurred:");
e.printStackTrace(System.err);
fail();
}
static void close(XComponent i_comp) static void close(XComponent i_comp)
{ {
try { try {
......
...@@ -84,76 +84,76 @@ public class DocumentProperties ...@@ -84,76 +84,76 @@ public class DocumentProperties
} }
} }
@Test public void check() { @Test public void check() throws Exception
try { {
XMultiServiceFactory xMSF = getMSF(); XMultiServiceFactory xMSF = getMSF();
assertNotNull("could not create MultiServiceFactory.", xMSF); assertNotNull("could not create MultiServiceFactory.", xMSF);
XPropertySet xPropertySet = UnoRuntime.queryInterface(XPropertySet.class, xMSF); XPropertySet xPropertySet = UnoRuntime.queryInterface(XPropertySet.class, xMSF);
Object defaultCtx = xPropertySet.getPropertyValue("DefaultContext"); Object defaultCtx = xPropertySet.getPropertyValue("DefaultContext");
XComponentContext xContext = UnoRuntime.queryInterface(XComponentContext.class, defaultCtx); XComponentContext xContext = UnoRuntime.queryInterface(XComponentContext.class, defaultCtx);
assertNotNull("could not get component context.", xContext); assertNotNull("could not get component context.", xContext);
// TODO: Path to temp // TODO: Path to temp
String temp = util.utils.getOfficeTemp/*Dir*/(xMSF); String temp = util.utils.getOfficeTemp/*Dir*/(xMSF);
System.out.println("tempdir: " + temp); System.out.println("tempdir: " + temp);
PropertyValue[] noArgs = { }; PropertyValue[] noArgs = { };
PropertyValue mimetype = new PropertyValue(); PropertyValue mimetype = new PropertyValue();
mimetype.Name = "MediaType"; mimetype.Name = "MediaType";
mimetype.Value = "application/vnd.oasis.opendocument.text"; mimetype.Value = "application/vnd.oasis.opendocument.text";
PropertyValue[] mimeArgs = { mimetype }; PropertyValue[] mimeArgs = { mimetype };
PropertyValue cfile = new PropertyValue(); PropertyValue cfile = new PropertyValue();
cfile.Name = "URL"; cfile.Name = "URL";
cfile.Value = temp + "EMPTY.odt"; cfile.Value = temp + "EMPTY.odt";
PropertyValue[] mimeEmptyArgs = { mimetype, cfile }; PropertyValue[] mimeEmptyArgs = { mimetype, cfile };
System.out.println("Creating service DocumentProperties..."); System.out.println("Creating service DocumentProperties...");
Object oDP = Object oDP =
xMSF.createInstance("com.sun.star.document.DocumentProperties"); xMSF.createInstance("com.sun.star.document.DocumentProperties");
XDocumentProperties xDP = UnoRuntime.queryInterface(XDocumentProperties.class, oDP); XDocumentProperties xDP = UnoRuntime.queryInterface(XDocumentProperties.class, oDP);
System.out.println("...done"); System.out.println("...done");
System.out.println("Checking initialize ..."); System.out.println("Checking initialize ...");
XDocumentProperties xDP2 = UnoRuntime.queryInterface(XDocumentProperties.class, xMSF.createInstance("com.sun.star.document.DocumentProperties")); XDocumentProperties xDP2 = UnoRuntime.queryInterface(XDocumentProperties.class, xMSF.createInstance("com.sun.star.document.DocumentProperties"));
XInitialization xInit = UnoRuntime.queryInterface(XInitialization.class, xDP2); XInitialization xInit = UnoRuntime.queryInterface(XInitialization.class, xDP2);
xInit.initialize(new Object[] { }); xInit.initialize(new Object[] { });
System.out.println("...done"); System.out.println("...done");
System.out.println("Checking storing default-initialized meta data ..."); System.out.println("Checking storing default-initialized meta data ...");
xDP2.storeToMedium("", mimeEmptyArgs); xDP2.storeToMedium("", mimeEmptyArgs);
System.out.println("...done"); System.out.println("...done");
System.out.println("Checking loading default-initialized meta data ..."); System.out.println("Checking loading default-initialized meta data ...");
xDP2.loadFromMedium("", mimeEmptyArgs); xDP2.loadFromMedium("", mimeEmptyArgs);
assertEquals("Author", "", xDP2.getAuthor()); assertEquals("Author", "", xDP2.getAuthor());
System.out.println("...done"); System.out.println("...done");
System.out.println("(Not) Checking preservation of custom meta data ..."); System.out.println("(Not) Checking preservation of custom meta data ...");
xDP2.loadFromMedium(TestDocument.getUrl("CUSTOM.odt"), xDP2.loadFromMedium(TestDocument.getUrl("CUSTOM.odt"),
noArgs); noArgs);
assertEquals("Author", "", xDP2.getAuthor()); assertEquals("Author", "", xDP2.getAuthor());
xDP2.storeToMedium(temp + "CUSTOM.odt", mimeArgs); xDP2.storeToMedium(temp + "CUSTOM.odt", mimeArgs);
//FIXME: now what? comparing for binary equality seems useless //FIXME: now what? comparing for binary equality seems useless
// we could unzip the written file and grep for the custom stuff // we could unzip the written file and grep for the custom stuff
// but would that work on windows... // but would that work on windows...
System.out.println("...done"); System.out.println("...done");
System.out.println("Checking loading from test document..."); System.out.println("Checking loading from test document...");
String file = TestDocument.getUrl("TEST.odt"); String file = TestDocument.getUrl("TEST.odt");
xDP.loadFromMedium(file, noArgs); xDP.loadFromMedium(file, noArgs);
/* XInputStream xStream = /* XInputStream xStream =
new StreamSimulator("./testdocuments/TEST.odt", true, param); new StreamSimulator("./testdocuments/TEST.odt", true, param);
Object oSF = Object oSF =
...@@ -166,298 +166,294 @@ public class DocumentProperties ...@@ -166,298 +166,294 @@ public class DocumentProperties
XStorage.class, oStor); XStorage.class, oStor);
xDP.loadFromStorage(xStor);*/ xDP.loadFromStorage(xStor);*/
System.out.println("...done"); System.out.println("...done");
System.out.println("Checking meta-data import..."); System.out.println("Checking meta-data import...");
assertEquals("Author", "Karl-Heinz Mustermann", xDP.getAuthor()); assertEquals("Author", "Karl-Heinz Mustermann", xDP.getAuthor());
assertEquals( assertEquals(
"Generator", "Generator",
"StarOffice/8$Solaris_x86 OpenOffice.org_project/680m232$Build-9227", "StarOffice/8$Solaris_x86 OpenOffice.org_project/680m232$Build-9227",
xDP.getGenerator()); xDP.getGenerator());
assertEquals("CreationDate", 2007, xDP.getCreationDate().Year); assertEquals("CreationDate", 2007, xDP.getCreationDate().Year);
assertEquals("Title", "Urgent Memo", xDP.getTitle()); assertEquals("Title", "Urgent Memo", xDP.getTitle());
assertEquals("Subject", "Wichtige Mitteilung", xDP.getSubject()); assertEquals("Subject", "Wichtige Mitteilung", xDP.getSubject());
assertEquals( assertEquals(
"Description", "Description",
"Modern internal company memorandum in full-blocked style", "Modern internal company memorandum in full-blocked style",
xDP.getDescription()); xDP.getDescription());
assertEquals( assertEquals(
"ModifiedBy", "Karl-Heinz Mustermann", xDP.getModifiedBy()); "ModifiedBy", "Karl-Heinz Mustermann", xDP.getModifiedBy());
assertEquals( assertEquals(
"ModificationDate", 10, xDP.getModificationDate().Month); "ModificationDate", 10, xDP.getModificationDate().Month);
assertEquals( assertEquals(
"PrintedBy", "Karl-Heinz Mustermann", xDP.getPrintedBy()); "PrintedBy", "Karl-Heinz Mustermann", xDP.getPrintedBy());
assertEquals("PrintDate", 29, xDP.getPrintDate().Day); assertEquals("PrintDate", 29, xDP.getPrintDate().Day);
assertEquals("TemplateName", "Modern Memo", xDP.getTemplateName()); assertEquals("TemplateName", "Modern Memo", xDP.getTemplateName());
assertTrue("TemplateURL", assertTrue("TemplateURL",
xDP.getTemplateURL().endsWith("memmodern.ott")); xDP.getTemplateURL().endsWith("memmodern.ott"));
assertEquals("TemplateDate", 17, xDP.getTemplateDate().Hours); assertEquals("TemplateDate", 17, xDP.getTemplateDate().Hours);
assertTrue( assertTrue(
"AutoloadURL", xDP.getAutoloadURL().endsWith("/TEST.odt")); "AutoloadURL", xDP.getAutoloadURL().endsWith("/TEST.odt"));
assertEquals("AutoloadSecs", 0, xDP.getAutoloadSecs()); assertEquals("AutoloadSecs", 0, xDP.getAutoloadSecs());
assertEquals("DefaultTarget", "_blank", xDP.getDefaultTarget()); assertEquals("DefaultTarget", "_blank", xDP.getDefaultTarget());
assertEquals("EditingCycles", 3, xDP.getEditingCycles()); assertEquals("EditingCycles", 3, xDP.getEditingCycles());
assertEquals("EditingDuration", 320, xDP.getEditingDuration()); assertEquals("EditingDuration", 320, xDP.getEditingDuration());
String[] kws = xDP.getKeywords(); String[] kws = xDP.getKeywords();
assertTrue("Keywords", fromArray(kws).containsAll( assertTrue("Keywords", fromArray(kws).containsAll(
fromArray(new Object[] { "Asien", "Memo", "Reis" }))); fromArray(new Object[] { "Asien", "Memo", "Reis" })));
NamedValue[] ds = xDP.getDocumentStatistics(); NamedValue[] ds = xDP.getDocumentStatistics();
assertTrue("DocumentStatistics:WordCount", containsNV(ds, assertTrue("DocumentStatistics:WordCount", containsNV(ds,
new NamedValue("WordCount", Integer.valueOf(23)))); new NamedValue("WordCount", Integer.valueOf(23))));
assertTrue("DocumentStatistics:PageCount", containsNV(ds, assertTrue("DocumentStatistics:PageCount", containsNV(ds,
new NamedValue("PageCount", Integer.valueOf(1)))); new NamedValue("PageCount", Integer.valueOf(1))));
XPropertyContainer udpc = xDP.getUserDefinedProperties(); XPropertyContainer udpc = xDP.getUserDefinedProperties();
XPropertySet udps = UnoRuntime.queryInterface( XPropertySet.class, udpc ); XPropertySet udps = UnoRuntime.queryInterface( XPropertySet.class, udpc );
assertEquals( assertEquals(
"UserDefined 1", "Dies ist ein wichtiger Hinweis", "UserDefined 1", "Dies ist ein wichtiger Hinweis",
udps.getPropertyValue("Hinweis")); udps.getPropertyValue("Hinweis"));
assertEquals( assertEquals(
"UserDefined 2", "Kann Spuren von N\u00FCssen enthalten", "UserDefined 2", "Kann Spuren von N\u00FCssen enthalten",
udps.getPropertyValue("Warnung")); udps.getPropertyValue("Warnung"));
System.out.println("...done"); System.out.println("...done");
System.out.println("Checking meta-data updates..."); System.out.println("Checking meta-data updates...");
String str; String str;
DateTime dt = new DateTime(); DateTime dt = new DateTime();
Locale l = new Locale(); Locale l = new Locale();
int i; int i;
str = "me"; str = "me";
xDP.setAuthor(str); xDP.setAuthor(str);
assertEquals("setAuthor", str, xDP.getAuthor()); assertEquals("setAuthor", str, xDP.getAuthor());
str = "the computa"; str = "the computa";
xDP.setGenerator(str); xDP.setGenerator(str);
assertEquals("setGenerator", str, xDP.getGenerator()); assertEquals("setGenerator", str, xDP.getGenerator());
dt.Year = 2038; dt.Year = 2038;
dt.Month = 1; dt.Month = 1;
dt.Day = 1; dt.Day = 1;
xDP.setCreationDate(dt); xDP.setCreationDate(dt);
assertEquals( assertEquals(
"setCreationDate", dt.Year, xDP.getCreationDate().Year); "setCreationDate", dt.Year, xDP.getCreationDate().Year);
str = "El t'itulo"; str = "El t'itulo";
xDP.setTitle(str); xDP.setTitle(str);
assertEquals("setTitle", str, xDP.getTitle()); assertEquals("setTitle", str, xDP.getTitle());
str = "Ein verkommenes Subjekt"; str = "Ein verkommenes Subjekt";
xDP.setSubject(str); xDP.setSubject(str);
assertEquals("setSubject", str, xDP.getSubject()); assertEquals("setSubject", str, xDP.getSubject());
str = "Este descripci'on no es importante"; str = "Este descripci'on no es importante";
xDP.setDescription(str); xDP.setDescription(str);
assertEquals("setDescription", str, xDP.getDescription()); assertEquals("setDescription", str, xDP.getDescription());
l.Language = "en"; l.Language = "en";
l.Country = "GB"; l.Country = "GB";
xDP.setLanguage(l); xDP.setLanguage(l);
Locale l2 = xDP.getLanguage(); Locale l2 = xDP.getLanguage();
assertEquals("setLanguage Lang", l.Language, l2.Language); assertEquals("setLanguage Lang", l.Language, l2.Language);
assertEquals("setLanguage Cty", l.Country, l2.Country); assertEquals("setLanguage Cty", l.Country, l2.Country);
str = "myself"; str = "myself";
xDP.setModifiedBy(str); xDP.setModifiedBy(str);
assertEquals("setModifiedBy", str, xDP.getModifiedBy()); assertEquals("setModifiedBy", str, xDP.getModifiedBy());
dt.Year = 2042; dt.Year = 2042;
xDP.setModificationDate(dt); xDP.setModificationDate(dt);
assertEquals( assertEquals(
"setModificationDate", dt.Year, xDP.getModificationDate().Year); "setModificationDate", dt.Year, xDP.getModificationDate().Year);
str = "i did not do it"; str = "i did not do it";
xDP.setPrintedBy(str); xDP.setPrintedBy(str);
assertEquals("setPrintedBy", str, xDP.getPrintedBy()); assertEquals("setPrintedBy", str, xDP.getPrintedBy());
dt.Year = 2024; dt.Year = 2024;
xDP.setPrintDate(dt); xDP.setPrintDate(dt);
assertEquals("setPrintDate", dt.Year, xDP.getPrintDate().Year); assertEquals("setPrintDate", dt.Year, xDP.getPrintDate().Year);
str = "blah"; str = "blah";
xDP.setTemplateName(str); xDP.setTemplateName(str);
assertEquals("setTemplateName", str, xDP.getTemplateName()); assertEquals("setTemplateName", str, xDP.getTemplateName());
str = "gopher://some-hole-in-the-ground/"; str = "gopher://some-hole-in-the-ground/";
xDP.setTemplateURL(str); xDP.setTemplateURL(str);
assertEquals("setTemplateURL", str, xDP.getTemplateURL()); assertEquals("setTemplateURL", str, xDP.getTemplateURL());
dt.Year = 2043; dt.Year = 2043;
xDP.setTemplateDate(dt); xDP.setTemplateDate(dt);
assertEquals( assertEquals(
"setTemplateDate", dt.Year, xDP.getTemplateDate().Year); "setTemplateDate", dt.Year, xDP.getTemplateDate().Year);
str = "http://nowhere/"; str = "http://nowhere/";
xDP.setAutoloadURL(str); xDP.setAutoloadURL(str);
assertEquals("setAutoloadURL", str, xDP.getAutoloadURL()); assertEquals("setAutoloadURL", str, xDP.getAutoloadURL());
i = 3661; // this might not work (due to conversion via double...) i = 3661; // this might not work (due to conversion via double...)
xDP.setAutoloadSecs(i); xDP.setAutoloadSecs(i);
assertEquals("setAutoloadSecs", i, xDP.getAutoloadSecs()); assertEquals("setAutoloadSecs", i, xDP.getAutoloadSecs());
str = "_blank"; str = "_blank";
xDP.setDefaultTarget(str); xDP.setDefaultTarget(str);
assertEquals("setDefaultTarget", str, xDP.getDefaultTarget()); assertEquals("setDefaultTarget", str, xDP.getDefaultTarget());
i = 42; i = 42;
xDP.setEditingCycles((short) i); xDP.setEditingCycles((short) i);
assertEquals("setEditingCycles", i, xDP.getEditingCycles()); assertEquals("setEditingCycles", i, xDP.getEditingCycles());
i = 84; i = 84;
xDP.setEditingDuration(i); xDP.setEditingDuration(i);
assertEquals("setEditingDuration", i, xDP.getEditingDuration()); assertEquals("setEditingDuration", i, xDP.getEditingDuration());
str = ""; str = "";
String[] kws2 = new String[] { String[] kws2 = new String[] {
"keywordly", "keywordlike", "keywordalicious" }; "keywordly", "keywordlike", "keywordalicious" };
xDP.setKeywords(kws2); xDP.setKeywords(kws2);
kws = xDP.getKeywords(); kws = xDP.getKeywords();
assertTrue("setKeywords", fromArray(kws).containsAll(fromArray(kws2))); assertTrue("setKeywords", fromArray(kws).containsAll(fromArray(kws2)));
NamedValue[] ds2 = new NamedValue[] { NamedValue[] ds2 = new NamedValue[] {
new NamedValue("SyllableCount", Integer.valueOf(9)), new NamedValue("SyllableCount", Integer.valueOf(9)),
new NamedValue("FrameCount", Integer.valueOf(2)), new NamedValue("FrameCount", Integer.valueOf(2)),
new NamedValue("SentenceCount", Integer.valueOf(7)) }; new NamedValue("SentenceCount", Integer.valueOf(7)) };
xDP.setDocumentStatistics(ds2); xDP.setDocumentStatistics(ds2);
ds = xDP.getDocumentStatistics(); ds = xDP.getDocumentStatistics();
assertTrue("setDocumentStatistics:SyllableCount", containsNV(ds, assertTrue("setDocumentStatistics:SyllableCount", containsNV(ds,
new NamedValue("SyllableCount", Integer.valueOf(9)))); new NamedValue("SyllableCount", Integer.valueOf(9))));
assertTrue("setDocumentStatistics:FrameCount", containsNV(ds, assertTrue("setDocumentStatistics:FrameCount", containsNV(ds,
new NamedValue("FrameCount", Integer.valueOf(2)))); new NamedValue("FrameCount", Integer.valueOf(2))));
assertTrue("setDocumentStatistics:SentenceCount", containsNV(ds, assertTrue("setDocumentStatistics:SentenceCount", containsNV(ds,
new NamedValue("SentenceCount", Integer.valueOf(7)))); new NamedValue("SentenceCount", Integer.valueOf(7))));
System.out.println("...done"); System.out.println("...done");
System.out.println("Checking user-defined meta-data updates..."); System.out.println("Checking user-defined meta-data updates...");
// actually, this tests the PropertyBag service // actually, this tests the PropertyBag service
// but maybe the DocumentProperties service will be implemented // but maybe the DocumentProperties service will be implemented
// differently some day... // differently some day...
boolean b = true; boolean b = true;
double d = 3.1415; double d = 3.1415;
// note that Time is only supported for backward compatibility! // note that Time is only supported for backward compatibility!
Time t = new Time(); Time t = new Time();
t.Hours = 1; t.Hours = 1;
t.Minutes = 16; t.Minutes = 16;
Date date = new Date(); Date date = new Date();
date.Year = 2071; date.Year = 2071;
date.Month = 2; date.Month = 2;
date.Day = 3; date.Day = 3;
dt.Year = 2065; dt.Year = 2065;
Duration dur = new Duration(); Duration dur = new Duration();
dur.Negative = true; dur.Negative = true;
dur.Years = 1001; dur.Years = 1001;
dur.Months = 999; dur.Months = 999;
dur.Days = 888; dur.Days = 888;
dur.Hours = 777; dur.Hours = 777;
dur.Minutes = 666; dur.Minutes = 666;
dur.Seconds = 555; dur.Seconds = 555;
dur.NanoSeconds = 444444444; dur.NanoSeconds = 444444444;
udpc.addProperty("Frobnicate", PropertyAttribute.REMOVABLE, b); udpc.addProperty("Frobnicate", PropertyAttribute.REMOVABLE, b);
udpc.addProperty("FrobDuration", PropertyAttribute.REMOVABLE, dur); udpc.addProperty("FrobDuration", PropertyAttribute.REMOVABLE, dur);
udpc.addProperty("FrobDuration2", PropertyAttribute.REMOVABLE, t); udpc.addProperty("FrobDuration2", PropertyAttribute.REMOVABLE, t);
udpc.addProperty("FrobEndDate", PropertyAttribute.REMOVABLE, date); udpc.addProperty("FrobEndDate", PropertyAttribute.REMOVABLE, date);
udpc.addProperty("FrobStartTime", PropertyAttribute.REMOVABLE, dt); udpc.addProperty("FrobStartTime", PropertyAttribute.REMOVABLE, dt);
udpc.addProperty("Pi", PropertyAttribute.REMOVABLE, new Double(d)); udpc.addProperty("Pi", PropertyAttribute.REMOVABLE, new Double(d));
udpc.addProperty("Foo", PropertyAttribute.REMOVABLE, "bar"); udpc.addProperty("Foo", PropertyAttribute.REMOVABLE, "bar");
udpc.addProperty("Removed", PropertyAttribute.REMOVABLE, "bar"); udpc.addProperty("Removed", PropertyAttribute.REMOVABLE, "bar");
// #i94175#: empty property name is valid ODF 1.1 // #i94175#: empty property name is valid ODF 1.1
udpc.addProperty("", PropertyAttribute.REMOVABLE, "eeeeek"); udpc.addProperty("", PropertyAttribute.REMOVABLE, "eeeeek");
try { try {
udpc.removeProperty("Info 1"); udpc.removeProperty("Info 1");
udpc.removeProperty("Removed"); udpc.removeProperty("Removed");
} catch (UnknownPropertyException e) { } catch (UnknownPropertyException e) {
fail("removeProperty failed"); fail("removeProperty failed");
} }
try { try {
udpc.addProperty("Forbidden", PropertyAttribute.REMOVABLE, udpc.addProperty("Forbidden", PropertyAttribute.REMOVABLE,
new String[] { "foo", "bar" }); new String[] { "foo", "bar" });
fail("inserting value of non-supported type did not fail"); fail("inserting value of non-supported type did not fail");
} catch (IllegalTypeException e) { } catch (IllegalTypeException e) {
// ignore // ignore
} }
assertEquals( assertEquals(
"UserDefined bool", b, udps.getPropertyValue("Frobnicate")); "UserDefined bool", b, udps.getPropertyValue("Frobnicate"));
assertTrue("UserDefined duration", eqDuration(dur, (Duration) assertTrue("UserDefined duration", eqDuration(dur, (Duration)
udps.getPropertyValue("FrobDuration"))); udps.getPropertyValue("FrobDuration")));
assertTrue("UserDefined time", eqTime(t, (Time) assertTrue("UserDefined time", eqTime(t, (Time)
udps.getPropertyValue("FrobDuration2"))); udps.getPropertyValue("FrobDuration2")));
assertTrue("UserDefined date", eqDate(date, (Date) assertTrue("UserDefined date", eqDate(date, (Date)
udps.getPropertyValue("FrobEndDate"))); udps.getPropertyValue("FrobEndDate")));
assertTrue("UserDefined datetime", eqDateTime(dt, (DateTime) assertTrue("UserDefined datetime", eqDateTime(dt, (DateTime)
udps.getPropertyValue("FrobStartTime"))); udps.getPropertyValue("FrobStartTime")));
assertEquals("UserDefined float", d, udps.getPropertyValue("Pi")); assertEquals("UserDefined float", d, udps.getPropertyValue("Pi"));
assertEquals( assertEquals(
"UserDefined string", "bar", udps.getPropertyValue("Foo")); "UserDefined string", "bar", udps.getPropertyValue("Foo"));
assertEquals( assertEquals(
"UserDefined empty name", "eeeeek", udps.getPropertyValue("")); "UserDefined empty name", "eeeeek", udps.getPropertyValue(""));
try {
udps.getPropertyValue("Removed");
fail("UserDefined remove didn't");
} catch (UnknownPropertyException e) {
// ok
}
System.out.println("...done"); try {
udps.getPropertyValue("Removed");
fail("UserDefined remove didn't");
} catch (UnknownPropertyException e) {
// ok
}
System.out.println("Checking storing meta-data to file..."); System.out.println("...done");
xDP.storeToMedium(temp + "TEST.odt", mimeArgs); System.out.println("Checking storing meta-data to file...");
System.out.println("...done"); xDP.storeToMedium(temp + "TEST.odt", mimeArgs);
System.out.println("Checking loading meta-data from stored file..."); System.out.println("...done");
xDP.loadFromMedium(temp + "TEST.odt", noArgs); System.out.println("Checking loading meta-data from stored file...");
System.out.println("...done"); xDP.loadFromMedium(temp + "TEST.odt", noArgs);
System.out.println("Checking user-defined meta-data from stored file..."); System.out.println("...done");
udpc = xDP.getUserDefinedProperties(); System.out.println("Checking user-defined meta-data from stored file...");
udps = UnoRuntime.queryInterface( XPropertySet.class, udpc );
assertEquals( udpc = xDP.getUserDefinedProperties();
"UserDefined bool", b, udps.getPropertyValue("Frobnicate")); udps = UnoRuntime.queryInterface( XPropertySet.class, udpc );
assertTrue("UserDefined duration", eqDuration(dur, (Duration)
udps.getPropertyValue("FrobDuration")));
// this is now a Duration!
Duration t_dur = new Duration(false, (short)0, (short)0, (short)0,
t.Hours, t.Minutes, t.Seconds,
t.NanoSeconds);
assertTrue("UserDefined time", eqDuration(t_dur, (Duration)
udps.getPropertyValue("FrobDuration2")));
assertTrue("UserDefined date", eqDate(date, (Date)
udps.getPropertyValue("FrobEndDate")));
assertTrue("UserDefined datetime", eqDateTime(dt, (DateTime)
udps.getPropertyValue("FrobStartTime")));
assertEquals("UserDefined float", d, udps.getPropertyValue("Pi"));
assertEquals(
"UserDefined string", "bar", udps.getPropertyValue("Foo"));
try { assertEquals(
udps.getPropertyValue("Removed"); "UserDefined bool", b, udps.getPropertyValue("Frobnicate"));
fail("UserDefined remove didn't"); assertTrue("UserDefined duration", eqDuration(dur, (Duration)
} catch (UnknownPropertyException e) { udps.getPropertyValue("FrobDuration")));
// ok // this is now a Duration!
} Duration t_dur = new Duration(false, (short)0, (short)0, (short)0,
t.Hours, t.Minutes, t.Seconds,
t.NanoSeconds);
assertTrue("UserDefined time", eqDuration(t_dur, (Duration)
udps.getPropertyValue("FrobDuration2")));
assertTrue("UserDefined date", eqDate(date, (Date)
udps.getPropertyValue("FrobEndDate")));
assertTrue("UserDefined datetime", eqDateTime(dt, (DateTime)
udps.getPropertyValue("FrobStartTime")));
assertEquals("UserDefined float", d, udps.getPropertyValue("Pi"));
assertEquals(
"UserDefined string", "bar", udps.getPropertyValue("Foo"));
System.out.println("...done"); try {
udps.getPropertyValue("Removed");
System.out.println("Checking notification listener interface..."); fail("UserDefined remove didn't");
} catch (UnknownPropertyException e) {
Listener listener = new Listener(); // ok
XModifyBroadcaster xMB = UnoRuntime.queryInterface( XModifyBroadcaster.class, xDP );
xMB.addModifyListener(listener);
xDP.setAuthor("not me");
assertTrue("Listener Author", listener.reset());
udpc.addProperty("Listener", PropertyAttribute.REMOVABLE, "foo");
assertTrue("Listener UserDefined Add", listener.reset());
udps.setPropertyValue("Listener", "bar");
assertTrue("Listener UserDefined Set", listener.reset());
udpc.removeProperty("Listener");
assertTrue("Listener UserDefined Remove", listener.reset());
xMB.removeModifyListener(listener);
udpc.addProperty("Listener2", PropertyAttribute.REMOVABLE, "foo");
assertTrue("Removed Listener UserDefined Add", !listener.reset());
System.out.println("...done");
} catch (Exception e) {
report(e);
} }
System.out.println("...done");
System.out.println("Checking notification listener interface...");
Listener listener = new Listener();
XModifyBroadcaster xMB = UnoRuntime.queryInterface( XModifyBroadcaster.class, xDP );
xMB.addModifyListener(listener);
xDP.setAuthor("not me");
assertTrue("Listener Author", listener.reset());
udpc.addProperty("Listener", PropertyAttribute.REMOVABLE, "foo");
assertTrue("Listener UserDefined Add", listener.reset());
udps.setPropertyValue("Listener", "bar");
assertTrue("Listener UserDefined Set", listener.reset());
udpc.removeProperty("Listener");
assertTrue("Listener UserDefined Remove", listener.reset());
xMB.removeModifyListener(listener);
udpc.addProperty("Listener2", PropertyAttribute.REMOVABLE, "foo");
assertTrue("Removed Listener UserDefined Add", !listener.reset());
System.out.println("...done");
} }
// grrr... // grrr...
...@@ -504,14 +500,7 @@ public class DocumentProperties ...@@ -504,14 +500,7 @@ public class DocumentProperties
return false; return false;
} }
public void report(Exception e) { private XMultiServiceFactory getMSF()
System.out.println("Exception occurred:");
e.printStackTrace();
fail();
}
private XMultiServiceFactory getMSF()
{ {
final XMultiServiceFactory xMSF1 = UnoRuntime.queryInterface( XMultiServiceFactory.class, connection.getComponentContext().getServiceManager() ); final XMultiServiceFactory xMSF1 = UnoRuntime.queryInterface( XMultiServiceFactory.class, connection.getComponentContext().getServiceManager() );
return xMSF1; return xMSF1;
......
...@@ -42,8 +42,11 @@ import com.sun.star.document.XUndoAction; ...@@ -42,8 +42,11 @@ import com.sun.star.document.XUndoAction;
import com.sun.star.lang.EventObject; import com.sun.star.lang.EventObject;
import com.sun.star.lang.IndexOutOfBoundsException; import com.sun.star.lang.IndexOutOfBoundsException;
import com.sun.star.lang.XEventListener; import com.sun.star.lang.XEventListener;
import java.lang.reflect.InvocationTargetException; import java.lang.reflect.InvocationTargetException;
import org.openoffice.test.tools.OfficeDocument; import org.openoffice.test.tools.OfficeDocument;
import com.sun.star.document.XUndoManagerSupplier; import com.sun.star.document.XUndoManagerSupplier;
import com.sun.star.document.XUndoManager; import com.sun.star.document.XUndoManager;
import com.sun.star.document.XUndoManagerListener; import com.sun.star.document.XUndoManagerListener;
...@@ -60,28 +63,34 @@ import com.sun.star.script.ScriptEventDescriptor; ...@@ -60,28 +63,34 @@ import com.sun.star.script.ScriptEventDescriptor;
import com.sun.star.script.XEventAttacherManager; import com.sun.star.script.XEventAttacherManager;
import com.sun.star.script.XLibraryContainer; import com.sun.star.script.XLibraryContainer;
import com.sun.star.task.XJob; import com.sun.star.task.XJob;
import com.sun.star.uno.Exception;
import com.sun.star.uno.Type; import com.sun.star.uno.Type;
import com.sun.star.uno.UnoRuntime; import com.sun.star.uno.UnoRuntime;
import com.sun.star.uno.XComponentContext; import com.sun.star.uno.XComponentContext;
import com.sun.star.util.InvalidStateException; import com.sun.star.util.InvalidStateException;
import com.sun.star.util.NotLockedException; import com.sun.star.util.NotLockedException;
import com.sun.star.view.XControlAccess; import com.sun.star.view.XControlAccess;
import complex.sfx2.undo.CalcDocumentTest; import complex.sfx2.undo.CalcDocumentTest;
import complex.sfx2.undo.ChartDocumentTest; import complex.sfx2.undo.ChartDocumentTest;
import complex.sfx2.undo.DocumentTest; import complex.sfx2.undo.DocumentTest;
import complex.sfx2.undo.DrawDocumentTest; import complex.sfx2.undo.DrawDocumentTest;
import complex.sfx2.undo.ImpressDocumentTest; import complex.sfx2.undo.ImpressDocumentTest;
import complex.sfx2.undo.WriterDocumentTest; import complex.sfx2.undo.WriterDocumentTest;
import java.lang.reflect.Method; import java.lang.reflect.Method;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Iterator; import java.util.Iterator;
import java.util.Stack; import java.util.Stack;
import org.junit.After; import org.junit.After;
import org.junit.AfterClass; import org.junit.AfterClass;
import org.junit.Before; import org.junit.Before;
import org.junit.BeforeClass; import org.junit.BeforeClass;
import org.junit.Test; import org.junit.Test;
import static org.junit.Assert.*; import static org.junit.Assert.*;
import org.openoffice.test.OfficeConnection; import org.openoffice.test.OfficeConnection;
import org.openoffice.test.tools.DocumentType; import org.openoffice.test.tools.DocumentType;
import org.openoffice.test.tools.SpreadsheetDocument; import org.openoffice.test.tools.SpreadsheetDocument;
...@@ -118,7 +127,7 @@ public class UndoManager ...@@ -118,7 +127,7 @@ public class UndoManager
//FIXME fails fdo#35663 @Test //FIXME fails fdo#35663 @Test
public void checkCalcUndo() throws Exception public void checkCalcUndo() throws java.lang.Exception
{ {
m_currentTestCase = new CalcDocumentTest( getORB() ); m_currentTestCase = new CalcDocumentTest( getORB() );
impl_checkUndo(); impl_checkUndo();
...@@ -385,38 +394,31 @@ public class UndoManager ...@@ -385,38 +394,31 @@ public class UndoManager
private void impl_assignScript( final XPropertySet i_controlModel, final String i_interfaceName, private void impl_assignScript( final XPropertySet i_controlModel, final String i_interfaceName,
final String i_interfaceMethod, final String i_scriptURI ) final String i_interfaceMethod, final String i_scriptURI ) throws Exception
{ {
try final XChild modelAsChild = UnoRuntime.queryInterface( XChild.class, i_controlModel );
{ final XIndexContainer parentForm = UnoRuntime.queryInterface( XIndexContainer.class, modelAsChild.getParent() );
final XChild modelAsChild = UnoRuntime.queryInterface( XChild.class, i_controlModel );
final XIndexContainer parentForm = UnoRuntime.queryInterface( XIndexContainer.class, modelAsChild.getParent() );
final XEventAttacherManager manager = UnoRuntime.queryInterface( XEventAttacherManager.class, parentForm ); final XEventAttacherManager manager = UnoRuntime.queryInterface( XEventAttacherManager.class, parentForm );
int containerPosition = -1; int containerPosition = -1;
for ( int i = 0; i < parentForm.getCount(); ++i ) for ( int i = 0; i < parentForm.getCount(); ++i )
{
final XPropertySet child = UnoRuntime.queryInterface( XPropertySet.class, parentForm.getByIndex( i ) );
if ( UnoRuntime.areSame( child, i_controlModel ) )
{ {
final XPropertySet child = UnoRuntime.queryInterface( XPropertySet.class, parentForm.getByIndex( i ) ); containerPosition = i;
if ( UnoRuntime.areSame( child, i_controlModel ) ) break;
{
containerPosition = i;
break;
}
} }
assertFalse( "could not find the given control model within its parent", containerPosition == -1 );
manager.registerScriptEvent( containerPosition, new ScriptEventDescriptor(
i_interfaceName,
i_interfaceMethod,
"",
"Script",
i_scriptURI
) );
}
catch( com.sun.star.uno.Exception e )
{
fail( "caught an exception while assigning the script event to the button: " + e.toString() );
} }
assertFalse( "could not find the given control model within its parent", containerPosition == -1 );
manager.registerScriptEvent( containerPosition, new ScriptEventDescriptor(
i_interfaceName,
i_interfaceMethod,
"",
"Script",
i_scriptURI
) );
} }
...@@ -1195,7 +1197,7 @@ public class UndoManager ...@@ -1195,7 +1197,7 @@ public class UndoManager
@BeforeClass @BeforeClass
public static void setUpConnection() throws Exception public static void setUpConnection() throws java.lang.Exception
{ {
System.out.println( "--------------------------------------------------------------------------------" ); System.out.println( "--------------------------------------------------------------------------------" );
System.out.println( "starting class: " + UndoManager.class.getName() ); System.out.println( "starting class: " + UndoManager.class.getName() );
......
...@@ -185,15 +185,8 @@ public class WriterHelper { ...@@ -185,15 +185,8 @@ public class WriterHelper {
* *
* @return returns the gained XExtendedToolkit Interface * @return returns the gained XExtendedToolkit Interface
*/ */
public XExtendedToolkit getToolkit() { public XExtendedToolkit getToolkit() throws com.sun.star.uno.Exception {
Object toolkit = null; Object toolkit = m_xMSF.createInstance("com.sun.star.awt.Toolkit");
try {
toolkit = m_xMSF.createInstance("com.sun.star.awt.Toolkit");
} catch (com.sun.star.uno.Exception e) {
System.out.println("Couldn't get toolkit");
e.printStackTrace(System.err);
}
XExtendedToolkit tk = UnoRuntime.queryInterface(XExtendedToolkit.class, XExtendedToolkit tk = UnoRuntime.queryInterface(XExtendedToolkit.class,
toolkit); toolkit);
...@@ -207,15 +200,8 @@ public class WriterHelper { ...@@ -207,15 +200,8 @@ public class WriterHelper {
* *
* @return returns the gained XDesktop interface * @return returns the gained XDesktop interface
*/ */
private XDesktop getDesktop() { private XDesktop getDesktop() throws com.sun.star.uno.Exception {
Object desk = null; Object desk = m_xMSF.createInstance("com.sun.star.frame.Desktop");
try {
desk = m_xMSF.createInstance("com.sun.star.frame.Desktop");
} catch (com.sun.star.uno.Exception e) {
System.out.println("Couldn't get desktop");
e.printStackTrace(System.err);
}
XDesktop xDesktop = UnoRuntime.queryInterface(XDesktop.class, desk); XDesktop xDesktop = UnoRuntime.queryInterface(XDesktop.class, desk);
......
...@@ -115,23 +115,16 @@ public class ChartDocumentTest implements DocumentTest ...@@ -115,23 +115,16 @@ public class ChartDocumentTest implements DocumentTest
return wallProperties; return wallProperties;
} }
private XPropertySet impl_getYAxisProperties() private XPropertySet impl_getYAxisProperties() throws IndexOutOfBoundsException
{ {
XPropertySet axisProperties = null; XPropertySet axisProperties = null;
try final XChartDocument chartDoc = UnoRuntime.queryInterface( XChartDocument.class, m_chartDocument.getDocument() );
{ final XDiagram diagram = chartDoc.getFirstDiagram();
final XChartDocument chartDoc = UnoRuntime.queryInterface( XChartDocument.class, m_chartDocument.getDocument() ); final XCoordinateSystemContainer coordContainer = UnoRuntime.queryInterface( XCoordinateSystemContainer.class, diagram );
final XDiagram diagram = chartDoc.getFirstDiagram(); final XCoordinateSystem[] coordSystems = coordContainer.getCoordinateSystems();
final XCoordinateSystemContainer coordContainer = UnoRuntime.queryInterface( XCoordinateSystemContainer.class, diagram ); final XCoordinateSystem coordSystem = coordSystems[0];
final XCoordinateSystem[] coordSystems = coordContainer.getCoordinateSystems(); final XAxis primaryYAxis = coordSystem.getAxisByDimension( 1, 0 );
final XCoordinateSystem coordSystem = coordSystems[0]; axisProperties = UnoRuntime.queryInterface( XPropertySet.class, primaryYAxis );
final XAxis primaryYAxis = coordSystem.getAxisByDimension( 1, 0 );
axisProperties = UnoRuntime.queryInterface( XPropertySet.class, primaryYAxis );
}
catch ( Exception ex )
{
fail( "internal error: could not retrieve primary Y axis properties" );
}
return axisProperties; return axisProperties;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment