/**
* Copyright (c) 2008 Really Strategies, Inc.
*/
package org.dita2indesign.indesign.inx;
import java.io.File;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import junit.framework.Test;
import junit.framework.TestSuite;
import org.apache.log4j.Logger;
import org.dita2indesign.indesign.inx.InxReaderTestBase;
import org.dita2indesign.indesign.inx.LinkObjectTests;
import org.dita2indesign.indesign.inx.model.InDesignDocument;
import org.dita2indesign.indesign.inx.model.Link;
import org.dita2indesign.indesign.inx.writers.InxWriter;
/**
* Tests that focus on InDesign links
*/
public class LinkObjectTests extends InxReaderTestBase {
Logger logger = Logger.getLogger(LinkObjectTests.class);
private InDesignDocument doc;
public static Test suite() {
TestSuite suite = new TestSuite(LinkObjectTests.class);
return suite;
}
public void setUp() throws Exception {
super.setUp();
doc = new InDesignDocument();
doc.load(linkTest);
}
public void testLinksAreLoaded() {
List<Link> links = doc.getLinks();
assertNotNull("Expect non-null links object", links);
// for (Link link : links) {
// System.err.println(" Link: " + link.getId() + ", " + link.getName());
// }
assertEquals("Expected 6 links", 6, links.size());
Link link;
link = (Link)doc.getObject("u144");
assertNotNull(link);
assertEquals("Adobe Portable Document Format (PDF)", link.getLinkType());
assertEquals("svg-test-01.ai", link.getWindowsFileName());
assertTrue("Mac filename doesn't match name", link.getMacFileName().endsWith(link.getWindowsFileName()));
Date date = link.getDate();
assertNotNull(date);
assertTrue(date.before(Calendar.getInstance().getTime()));
}
public void testLinksAreCloned() throws Exception {
List<Link> links = doc.getLinks();
assertNotNull("Expect non-null links object", links);
assertEquals("Expected 6 links", 6, links.size());
// for (Link link : links) {
// System.err.println(" Link: " + link.getId() + ", " + link.getName());
// }
InDesignDocument clonedDoc = new InDesignDocument(doc, false);
links = clonedDoc.getLinks();
// for (Link link : links) {
// System.err.println(" Link: " + link.getId() + ", " + link.getName());
// }
assertNotNull("Expect non-null links object", links);
assertEquals("Expected 6 links", 6, links.size());
}
public void testLinkLabels() throws Exception {
List<Link> links = doc.getLinks();
assertNotNull("Expect non-null links object", links);
Link link = links.get(0);
link.insertLabel("moid", "1234");
assertEquals("1234", link.extractLabel("moid"));
// File inxFile = File.createTempFile("testLinkLabels_", ".inx");
File inxFile = new File("/Users/ekimber/temp/testLinkLabels_20668.inx");
System.err.println("inxFile=" + inxFile.getAbsolutePath());
InxWriter writer = new InxWriter(inxFile);
writer.write(doc);
inxFile.deleteOnExit();
}
}