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