| /************************************************************** |
| * |
| * Licensed to the Apache Software Foundation (ASF) under one |
| * or more contributor license agreements. See the NOTICE file |
| * distributed with this work for additional information |
| * regarding copyright ownership. The ASF licenses this file |
| * to you under the Apache License, Version 2.0 (the |
| * "License"); you may not use this file except in compliance |
| * with the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, |
| * software distributed under the License is distributed on an |
| * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| * KIND, either express or implied. See the License for the |
| * specific language governing permissions and limitations |
| * under the License. |
| * |
| *************************************************************/ |
| /** |
| * |
| */ |
| package fvt.uno.sd.file; |
| import static org.junit.Assert.*; |
| |
| import org.junit.After; |
| import org.junit.AfterClass; |
| import org.junit.Before; |
| import org.junit.BeforeClass; |
| import org.junit.Test; |
| import org.openoffice.test.OpenOffice; |
| import org.openoffice.test.uno.UnoApp; |
| import org.openoffice.test.common.FileUtil; |
| import org.openoffice.test.common.Testspace; |
| |
| import com.sun.star.beans.IllegalTypeException; |
| import com.sun.star.beans.Property; |
| import com.sun.star.beans.PropertyAttribute; |
| import com.sun.star.beans.PropertyExistException; |
| import com.sun.star.beans.PropertyValue; |
| import com.sun.star.beans.UnknownPropertyException; |
| import com.sun.star.beans.XPropertyContainer; |
| import com.sun.star.beans.XPropertySet; |
| import com.sun.star.beans.XPropertySetInfo; |
| import com.sun.star.container.XNameAccess; |
| import com.sun.star.document.XDocumentProperties; |
| import com.sun.star.document.XDocumentPropertiesSupplier; |
| import java.util.Calendar; |
| import com.sun.star.util.DateTime; |
| import com.sun.star.util.Date; |
| import com.sun.star.util.Duration; |
| import com.sun.star.lang.IllegalArgumentException; |
| import com.sun.star.lang.WrappedTargetException; |
| import com.sun.star.lang.XComponent; |
| import com.sun.star.lang.XMultiServiceFactory; |
| import com.sun.star.uno.UnoRuntime; |
| |
| /** |
| * @author LouQL |
| * |
| */ |
| public class CheckFileProperties { |
| |
| private static UnoApp app; |
| |
| private XComponent m_xSDComponent = null; |
| private static String m_filePath = null; |
| |
| @Before |
| public void setUpDocument() throws Exception { |
| if (FileUtil.fileExists(m_filePath)) {//load |
| m_xSDComponent = app.loadDocument(m_filePath); |
| } else {//new |
| m_xSDComponent = (XComponent) UnoRuntime.queryInterface( |
| XComponent.class, app.newDocument("simpress")); |
| } |
| } |
| |
| private String getUserName() throws com.sun.star.uno.Exception |
| { |
| Object configurationProvider = app.getServiceFactory(). |
| createInstance("com.sun.star.configuration.ConfigurationProvider"); |
| |
| XMultiServiceFactory msFac = (XMultiServiceFactory)UnoRuntime.queryInterface( |
| XMultiServiceFactory.class, configurationProvider); |
| |
| PropertyValue[] propValue = new PropertyValue[1]; |
| propValue[0] = new PropertyValue(); |
| propValue[0].Name = "nodepath"; |
| propValue[0].Value = "/org.openoffice.UserProfile/Data"; |
| |
| Object configurationAccess = msFac.createInstanceWithArguments( |
| "com.sun.star.configuration.ConfigurationAccess", propValue); |
| XNameAccess nameAcc = (XNameAccess)UnoRuntime.queryInterface(XNameAccess.class, configurationAccess); |
| String givenname = (String)nameAcc.getByName("givenname"); |
| String sn = (String)nameAcc.getByName("sn"); |
| String name = null; |
| if(givenname.length() == 0) name = sn; |
| else name = givenname+" "+sn; |
| |
| return name; |
| } |
| |
| private XDocumentProperties getDocumentProperties(){ |
| XDocumentPropertiesSupplier xDocumentProSupplier = (XDocumentPropertiesSupplier)UnoRuntime.queryInterface( |
| XDocumentPropertiesSupplier.class, this.m_xSDComponent); |
| return xDocumentProSupplier.getDocumentProperties(); |
| } |
| |
| @After |
| public void tearDownDocument() { |
| app.closeDocument(m_xSDComponent); |
| m_filePath = Testspace.getPath("temp/CheckFileProperties.odp"); |
| FileUtil.deleteFile(m_filePath); |
| |
| } |
| |
| @BeforeClass |
| public static void setUpConnection() throws Exception { |
| OpenOffice openOffice = UnoApp.getDefaultOpenOffice(); |
| // #128398# |
| openOffice.addRegistryModifications( |
| " <item oor:path=\"/org.openoffice.Office.Common/Security/Scripting\">\n" + |
| " <prop oor:name=\"RemovePersonalInfoOnSaving\" oor:op=\"fuse\">\n" + |
| " <value>false</value>\n" + |
| " </prop>\n" + |
| " </item>"); |
| app = new UnoApp(openOffice); |
| app.start(); |
| m_filePath = Testspace.getPath("temp/CheckFileProperties.odp"); |
| FileUtil.deleteFile(m_filePath); |
| } |
| |
| @AfterClass |
| public static void tearDownConnection() throws InterruptedException, |
| Exception { |
| app.close(); |
| } |
| |
| /* |
| * UI entry: File->Properties->General->Created*/ |
| @Test |
| public void testGeneralAuthor() throws Exception { |
| String author = getUserName(); |
| XDocumentProperties xDocPro = getDocumentProperties(); |
| xDocPro.setAuthor(author); |
| |
| app.saveDocument(m_xSDComponent, m_filePath); |
| app.closeDocument(m_xSDComponent); |
| m_xSDComponent = app.loadDocument(m_filePath); |
| XDocumentProperties xDocPro2 = getDocumentProperties(); |
| assertEquals("Author should be "+ author, author, xDocPro2.getAuthor()); |
| } |
| |
| private boolean DateTimeEquals(DateTime datetime1, DateTime datetime2){ |
| |
| if(datetime1.Seconds == datetime2.Seconds && |
| datetime1.Minutes == datetime2.Minutes && |
| datetime1.Hours == datetime2.Hours && |
| datetime1.Day == datetime2.Day && |
| datetime1.Month == datetime2.Month && |
| datetime1.Year == datetime2.Year) |
| return true; |
| else |
| return false; |
| } |
| |
| private boolean DateEquals(Date date1, Date date2){ |
| |
| if(date1.Day == date2.Day && |
| date1.Month == date2.Month && |
| date1.Year == date2.Year) |
| return true; |
| else |
| return false; |
| } |
| |
| private boolean DurationEquals(Duration d1, Duration d2){ |
| |
| if(d1.Seconds == d2.Seconds && |
| d1.Minutes == d2.Minutes && |
| d1.Hours == d2.Hours && |
| d1.Days == d2.Days && |
| d1.Months == d2.Months && |
| d1.Years == d2.Years) |
| return true; |
| else |
| return false; |
| } |
| |
| private DateTime getCurrentDateTime(){ |
| Calendar ca = Calendar.getInstance(); |
| DateTime currentDateTime = new DateTime(); |
| currentDateTime.Year = (short)ca.get(Calendar.YEAR); |
| // java.util.Calendar's months start at 0=January. |
| currentDateTime.Month = (short)(ca.get(Calendar.MONTH) + 1); |
| currentDateTime.Day = (short)ca.get(Calendar.DATE); |
| currentDateTime.Minutes = (short)ca.get(Calendar.MINUTE); |
| currentDateTime.Hours = (short)ca.get(Calendar.HOUR_OF_DAY); |
| currentDateTime.Seconds = (short)ca.get(Calendar.SECOND); |
| |
| return currentDateTime; |
| } |
| |
| private Date getCurrentDate(){ |
| Calendar ca = Calendar.getInstance(); |
| Date currentDate = new Date(); |
| currentDate.Year = (short)ca.get(Calendar.YEAR); |
| // java.util.Calendar's months start at 0=January. |
| currentDate.Month = (short)(ca.get(Calendar.MONTH) + 1); |
| currentDate.Day = (short)ca.get(Calendar.DATE); |
| |
| return currentDate; |
| } |
| |
| /* |
| * UI entry: File->Properties->General->Created*/ |
| @Test |
| public void testGeneralCreationDate() throws Exception { |
| DateTime creationDate = getCurrentDateTime(); |
| |
| XDocumentProperties xDocPro = getDocumentProperties(); |
| |
| xDocPro.setCreationDate(creationDate); |
| |
| app.saveDocument(m_xSDComponent, m_filePath); |
| app.closeDocument(m_xSDComponent); |
| m_xSDComponent = app.loadDocument(m_filePath); |
| XDocumentProperties xDocPro2 = getDocumentProperties(); |
| DateTime result = xDocPro2.getCreationDate(); |
| assertTrue("CreationDate should be the same as set", this.DateTimeEquals(creationDate, result)); |
| } |
| |
| /* |
| * UI entry: File->Properties->General->Modified*/ |
| @Test |
| //ModifiedBy will be set each time the file loaded. The value is the one set in Tools->options->User data->Last name |
| public void testGeneralModifiedBy() throws Exception { |
| String modifiedBy = this.getUserName(); |
| XDocumentProperties xDocPro = getDocumentProperties(); |
| xDocPro.setModifiedBy(modifiedBy); |
| |
| |
| app.saveDocument(m_xSDComponent, m_filePath); |
| app.closeDocument(m_xSDComponent); |
| m_xSDComponent = app.loadDocument(m_filePath); |
| XDocumentProperties xDocPro2 = getDocumentProperties(); |
| assertEquals("The file is modified by "+ modifiedBy, modifiedBy, xDocPro2.getModifiedBy()); |
| } |
| |
| /* |
| * UI entry: File->Properties->General->Modified*/ |
| @Test |
| public void testGeneralModificationDate() throws Exception { |
| //modification date will be set each time the file saved, so I don't save after set. |
| DateTime modificationDate = getCurrentDateTime(); |
| |
| XDocumentProperties xDocPro = getDocumentProperties(); |
| |
| xDocPro.setModificationDate(modificationDate); |
| |
| DateTime result = xDocPro.getModificationDate(); |
| assertTrue("ModificationDate should be the same as set", this.DateTimeEquals(modificationDate, result)); |
| } |
| |
| /* |
| * UI entry: File->Properties->General->Last printed*/ |
| @Test |
| public void testGeneralPrintBy() throws Exception { |
| String printBy = "PrintBy"; |
| XDocumentProperties xDocPro = getDocumentProperties(); |
| |
| xDocPro.setPrintedBy(printBy); |
| |
| app.saveDocument(m_xSDComponent, m_filePath); |
| app.closeDocument(m_xSDComponent); |
| m_xSDComponent = app.loadDocument(m_filePath); |
| XDocumentProperties xDocPro2 = getDocumentProperties(); |
| assertEquals("This document is printed by "+ printBy, printBy, xDocPro2.getPrintedBy()); |
| } |
| |
| /* |
| * UI entry: File->Properties->General->Last printed*/ |
| @Test |
| public void testGeneralPrintDate() throws Exception { |
| DateTime printDate = getCurrentDateTime(); |
| |
| XDocumentProperties xDocPro = getDocumentProperties(); |
| |
| xDocPro.setPrintDate(printDate); |
| |
| app.saveDocument(m_xSDComponent, m_filePath); |
| app.closeDocument(m_xSDComponent); |
| m_xSDComponent = app.loadDocument(m_filePath); |
| XDocumentProperties xDocPro2 = getDocumentProperties(); |
| DateTime result = xDocPro2.getPrintDate(); |
| assertTrue("PrintDate should be the same as set", this.DateTimeEquals(printDate, result)); |
| } |
| |
| /* |
| * UI entry: File->Properties->General->Total editing time*/ |
| @Test |
| public void testGeneralEditingDuration() throws Exception { |
| final int editingDuration = 60; |
| final int maxEditingDuration = 70; |
| |
| XDocumentProperties xDocPro = getDocumentProperties(); |
| |
| xDocPro.setEditingDuration(editingDuration); |
| |
| app.saveDocument(m_xSDComponent, m_filePath); |
| app.closeDocument(m_xSDComponent); |
| m_xSDComponent = app.loadDocument(m_filePath); |
| XDocumentProperties xDocPro2 = getDocumentProperties(); |
| // It can take a few seconds longer to save the file, increasing it above editingDuration |
| assertTrue("Total editing time >= "+ editingDuration, Integer.compare(editingDuration, xDocPro2.getEditingDuration()) <= 0); |
| assertTrue("Total editing time <= "+ maxEditingDuration, Integer.compare(xDocPro2.getEditingDuration(), maxEditingDuration) <= 0); |
| } |
| |
| /* |
| * UI entry: File->Properties->General->Revision number*/ |
| @Test |
| public void testGeneralRevisionNumber() throws Exception { |
| short revisionNumber = 10; |
| |
| XDocumentProperties xDocPro = getDocumentProperties(); |
| |
| xDocPro.setEditingCycles(revisionNumber); |
| |
| app.saveDocument(m_xSDComponent, m_filePath); |
| app.closeDocument(m_xSDComponent); |
| m_xSDComponent = app.loadDocument(m_filePath); |
| XDocumentProperties xDocPro2 = getDocumentProperties(); |
| assertEquals("Revision number increments by 1", revisionNumber+1, xDocPro2.getEditingCycles()); |
| } |
| |
| /* |
| * UI entry: File->Properties->General->template*/ |
| @Test |
| public void testGeneralTemplateName() throws Exception { |
| String templateName = "I'm a template"; |
| |
| XDocumentProperties xDocPro = getDocumentProperties(); |
| |
| xDocPro.setTemplateName(templateName); |
| |
| app.saveDocument(m_xSDComponent, m_filePath); |
| app.closeDocument(m_xSDComponent); |
| m_xSDComponent = app.loadDocument(m_filePath); |
| XDocumentProperties xDocPro2 = getDocumentProperties(); |
| assertEquals("Template name should be "+ templateName, templateName, xDocPro2.getTemplateName()); |
| } |
| |
| /* |
| * UI entry: File->Properties->General->Reset*/ |
| @Test |
| public void testGeneralReset() throws Exception { |
| String author = "ResetAuthor"; |
| XDocumentProperties xDocPro = getDocumentProperties(); |
| xDocPro.resetUserData(author); |
| |
| assertEquals("Author should be "+ author, author, xDocPro.getAuthor()); |
| assertEquals("Modified should be empty", "", xDocPro.getModifiedBy()); |
| assertTrue("ModificationDate should be empty", |
| DateTimeEquals(new DateTime(), xDocPro.getModificationDate())); |
| assertEquals("PrintBy should be empty", "", xDocPro.getPrintedBy()); |
| assertTrue("PrintDate should be empty", |
| DateTimeEquals(new DateTime(), xDocPro.getPrintDate())); |
| assertEquals("Totally editing time should be empty", 0, xDocPro.getEditingDuration()); |
| assertEquals("Revision number should be empty", 1, xDocPro.getEditingCycles()); |
| } |
| |
| // UI entry: File->Properties->General->Apply user data |
| |
| // UI entry: File->Properties->General->digital signature |
| |
| //Description begin |
| /* |
| * UI entry: File->Properties->Description->Title*/ |
| @Test |
| public void testDescriptionTitle() throws Exception{ |
| String title = "titleForTest"; |
| XDocumentProperties xDocPro = getDocumentProperties(); |
| xDocPro.setTitle(title); |
| |
| app.saveDocument(m_xSDComponent, m_filePath); |
| app.closeDocument(m_xSDComponent); |
| m_xSDComponent = app.loadDocument(m_filePath); |
| XDocumentProperties xDocPro2 = getDocumentProperties(); |
| assertEquals("Title should be "+ title, title, xDocPro2.getTitle()); |
| } |
| |
| /* |
| * UI entry: File->Properties->Description->Subject*/ |
| @Test |
| public void testDescriptionSubject() throws Exception{ |
| String subject = "subjectForTest"; |
| XDocumentProperties xDocPro = getDocumentProperties(); |
| xDocPro.setSubject(subject); |
| |
| app.saveDocument(m_xSDComponent, m_filePath); |
| app.closeDocument(m_xSDComponent); |
| m_xSDComponent = app.loadDocument(m_filePath); |
| XDocumentProperties xDocPro2 = getDocumentProperties(); |
| assertEquals("Subject should be "+ subject, subject, xDocPro2.getSubject()); |
| } |
| |
| /* |
| * UI entry: File->Properties->Description->Keywords*/ |
| @Test |
| public void testDescriptionKeywords() throws Exception{ |
| String[] keywords = {"keyword1", "keyword2"}; |
| XDocumentProperties xDocPro = getDocumentProperties(); |
| xDocPro.setKeywords(keywords); |
| |
| app.saveDocument(m_xSDComponent, m_filePath); |
| app.closeDocument(m_xSDComponent); |
| |
| m_xSDComponent = app.loadDocument(m_filePath); |
| XDocumentProperties xDocPro2 = getDocumentProperties(); |
| String[] keywordsResult = xDocPro2.getKeywords(); |
| assertEquals("There should be 2 Keywords", 2, keywordsResult.length); |
| for(int i=0;i<keywordsResult.length;i++) |
| { |
| String num = Integer.toString(i+1); |
| assertEquals("The keywords should be keyword"+num, "keyword"+num, keywordsResult[i]); |
| } |
| } |
| |
| /* |
| * UI entry: File->Properties->Description->Comments*/ |
| @Test |
| public void testDescriptionComments() throws Exception{ |
| String comments = "This is the comment."; |
| XDocumentProperties xDocPro = getDocumentProperties(); |
| xDocPro.setDescription(comments); |
| |
| app.saveDocument(m_xSDComponent, m_filePath); |
| app.closeDocument(m_xSDComponent); |
| |
| m_xSDComponent = app.loadDocument(m_filePath); |
| XDocumentProperties xDocPro2 = getDocumentProperties(); |
| |
| assertEquals("Comments should be "+comments, comments, xDocPro2.getDescription()); |
| } |
| //Description end |
| |
| //custom properties begin |
| //UI entry: File->Properties->Custom properties |
| private void addCustomPro(String propertyName, Object value) throws PropertyExistException, IllegalTypeException, IllegalArgumentException{ |
| XDocumentProperties xDocPro = getDocumentProperties(); |
| XPropertyContainer proContainer = xDocPro.getUserDefinedProperties(); |
| proContainer.addProperty(propertyName, PropertyAttribute.REMOVEABLE, value); |
| } |
| |
| private Object getCustomPro(String propertyName) throws UnknownPropertyException, WrappedTargetException{ |
| XDocumentProperties xDocPro = getDocumentProperties(); |
| XPropertyContainer proContainer = xDocPro.getUserDefinedProperties(); |
| XPropertySet xProSet = (XPropertySet)UnoRuntime.queryInterface( |
| XPropertySet.class, proContainer); |
| |
| return xProSet.getPropertyValue(propertyName); |
| } |
| |
| @Test |
| public void testCustomAddPro_Text() throws Exception{ |
| String addedProName = "TextPro"; |
| String addedProDefaultValue = "testUser"; |
| |
| addCustomPro(addedProName, addedProDefaultValue); |
| |
| app.saveDocument(m_xSDComponent, m_filePath); |
| app.closeDocument(m_xSDComponent); |
| |
| m_xSDComponent = app.loadDocument(m_filePath); |
| |
| String result = (String)getCustomPro(addedProName); |
| |
| assertTrue("added Text property \""+addedProName+"\" should exist", result != null); |
| assertEquals("value of added property should be "+addedProDefaultValue, |
| addedProDefaultValue, result); |
| } |
| |
| @Test |
| public void testCustomAddPro_DateTime() throws Exception{ |
| String addedProName = "DateTimePro"; |
| DateTime addedProDefaultValue = getCurrentDateTime(); |
| |
| addCustomPro(addedProName, addedProDefaultValue); |
| |
| app.saveDocument(m_xSDComponent, m_filePath); |
| app.closeDocument(m_xSDComponent); |
| |
| m_xSDComponent = app.loadDocument(m_filePath); |
| |
| DateTime result = (DateTime)getCustomPro(addedProName); |
| assertTrue("added DateTime property \""+addedProName+"\" should exist", result != null); |
| assertTrue("value of added property should be the same as set", |
| this.DateTimeEquals(result, addedProDefaultValue)); |
| } |
| |
| @Test |
| public void testCustomAddPro_Date() throws Exception{ |
| String addedProName = "DatePro"; |
| Date addedProDefaultValue = getCurrentDate(); |
| |
| addCustomPro(addedProName, addedProDefaultValue); |
| |
| app.saveDocument(m_xSDComponent, m_filePath); |
| app.closeDocument(m_xSDComponent); |
| |
| m_xSDComponent = app.loadDocument(m_filePath); |
| |
| Date result = (Date)getCustomPro(addedProName); |
| assertTrue("added Date property \""+addedProName+"\" should exist", result != null); |
| assertTrue("value of added property should be the same as set", |
| this.DateEquals(result, addedProDefaultValue)); |
| } |
| |
| @Test |
| public void testCustomAddPro_Duration() throws Exception{ |
| String addedProName = "DurationPro"; |
| Duration addedProDefaultValue = new Duration(); |
| addedProDefaultValue.Days = 1; |
| |
| addCustomPro(addedProName, addedProDefaultValue); |
| |
| app.saveDocument(m_xSDComponent, m_filePath); |
| app.closeDocument(m_xSDComponent); |
| |
| m_xSDComponent = app.loadDocument(m_filePath); |
| |
| Duration result = (Duration)getCustomPro(addedProName); |
| assertTrue("added Date property \""+addedProName+"\" should exist", result != null); |
| assertTrue("value of added property should the same as set", DurationEquals(addedProDefaultValue, result)); |
| } |
| |
| @Test |
| public void testCustomAddPro_Number() throws Exception{ |
| String addedProName = "NumberPro"; |
| Double addedProDefaultValue = (double)10; |
| |
| addCustomPro(addedProName, addedProDefaultValue); |
| |
| app.saveDocument(m_xSDComponent, m_filePath); |
| app.closeDocument(m_xSDComponent); |
| |
| m_xSDComponent = app.loadDocument(m_filePath); |
| |
| Object oResult = getCustomPro(addedProName); |
| |
| Double result = (Double)oResult; |
| assertTrue("added Number property \""+addedProName+"\" should exist", oResult != null); |
| assertEquals("value of added property should be "+Double.toString(addedProDefaultValue), |
| addedProDefaultValue, result); |
| } |
| |
| @Test |
| public void testCustomAddPro_Boolean() throws Exception{ |
| String addedProName = "BooleanPro"; |
| Boolean addedProDefaultValue = true; |
| |
| addCustomPro(addedProName, addedProDefaultValue); |
| |
| app.saveDocument(m_xSDComponent, m_filePath); |
| app.closeDocument(m_xSDComponent); |
| |
| m_xSDComponent = app.loadDocument(m_filePath); |
| |
| Object oResult = getCustomPro(addedProName); |
| |
| boolean result = (Boolean)oResult; |
| assertTrue("added Number property \""+addedProName+"\" should exist", oResult != null); |
| assertEquals("value of added property should be "+Boolean.toString(addedProDefaultValue), |
| addedProDefaultValue, result); |
| } |
| |
| @Test |
| public void testCustomRemovePro() throws Exception{ |
| addCustomPro("testPro", "value"); |
| XDocumentProperties xDocPro = getDocumentProperties(); |
| XPropertyContainer proContainer = xDocPro.getUserDefinedProperties(); |
| XPropertySet xProSet = (XPropertySet)UnoRuntime.queryInterface( |
| XPropertySet.class, proContainer); |
| XPropertySetInfo xproSetInfo = xProSet.getPropertySetInfo(); |
| Property[] pros = xproSetInfo.getProperties(); |
| |
| for(int i=0; i< pros.length;i++) |
| { |
| proContainer.removeProperty(pros[i].Name); |
| } |
| |
| app.saveDocument(m_xSDComponent, m_filePath); |
| app.closeDocument(m_xSDComponent); |
| |
| m_xSDComponent = app.loadDocument(m_filePath); |
| |
| XDocumentProperties xDocPro2 = getDocumentProperties(); |
| XPropertyContainer proContainer2 = xDocPro2.getUserDefinedProperties(); |
| XPropertySet xProSet2 = (XPropertySet)UnoRuntime.queryInterface( |
| XPropertySet.class, proContainer2); |
| XPropertySetInfo xproSetInfo2 = xProSet2.getPropertySetInfo(); |
| Property[] pros2 = xproSetInfo2.getProperties(); |
| |
| assertEquals("number of custom property should be zero ", |
| 0, pros2.length); |
| } |
| //custom properties end |
| |
| //Internet begin |
| private void setAutoLoad(String URL, int secs) throws IllegalArgumentException |
| { |
| XDocumentProperties xDocPro = getDocumentProperties(); |
| xDocPro.setAutoloadURL(URL); |
| xDocPro.setAutoloadSecs(secs); |
| xDocPro.setDefaultTarget("_blank"); |
| } |
| |
| @Test |
| public void testNoRefresh() throws Exception{ |
| String autoLoadURL = ""; |
| int autoLoadSecs = 0; |
| setAutoLoad(autoLoadURL, autoLoadSecs); |
| |
| app.saveDocument(m_xSDComponent, m_filePath); |
| app.closeDocument(m_xSDComponent); |
| |
| m_xSDComponent = app.loadDocument(m_filePath); |
| XDocumentProperties xDocPro2 = getDocumentProperties(); |
| |
| assertEquals("AutoLoadURL should be empty", autoLoadURL, xDocPro2.getAutoloadURL()); |
| assertEquals("AutoLoadSecs should be 0", autoLoadSecs, xDocPro2.getAutoloadSecs()); |
| } |
| |
| @Test |
| public void testRefreshEvery60Secs() throws Exception{ |
| String autoLoadURL = ""; |
| int autoLoadSecs = 60; |
| setAutoLoad(autoLoadURL, autoLoadSecs); |
| |
| app.saveDocument(m_xSDComponent, m_filePath); |
| app.closeDocument(m_xSDComponent); |
| |
| m_xSDComponent = app.loadDocument(m_filePath); |
| XDocumentProperties xDocPro2 = getDocumentProperties(); |
| |
| assertEquals("AutoLoadURL should be empty", autoLoadURL, xDocPro2.getAutoloadURL()); |
| assertEquals("AutoLoadSecs should be "+Integer.toString(autoLoadSecs), autoLoadSecs, xDocPro2.getAutoloadSecs()); |
| } |
| |
| @Test |
| public void testRedirect() throws Exception{ |
| String autoLoadURL = "http://www.openoffice.com/"; |
| int autoLoadSecs = 5; |
| setAutoLoad(autoLoadURL, autoLoadSecs); |
| |
| app.saveDocument(m_xSDComponent, m_filePath); |
| app.closeDocument(m_xSDComponent); |
| |
| m_xSDComponent = app.loadDocument(m_filePath); |
| XDocumentProperties xDocPro2 = getDocumentProperties(); |
| |
| assertEquals("AutoLoadURL should be empty", autoLoadURL, xDocPro2.getAutoloadURL()); |
| assertEquals("AutoLoadSecs should be "+Integer.toString(autoLoadSecs), autoLoadSecs, xDocPro2.getAutoloadSecs()); |
| } |
| //Internet end |
| } |