Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris Goldthorpe2009-10-08 20:31:29 +0000
committerChris Goldthorpe2009-10-08 20:31:29 +0000
commit69b03cb32f5955a8ebdb5412ede15c5924230fee (patch)
tree84526388c35244f17e47e503d85a5c41ef87e636 /org.eclipse.ua.tests
parentfaef9c2d7e7b3c85f2292053647d2bee6bd03f44 (diff)
downloadeclipse.platform.ua-69b03cb32f5955a8ebdb5412ede15c5924230fee.tar.gz
eclipse.platform.ua-69b03cb32f5955a8ebdb5412ede15c5924230fee.tar.xz
eclipse.platform.ua-69b03cb32f5955a8ebdb5412ede15c5924230fee.zip
Bug 281146 – [Help][Index] See references added to the keyword index:
Diffstat (limited to 'org.eclipse.ua.tests')
-rw-r--r--org.eclipse.ua.tests/data/help/index/assembler/d.xml32
-rw-r--r--org.eclipse.ua.tests/data/help/index/index.xml2
-rw-r--r--org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/index/IndexAssemblerTest.java33
-rw-r--r--org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/other/AllOtherHelpTests.java1
-rw-r--r--org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/other/IndexEntryTest.java138
-rw-r--r--org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/other/IndexSeeTest.java257
-rw-r--r--org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/other/UserIndexEntry.java84
-rw-r--r--org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/other/UserIndexSee.java57
-rw-r--r--org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/other/UserIndexSubpath.java40
9 files changed, 604 insertions, 40 deletions
diff --git a/org.eclipse.ua.tests/data/help/index/assembler/d.xml b/org.eclipse.ua.tests/data/help/index/assembler/d.xml
new file mode 100644
index 000000000..af18ab77c
--- /dev/null
+++ b/org.eclipse.ua.tests/data/help/index/assembler/d.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright (c) 20059 IBM Corporation and others.
+ All rights reserved. This program and the accompanying materials
+ are made available under the terms of the Eclipse Public License v1.0
+ which accompanies this distribution, and is available at
+ http://www.eclipse.org/legal/epl-v10.html
+
+ Contributors:
+ IBM Corporation - initial API and implementation
+ -->
+
+<index>
+ <entry keyword="eclipse">
+ <topic href="topic3.html" label="ide"/>
+ <see keyword="helios"/>
+ </entry>
+ <entry keyword="eclipse">
+ <entry keyword ="workbench">
+ <topic href="topic3.html" label="views"/>
+ </entry>
+ <see keyword="helios"></see>
+ </entry>
+ <entry keyword="helios">
+ <see keyword="eclipse"/>
+ </entry>
+ <entry keyword="eclipse">
+ <see keyword="helios">
+ <subpath keyword = "release"/>
+ </see>
+ </entry>
+</index>
diff --git a/org.eclipse.ua.tests/data/help/index/index.xml b/org.eclipse.ua.tests/data/help/index/index.xml
index a29bee535..7c8d32725 100644
--- a/org.eclipse.ua.tests/data/help/index/index.xml
+++ b/org.eclipse.ua.tests/data/help/index/index.xml
@@ -64,5 +64,5 @@
</entry>
<entry keyword="overhead">
<topic href="data/help/index/topic1.html"/>
- </entry>
+ </entry> <entry keyword="character &gt;"> <topic href="data/help/index/topic1.html"/> </entry> <entry keyword="character &lt;"> <topic href="data/help/index/topic1.html"/> </entry> <entry keyword="character &amp;"> <topic href="data/help/index/topic1.html"/> </entry> <entry keyword="character '"> <topic href="data/help/index/topic1.html"/> </entry> <entry keyword="character &quot;"> <topic href="data/help/index/topic1.html"/> </entry> <entry keyword="bundle"> <topic href="data/help/index/topic1.html" title = "loading"/> <entry keyword = "development environment"> <topic href="data/help/index/topic2.html" title = "dev"/> </entry> </entry> <entry keyword="Error - this entry is empty"/> <entry keyword="plug-in"> <see keyword="bundle"/> <see keyword="assistance"/> <see keyword="invalidSee"/> </entry> <entry keyword="PDE"> <see keyword="bundle"> <subpath keyword = "development environment" /> </see> </entry> <entry keyword="special characters"> <see keyword="character &gt;"/> <see keyword="character &lt;"/> <see keyword="character &amp;"/> <see keyword="character '"/> <see keyword="character &quot;"/> </entry>
</index>
diff --git a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/index/IndexAssemblerTest.java b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/index/IndexAssemblerTest.java
index 5f3cefdb6..3d612902c 100644
--- a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/index/IndexAssemblerTest.java
+++ b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/index/IndexAssemblerTest.java
@@ -20,14 +20,20 @@ import junit.framework.TestSuite;
import org.eclipse.core.runtime.Platform;
import org.eclipse.help.IIndexEntry;
+import org.eclipse.help.IIndexEntry2;
+import org.eclipse.help.IIndexSee;
import org.eclipse.help.ITopic;
+import org.eclipse.help.IUAElement;
+import org.eclipse.help.internal.Topic;
import org.eclipse.help.internal.UAElement;
import org.eclipse.help.internal.dynamic.DocumentWriter;
import org.eclipse.help.internal.index.Index;
import org.eclipse.help.internal.index.IndexAssembler;
import org.eclipse.help.internal.index.IndexContribution;
+import org.eclipse.help.internal.index.IndexEntry;
import org.eclipse.help.internal.index.IndexFile;
import org.eclipse.help.internal.index.IndexFileParser;
+import org.eclipse.help.internal.index.IndexSee;
import org.eclipse.ua.tests.plugin.UserAssistanceTestPlugin;
public class IndexAssemblerTest extends TestCase {
@@ -55,6 +61,33 @@ public class IndexAssemblerTest extends TestCase {
assertEquals(trimWhiteSpace(expected), trimWhiteSpace(actual));
}
+ public void testAssembleWithSeeAlso() throws Exception {
+ IndexFileParser parser = new IndexFileParser();
+ IndexContribution contrib = parser.parse(new IndexFile(UserAssistanceTestPlugin.getPluginId(), "data/help/index/assembler/d.xml", "en"));
+ IndexAssembler assembler = new IndexAssembler();
+ List contributions = new ArrayList(Arrays.asList(new Object[] { contrib }));
+ Index index = assembler.assemble(contributions, Platform.getNL());
+ IIndexEntry[] children = (IIndexEntry[]) index.getEntries();
+ assertEquals(2,children.length);
+ IIndexEntry eclipseEntry = children[0];
+ assertEquals("eclipse", eclipseEntry.getKeyword());
+ IUAElement[] eclipseChildren = eclipseEntry.getChildren();
+ assertEquals(4, eclipseChildren.length);
+ assertTrue(eclipseChildren[0] instanceof Topic);
+ assertTrue(eclipseChildren[1] instanceof IndexEntry);
+ assertTrue(eclipseChildren[2] instanceof IndexSee);
+ assertTrue(eclipseChildren[3] instanceof IndexSee);
+ IndexSee seeHelios = (IndexSee) eclipseChildren[2];
+ IndexSee seeHeliosRelease = (IndexSee) eclipseChildren[3];
+ assertEquals(0, seeHelios.getSubpathElements().length);
+ assertEquals(1, seeHeliosRelease.getSubpathElements().length);
+ IIndexEntry heliosEntry = children[1];
+ assertEquals("helios", heliosEntry.getKeyword());
+ IIndexSee[] heliosSees = ((IIndexEntry2)heliosEntry).getSees();
+ assertEquals(1, heliosSees.length);
+ assertEquals("eclipse", heliosSees[0].getKeyword());
+ }
+
public void testTitle() throws Exception{
IndexFileParser parser = new IndexFileParser();
IndexContribution contrib = parser.parse(new IndexFile(UserAssistanceTestPlugin.getPluginId(), "data/help/index/assembler/hasTitle.xml", "en"));
diff --git a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/other/AllOtherHelpTests.java b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/other/AllOtherHelpTests.java
index d2c75f1b1..bd717da77 100644
--- a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/other/AllOtherHelpTests.java
+++ b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/other/AllOtherHelpTests.java
@@ -42,5 +42,6 @@ public class AllOtherHelpTests extends TestSuite {
addTestSuite(XHTMLEntityTest.class);
addTestSuite(PathResolutionTest.class);
addTestSuite(IndexEntryTest.class);
+ addTestSuite(IndexSeeTest.class);
}
}
diff --git a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/other/IndexEntryTest.java b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/other/IndexEntryTest.java
index c750d37e2..cbea6f7cd 100644
--- a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/other/IndexEntryTest.java
+++ b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/other/IndexEntryTest.java
@@ -15,10 +15,15 @@ import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;
+import org.eclipse.help.IIndexEntry;
+import org.eclipse.help.IIndexEntry2;
+import org.eclipse.help.IIndexSee;
+import org.eclipse.help.ITopic;
import org.eclipse.help.internal.Topic;
import org.eclipse.help.internal.base.BaseHelpSystem;
import org.eclipse.help.internal.base.HelpEvaluationContext;
import org.eclipse.help.internal.index.IndexEntry;
+import org.eclipse.help.internal.index.IndexSee;
import org.eclipse.ua.tests.help.util.DocumentCreator;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
@@ -43,6 +48,7 @@ public class IndexEntryTest extends TestCase {
private final String ENTRY_ECLIPSE = "<entry keyword=\"eclipse\"/>";
private final String ENTRY_BUGZILLA = "<entry keyword=\"bugzilla\"/>";
private final String TOPIC_BUGZILLA = "<topic href=\"https://bugs.eclipse.org/bugs/\" label=\"bugzilla\"/>";
+ private final String SEE_ALSO_SDK = "<see keyword=\"sdk\"/>";
private final String ENTRY_WITH_ENABLEMENT = ENTRY_HEAD_ECLIPSE + ENABLEMENT_CHEATSHEETS + ENTRY_END;
private final String ENTRY_NOT_ENABLED = ENTRY_HEAD_ECLIPSE + ENABLEMENT_INVALID + ENTRY_END;
@@ -59,6 +65,7 @@ public class IndexEntryTest extends TestCase {
+ " keyword=\"Transformations and transformation configurations\"/>";
private final String ENTRY_WITH_CHILD = ENTRY_HEAD_ECLIPSE + ENTRY_BUGZILLA + ENTRY_END;
private final String ENTRY_WITH_TOPIC = ENTRY_HEAD_ECLIPSE + TOPIC_BUGZILLA + ENTRY_END;
+ private final String ENTRY_WITH_SEE = ENTRY_HEAD_ECLIPSE + SEE_ALSO_SDK + ENTRY_END;
public static Test suite() {
return new TestSuite(IndexEntryTest.class);
@@ -87,7 +94,7 @@ public class IndexEntryTest extends TestCase {
assertEquals(ECLIPSE, entry.getKeyword());
assertEquals(0, entry.getTopics().length);
assertEquals(0, entry.getSubentries().length);
- //assertEquals(0, entry.getSees().length);
+ assertEquals(0, entry.getSees().length);
}
public void testCopySimpleIndexEntry() {
@@ -112,7 +119,7 @@ public class IndexEntryTest extends TestCase {
assertEquals(BUGZILLA, child2.getKeyword());
assertEquals(1, entry2.getSubentries().length);
}
-
+
public void testCopyIndexEntryWithTopic() {
IndexEntry entry1;
entry1 = createEntry(ENTRY_WITH_TOPIC);
@@ -130,6 +137,22 @@ public class IndexEntryTest extends TestCase {
assertEquals(BUGZILLA, child2.getLabel());
assertEquals(BUGZILLA_HREF, child2.getHref());
}
+
+ public void testCopyIndexEntryWithSee() {
+ IndexEntry entry1;
+ entry1 = createEntry(ENTRY_WITH_SEE);
+ IndexEntry entry2 = new IndexEntry(entry1);
+
+ assertEquals(0, entry1.getSubentries().length);
+ assertEquals(1, entry1.getSees().length);
+ IndexSee child1 = (IndexSee)entry1.getSees()[0];
+ assertEquals("sdk", child1.getKeyword());
+
+ assertEquals(0, entry2.getSubentries().length);
+ assertEquals(1, entry2.getSees().length);
+ IndexSee child2 = (IndexSee)entry2.getSees()[0];
+ assertEquals("sdk", child2.getKeyword());
+ }
public void testEnabledIndexEntry() {
IndexEntry entry;
@@ -232,49 +255,86 @@ public class IndexEntryTest extends TestCase {
assertFalse(entry2.isEnabled(HelpEvaluationContext.getContext()));
assertFalse(entry3.isEnabled(HelpEvaluationContext.getContext()));
}
+
+ public void testUserEntry() {
+ UserIndexEntry u1 = createUserEntry();
+ checkEntryChildEnablement(u1);
+ IndexEntry entry = new IndexEntry(u1);
+ assertEquals("java", entry.getKeyword());
+ assertTrue(entry.isEnabled(HelpEvaluationContext.getContext()));
+ checkCreatedEntry(entry);
+ }
/*
- * Disabled, see Bug 210024 [Help] IndexEntry element problems constructing from an IIndexEntry
- public void testUserTopicWithFilteredChildren() {
- UserTopic u1 = new UserTopic(ECLIPSE, ECLIPSE_HREF, true);
- UserTopic u2 = new UserTopic(BUGZILLA, BUGZILLA_HREF, false);
- u1.addTopic(u2);
- Topic t1 = new Topic(u1);
- assertEquals(ECLIPSE, t1.getLabel());
- assertEquals(ECLIPSE_HREF, t1.getHref());
- assertTrue(t1.isEnabled(HelpEvaluationContext.getContext()));
- assertEquals(1, t1.getChildren().length);
- ITopic t2 = t1.getSubentrys()[0];
- assertEquals(BUGZILLA, t2.getLabel());
- assertEquals(BUGZILLA_HREF, t2.getHref());
- assertFalse(t2.isEnabled(HelpEvaluationContext.getContext()));
+ * Disabled, see Bug 210024 [Help] Topic element problems constructing from an ITopic
+ public void testUserEntryChildEnablement() {
+ UserIndexEntry u1 = createUserEntry();
+ IndexEntry entry = new IndexEntry(u1);
+ assertEquals("java", entry.getKeyword());
+ assertTrue(entry.isEnabled(HelpEvaluationContext.getContext()));
+ checkEntryChildEnablement(entry);
}
*/
- /*
- public void testCopyUserTopicWithChildren() {
- UserTopic u1 = new UserTopic(ECLIPSE, ECLIPSE_HREF, true);
- UserTopic u2 = new UserTopic(BUGZILLA, BUGZILLA_HREF, true);
- u1.addTopic(u2);
- Topic t1 = new Topic(u1);
- Topic t2 = new Topic(t1);
+ public void testCopyUserEntry() {
+ UserIndexEntry u1 = createUserEntry();
+ IndexEntry entry1 = new IndexEntry(u1);
+ IndexEntry entry2 = new IndexEntry(entry1);
+ checkCreatedEntry(entry1);
+ checkCreatedEntry(entry2);
+ }
- assertEquals(ECLIPSE, t1.getLabel());
- assertEquals(ECLIPSE_HREF, t1.getHref());
- assertTrue(t1.isEnabled(HelpEvaluationContext.getContext()));
- assertEquals(1, t1.getChildren().length);
- ITopic t1s = t1.getSubentrys()[0];
- assertEquals(BUGZILLA, t1s.getLabel());
- assertEquals(BUGZILLA_HREF, t1s.getHref());
-
- assertEquals(ECLIPSE, t2.getLabel());
- assertEquals(ECLIPSE_HREF, t2.getHref());
- assertTrue(t2.isEnabled(HelpEvaluationContext.getContext()));
- assertEquals(1, t2.getChildren().length);
- ITopic t2s = t2.getSubentrys()[0];
- assertEquals(BUGZILLA, t2s.getLabel());
- assertEquals(BUGZILLA_HREF, t2s.getHref());
+ private void checkCreatedEntry(IIndexEntry2 entry) {
+ assertEquals("java", entry.getKeyword());
+ assertTrue(entry.isEnabled(HelpEvaluationContext.getContext()));
+ IIndexEntry[] subentries = entry.getSubentries();
+ ITopic[] topics = entry.getTopics();
+ IIndexSee[] sees = entry.getSees();
+ assertEquals(2, subentries.length);
+ assertEquals(1, sees.length);
+ assertEquals(3,topics.length);
+ assertEquals("jdt", subentries[0].getKeyword());
+ assertEquals("compiler", subentries[1].getKeyword());
+ assertEquals("label1", topics[0].getLabel());
+ assertEquals("label2", topics[1].getLabel());
+ assertEquals("label3", topics[2].getLabel());
+ assertEquals("href1", topics[0].getHref());
+ assertEquals("href2", topics[1].getHref());
+ assertEquals("href3", topics[2].getHref());
+ assertEquals("beans", sees[0].getKeyword());
+ }
+
+ private void checkEntryChildEnablement(IIndexEntry2 entry) {
+ IIndexEntry[] subentries = entry.getSubentries();
+ ITopic[] topics = entry.getTopics();
+ IIndexSee[] sees = entry.getSees();
+ assertEquals(2, subentries.length);
+ assertEquals(1, sees.length);
+ assertEquals(3,topics.length);
+ assertTrue(subentries[0].isEnabled(HelpEvaluationContext.getContext()));
+ assertFalse(subentries[1].isEnabled(HelpEvaluationContext.getContext()));
+ assertTrue(topics[0].isEnabled(HelpEvaluationContext.getContext()));
+ assertFalse(topics[1].isEnabled(HelpEvaluationContext.getContext()));
+ assertTrue(topics[2].isEnabled(HelpEvaluationContext.getContext()));
+ assertTrue(sees[0].isEnabled(HelpEvaluationContext.getContext()));
+ }
+
+ private UserIndexEntry createUserEntry() {
+ UserIndexEntry u1;
+ u1 = new UserIndexEntry("java", true);
+ UserIndexEntry u2 = new UserIndexEntry("jdt", true);
+ UserIndexEntry u3 = new UserIndexEntry("compiler", false);
+ UserTopic t1 = new UserTopic("label1", "href1", true);
+ UserTopic t2 = new UserTopic("label2", "href2", false);
+ UserTopic t3 = new UserTopic("label3", "href3", true);
+ UserIndexSee s1 = new UserIndexSee("beans", true);
+ u1.addEntry(u2);
+ u1.addEntry(u3);
+ u1.addTopic(t1);
+ u1.addTopic(t2);
+ u1.addTopic(t3);
+ u1.addSee(s1);
+ return u1;
}
- */
}
diff --git a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/other/IndexSeeTest.java b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/other/IndexSeeTest.java
new file mode 100644
index 000000000..f481f0f8a
--- /dev/null
+++ b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/other/IndexSeeTest.java
@@ -0,0 +1,257 @@
+/*******************************************************************************
+ * Copyright (c) 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.ua.tests.help.other;
+
+import junit.framework.Test;
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+
+import org.eclipse.help.IIndexSubpath;
+import org.eclipse.help.internal.base.BaseHelpSystem;
+import org.eclipse.help.internal.index.IndexSee;
+import org.eclipse.ua.tests.help.util.DocumentCreator;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+
+public class IndexSeeTest extends TestCase {
+
+ private static final String AGUILA = "\u00E1guila"; // 00E1 is an accented letter 'a'
+ private static final String ECLIPSE = "eclipse";
+ private static final String SDK = "sdk";
+ private static final String VIEWS = "views";
+ private static final String SEE_END = "</see>";
+ private static final String SEE_HEAD_ECLIPSE = "<see keyword=\"eclipse\">";
+ private static final String SEE_ECLIPSE = "<see keyword=\"eclipse\"/>";
+ private static final String SEE_SDK = "<see keyword=\"sdk\"/>";
+ private static final String SUBPATH_SDK = "<subpath keyword=\"sdk\">";
+ private static final String SUBPATH_VIEWS = "<subpath keyword=\"views\">";
+ private static final String SUBPATH_END = "</subpath>";
+ private static final String SEE_ECLIPSE_SDK = SEE_HEAD_ECLIPSE +
+ SUBPATH_SDK + SUBPATH_END + SEE_END;
+ private static final String SEE_ECLIPSE_VIEWS = SEE_HEAD_ECLIPSE +
+ SUBPATH_SDK + SUBPATH_END + SUBPATH_VIEWS + SUBPATH_END + SEE_END;
+ private static final String SEE_ECLIPSE_SDK_VIEWS = SEE_HEAD_ECLIPSE +
+ SUBPATH_SDK + SUBPATH_END + SUBPATH_VIEWS + SUBPATH_END + SEE_END;
+
+ public static Test suite() {
+ return new TestSuite(IndexSeeTest.class);
+ }
+
+ protected void setUp() throws Exception {
+ BaseHelpSystem.setMode(BaseHelpSystem.MODE_WORKBENCH);
+ }
+
+ private IndexSee createSee(final String elementSource) {
+ IndexSee element;
+ Document doc;
+ try {
+ doc = DocumentCreator.createDocument(elementSource);
+ } catch (Exception e) {
+ fail("Caught Exception");
+ doc = null;
+ }
+ element = new IndexSee((Element) doc.getFirstChild());
+ return element;
+ }
+
+ private IndexSee createSimpleSee(final String keyword) {
+ IndexSee element;
+ Document doc;
+ String elementSource = "<see keyword=\"" + keyword + "\" />";
+ try {
+ doc = DocumentCreator.createDocument(elementSource);
+ } catch (Exception e) {
+ fail("Caught Exception");
+ doc = null;
+ }
+ element = new IndexSee((Element) doc.getFirstChild());
+ return element;
+ }
+
+
+ public void testSimpleIndexSee() {
+ IndexSee see;
+ see = createSee(SEE_ECLIPSE);
+ assertEquals(ECLIPSE, see.getKeyword());
+
+ }
+
+ public void testCopySimpleIndexSee() {
+ IndexSee see1;
+ see1 = createSee(SEE_ECLIPSE);
+ IndexSee see2 = new IndexSee(see1);
+ assertEquals(ECLIPSE, see1.getKeyword());
+ assertEquals(0, see1.getSubpathElements().length);
+ assertEquals(ECLIPSE, see1.getKeyword());
+
+ assertEquals(ECLIPSE, see2.getKeyword());
+ assertEquals(0, see2.getSubpathElements().length);
+ assertEquals(ECLIPSE, see2.getKeyword());
+ }
+
+ public void testCopyIndexSeeWithSubpath() {
+ IndexSee see1;
+ see1 = createSee(SEE_ECLIPSE_SDK);
+ IndexSee see2 = new IndexSee(see1);
+
+ assertEquals(1, see1.getSubpathElements().length);
+ assertEquals(ECLIPSE, see1.getKeyword());
+ assertEquals(SDK, see1.getSubpathElements()[0].getKeyword());
+
+ assertEquals(1, see2.getSubpathElements().length);
+ assertEquals(ECLIPSE, see2.getKeyword());
+ assertEquals(SDK, see2.getSubpathElements()[0].getKeyword());
+
+ }
+
+ public void testCopyIndexSeeWithLongerSubpath() {
+ IndexSee see1;
+ see1 = createSee(SEE_ECLIPSE_SDK_VIEWS);
+ IndexSee see2 = new IndexSee(see1);
+
+ assertEquals(2, see1.getSubpathElements().length);
+ assertEquals(ECLIPSE, see1.getKeyword());
+ assertEquals(SDK, see1.getSubpathElements()[0].getKeyword());
+ assertEquals(VIEWS, see1.getSubpathElements()[1].getKeyword());
+
+ assertEquals(2, see2.getSubpathElements().length);
+ assertEquals(ECLIPSE, see2.getKeyword());
+ assertEquals(SDK, see2.getSubpathElements()[0].getKeyword());
+ assertEquals(VIEWS, see2.getSubpathElements()[1].getKeyword());
+ }
+
+ public void testCompareSimpleSame() {
+ IndexSee see1 = createSee(SEE_ECLIPSE);
+ IndexSee see2 = createSee(SEE_ECLIPSE);
+ assertTrue (see1.equals(see2));
+ assertEquals(0, see1.compareTo(see2));
+ assertEquals(0, see2.compareTo(see1));
+ assertEquals(see1.hashCode(), see2.hashCode());
+ }
+
+ public void testCompareSimpleDifferent() {
+ IndexSee see1 = createSee(SEE_ECLIPSE);
+ IndexSee see2 = createSee(SEE_SDK);
+ assertFalse (see1.equals(see2));
+ assertTrue(see1.compareTo(see2) < 0);
+ assertTrue(see2.compareTo(see1) > 0);
+ }
+
+ public void testCompareCompoundSame() {
+ IndexSee see1 = createSee(SEE_ECLIPSE_SDK);
+ IndexSee see2 = createSee(SEE_ECLIPSE_SDK);
+ assertTrue (see1.equals(see2));
+ assertEquals(0, see1.compareTo(see2));
+ assertEquals(0, see2.compareTo(see1));
+ assertEquals(see1.hashCode(), see2.hashCode());
+ }
+
+ public void testCompareCompoundDifferent() {
+ IndexSee see1 = createSee(SEE_ECLIPSE_SDK);
+ IndexSee see2 = createSee(SEE_ECLIPSE_VIEWS);
+ assertFalse (see1.equals(see2));
+ assertTrue(see1.compareTo(see2) < 0);
+ assertTrue(see2.compareTo(see1) > 0);
+ }
+
+ public void testCompareCompoundDifferentLengths() {
+ IndexSee see1 = createSee(SEE_ECLIPSE_SDK);
+ IndexSee see2 = createSee(SEE_ECLIPSE_SDK_VIEWS);
+ assertFalse (see1.equals(see2));
+ assertTrue(see1.compareTo(see2) < 0);
+ assertTrue(see2.compareTo(see1) > 0);
+ }
+
+ public void testCompare_AAA_abacus() {
+ IndexSee see1 = createSimpleSee("AAA");
+ IndexSee see2 = createSimpleSee("abacus");
+ assertFalse (see1.equals(see2));
+ assertTrue(see1.compareTo(see2) < 0);
+ assertTrue(see2.compareTo(see1) > 0);
+ }
+
+ public void testCompare_abacus_ABC() {
+ IndexSee see1 = createSimpleSee("abacus");
+ IndexSee see2 = createSimpleSee(AGUILA);
+ assertFalse (see1.equals(see2));
+ assertTrue(see1.compareTo(see2) < 0);
+ assertTrue(see2.compareTo(see1) > 0);
+ }
+
+ public void testCompare_ABC_aguila() {
+ IndexSee see1 = createSimpleSee("ABC");
+ IndexSee see2 = createSimpleSee(AGUILA);
+ assertFalse (see1.equals(see2));
+ assertTrue(see1.compareTo(see2) < 0);
+ assertTrue(see2.compareTo(see1) > 0);
+ }
+
+ public void testCompare_aguila_axe() {
+ IndexSee see1 = createSimpleSee(AGUILA);
+ IndexSee see2 = createSimpleSee("axe");
+ assertFalse (see1.equals(see2));
+ assertTrue(see1.compareTo(see2) < 0);
+ assertTrue(see2.compareTo(see1) > 0);
+ }
+
+ public void testCompare_to_underscore() {
+ IndexSee see1 = createSimpleSee("abc");
+ IndexSee see2 = createSimpleSee("_xyz");
+ assertFalse (see1.equals(see2));
+ assertTrue(see1.compareTo(see2) > 0);
+ assertTrue(see2.compareTo(see1) < 0);
+ }
+
+ public void testUserSee() {
+ UserIndexSee u1;
+ u1 = createUserSee();
+ IndexSee see = new IndexSee(u1);
+ checkCreatedSee(see);
+ }
+
+ public void testCopyUserSee() {
+ UserIndexSee u1;
+ u1 = createUserSee();
+ IndexSee see = new IndexSee(u1);
+ IndexSee see2 = new IndexSee(see);
+ checkCreatedSee(see);
+ checkCreatedSee(see2);
+ }
+
+ public void testCreateTwiceUserSee() {
+ UserIndexSee u1;
+ u1 = createUserSee();
+ IndexSee see = new IndexSee(u1);
+ IndexSee see2 = new IndexSee(u1);
+ checkCreatedSee(see);
+ checkCreatedSee(see2);
+ }
+
+ private UserIndexSee createUserSee() {
+ UserIndexSee u1;
+ u1 = new UserIndexSee("eclipse", false);
+ UserIndexSubpath u2 = new UserIndexSubpath("platform");
+ UserIndexSubpath u3 = new UserIndexSubpath("ui");
+ u1.addSubpath(u2);
+ u1.addSubpath(u3);
+ return u1;
+ }
+
+ private void checkCreatedSee(IndexSee see) {
+ assertEquals("eclipse", see.getKeyword());
+ IIndexSubpath[] subpath = see.getSubpathElements();
+ assertEquals(2, subpath.length);
+ assertEquals("platform", subpath[0].getKeyword());
+ assertEquals("ui", subpath[1].getKeyword());
+ }
+
+}
diff --git a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/other/UserIndexEntry.java b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/other/UserIndexEntry.java
new file mode 100644
index 000000000..f4150c80d
--- /dev/null
+++ b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/other/UserIndexEntry.java
@@ -0,0 +1,84 @@
+/*******************************************************************************
+ * Copyright (c) 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.ua.tests.help.other;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.core.expressions.IEvaluationContext;
+import org.eclipse.help.IIndexEntry;
+import org.eclipse.help.IIndexEntry2;
+import org.eclipse.help.IIndexSee;
+import org.eclipse.help.ITopic;
+import org.eclipse.help.IUAElement;
+
+/**
+ * This class is used to test topics created using the ITopic API
+ */
+
+public class UserIndexEntry implements IIndexEntry2 {
+
+ private List subentries = new ArrayList();
+ private List sees = new ArrayList();
+ private List topics = new ArrayList();
+ private boolean isEnabled;
+ private String keyword;
+
+ public IUAElement[] getChildren() {
+ IUAElement[] subentries = getSubentries();
+ IUAElement[] sees = getSees();
+ IUAElement[] topics = getTopics();
+ IUAElement[] result = new IUAElement[subentries.length + sees.length + topics.length];
+ System.arraycopy(topics, 0, result, 0, topics.length);
+ System.arraycopy(subentries, 0, result, topics.length, subentries.length);
+ System.arraycopy(sees, 0, result, topics.length + subentries.length, sees.length);
+ return result;
+ }
+
+ public boolean isEnabled(IEvaluationContext context) {
+ return isEnabled;
+ }
+
+ public void addSee(IIndexSee child) {
+ sees.add(child);
+ }
+
+ public void addEntry(IIndexEntry child) {
+ subentries.add(child);
+ }
+
+ public void addTopic(ITopic child) {
+ topics.add(child);
+ }
+
+ public UserIndexEntry(String keyword, boolean isEnabled) {
+ this.keyword = keyword;
+ this.isEnabled = isEnabled;
+ }
+
+ public IIndexSee[] getSees() {
+ return (IIndexSee[])sees.toArray(new IIndexSee[0]);
+ }
+
+ public String getKeyword() {
+ return keyword;
+ }
+
+ public IIndexEntry[] getSubentries() {
+ return (IIndexEntry[])subentries.toArray(new IIndexEntry[0]);
+ }
+
+ public ITopic[] getTopics() {
+ return (ITopic[])topics.toArray(new ITopic[0]);
+ }
+
+}
diff --git a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/other/UserIndexSee.java b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/other/UserIndexSee.java
new file mode 100644
index 000000000..7b45e9d29
--- /dev/null
+++ b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/other/UserIndexSee.java
@@ -0,0 +1,57 @@
+/*******************************************************************************
+ * Copyright (c) 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.ua.tests.help.other;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.core.expressions.IEvaluationContext;
+import org.eclipse.help.IIndexSee;
+import org.eclipse.help.IIndexSubpath;
+import org.eclipse.help.IUAElement;
+
+public class UserIndexSee implements IIndexSee {
+
+ private List children = new ArrayList();
+ private boolean isEnabled;
+ private String keyword;
+
+ public IUAElement[] getChildren() {
+ return getSubpathElements();
+ }
+
+ public boolean isEnabled(IEvaluationContext context) {
+ return isEnabled;
+ }
+
+ public void addSubpath(IIndexSubpath child) {
+ children.add(child);
+ }
+
+ public UserIndexSee(String keyword, boolean isEnabled) {
+ this.keyword = keyword;
+ this.isEnabled = isEnabled;
+ }
+
+ public String getKeyword() {
+ return keyword;
+ }
+
+ public IIndexSubpath[] getSubpathElements() {
+ return (IIndexSubpath[])children.toArray(new IIndexSubpath[0]);
+ }
+
+ public boolean isSeeAlso() {
+ return false;
+ }
+
+}
diff --git a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/other/UserIndexSubpath.java b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/other/UserIndexSubpath.java
new file mode 100644
index 000000000..d1d578ab3
--- /dev/null
+++ b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/other/UserIndexSubpath.java
@@ -0,0 +1,40 @@
+/*******************************************************************************
+ * Copyright (c) 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.ua.tests.help.other;
+
+import org.eclipse.core.expressions.IEvaluationContext;
+import org.eclipse.help.IIndexSubpath;
+import org.eclipse.help.IUAElement;
+
+
+public class UserIndexSubpath implements IIndexSubpath {
+
+ private String keyword;
+
+ public UserIndexSubpath(String keyword) {
+ this.keyword = keyword;
+ }
+
+
+ public String getKeyword() {
+ return keyword;
+ }
+
+ public IUAElement[] getChildren() {
+ return new IUAElement[0];
+ }
+
+ public boolean isEnabled(IEvaluationContext context) {
+ return true;
+ }
+
+}

Back to the top