diff options
author | Chris Goldthorpe | 2009-10-08 20:31:29 +0000 |
---|---|---|
committer | Chris Goldthorpe | 2009-10-08 20:31:29 +0000 |
commit | 69b03cb32f5955a8ebdb5412ede15c5924230fee (patch) | |
tree | 84526388c35244f17e47e503d85a5c41ef87e636 /org.eclipse.ua.tests | |
parent | faef9c2d7e7b3c85f2292053647d2bee6bd03f44 (diff) | |
download | eclipse.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')
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 >">
<topic href="data/help/index/topic1.html"/>
</entry>
<entry keyword="character <">
<topic href="data/help/index/topic1.html"/>
</entry>
<entry keyword="character &">
<topic href="data/help/index/topic1.html"/>
</entry>
<entry keyword="character '">
<topic href="data/help/index/topic1.html"/>
</entry>
<entry keyword="character "">
<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 >"/>
<see keyword="character <"/>
<see keyword="character &"/>
<see keyword="character '"/>
<see keyword="character ""/>
</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; + } + +} |