Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris Goldthorpe2009-10-13 19:41:39 +0000
committerChris Goldthorpe2009-10-13 19:41:39 +0000
commitbd70108ccf37497730eeab99dc16314969cb61e5 (patch)
treef00e3c483034c0a2babf9a59db076f73dbfe1a20
parent25d2672149406126d87c796a9b38665933996312 (diff)
downloadeclipse.platform.ua-bd70108ccf37497730eeab99dc16314969cb61e5.tar.gz
eclipse.platform.ua-bd70108ccf37497730eeab99dc16314969cb61e5.tar.xz
eclipse.platform.ua-bd70108ccf37497730eeab99dc16314969cb61e5.zip
Add TocServletTest
-rw-r--r--org.eclipse.ua.tests/data/help/toc/filteredToc/nonPrimaryToc.xml5
-rwxr-xr-xorg.eclipse.ua.tests/help/org/eclipse/ua/tests/help/remote/AllRemoteTests.java3
-rw-r--r--org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/remote/TocServletTest.java127
-rw-r--r--org.eclipse.ua.tests/plugin.xml4
4 files changed, 138 insertions, 1 deletions
diff --git a/org.eclipse.ua.tests/data/help/toc/filteredToc/nonPrimaryToc.xml b/org.eclipse.ua.tests/data/help/toc/filteredToc/nonPrimaryToc.xml
new file mode 100644
index 000000000..23defd251
--- /dev/null
+++ b/org.eclipse.ua.tests/data/help/toc/filteredToc/nonPrimaryToc.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<toc label="Non primary toc">
+ <topic href="data/help/index/topic1.html" label="Topic">
+ </topic>
+</toc>
diff --git a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/remote/AllRemoteTests.java b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/remote/AllRemoteTests.java
index 7e37745fd..b32aaab38 100755
--- a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/remote/AllRemoteTests.java
+++ b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/remote/AllRemoteTests.java
@@ -29,8 +29,9 @@ public class AllRemoteTests extends TestSuite {
* Constructs a new test suite.
*/
public AllRemoteTests() {
- addTestSuite(SearchServletTest.class);
addTestSuite(RemotePreferenceTest.class);
+ addTestSuite(TocServletTest.class);
+ addTestSuite(SearchServletTest.class);
addTestSuite(SearchUsingRemoteHelp.class);
}
}
diff --git a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/remote/TocServletTest.java b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/remote/TocServletTest.java
new file mode 100644
index 000000000..c2a8a291b
--- /dev/null
+++ b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/remote/TocServletTest.java
@@ -0,0 +1,127 @@
+/*******************************************************************************
+ * 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.remote;
+
+import java.io.InputStream;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+
+import junit.framework.TestCase;
+
+import org.eclipse.help.internal.base.BaseHelpSystem;
+import org.eclipse.help.internal.entityresolver.LocalEntityResolver;
+import org.eclipse.help.internal.server.WebappManager;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+import org.xml.sax.InputSource;
+
+public class TocServletTest extends TestCase {
+
+ private int mode;
+
+ protected void setUp() throws Exception {
+ BaseHelpSystem.ensureWebappRunning();
+ mode = BaseHelpSystem.getMode();
+ BaseHelpSystem.setMode(BaseHelpSystem.MODE_INFOCENTER);
+ }
+
+ protected void tearDown() throws Exception {
+ BaseHelpSystem.setMode(mode);
+ }
+
+ public void testTocServletContainsUAToc() throws Exception {
+ Node root = getTocContributions("en");
+ Element[] UARoot = findContributionById(root, "/org.eclipse.ua.tests/data/help/toc/root.xml");
+ assertEquals(1, UARoot.length);
+ }
+
+ public void testTocServletContainsFilteredToc() throws Exception {
+ Node root = getTocContributions("en");
+ Element[] UARoot = findContributionById(root, "/org.eclipse.ua.tests/data/help/toc/filteredToc/toc.xml");
+ assertEquals(1, UARoot.length);
+ }
+
+ public void testTocServletContainsUnlinkedToc() throws Exception {
+ Node root = getTocContributions("en");
+ Element[] UARoot = findContributionById(root, "/org.eclipse.ua.tests/data/help/toc/filteredToc/nonPrimaryToc.xml");
+ assertEquals(1, UARoot.length);
+ }
+
+ public void testReadEnToc() throws Exception {
+ Node root = getTocContributions("en");
+ Element[] uaRoot = findContributionById(root, "/org.eclipse.ua.tests/data/help/search/toc.xml");
+ assertEquals(1, uaRoot.length);
+ Element[] toc = findChildren(uaRoot[0], "toc", "label", "search");
+ assertEquals(1, toc.length);
+ Element[] topicSearch = findChildren(toc[0], "topic", "label", "search");
+ assertEquals(1, topicSearch.length);
+ Element[] topicEn = findChildren(topicSearch[0], "topic", "label", "testen.html");
+ assertEquals(1, topicEn.length);
+ Element[] topicDe = findChildren(topicSearch[0], "topic", "label", "testde.html");
+ assertEquals(0, topicDe.length);
+ }
+
+ public void testReadDeToc() throws Exception {
+ Node root = getTocContributions("de");
+ Element[] uaRoot = findContributionById(root, "/org.eclipse.ua.tests/data/help/search/toc.xml");
+ assertEquals(1, uaRoot.length);
+ Element[] toc = findChildren(uaRoot[0], "toc", "label", "search");
+ assertEquals(1, toc.length);
+ Element[] topicSearch = findChildren(toc[0], "topic", "label", "search");
+ assertEquals(1, topicSearch.length);
+ Element[] topicEn = findChildren(topicSearch[0], "topic", "label", "testen.html");
+ assertEquals(0, topicEn.length);
+ Element[] topicDe = findChildren(topicSearch[0], "topic", "label", "testde.html");
+ assertEquals(1, topicDe.length);
+ }
+
+ private Element[] findContributionById(Node root, String id) {
+ return findChildren(root, "tocContribution", "id", id);
+ }
+
+ private Element[] findChildren(Node parent, String childKind, String attributeName, String attributeValue) {
+ NodeList contributions = parent.getChildNodes();
+ List results = new ArrayList();
+ for (int i = 0; i < contributions.getLength(); i++) {
+ Node next = contributions.item(i);
+ if (next instanceof Element) {
+ Element nextElement = (Element)next;
+ if ( childKind.equals(nextElement.getTagName()) && attributeValue.equals(nextElement.getAttribute(attributeName))) {
+
+ results.add(next);
+ }
+ }
+ }
+ return (Element[]) results.toArray(new Element[results.size()]);
+ }
+
+
+ private Node getTocContributions( String locale)
+ throws Exception {
+ int port = WebappManager.getPort();
+ URL url = new URL("http", "localhost", port, "/help/toc?lang=" + locale);
+ InputStream is = url.openStream();
+ InputSource inputSource = new InputSource(is);
+ DocumentBuilder documentBuilder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
+ documentBuilder.setEntityResolver(new LocalEntityResolver());
+ Document document = documentBuilder.parse(inputSource);
+ Node root = document.getFirstChild();
+ assertEquals("tocContributions", root.getNodeName());
+ return root;
+ }
+
+}
diff --git a/org.eclipse.ua.tests/plugin.xml b/org.eclipse.ua.tests/plugin.xml
index aff9ece16..709c22fe2 100644
--- a/org.eclipse.ua.tests/plugin.xml
+++ b/org.eclipse.ua.tests/plugin.xml
@@ -468,6 +468,10 @@
<tocProvider
class="org.eclipse.ua.tests.help.toc.UaTestTocProvider">
</tocProvider>
+ <toc
+ file="data/help/toc/filteredToc/nonPrimaryToc.xml"
+ primary="false">
+ </toc>
</extension>
<extension point= "org.eclipse.help.contentExtension">

Back to the top