You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by ti...@apache.org on 2015/02/12 22:37:36 UTC
svn commit: r1659413 - in
/pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/interactive/documentnavigation:
./ outline/ outline/PDDocumentOutlineTest.java
outline/PDOutlineItemTest.java outline/PDOutlineNodeTest.java
Author: tilman
Date: Thu Feb 12 21:37:35 2015
New Revision: 1659413
URL: http://svn.apache.org/r1659413
Log:
PDFBOX-2677: add tests for outlines, by Andrea Vacondio
Added:
pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/interactive/documentnavigation/
pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/interactive/documentnavigation/outline/
pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/interactive/documentnavigation/outline/PDDocumentOutlineTest.java (with props)
pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/interactive/documentnavigation/outline/PDOutlineItemTest.java (with props)
pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/interactive/documentnavigation/outline/PDOutlineNodeTest.java (with props)
Added: pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/interactive/documentnavigation/outline/PDDocumentOutlineTest.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/interactive/documentnavigation/outline/PDDocumentOutlineTest.java?rev=1659413&view=auto
==============================================================================
--- pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/interactive/documentnavigation/outline/PDDocumentOutlineTest.java (added)
+++ pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/interactive/documentnavigation/outline/PDDocumentOutlineTest.java Thu Feb 12 21:37:35 2015
@@ -0,0 +1,60 @@
+/*
+ * 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 org.apache.pdfbox.pdmodel.interactive.documentnavigation.outline;
+
+import junit.framework.TestCase;
+
+
+/**
+ * @author Andrea Vacondio
+ *
+ */
+public class PDDocumentOutlineTest extends TestCase
+{
+ /**
+ * see PDF 32000-1:2008 table 152
+ */
+ public void testOutlinesCountShouldNotBeNegative()
+ {
+ PDDocumentOutline outline = new PDDocumentOutline();
+ PDOutlineItem firstLevelChild = new PDOutlineItem();
+ outline.addLast(firstLevelChild);
+ PDOutlineItem secondLevelChild = new PDOutlineItem();
+ firstLevelChild.addLast(secondLevelChild);
+ assertEquals(0, secondLevelChild.getOpenCount());
+ assertEquals(-1, firstLevelChild.getOpenCount());
+ assertFalse("Outlines count cannot be " + outline.getOpenCount(),
+ outline.getOpenCount() < 0);
+ }
+
+ public void testOutlinesCount()
+ {
+ PDDocumentOutline outline = new PDDocumentOutline();
+ PDOutlineItem root = new PDOutlineItem();
+ outline.addLast(root);
+ assertEquals(1, outline.getOpenCount());
+ root.addLast(new PDOutlineItem());
+ assertEquals(-1, root.getOpenCount());
+ assertEquals(1, outline.getOpenCount());
+ root.addLast(new PDOutlineItem());
+ assertEquals(-2, root.getOpenCount());
+ assertEquals(1, outline.getOpenCount());
+ root.openNode();
+ assertEquals(2, root.getOpenCount());
+ assertEquals(3, outline.getOpenCount());
+ }
+}
Propchange: pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/interactive/documentnavigation/outline/PDDocumentOutlineTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/interactive/documentnavigation/outline/PDOutlineItemTest.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/interactive/documentnavigation/outline/PDOutlineItemTest.java?rev=1659413&view=auto
==============================================================================
--- pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/interactive/documentnavigation/outline/PDOutlineItemTest.java (added)
+++ pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/interactive/documentnavigation/outline/PDOutlineItemTest.java Thu Feb 12 21:37:35 2015
@@ -0,0 +1,191 @@
+/*
+ * 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 org.apache.pdfbox.pdmodel.interactive.documentnavigation.outline;
+
+import static org.junit.Assert.assertEquals;
+
+import org.junit.Before;
+import org.junit.Test;
+
+/**
+ * @author Andrea Vacondio
+ *
+ */
+public class PDOutlineItemTest
+{
+ private PDOutlineItem root;
+ private PDOutlineItem first;
+ private PDOutlineItem second;
+ private PDOutlineItem newSibling;
+
+ @Before
+ public void setUp()
+ {
+ root = new PDOutlineItem();
+ first = new PDOutlineItem();
+ second = new PDOutlineItem();
+ root.addLast(first);
+ root.addLast(second);
+ newSibling = new PDOutlineItem();
+ newSibling.addLast(new PDOutlineItem());
+ newSibling.addLast(new PDOutlineItem());
+ }
+
+ @Test
+ public void insertSiblingAfter_OpenChildToOpenParent()
+ {
+ newSibling.openNode();
+ root.openNode();
+ assertEquals(2, root.getOpenCount());
+ first.insertSiblingAfter(newSibling);
+ assertEquals(first.getNextSibling(), newSibling);
+ assertEquals(second.getPreviousSibling(), newSibling);
+ assertEquals(5, root.getOpenCount());
+ }
+
+ @Test
+ public void insertSiblingBefore_OpenChildToOpenParent()
+ {
+ newSibling.openNode();
+ root.openNode();
+ assertEquals(2, root.getOpenCount());
+ second.insertSiblingBefore(newSibling);
+ assertEquals(first.getNextSibling(), newSibling);
+ assertEquals(second.getPreviousSibling(), newSibling);
+ assertEquals(5, root.getOpenCount());
+ }
+
+ @Test
+ public void insertSiblingAfter_OpenChildToClosedParent()
+ {
+ newSibling.openNode();
+ assertEquals(-2, root.getOpenCount());
+ first.insertSiblingAfter(newSibling);
+ assertEquals(first.getNextSibling(), newSibling);
+ assertEquals(second.getPreviousSibling(), newSibling);
+ assertEquals(-5, root.getOpenCount());
+ }
+
+ @Test
+ public void insertSiblingBefore_OpenChildToClosedParent()
+ {
+ newSibling.openNode();
+ assertEquals(-2, root.getOpenCount());
+ second.insertSiblingBefore(newSibling);
+ assertEquals(first.getNextSibling(), newSibling);
+ assertEquals(second.getPreviousSibling(), newSibling);
+ assertEquals(-5, root.getOpenCount());
+ }
+
+ @Test
+ public void insertSiblingAfter_ClosedChildToOpenParent()
+ {
+ root.openNode();
+ assertEquals(2, root.getOpenCount());
+ first.insertSiblingAfter(newSibling);
+ assertEquals(first.getNextSibling(), newSibling);
+ assertEquals(second.getPreviousSibling(), newSibling);
+ assertEquals(3, root.getOpenCount());
+ }
+
+ @Test
+ public void insertSiblingBefore_ClosedChildToOpenParent()
+ {
+ root.openNode();
+ assertEquals(2, root.getOpenCount());
+ second.insertSiblingBefore(newSibling);
+ assertEquals(first.getNextSibling(), newSibling);
+ assertEquals(second.getPreviousSibling(), newSibling);
+ assertEquals(3, root.getOpenCount());
+ }
+
+ @Test
+ public void insertSiblingAfter_ClosedChildToClosedParent()
+ {
+ assertEquals(-2, root.getOpenCount());
+ first.insertSiblingAfter(newSibling);
+ assertEquals(first.getNextSibling(), newSibling);
+ assertEquals(second.getPreviousSibling(), newSibling);
+ assertEquals(-3, root.getOpenCount());
+ }
+
+ @Test
+ public void insertSiblingBefore_ClosedChildToClosedParent()
+ {
+ assertEquals(-2, root.getOpenCount());
+ second.insertSiblingBefore(newSibling);
+ assertEquals(first.getNextSibling(), newSibling);
+ assertEquals(second.getPreviousSibling(), newSibling);
+ assertEquals(-3, root.getOpenCount());
+ }
+
+ @Test
+ public void insertSiblingTop()
+ {
+ assertEquals(root.getFirstChild(), first);
+ PDOutlineItem newSibling = new PDOutlineItem();
+ first.insertSiblingBefore(newSibling);
+ assertEquals(first.getPreviousSibling(), newSibling);
+ assertEquals(root.getFirstChild(), newSibling);
+ }
+
+ @Test
+ public void insertSiblingTopNoParent()
+ {
+ assertEquals(root.getFirstChild(), first);
+ PDOutlineItem newSibling = new PDOutlineItem();
+ root.insertSiblingBefore(newSibling);
+ assertEquals(root.getPreviousSibling(), newSibling);
+ }
+
+ @Test
+ public void insertSiblingBottom()
+ {
+ assertEquals(root.getLastChild(), second);
+ PDOutlineItem newSibling = new PDOutlineItem();
+ second.insertSiblingAfter(newSibling);
+ assertEquals(second.getNextSibling(), newSibling);
+ assertEquals(root.getLastChild(), newSibling);
+ }
+
+ @Test
+ public void insertSiblingBottomNoParent()
+ {
+ assertEquals(root.getLastChild(), second);
+ PDOutlineItem newSibling = new PDOutlineItem();
+ root.insertSiblingAfter(newSibling);
+ assertEquals(root.getNextSibling(), newSibling);
+ }
+
+ @Test(expected = IllegalArgumentException.class)
+ public void cannotInsertSiblingBeforeAList()
+ {
+ PDOutlineItem child = new PDOutlineItem();
+ child.insertSiblingAfter(new PDOutlineItem());
+ child.insertSiblingAfter(new PDOutlineItem());
+ root.insertSiblingBefore(child);
+ }
+
+ @Test(expected = IllegalArgumentException.class)
+ public void cannotInsertSiblingAfterAList()
+ {
+ PDOutlineItem child = new PDOutlineItem();
+ child.insertSiblingAfter(new PDOutlineItem());
+ child.insertSiblingAfter(new PDOutlineItem());
+ root.insertSiblingAfter(child);
+ }
+}
Propchange: pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/interactive/documentnavigation/outline/PDOutlineItemTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/interactive/documentnavigation/outline/PDOutlineNodeTest.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/interactive/documentnavigation/outline/PDOutlineNodeTest.java?rev=1659413&view=auto
==============================================================================
--- pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/interactive/documentnavigation/outline/PDOutlineNodeTest.java (added)
+++ pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/interactive/documentnavigation/outline/PDOutlineNodeTest.java Thu Feb 12 21:37:35 2015
@@ -0,0 +1,350 @@
+/*
+ * 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 org.apache.pdfbox.pdmodel.interactive.documentnavigation.outline;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotEquals;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+
+import org.junit.Before;
+import org.junit.Test;
+
+/**
+ * @author Andrea Vacondio
+ *
+ */
+public class PDOutlineNodeTest
+{
+ private PDOutlineItem root;
+
+ @Before
+ public void setUp()
+ {
+ root = new PDOutlineItem();
+ }
+
+ @Test
+ public void getParent()
+ {
+ PDOutlineItem child = new PDOutlineItem();
+ root.addLast(child);
+ PDDocumentOutline outline = new PDDocumentOutline();
+ outline.addLast(root);
+ assertNull(outline.getParent());
+ assertEquals(outline, root.getParent());
+ assertEquals(root, child.getParent());
+ }
+
+ @Test
+ public void nullLastChild()
+ {
+ assertNull(root.getLastChild());
+ }
+
+ @Test
+ public void nullFirstChild()
+ {
+ assertNull(root.getFirstChild());
+ }
+
+ @Test
+ public void openAlreadyOpenedRootNode()
+ {
+ PDOutlineItem child = new PDOutlineItem();
+ assertEquals(0, root.getOpenCount());
+ root.addLast(child);
+ root.openNode();
+ assertTrue(root.isNodeOpen());
+ assertEquals(1, root.getOpenCount());
+ root.openNode();
+ assertTrue(root.isNodeOpen());
+ assertEquals(1, root.getOpenCount());
+ }
+
+ @Test
+ public void closeAlreadyClosedRootNode()
+ {
+ PDOutlineItem child = new PDOutlineItem();
+ assertEquals(0, root.getOpenCount());
+ root.addLast(child);
+ root.openNode();
+ root.closeNode();
+ assertFalse(root.isNodeOpen());
+ assertEquals(-1, root.getOpenCount());
+ root.closeNode();
+ assertFalse(root.isNodeOpen());
+ assertEquals(-1, root.getOpenCount());
+ }
+
+ @Test
+ public void openLeaf()
+ {
+ PDOutlineItem child = new PDOutlineItem();
+ root.addLast(child);
+ child.openNode();
+ assertFalse(child.isNodeOpen());
+ }
+
+ @Test
+ public void nodeClosedByDefault()
+ {
+ PDOutlineItem child = new PDOutlineItem();
+ root.addLast(child);
+ assertFalse(root.isNodeOpen());
+ assertEquals(-1, root.getOpenCount());
+ }
+
+ @Test
+ public void closeNodeWithOpendParent()
+ {
+ PDOutlineItem child = new PDOutlineItem();
+ child.addLast(new PDOutlineItem());
+ child.addLast(new PDOutlineItem());
+ child.openNode();
+ root.addLast(child);
+ root.openNode();
+ assertEquals(3, root.getOpenCount());
+ assertEquals(2, child.getOpenCount());
+ child.closeNode();
+ assertEquals(1, root.getOpenCount());
+ assertEquals(-2, child.getOpenCount());
+ }
+
+ @Test
+ public void closeNodeWithClosedParent()
+ {
+ PDOutlineItem child = new PDOutlineItem();
+ child.addLast(new PDOutlineItem());
+ child.addLast(new PDOutlineItem());
+ child.openNode();
+ root.addLast(child);
+ assertEquals(-3, root.getOpenCount());
+ assertEquals(2, child.getOpenCount());
+ child.closeNode();
+ assertEquals(-1, root.getOpenCount());
+ assertEquals(-2, child.getOpenCount());
+ }
+
+ @Test
+ public void openNodeWithOpendParent()
+ {
+ PDOutlineItem child = new PDOutlineItem();
+ child.addLast(new PDOutlineItem());
+ child.addLast(new PDOutlineItem());
+ root.addLast(child);
+ root.openNode();
+ assertEquals(1, root.getOpenCount());
+ assertEquals(-2, child.getOpenCount());
+ child.openNode();
+ assertEquals(3, root.getOpenCount());
+ assertEquals(2, child.getOpenCount());
+ }
+
+ @Test
+ public void openNodeWithClosedParent()
+ {
+ PDOutlineItem child = new PDOutlineItem();
+ child.addLast(new PDOutlineItem());
+ child.addLast(new PDOutlineItem());
+ root.addLast(child);
+ assertEquals(-1, root.getOpenCount());
+ assertEquals(-2, child.getOpenCount());
+ child.openNode();
+ assertEquals(-3, root.getOpenCount());
+ assertEquals(2, child.getOpenCount());
+ }
+
+ @Test
+ public void addLastSingleChild()
+ {
+ PDOutlineItem child = new PDOutlineItem();
+ root.addLast(child);
+ assertEquals(child, root.getFirstChild());
+ assertEquals(child, root.getLastChild());
+ }
+
+ @Test
+ public void addFirstSingleChild()
+ {
+ PDOutlineItem child = new PDOutlineItem();
+ root.addFirst(child);
+ assertEquals(child, root.getFirstChild());
+ assertEquals(child, root.getLastChild());
+ }
+
+ @Test
+ public void addLastOpenChildToOpenParent()
+ {
+ PDOutlineItem child = new PDOutlineItem();
+ child.addLast(new PDOutlineItem());
+ child.addLast(new PDOutlineItem());
+ child.openNode();
+ root.addLast(new PDOutlineItem());
+ root.openNode();
+ assertEquals(1, root.getOpenCount());
+ assertEquals(2, child.getOpenCount());
+ root.addLast(child);
+ assertNotEquals(child, root.getFirstChild());
+ assertEquals(child, root.getLastChild());
+ assertEquals(4, root.getOpenCount());
+ }
+
+ @Test
+ public void addFirstOpenChildToOpenParent()
+ {
+ PDOutlineItem child = new PDOutlineItem();
+ child.addFirst(new PDOutlineItem());
+ child.addFirst(new PDOutlineItem());
+ child.openNode();
+ root.addFirst(new PDOutlineItem());
+ root.openNode();
+ assertEquals(1, root.getOpenCount());
+ assertEquals(2, child.getOpenCount());
+ root.addFirst(child);
+ assertNotEquals(child, root.getLastChild());
+ assertEquals(child, root.getFirstChild());
+ assertEquals(4, root.getOpenCount());
+ }
+
+ @Test
+ public void addLastOpenChildToClosedParent()
+ {
+ PDOutlineItem child = new PDOutlineItem();
+ child.addLast(new PDOutlineItem());
+ child.addLast(new PDOutlineItem());
+ child.openNode();
+ root.addLast(new PDOutlineItem());
+ assertEquals(-1, root.getOpenCount());
+ assertEquals(2, child.getOpenCount());
+ root.addLast(child);
+ assertNotEquals(child, root.getFirstChild());
+ assertEquals(child, root.getLastChild());
+ assertEquals(-4, root.getOpenCount());
+ }
+
+ @Test
+ public void addFirstOpenChildToClosedParent()
+ {
+ PDOutlineItem child = new PDOutlineItem();
+ child.addFirst(new PDOutlineItem());
+ child.addFirst(new PDOutlineItem());
+ child.openNode();
+ root.addFirst(new PDOutlineItem());
+ assertEquals(-1, root.getOpenCount());
+ assertEquals(2, child.getOpenCount());
+ root.addFirst(child);
+ assertNotEquals(child, root.getLastChild());
+ assertEquals(child, root.getFirstChild());
+ assertEquals(-4, root.getOpenCount());
+ }
+
+ @Test
+ public void addLastClosedChildToOpenParent()
+ {
+ PDOutlineItem child = new PDOutlineItem();
+ child.addLast(new PDOutlineItem());
+ child.addLast(new PDOutlineItem());
+ root.addLast(new PDOutlineItem());
+ root.openNode();
+ assertEquals(1, root.getOpenCount());
+ assertEquals(-2, child.getOpenCount());
+ root.addLast(child);
+ assertNotEquals(child, root.getFirstChild());
+ assertEquals(child, root.getLastChild());
+ assertEquals(2, root.getOpenCount());
+ }
+
+ @Test
+ public void addFirstClosedChildToOpenParent()
+ {
+ PDOutlineItem child = new PDOutlineItem();
+ child.addFirst(new PDOutlineItem());
+ child.addFirst(new PDOutlineItem());
+ root.addFirst(new PDOutlineItem());
+ root.openNode();
+ assertEquals(1, root.getOpenCount());
+ assertEquals(-2, child.getOpenCount());
+ root.addFirst(child);
+ assertNotEquals(child, root.getLastChild());
+ assertEquals(child, root.getFirstChild());
+ assertEquals(2, root.getOpenCount());
+ }
+
+ @Test
+ public void addLastClosedChildToClosedParent()
+ {
+ PDOutlineItem child = new PDOutlineItem();
+ child.addLast(new PDOutlineItem());
+ child.addLast(new PDOutlineItem());
+ root.addLast(new PDOutlineItem());
+ assertEquals(-1, root.getOpenCount());
+ assertEquals(-2, child.getOpenCount());
+ root.addLast(child);
+ assertNotEquals(child, root.getFirstChild());
+ assertEquals(child, root.getLastChild());
+ assertEquals(-2, root.getOpenCount());
+ }
+
+ @Test
+ public void addFirstClosedChildToClosedParent()
+ {
+ PDOutlineItem child = new PDOutlineItem();
+ child.addFirst(new PDOutlineItem());
+ child.addFirst(new PDOutlineItem());
+ root.addFirst(new PDOutlineItem());
+ assertEquals(-1, root.getOpenCount());
+ assertEquals(-2, child.getOpenCount());
+ root.addFirst(child);
+ assertNotEquals(child, root.getLastChild());
+ assertEquals(child, root.getFirstChild());
+ assertEquals(-2, root.getOpenCount());
+ }
+
+ @Test(expected = IllegalArgumentException.class)
+ public void cannotAddLastAList()
+ {
+ PDOutlineItem child = new PDOutlineItem();
+ child.insertSiblingAfter(new PDOutlineItem());
+ child.insertSiblingAfter(new PDOutlineItem());
+ root.addLast(child);
+ }
+
+ @Test(expected = IllegalArgumentException.class)
+ public void cannotAddFirstAList()
+ {
+ PDOutlineItem child = new PDOutlineItem();
+ child.insertSiblingAfter(new PDOutlineItem());
+ child.insertSiblingAfter(new PDOutlineItem());
+ root.addFirst(child);
+ }
+
+ @Test
+ public void equalsNode()
+ {
+ root.addFirst(new PDOutlineItem());
+ assertEquals(root.getFirstChild(), root.getLastChild());
+ }
+
+ @Test
+ public void openNodeAndAppend()
+ {
+ // TODO
+ }
+
+}
Propchange: pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/interactive/documentnavigation/outline/PDOutlineNodeTest.java
------------------------------------------------------------------------------
svn:eol-style = native