1*b1cdbd2cSJim Jagielski /************************************************************** 2*b1cdbd2cSJim Jagielski * 3*b1cdbd2cSJim Jagielski * Licensed to the Apache Software Foundation (ASF) under one 4*b1cdbd2cSJim Jagielski * or more contributor license agreements. See the NOTICE file 5*b1cdbd2cSJim Jagielski * distributed with this work for additional information 6*b1cdbd2cSJim Jagielski * regarding copyright ownership. The ASF licenses this file 7*b1cdbd2cSJim Jagielski * to you under the Apache License, Version 2.0 (the 8*b1cdbd2cSJim Jagielski * "License"); you may not use this file except in compliance 9*b1cdbd2cSJim Jagielski * with the License. You may obtain a copy of the License at 10*b1cdbd2cSJim Jagielski * 11*b1cdbd2cSJim Jagielski * http://www.apache.org/licenses/LICENSE-2.0 12*b1cdbd2cSJim Jagielski * 13*b1cdbd2cSJim Jagielski * Unless required by applicable law or agreed to in writing, 14*b1cdbd2cSJim Jagielski * software distributed under the License is distributed on an 15*b1cdbd2cSJim Jagielski * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*b1cdbd2cSJim Jagielski * KIND, either express or implied. See the License for the 17*b1cdbd2cSJim Jagielski * specific language governing permissions and limitations 18*b1cdbd2cSJim Jagielski * under the License. 19*b1cdbd2cSJim Jagielski * 20*b1cdbd2cSJim Jagielski *************************************************************/ 21*b1cdbd2cSJim Jagielski /** 22*b1cdbd2cSJim Jagielski * 23*b1cdbd2cSJim Jagielski */ 24*b1cdbd2cSJim Jagielski package fvt.uno.sd.file; 25*b1cdbd2cSJim Jagielski import static org.junit.Assert.*; 26*b1cdbd2cSJim Jagielski 27*b1cdbd2cSJim Jagielski import org.junit.After; 28*b1cdbd2cSJim Jagielski import org.junit.AfterClass; 29*b1cdbd2cSJim Jagielski import org.junit.Before; 30*b1cdbd2cSJim Jagielski import org.junit.BeforeClass; 31*b1cdbd2cSJim Jagielski import org.junit.Test; 32*b1cdbd2cSJim Jagielski import org.openoffice.test.uno.UnoApp; 33*b1cdbd2cSJim Jagielski import org.openoffice.test.common.FileUtil; 34*b1cdbd2cSJim Jagielski import org.openoffice.test.common.Testspace; 35*b1cdbd2cSJim Jagielski 36*b1cdbd2cSJim Jagielski import com.sun.star.beans.IllegalTypeException; 37*b1cdbd2cSJim Jagielski import com.sun.star.beans.Property; 38*b1cdbd2cSJim Jagielski import com.sun.star.beans.PropertyAttribute; 39*b1cdbd2cSJim Jagielski import com.sun.star.beans.PropertyExistException; 40*b1cdbd2cSJim Jagielski import com.sun.star.beans.PropertyValue; 41*b1cdbd2cSJim Jagielski import com.sun.star.beans.UnknownPropertyException; 42*b1cdbd2cSJim Jagielski import com.sun.star.beans.XPropertyContainer; 43*b1cdbd2cSJim Jagielski import com.sun.star.beans.XPropertySet; 44*b1cdbd2cSJim Jagielski import com.sun.star.beans.XPropertySetInfo; 45*b1cdbd2cSJim Jagielski import com.sun.star.container.XNameAccess; 46*b1cdbd2cSJim Jagielski import com.sun.star.document.XDocumentProperties; 47*b1cdbd2cSJim Jagielski import com.sun.star.document.XDocumentPropertiesSupplier; 48*b1cdbd2cSJim Jagielski import java.util.Calendar; 49*b1cdbd2cSJim Jagielski import com.sun.star.util.DateTime; 50*b1cdbd2cSJim Jagielski import com.sun.star.util.Date; 51*b1cdbd2cSJim Jagielski import com.sun.star.util.Duration; 52*b1cdbd2cSJim Jagielski import com.sun.star.lang.IllegalArgumentException; 53*b1cdbd2cSJim Jagielski import com.sun.star.lang.WrappedTargetException; 54*b1cdbd2cSJim Jagielski import com.sun.star.lang.XComponent; 55*b1cdbd2cSJim Jagielski import com.sun.star.lang.XMultiServiceFactory; 56*b1cdbd2cSJim Jagielski import com.sun.star.uno.UnoRuntime; 57*b1cdbd2cSJim Jagielski 58*b1cdbd2cSJim Jagielski /** 59*b1cdbd2cSJim Jagielski * @author LouQL 60*b1cdbd2cSJim Jagielski * 61*b1cdbd2cSJim Jagielski */ 62*b1cdbd2cSJim Jagielski public class CheckFileProperties { 63*b1cdbd2cSJim Jagielski 64*b1cdbd2cSJim Jagielski private static final UnoApp app = new UnoApp(); 65*b1cdbd2cSJim Jagielski 66*b1cdbd2cSJim Jagielski private XComponent m_xSDComponent = null; 67*b1cdbd2cSJim Jagielski private static String m_filePath = null; 68*b1cdbd2cSJim Jagielski 69*b1cdbd2cSJim Jagielski @Before setUpDocument()70*b1cdbd2cSJim Jagielski public void setUpDocument() throws Exception { 71*b1cdbd2cSJim Jagielski if (FileUtil.fileExists(m_filePath)) {//load 72*b1cdbd2cSJim Jagielski m_xSDComponent = app.loadDocument(m_filePath); 73*b1cdbd2cSJim Jagielski } else {//new 74*b1cdbd2cSJim Jagielski m_xSDComponent = (XComponent) UnoRuntime.queryInterface( 75*b1cdbd2cSJim Jagielski XComponent.class, app.newDocument("simpress")); 76*b1cdbd2cSJim Jagielski } 77*b1cdbd2cSJim Jagielski } 78*b1cdbd2cSJim Jagielski getUserName()79*b1cdbd2cSJim Jagielski private String getUserName() throws com.sun.star.uno.Exception 80*b1cdbd2cSJim Jagielski { 81*b1cdbd2cSJim Jagielski Object configurationProvider = app.getServiceFactory(). 82*b1cdbd2cSJim Jagielski createInstance("com.sun.star.configuration.ConfigurationProvider"); 83*b1cdbd2cSJim Jagielski 84*b1cdbd2cSJim Jagielski XMultiServiceFactory msFac = (XMultiServiceFactory)UnoRuntime.queryInterface( 85*b1cdbd2cSJim Jagielski XMultiServiceFactory.class, configurationProvider); 86*b1cdbd2cSJim Jagielski 87*b1cdbd2cSJim Jagielski PropertyValue[] propValue = new PropertyValue[1]; 88*b1cdbd2cSJim Jagielski propValue[0] = new PropertyValue(); 89*b1cdbd2cSJim Jagielski propValue[0].Name = "nodepath"; 90*b1cdbd2cSJim Jagielski propValue[0].Value = "/org.openoffice.UserProfile/Data"; 91*b1cdbd2cSJim Jagielski 92*b1cdbd2cSJim Jagielski Object configurationAccess = msFac.createInstanceWithArguments( 93*b1cdbd2cSJim Jagielski "com.sun.star.configuration.ConfigurationAccess", propValue); 94*b1cdbd2cSJim Jagielski XNameAccess nameAcc = (XNameAccess)UnoRuntime.queryInterface(XNameAccess.class, configurationAccess); 95*b1cdbd2cSJim Jagielski String givenname = (String)nameAcc.getByName("givenname"); 96*b1cdbd2cSJim Jagielski String sn = (String)nameAcc.getByName("sn"); 97*b1cdbd2cSJim Jagielski String name = null; 98*b1cdbd2cSJim Jagielski if(givenname.length() == 0) name = sn; 99*b1cdbd2cSJim Jagielski else name = givenname+" "+sn; 100*b1cdbd2cSJim Jagielski 101*b1cdbd2cSJim Jagielski return name; 102*b1cdbd2cSJim Jagielski } 103*b1cdbd2cSJim Jagielski getDocumentProperties()104*b1cdbd2cSJim Jagielski private XDocumentProperties getDocumentProperties(){ 105*b1cdbd2cSJim Jagielski XDocumentPropertiesSupplier xDocumentProSupplier = (XDocumentPropertiesSupplier)UnoRuntime.queryInterface( 106*b1cdbd2cSJim Jagielski XDocumentPropertiesSupplier.class, this.m_xSDComponent); 107*b1cdbd2cSJim Jagielski return xDocumentProSupplier.getDocumentProperties(); 108*b1cdbd2cSJim Jagielski } 109*b1cdbd2cSJim Jagielski 110*b1cdbd2cSJim Jagielski @After tearDownDocument()111*b1cdbd2cSJim Jagielski public void tearDownDocument() { 112*b1cdbd2cSJim Jagielski app.closeDocument(m_xSDComponent); 113*b1cdbd2cSJim Jagielski m_filePath = Testspace.getPath("temp/CheckFileProperties.odp"); 114*b1cdbd2cSJim Jagielski FileUtil.deleteFile(m_filePath); 115*b1cdbd2cSJim Jagielski 116*b1cdbd2cSJim Jagielski } 117*b1cdbd2cSJim Jagielski 118*b1cdbd2cSJim Jagielski @BeforeClass setUpConnection()119*b1cdbd2cSJim Jagielski public static void setUpConnection() throws Exception { 120*b1cdbd2cSJim Jagielski app.start(); 121*b1cdbd2cSJim Jagielski m_filePath = Testspace.getPath("temp/CheckFileProperties.odp"); 122*b1cdbd2cSJim Jagielski FileUtil.deleteFile(m_filePath); 123*b1cdbd2cSJim Jagielski } 124*b1cdbd2cSJim Jagielski 125*b1cdbd2cSJim Jagielski @AfterClass tearDownConnection()126*b1cdbd2cSJim Jagielski public static void tearDownConnection() throws InterruptedException, 127*b1cdbd2cSJim Jagielski Exception { 128*b1cdbd2cSJim Jagielski app.close(); 129*b1cdbd2cSJim Jagielski } 130*b1cdbd2cSJim Jagielski 131*b1cdbd2cSJim Jagielski /* 132*b1cdbd2cSJim Jagielski * UI entry: File->Properties->General->Created*/ 133*b1cdbd2cSJim Jagielski @Test testGeneralAuthor()134*b1cdbd2cSJim Jagielski public void testGeneralAuthor() throws Exception { 135*b1cdbd2cSJim Jagielski String author = getUserName(); 136*b1cdbd2cSJim Jagielski XDocumentProperties xDocPro = getDocumentProperties(); 137*b1cdbd2cSJim Jagielski xDocPro.setAuthor(author); 138*b1cdbd2cSJim Jagielski 139*b1cdbd2cSJim Jagielski app.saveDocument(m_xSDComponent, m_filePath); 140*b1cdbd2cSJim Jagielski app.closeDocument(m_xSDComponent); 141*b1cdbd2cSJim Jagielski m_xSDComponent = app.loadDocument(m_filePath); 142*b1cdbd2cSJim Jagielski XDocumentProperties xDocPro2 = getDocumentProperties(); 143*b1cdbd2cSJim Jagielski assertEquals("Author should be "+ author, author, xDocPro2.getAuthor()); 144*b1cdbd2cSJim Jagielski } 145*b1cdbd2cSJim Jagielski DateTimeEquals(DateTime datetime1, DateTime datetime2)146*b1cdbd2cSJim Jagielski private boolean DateTimeEquals(DateTime datetime1, DateTime datetime2){ 147*b1cdbd2cSJim Jagielski 148*b1cdbd2cSJim Jagielski if(datetime1.Seconds == datetime2.Seconds && 149*b1cdbd2cSJim Jagielski datetime1.Minutes == datetime2.Minutes && 150*b1cdbd2cSJim Jagielski datetime1.Hours == datetime2.Hours && 151*b1cdbd2cSJim Jagielski datetime1.Day == datetime2.Day && 152*b1cdbd2cSJim Jagielski datetime1.Month == datetime2.Month && 153*b1cdbd2cSJim Jagielski datetime1.Year == datetime2.Year) 154*b1cdbd2cSJim Jagielski return true; 155*b1cdbd2cSJim Jagielski else 156*b1cdbd2cSJim Jagielski return false; 157*b1cdbd2cSJim Jagielski } 158*b1cdbd2cSJim Jagielski DateEquals(Date date1, Date date2)159*b1cdbd2cSJim Jagielski private boolean DateEquals(Date date1, Date date2){ 160*b1cdbd2cSJim Jagielski 161*b1cdbd2cSJim Jagielski if(date1.Day == date2.Day && 162*b1cdbd2cSJim Jagielski date1.Month == date2.Month && 163*b1cdbd2cSJim Jagielski date1.Year == date2.Year) 164*b1cdbd2cSJim Jagielski return true; 165*b1cdbd2cSJim Jagielski else 166*b1cdbd2cSJim Jagielski return false; 167*b1cdbd2cSJim Jagielski } 168*b1cdbd2cSJim Jagielski DurationEquals(Duration d1, Duration d2)169*b1cdbd2cSJim Jagielski private boolean DurationEquals(Duration d1, Duration d2){ 170*b1cdbd2cSJim Jagielski 171*b1cdbd2cSJim Jagielski if(d1.Seconds == d2.Seconds && 172*b1cdbd2cSJim Jagielski d1.Minutes == d2.Minutes && 173*b1cdbd2cSJim Jagielski d1.Hours == d2.Hours && 174*b1cdbd2cSJim Jagielski d1.Days == d2.Days && 175*b1cdbd2cSJim Jagielski d1.Months == d2.Months && 176*b1cdbd2cSJim Jagielski d1.Years == d2.Years) 177*b1cdbd2cSJim Jagielski return true; 178*b1cdbd2cSJim Jagielski else 179*b1cdbd2cSJim Jagielski return false; 180*b1cdbd2cSJim Jagielski } 181*b1cdbd2cSJim Jagielski getCurrentDateTime()182*b1cdbd2cSJim Jagielski private DateTime getCurrentDateTime(){ 183*b1cdbd2cSJim Jagielski Calendar ca = Calendar.getInstance(); 184*b1cdbd2cSJim Jagielski DateTime currentDateTime = new DateTime(); 185*b1cdbd2cSJim Jagielski currentDateTime.Year = (short)ca.get(Calendar.YEAR); 186*b1cdbd2cSJim Jagielski currentDateTime.Month = (short)ca.get(Calendar.MONTH); 187*b1cdbd2cSJim Jagielski currentDateTime.Day = (short)ca.get(Calendar.DATE); 188*b1cdbd2cSJim Jagielski currentDateTime.Minutes = (short)ca.get(Calendar.MINUTE); 189*b1cdbd2cSJim Jagielski currentDateTime.Hours = (short)ca.get(Calendar.HOUR); 190*b1cdbd2cSJim Jagielski currentDateTime.Seconds = (short)ca.get(Calendar.SECOND); 191*b1cdbd2cSJim Jagielski 192*b1cdbd2cSJim Jagielski return currentDateTime; 193*b1cdbd2cSJim Jagielski } 194*b1cdbd2cSJim Jagielski getCurrentDate()195*b1cdbd2cSJim Jagielski private Date getCurrentDate(){ 196*b1cdbd2cSJim Jagielski Calendar ca = Calendar.getInstance(); 197*b1cdbd2cSJim Jagielski Date currentDate = new Date(); 198*b1cdbd2cSJim Jagielski currentDate.Year = (short)ca.get(Calendar.YEAR); 199*b1cdbd2cSJim Jagielski currentDate.Month = (short)ca.get(Calendar.MONTH); 200*b1cdbd2cSJim Jagielski currentDate.Day = (short)ca.get(Calendar.DATE); 201*b1cdbd2cSJim Jagielski 202*b1cdbd2cSJim Jagielski return currentDate; 203*b1cdbd2cSJim Jagielski } 204*b1cdbd2cSJim Jagielski 205*b1cdbd2cSJim Jagielski /* 206*b1cdbd2cSJim Jagielski * UI entry: File->Properties->General->Created*/ 207*b1cdbd2cSJim Jagielski @Test testGeneralCreationDate()208*b1cdbd2cSJim Jagielski public void testGeneralCreationDate() throws Exception { 209*b1cdbd2cSJim Jagielski DateTime creationDate = getCurrentDateTime(); 210*b1cdbd2cSJim Jagielski 211*b1cdbd2cSJim Jagielski XDocumentProperties xDocPro = getDocumentProperties(); 212*b1cdbd2cSJim Jagielski 213*b1cdbd2cSJim Jagielski xDocPro.setCreationDate(creationDate); 214*b1cdbd2cSJim Jagielski 215*b1cdbd2cSJim Jagielski app.saveDocument(m_xSDComponent, m_filePath); 216*b1cdbd2cSJim Jagielski app.closeDocument(m_xSDComponent); 217*b1cdbd2cSJim Jagielski m_xSDComponent = app.loadDocument(m_filePath); 218*b1cdbd2cSJim Jagielski XDocumentProperties xDocPro2 = getDocumentProperties(); 219*b1cdbd2cSJim Jagielski DateTime result = xDocPro2.getCreationDate(); 220*b1cdbd2cSJim Jagielski assertTrue("CreationDate should be the same as set", this.DateTimeEquals(creationDate, result)); 221*b1cdbd2cSJim Jagielski } 222*b1cdbd2cSJim Jagielski 223*b1cdbd2cSJim Jagielski /* 224*b1cdbd2cSJim Jagielski * UI entry: File->Properties->General->Modified*/ 225*b1cdbd2cSJim Jagielski @Test 226*b1cdbd2cSJim Jagielski //ModifiedBy will be set each time the file loaded. The value is the one set in Tools->options->User data->Last name testGeneralModifiedBy()227*b1cdbd2cSJim Jagielski public void testGeneralModifiedBy() throws Exception { 228*b1cdbd2cSJim Jagielski String modifiedBy = this.getUserName(); 229*b1cdbd2cSJim Jagielski XDocumentProperties xDocPro = getDocumentProperties(); 230*b1cdbd2cSJim Jagielski xDocPro.setModifiedBy(modifiedBy); 231*b1cdbd2cSJim Jagielski 232*b1cdbd2cSJim Jagielski 233*b1cdbd2cSJim Jagielski app.saveDocument(m_xSDComponent, m_filePath); 234*b1cdbd2cSJim Jagielski app.closeDocument(m_xSDComponent); 235*b1cdbd2cSJim Jagielski m_xSDComponent = app.loadDocument(m_filePath); 236*b1cdbd2cSJim Jagielski XDocumentProperties xDocPro2 = getDocumentProperties(); 237*b1cdbd2cSJim Jagielski assertEquals("The file is modified by "+ modifiedBy, modifiedBy, xDocPro2.getModifiedBy()); 238*b1cdbd2cSJim Jagielski } 239*b1cdbd2cSJim Jagielski 240*b1cdbd2cSJim Jagielski /* 241*b1cdbd2cSJim Jagielski * UI entry: File->Properties->General->Modified*/ 242*b1cdbd2cSJim Jagielski @Test testGeneralModificationDate()243*b1cdbd2cSJim Jagielski public void testGeneralModificationDate() throws Exception { 244*b1cdbd2cSJim Jagielski //modification date will be set each time the file saved, so I don't save after set. 245*b1cdbd2cSJim Jagielski DateTime modificationDate = getCurrentDateTime(); 246*b1cdbd2cSJim Jagielski 247*b1cdbd2cSJim Jagielski XDocumentProperties xDocPro = getDocumentProperties(); 248*b1cdbd2cSJim Jagielski 249*b1cdbd2cSJim Jagielski xDocPro.setModificationDate(modificationDate); 250*b1cdbd2cSJim Jagielski 251*b1cdbd2cSJim Jagielski DateTime result = xDocPro.getModificationDate(); 252*b1cdbd2cSJim Jagielski assertTrue("ModificationDate should be the same as set", this.DateTimeEquals(modificationDate, result)); 253*b1cdbd2cSJim Jagielski } 254*b1cdbd2cSJim Jagielski 255*b1cdbd2cSJim Jagielski /* 256*b1cdbd2cSJim Jagielski * UI entry: File->Properties->General->Last printed*/ 257*b1cdbd2cSJim Jagielski @Test testGeneralPrintBy()258*b1cdbd2cSJim Jagielski public void testGeneralPrintBy() throws Exception { 259*b1cdbd2cSJim Jagielski String printBy = "PrintBy"; 260*b1cdbd2cSJim Jagielski XDocumentProperties xDocPro = getDocumentProperties(); 261*b1cdbd2cSJim Jagielski 262*b1cdbd2cSJim Jagielski xDocPro.setPrintedBy(printBy); 263*b1cdbd2cSJim Jagielski 264*b1cdbd2cSJim Jagielski app.saveDocument(m_xSDComponent, m_filePath); 265*b1cdbd2cSJim Jagielski app.closeDocument(m_xSDComponent); 266*b1cdbd2cSJim Jagielski m_xSDComponent = app.loadDocument(m_filePath); 267*b1cdbd2cSJim Jagielski XDocumentProperties xDocPro2 = getDocumentProperties(); 268*b1cdbd2cSJim Jagielski assertEquals("This document is printed by "+ printBy, printBy, xDocPro2.getPrintedBy()); 269*b1cdbd2cSJim Jagielski } 270*b1cdbd2cSJim Jagielski 271*b1cdbd2cSJim Jagielski /* 272*b1cdbd2cSJim Jagielski * UI entry: File->Properties->General->Last printed*/ 273*b1cdbd2cSJim Jagielski @Test testGeneralPrintDate()274*b1cdbd2cSJim Jagielski public void testGeneralPrintDate() throws Exception { 275*b1cdbd2cSJim Jagielski DateTime printDate = getCurrentDateTime(); 276*b1cdbd2cSJim Jagielski 277*b1cdbd2cSJim Jagielski XDocumentProperties xDocPro = getDocumentProperties(); 278*b1cdbd2cSJim Jagielski 279*b1cdbd2cSJim Jagielski xDocPro.setPrintDate(printDate); 280*b1cdbd2cSJim Jagielski 281*b1cdbd2cSJim Jagielski app.saveDocument(m_xSDComponent, m_filePath); 282*b1cdbd2cSJim Jagielski app.closeDocument(m_xSDComponent); 283*b1cdbd2cSJim Jagielski m_xSDComponent = app.loadDocument(m_filePath); 284*b1cdbd2cSJim Jagielski XDocumentProperties xDocPro2 = getDocumentProperties(); 285*b1cdbd2cSJim Jagielski DateTime result = xDocPro2.getPrintDate(); 286*b1cdbd2cSJim Jagielski assertTrue("PrintDate should be the same as set", this.DateTimeEquals(printDate, result)); 287*b1cdbd2cSJim Jagielski } 288*b1cdbd2cSJim Jagielski 289*b1cdbd2cSJim Jagielski /* 290*b1cdbd2cSJim Jagielski * UI entry: File->Properties->General->Total editing time*/ 291*b1cdbd2cSJim Jagielski @Test testGeneralEditingDuration()292*b1cdbd2cSJim Jagielski public void testGeneralEditingDuration() throws Exception { 293*b1cdbd2cSJim Jagielski int editingDuration = 60; 294*b1cdbd2cSJim Jagielski 295*b1cdbd2cSJim Jagielski XDocumentProperties xDocPro = getDocumentProperties(); 296*b1cdbd2cSJim Jagielski 297*b1cdbd2cSJim Jagielski xDocPro.setEditingDuration(editingDuration); 298*b1cdbd2cSJim Jagielski 299*b1cdbd2cSJim Jagielski app.saveDocument(m_xSDComponent, m_filePath); 300*b1cdbd2cSJim Jagielski app.closeDocument(m_xSDComponent); 301*b1cdbd2cSJim Jagielski m_xSDComponent = app.loadDocument(m_filePath); 302*b1cdbd2cSJim Jagielski XDocumentProperties xDocPro2 = getDocumentProperties(); 303*b1cdbd2cSJim Jagielski assertEquals("Totally editing time should be "+ editingDuration, editingDuration, xDocPro2.getEditingDuration()); 304*b1cdbd2cSJim Jagielski } 305*b1cdbd2cSJim Jagielski 306*b1cdbd2cSJim Jagielski /* 307*b1cdbd2cSJim Jagielski * UI entry: File->Properties->General->Revision number*/ 308*b1cdbd2cSJim Jagielski @Test testGeneralRevisionNumber()309*b1cdbd2cSJim Jagielski public void testGeneralRevisionNumber() throws Exception { 310*b1cdbd2cSJim Jagielski short revisionNumber = 10; 311*b1cdbd2cSJim Jagielski 312*b1cdbd2cSJim Jagielski XDocumentProperties xDocPro = getDocumentProperties(); 313*b1cdbd2cSJim Jagielski 314*b1cdbd2cSJim Jagielski xDocPro.setEditingCycles(revisionNumber); 315*b1cdbd2cSJim Jagielski 316*b1cdbd2cSJim Jagielski app.saveDocument(m_xSDComponent, m_filePath); 317*b1cdbd2cSJim Jagielski app.closeDocument(m_xSDComponent); 318*b1cdbd2cSJim Jagielski m_xSDComponent = app.loadDocument(m_filePath); 319*b1cdbd2cSJim Jagielski XDocumentProperties xDocPro2 = getDocumentProperties(); 320*b1cdbd2cSJim Jagielski assertEquals("Revision number should be "+ revisionNumber+1, revisionNumber+1, xDocPro2.getEditingCycles()); 321*b1cdbd2cSJim Jagielski } 322*b1cdbd2cSJim Jagielski 323*b1cdbd2cSJim Jagielski /* 324*b1cdbd2cSJim Jagielski * UI entry: File->Properties->General->template*/ 325*b1cdbd2cSJim Jagielski @Test testGeneralTemplateName()326*b1cdbd2cSJim Jagielski public void testGeneralTemplateName() throws Exception { 327*b1cdbd2cSJim Jagielski String templateName = "I'm a template"; 328*b1cdbd2cSJim Jagielski 329*b1cdbd2cSJim Jagielski XDocumentProperties xDocPro = getDocumentProperties(); 330*b1cdbd2cSJim Jagielski 331*b1cdbd2cSJim Jagielski xDocPro.setTemplateName(templateName); 332*b1cdbd2cSJim Jagielski 333*b1cdbd2cSJim Jagielski app.saveDocument(m_xSDComponent, m_filePath); 334*b1cdbd2cSJim Jagielski app.closeDocument(m_xSDComponent); 335*b1cdbd2cSJim Jagielski m_xSDComponent = app.loadDocument(m_filePath); 336*b1cdbd2cSJim Jagielski XDocumentProperties xDocPro2 = getDocumentProperties(); 337*b1cdbd2cSJim Jagielski assertEquals("Template name should be "+ templateName, templateName, xDocPro2.getTemplateName()); 338*b1cdbd2cSJim Jagielski } 339*b1cdbd2cSJim Jagielski 340*b1cdbd2cSJim Jagielski /* 341*b1cdbd2cSJim Jagielski * UI entry: File->Properties->General->Reset*/ 342*b1cdbd2cSJim Jagielski @Test testGeneralReset()343*b1cdbd2cSJim Jagielski public void testGeneralReset() throws Exception { 344*b1cdbd2cSJim Jagielski String author = "ResetAuthor"; 345*b1cdbd2cSJim Jagielski XDocumentProperties xDocPro = getDocumentProperties(); 346*b1cdbd2cSJim Jagielski xDocPro.resetUserData(author); 347*b1cdbd2cSJim Jagielski 348*b1cdbd2cSJim Jagielski assertEquals("Author should be "+ author, author, xDocPro.getAuthor()); 349*b1cdbd2cSJim Jagielski assertEquals("Modified should be empty", "", xDocPro.getModifiedBy()); 350*b1cdbd2cSJim Jagielski assertTrue("ModificationDate should be empty", 351*b1cdbd2cSJim Jagielski DateTimeEquals(new DateTime(), xDocPro.getModificationDate())); 352*b1cdbd2cSJim Jagielski assertEquals("PrintBy should be empty", "", xDocPro.getPrintedBy()); 353*b1cdbd2cSJim Jagielski assertTrue("PrintDate should be empty", 354*b1cdbd2cSJim Jagielski DateTimeEquals(new DateTime(), xDocPro.getPrintDate())); 355*b1cdbd2cSJim Jagielski assertEquals("Totally editing time should be empty", 0, xDocPro.getEditingDuration()); 356*b1cdbd2cSJim Jagielski assertEquals("Revision number should be empty", 1, xDocPro.getEditingCycles()); 357*b1cdbd2cSJim Jagielski } 358*b1cdbd2cSJim Jagielski 359*b1cdbd2cSJim Jagielski // UI entry: File->Properties->General->Apply user data 360*b1cdbd2cSJim Jagielski 361*b1cdbd2cSJim Jagielski // UI entry: File->Properties->General->digital signature 362*b1cdbd2cSJim Jagielski 363*b1cdbd2cSJim Jagielski //Description begin 364*b1cdbd2cSJim Jagielski /* 365*b1cdbd2cSJim Jagielski * UI entry: File->Properties->Description->Title*/ 366*b1cdbd2cSJim Jagielski @Test testDescriptionTitle()367*b1cdbd2cSJim Jagielski public void testDescriptionTitle() throws Exception{ 368*b1cdbd2cSJim Jagielski String title = "titleForTest"; 369*b1cdbd2cSJim Jagielski XDocumentProperties xDocPro = getDocumentProperties(); 370*b1cdbd2cSJim Jagielski xDocPro.setTitle(title); 371*b1cdbd2cSJim Jagielski 372*b1cdbd2cSJim Jagielski app.saveDocument(m_xSDComponent, m_filePath); 373*b1cdbd2cSJim Jagielski app.closeDocument(m_xSDComponent); 374*b1cdbd2cSJim Jagielski m_xSDComponent = app.loadDocument(m_filePath); 375*b1cdbd2cSJim Jagielski XDocumentProperties xDocPro2 = getDocumentProperties(); 376*b1cdbd2cSJim Jagielski assertEquals("Title should be "+ title, title, xDocPro2.getTitle()); 377*b1cdbd2cSJim Jagielski } 378*b1cdbd2cSJim Jagielski 379*b1cdbd2cSJim Jagielski /* 380*b1cdbd2cSJim Jagielski * UI entry: File->Properties->Description->Subject*/ 381*b1cdbd2cSJim Jagielski @Test testDescriptionSubject()382*b1cdbd2cSJim Jagielski public void testDescriptionSubject() throws Exception{ 383*b1cdbd2cSJim Jagielski String subject = "subjectForTest"; 384*b1cdbd2cSJim Jagielski XDocumentProperties xDocPro = getDocumentProperties(); 385*b1cdbd2cSJim Jagielski xDocPro.setSubject(subject); 386*b1cdbd2cSJim Jagielski 387*b1cdbd2cSJim Jagielski app.saveDocument(m_xSDComponent, m_filePath); 388*b1cdbd2cSJim Jagielski app.closeDocument(m_xSDComponent); 389*b1cdbd2cSJim Jagielski m_xSDComponent = app.loadDocument(m_filePath); 390*b1cdbd2cSJim Jagielski XDocumentProperties xDocPro2 = getDocumentProperties(); 391*b1cdbd2cSJim Jagielski assertEquals("Subject should be "+ subject, subject, xDocPro2.getSubject()); 392*b1cdbd2cSJim Jagielski } 393*b1cdbd2cSJim Jagielski 394*b1cdbd2cSJim Jagielski /* 395*b1cdbd2cSJim Jagielski * UI entry: File->Properties->Description->Keywords*/ 396*b1cdbd2cSJim Jagielski @Test testDescriptionKeywords()397*b1cdbd2cSJim Jagielski public void testDescriptionKeywords() throws Exception{ 398*b1cdbd2cSJim Jagielski String[] keywords = {"keyword1", "keyword2"}; 399*b1cdbd2cSJim Jagielski XDocumentProperties xDocPro = getDocumentProperties(); 400*b1cdbd2cSJim Jagielski xDocPro.setKeywords(keywords); 401*b1cdbd2cSJim Jagielski 402*b1cdbd2cSJim Jagielski app.saveDocument(m_xSDComponent, m_filePath); 403*b1cdbd2cSJim Jagielski app.closeDocument(m_xSDComponent); 404*b1cdbd2cSJim Jagielski 405*b1cdbd2cSJim Jagielski m_xSDComponent = app.loadDocument(m_filePath); 406*b1cdbd2cSJim Jagielski XDocumentProperties xDocPro2 = getDocumentProperties(); 407*b1cdbd2cSJim Jagielski String[] keywordsResult = xDocPro2.getKeywords(); 408*b1cdbd2cSJim Jagielski assertEquals("There should be 2 Keywords", 2, keywordsResult.length); 409*b1cdbd2cSJim Jagielski for(int i=0;i<keywordsResult.length;i++) 410*b1cdbd2cSJim Jagielski { 411*b1cdbd2cSJim Jagielski String num = Integer.toString(i+1); 412*b1cdbd2cSJim Jagielski assertEquals("The keywords should be keyword"+num, "keyword"+num, keywordsResult[i]); 413*b1cdbd2cSJim Jagielski } 414*b1cdbd2cSJim Jagielski } 415*b1cdbd2cSJim Jagielski 416*b1cdbd2cSJim Jagielski /* 417*b1cdbd2cSJim Jagielski * UI entry: File->Properties->Description->Comments*/ 418*b1cdbd2cSJim Jagielski @Test testDescriptionComments()419*b1cdbd2cSJim Jagielski public void testDescriptionComments() throws Exception{ 420*b1cdbd2cSJim Jagielski String comments = "This is the comment."; 421*b1cdbd2cSJim Jagielski XDocumentProperties xDocPro = getDocumentProperties(); 422*b1cdbd2cSJim Jagielski xDocPro.setDescription(comments); 423*b1cdbd2cSJim Jagielski 424*b1cdbd2cSJim Jagielski app.saveDocument(m_xSDComponent, m_filePath); 425*b1cdbd2cSJim Jagielski app.closeDocument(m_xSDComponent); 426*b1cdbd2cSJim Jagielski 427*b1cdbd2cSJim Jagielski m_xSDComponent = app.loadDocument(m_filePath); 428*b1cdbd2cSJim Jagielski XDocumentProperties xDocPro2 = getDocumentProperties(); 429*b1cdbd2cSJim Jagielski 430*b1cdbd2cSJim Jagielski assertEquals("Comments should be "+comments, comments, xDocPro2.getDescription()); 431*b1cdbd2cSJim Jagielski } 432*b1cdbd2cSJim Jagielski //Description end 433*b1cdbd2cSJim Jagielski 434*b1cdbd2cSJim Jagielski //custom properties begin 435*b1cdbd2cSJim Jagielski //UI entry: File->Properties->Custom properties addCustomPro(String propertyName, Object value)436*b1cdbd2cSJim Jagielski private void addCustomPro(String propertyName, Object value) throws PropertyExistException, IllegalTypeException, IllegalArgumentException{ 437*b1cdbd2cSJim Jagielski XDocumentProperties xDocPro = getDocumentProperties(); 438*b1cdbd2cSJim Jagielski XPropertyContainer proContainer = xDocPro.getUserDefinedProperties(); 439*b1cdbd2cSJim Jagielski proContainer.addProperty(propertyName, PropertyAttribute.REMOVEABLE, value); 440*b1cdbd2cSJim Jagielski } 441*b1cdbd2cSJim Jagielski getCustomPro(String propertyName)442*b1cdbd2cSJim Jagielski private Object getCustomPro(String propertyName) throws UnknownPropertyException, WrappedTargetException{ 443*b1cdbd2cSJim Jagielski XDocumentProperties xDocPro = getDocumentProperties(); 444*b1cdbd2cSJim Jagielski XPropertyContainer proContainer = xDocPro.getUserDefinedProperties(); 445*b1cdbd2cSJim Jagielski XPropertySet xProSet = (XPropertySet)UnoRuntime.queryInterface( 446*b1cdbd2cSJim Jagielski XPropertySet.class, proContainer); 447*b1cdbd2cSJim Jagielski 448*b1cdbd2cSJim Jagielski return xProSet.getPropertyValue(propertyName); 449*b1cdbd2cSJim Jagielski } 450*b1cdbd2cSJim Jagielski 451*b1cdbd2cSJim Jagielski @Test testCustomAddPro_Text()452*b1cdbd2cSJim Jagielski public void testCustomAddPro_Text() throws Exception{ 453*b1cdbd2cSJim Jagielski String addedProName = "TextPro"; 454*b1cdbd2cSJim Jagielski String addedProDefaultValue = "testUser"; 455*b1cdbd2cSJim Jagielski 456*b1cdbd2cSJim Jagielski addCustomPro(addedProName, addedProDefaultValue); 457*b1cdbd2cSJim Jagielski 458*b1cdbd2cSJim Jagielski app.saveDocument(m_xSDComponent, m_filePath); 459*b1cdbd2cSJim Jagielski app.closeDocument(m_xSDComponent); 460*b1cdbd2cSJim Jagielski 461*b1cdbd2cSJim Jagielski m_xSDComponent = app.loadDocument(m_filePath); 462*b1cdbd2cSJim Jagielski 463*b1cdbd2cSJim Jagielski String result = (String)getCustomPro(addedProName); 464*b1cdbd2cSJim Jagielski 465*b1cdbd2cSJim Jagielski assertTrue("added Text property \""+addedProName+"\" should exist", result != null); 466*b1cdbd2cSJim Jagielski assertEquals("value of added property should be "+addedProDefaultValue, 467*b1cdbd2cSJim Jagielski addedProDefaultValue, result); 468*b1cdbd2cSJim Jagielski } 469*b1cdbd2cSJim Jagielski 470*b1cdbd2cSJim Jagielski @Test testCustomAddPro_DateTime()471*b1cdbd2cSJim Jagielski public void testCustomAddPro_DateTime() throws Exception{ 472*b1cdbd2cSJim Jagielski String addedProName = "DateTimePro"; 473*b1cdbd2cSJim Jagielski DateTime addedProDefaultValue = getCurrentDateTime(); 474*b1cdbd2cSJim Jagielski 475*b1cdbd2cSJim Jagielski addCustomPro(addedProName, addedProDefaultValue); 476*b1cdbd2cSJim Jagielski 477*b1cdbd2cSJim Jagielski app.saveDocument(m_xSDComponent, m_filePath); 478*b1cdbd2cSJim Jagielski app.closeDocument(m_xSDComponent); 479*b1cdbd2cSJim Jagielski 480*b1cdbd2cSJim Jagielski m_xSDComponent = app.loadDocument(m_filePath); 481*b1cdbd2cSJim Jagielski 482*b1cdbd2cSJim Jagielski DateTime result = (DateTime)getCustomPro(addedProName); 483*b1cdbd2cSJim Jagielski assertTrue("added DateTime property \""+addedProName+"\" should exist", result != null); 484*b1cdbd2cSJim Jagielski assertTrue("value of added property should be the same as set", 485*b1cdbd2cSJim Jagielski this.DateTimeEquals(result, addedProDefaultValue)); 486*b1cdbd2cSJim Jagielski } 487*b1cdbd2cSJim Jagielski 488*b1cdbd2cSJim Jagielski @Test testCustomAddPro_Date()489*b1cdbd2cSJim Jagielski public void testCustomAddPro_Date() throws Exception{ 490*b1cdbd2cSJim Jagielski String addedProName = "DatePro"; 491*b1cdbd2cSJim Jagielski Date addedProDefaultValue = getCurrentDate(); 492*b1cdbd2cSJim Jagielski 493*b1cdbd2cSJim Jagielski addCustomPro(addedProName, addedProDefaultValue); 494*b1cdbd2cSJim Jagielski 495*b1cdbd2cSJim Jagielski app.saveDocument(m_xSDComponent, m_filePath); 496*b1cdbd2cSJim Jagielski app.closeDocument(m_xSDComponent); 497*b1cdbd2cSJim Jagielski 498*b1cdbd2cSJim Jagielski m_xSDComponent = app.loadDocument(m_filePath); 499*b1cdbd2cSJim Jagielski 500*b1cdbd2cSJim Jagielski Date result = (Date)getCustomPro(addedProName); 501*b1cdbd2cSJim Jagielski assertTrue("added Date property \""+addedProName+"\" should exist", result != null); 502*b1cdbd2cSJim Jagielski assertTrue("value of added property should be the same as set", 503*b1cdbd2cSJim Jagielski this.DateEquals(result, addedProDefaultValue)); 504*b1cdbd2cSJim Jagielski } 505*b1cdbd2cSJim Jagielski 506*b1cdbd2cSJim Jagielski @Test testCustomAddPro_Duration()507*b1cdbd2cSJim Jagielski public void testCustomAddPro_Duration() throws Exception{ 508*b1cdbd2cSJim Jagielski String addedProName = "DurationPro"; 509*b1cdbd2cSJim Jagielski Duration addedProDefaultValue = new Duration(); 510*b1cdbd2cSJim Jagielski addedProDefaultValue.Days = 1; 511*b1cdbd2cSJim Jagielski 512*b1cdbd2cSJim Jagielski addCustomPro(addedProName, addedProDefaultValue); 513*b1cdbd2cSJim Jagielski 514*b1cdbd2cSJim Jagielski app.saveDocument(m_xSDComponent, m_filePath); 515*b1cdbd2cSJim Jagielski app.closeDocument(m_xSDComponent); 516*b1cdbd2cSJim Jagielski 517*b1cdbd2cSJim Jagielski m_xSDComponent = app.loadDocument(m_filePath); 518*b1cdbd2cSJim Jagielski 519*b1cdbd2cSJim Jagielski Duration result = (Duration)getCustomPro(addedProName); 520*b1cdbd2cSJim Jagielski assertTrue("added Date property \""+addedProName+"\" should exist", result != null); 521*b1cdbd2cSJim Jagielski assertTrue("value of added property should the same as set", DurationEquals(addedProDefaultValue, result)); 522*b1cdbd2cSJim Jagielski } 523*b1cdbd2cSJim Jagielski 524*b1cdbd2cSJim Jagielski @Test testCustomAddPro_Number()525*b1cdbd2cSJim Jagielski public void testCustomAddPro_Number() throws Exception{ 526*b1cdbd2cSJim Jagielski String addedProName = "NumberPro"; 527*b1cdbd2cSJim Jagielski Double addedProDefaultValue = (double)10; 528*b1cdbd2cSJim Jagielski 529*b1cdbd2cSJim Jagielski addCustomPro(addedProName, addedProDefaultValue); 530*b1cdbd2cSJim Jagielski 531*b1cdbd2cSJim Jagielski app.saveDocument(m_xSDComponent, m_filePath); 532*b1cdbd2cSJim Jagielski app.closeDocument(m_xSDComponent); 533*b1cdbd2cSJim Jagielski 534*b1cdbd2cSJim Jagielski m_xSDComponent = app.loadDocument(m_filePath); 535*b1cdbd2cSJim Jagielski 536*b1cdbd2cSJim Jagielski Object oResult = getCustomPro(addedProName); 537*b1cdbd2cSJim Jagielski 538*b1cdbd2cSJim Jagielski Double result = (Double)oResult; 539*b1cdbd2cSJim Jagielski assertTrue("added Number property \""+addedProName+"\" should exist", oResult != null); 540*b1cdbd2cSJim Jagielski assertEquals("value of added property should be "+Double.toString(addedProDefaultValue), 541*b1cdbd2cSJim Jagielski addedProDefaultValue, result); 542*b1cdbd2cSJim Jagielski } 543*b1cdbd2cSJim Jagielski 544*b1cdbd2cSJim Jagielski @Test testCustomAddPro_Boolean()545*b1cdbd2cSJim Jagielski public void testCustomAddPro_Boolean() throws Exception{ 546*b1cdbd2cSJim Jagielski String addedProName = "BooleanPro"; 547*b1cdbd2cSJim Jagielski Boolean addedProDefaultValue = true; 548*b1cdbd2cSJim Jagielski 549*b1cdbd2cSJim Jagielski addCustomPro(addedProName, addedProDefaultValue); 550*b1cdbd2cSJim Jagielski 551*b1cdbd2cSJim Jagielski app.saveDocument(m_xSDComponent, m_filePath); 552*b1cdbd2cSJim Jagielski app.closeDocument(m_xSDComponent); 553*b1cdbd2cSJim Jagielski 554*b1cdbd2cSJim Jagielski m_xSDComponent = app.loadDocument(m_filePath); 555*b1cdbd2cSJim Jagielski 556*b1cdbd2cSJim Jagielski Object oResult = getCustomPro(addedProName); 557*b1cdbd2cSJim Jagielski 558*b1cdbd2cSJim Jagielski boolean result = (Boolean)oResult; 559*b1cdbd2cSJim Jagielski assertTrue("added Number property \""+addedProName+"\" should exist", oResult != null); 560*b1cdbd2cSJim Jagielski assertEquals("value of added property should be "+Boolean.toString(addedProDefaultValue), 561*b1cdbd2cSJim Jagielski addedProDefaultValue, result); 562*b1cdbd2cSJim Jagielski } 563*b1cdbd2cSJim Jagielski 564*b1cdbd2cSJim Jagielski @Test testCustomRemovePro()565*b1cdbd2cSJim Jagielski public void testCustomRemovePro() throws Exception{ 566*b1cdbd2cSJim Jagielski addCustomPro("testPro", "value"); 567*b1cdbd2cSJim Jagielski XDocumentProperties xDocPro = getDocumentProperties(); 568*b1cdbd2cSJim Jagielski XPropertyContainer proContainer = xDocPro.getUserDefinedProperties(); 569*b1cdbd2cSJim Jagielski XPropertySet xProSet = (XPropertySet)UnoRuntime.queryInterface( 570*b1cdbd2cSJim Jagielski XPropertySet.class, proContainer); 571*b1cdbd2cSJim Jagielski XPropertySetInfo xproSetInfo = xProSet.getPropertySetInfo(); 572*b1cdbd2cSJim Jagielski Property[] pros = xproSetInfo.getProperties(); 573*b1cdbd2cSJim Jagielski 574*b1cdbd2cSJim Jagielski for(int i=0; i< pros.length;i++) 575*b1cdbd2cSJim Jagielski { 576*b1cdbd2cSJim Jagielski proContainer.removeProperty(pros[i].Name); 577*b1cdbd2cSJim Jagielski } 578*b1cdbd2cSJim Jagielski 579*b1cdbd2cSJim Jagielski app.saveDocument(m_xSDComponent, m_filePath); 580*b1cdbd2cSJim Jagielski app.closeDocument(m_xSDComponent); 581*b1cdbd2cSJim Jagielski 582*b1cdbd2cSJim Jagielski m_xSDComponent = app.loadDocument(m_filePath); 583*b1cdbd2cSJim Jagielski 584*b1cdbd2cSJim Jagielski XDocumentProperties xDocPro2 = getDocumentProperties(); 585*b1cdbd2cSJim Jagielski XPropertyContainer proContainer2 = xDocPro2.getUserDefinedProperties(); 586*b1cdbd2cSJim Jagielski XPropertySet xProSet2 = (XPropertySet)UnoRuntime.queryInterface( 587*b1cdbd2cSJim Jagielski XPropertySet.class, proContainer2); 588*b1cdbd2cSJim Jagielski XPropertySetInfo xproSetInfo2 = xProSet2.getPropertySetInfo(); 589*b1cdbd2cSJim Jagielski Property[] pros2 = xproSetInfo2.getProperties(); 590*b1cdbd2cSJim Jagielski 591*b1cdbd2cSJim Jagielski assertEquals("number of custom property should be zero ", 592*b1cdbd2cSJim Jagielski 0, pros2.length); 593*b1cdbd2cSJim Jagielski } 594*b1cdbd2cSJim Jagielski //custom properties end 595*b1cdbd2cSJim Jagielski 596*b1cdbd2cSJim Jagielski //Internet begin setAutoLoad(String URL, int secs)597*b1cdbd2cSJim Jagielski private void setAutoLoad(String URL, int secs) throws IllegalArgumentException 598*b1cdbd2cSJim Jagielski { 599*b1cdbd2cSJim Jagielski XDocumentProperties xDocPro = getDocumentProperties(); 600*b1cdbd2cSJim Jagielski xDocPro.setAutoloadURL(URL); 601*b1cdbd2cSJim Jagielski xDocPro.setAutoloadSecs(secs); 602*b1cdbd2cSJim Jagielski xDocPro.setDefaultTarget("_blank"); 603*b1cdbd2cSJim Jagielski } 604*b1cdbd2cSJim Jagielski 605*b1cdbd2cSJim Jagielski @Test testNoRefresh()606*b1cdbd2cSJim Jagielski public void testNoRefresh() throws Exception{ 607*b1cdbd2cSJim Jagielski String autoLoadURL = ""; 608*b1cdbd2cSJim Jagielski int autoLoadSecs = 0; 609*b1cdbd2cSJim Jagielski setAutoLoad(autoLoadURL, autoLoadSecs); 610*b1cdbd2cSJim Jagielski 611*b1cdbd2cSJim Jagielski app.saveDocument(m_xSDComponent, m_filePath); 612*b1cdbd2cSJim Jagielski app.closeDocument(m_xSDComponent); 613*b1cdbd2cSJim Jagielski 614*b1cdbd2cSJim Jagielski m_xSDComponent = app.loadDocument(m_filePath); 615*b1cdbd2cSJim Jagielski XDocumentProperties xDocPro2 = getDocumentProperties(); 616*b1cdbd2cSJim Jagielski 617*b1cdbd2cSJim Jagielski assertEquals("AutoLoadURL should be empty", autoLoadURL, xDocPro2.getAutoloadURL()); 618*b1cdbd2cSJim Jagielski assertEquals("AutoLoadSecs should be 0", autoLoadSecs, xDocPro2.getAutoloadSecs()); 619*b1cdbd2cSJim Jagielski } 620*b1cdbd2cSJim Jagielski 621*b1cdbd2cSJim Jagielski @Test testRefreshEvery60Secs()622*b1cdbd2cSJim Jagielski public void testRefreshEvery60Secs() throws Exception{ 623*b1cdbd2cSJim Jagielski String autoLoadURL = ""; 624*b1cdbd2cSJim Jagielski int autoLoadSecs = 60; 625*b1cdbd2cSJim Jagielski setAutoLoad(autoLoadURL, autoLoadSecs); 626*b1cdbd2cSJim Jagielski 627*b1cdbd2cSJim Jagielski app.saveDocument(m_xSDComponent, m_filePath); 628*b1cdbd2cSJim Jagielski app.closeDocument(m_xSDComponent); 629*b1cdbd2cSJim Jagielski 630*b1cdbd2cSJim Jagielski m_xSDComponent = app.loadDocument(m_filePath); 631*b1cdbd2cSJim Jagielski XDocumentProperties xDocPro2 = getDocumentProperties(); 632*b1cdbd2cSJim Jagielski 633*b1cdbd2cSJim Jagielski assertEquals("AutoLoadURL should be empty", autoLoadURL, xDocPro2.getAutoloadURL()); 634*b1cdbd2cSJim Jagielski assertEquals("AutoLoadSecs should be "+Integer.toString(autoLoadSecs), autoLoadSecs, xDocPro2.getAutoloadSecs()); 635*b1cdbd2cSJim Jagielski } 636*b1cdbd2cSJim Jagielski 637*b1cdbd2cSJim Jagielski @Test testRedirect()638*b1cdbd2cSJim Jagielski public void testRedirect() throws Exception{ 639*b1cdbd2cSJim Jagielski String autoLoadURL = "http://www.openoffice.com/"; 640*b1cdbd2cSJim Jagielski int autoLoadSecs = 5; 641*b1cdbd2cSJim Jagielski setAutoLoad(autoLoadURL, autoLoadSecs); 642*b1cdbd2cSJim Jagielski 643*b1cdbd2cSJim Jagielski app.saveDocument(m_xSDComponent, m_filePath); 644*b1cdbd2cSJim Jagielski app.closeDocument(m_xSDComponent); 645*b1cdbd2cSJim Jagielski 646*b1cdbd2cSJim Jagielski m_xSDComponent = app.loadDocument(m_filePath); 647*b1cdbd2cSJim Jagielski XDocumentProperties xDocPro2 = getDocumentProperties(); 648*b1cdbd2cSJim Jagielski 649*b1cdbd2cSJim Jagielski assertEquals("AutoLoadURL should be empty", autoLoadURL, xDocPro2.getAutoloadURL()); 650*b1cdbd2cSJim Jagielski assertEquals("AutoLoadSecs should be "+Integer.toString(autoLoadSecs), autoLoadSecs, xDocPro2.getAutoloadSecs()); 651*b1cdbd2cSJim Jagielski } 652*b1cdbd2cSJim Jagielski //Internet end 653*b1cdbd2cSJim Jagielski } 654