blob: e33874ea10b44bd9c5759d48143bedbe638592ae [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2008, 2011 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 junit.framework.TestCase;
import org.eclipse.core.runtime.preferences.IEclipsePreferences;
import org.eclipse.core.runtime.preferences.InstanceScope;
import org.eclipse.help.internal.base.HelpBasePlugin;
import org.eclipse.help.internal.base.IHelpBaseConstants;
import org.eclipse.help.internal.base.remote.PreferenceFileHandler;
import org.eclipse.help.internal.base.remote.RemoteIC;
public class RemotePreferenceTest extends TestCase {
public static void setPreference(String name, String value) {
IEclipsePreferences prefs = InstanceScope.INSTANCE.getNode(HelpBasePlugin.PLUGIN_ID);
prefs.put(name, value);
}
@Override
protected void setUp() throws Exception {
RemotePreferenceStore.savePreferences();
}
@Override
protected void tearDown() throws Exception {
RemotePreferenceStore.restorePreferences();
}
private void setToDefault(String preference) {
IEclipsePreferences prefs = InstanceScope.INSTANCE.getNode(HelpBasePlugin.PLUGIN_ID);
prefs.remove(preference);
}
public void testDefaults() {
setToDefault(IHelpBaseConstants.P_KEY_REMOTE_HELP_NAME);
setToDefault(IHelpBaseConstants.P_KEY_REMOTE_HELP_HOST);
setToDefault(IHelpBaseConstants.P_KEY_REMOTE_HELP_PATH);
setToDefault(IHelpBaseConstants.P_KEY_REMOTE_HELP_PORT);
setToDefault(IHelpBaseConstants.P_KEY_REMOTE_HELP_ICEnabled);
setToDefault(IHelpBaseConstants.P_KEY_REMOTE_HELP_ON);
setToDefault(IHelpBaseConstants.P_KEY_REMOTE_HELP_DEFAULT_PORT);
PreferenceFileHandler handler = new PreferenceFileHandler();
assertEquals(0, handler.getTotalRemoteInfocenters());
assertEquals(0, handler.getEnabledEntries().length);
}
/*
* Test the default settings from Eclipse 3.3
*/
public void test33Defaults() {
setPreference("remoteHelpOn", "false");
setPreference("remoteHelpHost", "");
setPreference("remoteHelpPath", "/help");
setPreference("remoteHelpUseDefaultPort", "true");
setPreference("remoteHelpPort", "80");
setPreference("remoteHelpName", "");
setPreference("remoteHelpICEnabled", "");
setPreference("remoteHelpICContributed", "");
PreferenceFileHandler handler = new PreferenceFileHandler();
assertEquals(0, handler.getTotalRemoteInfocenters());
assertEquals(0, handler.getEnabledEntries().length);
}
/*
* Test settings which worked in Eclipse 3.3 to read a remote infocenter
*/
public void test33Remote() {
setPreference("remoteHelpOn", "true");
setPreference("remoteHelpHost", "localhost");
setPreference("remoteHelpPath", "/help");
setPreference("remoteHelpUseDefaultPort", "false");
setPreference("remoteHelpPort", "8081");
setPreference("remoteHelpName", "");
setPreference("remoteHelpICEnabled", "");
setPreference("remoteHelpICContributed", "");
PreferenceFileHandler handler = new PreferenceFileHandler();
assertEquals(1, handler.getTotalRemoteInfocenters());
assertEquals(1, handler.getEnabledEntries().length);
}
public void testZeroRemoteInfocenters() {
setPreference("remoteHelpOn", "true");
setPreference("remoteHelpHost", "");
setPreference("remoteHelpPath", "");
setPreference("remoteHelpUseDefaultPort", "");
setPreference("remoteHelpPort", "");
setPreference("remoteHelpName", "");
setPreference("remoteHelpICEnabled", "");
setPreference("remoteHelpICContributed", "");
PreferenceFileHandler handler = new PreferenceFileHandler();
assertEquals(0, handler.getTotalRemoteInfocenters());
assertEquals(0, handler.getHostEntries().length);
assertEquals(0, handler.getPortEntries().length);
assertEquals(0, handler.getEnabledEntries().length);
assertEquals(0, handler.getPathEntries().length);
}
public void testOneRemoteInfocenter() {
setPreference("remoteHelpOn", "true");
setPreference("remoteHelpHost", "localhost");
setPreference("remoteHelpPath", "/help");
setPreference("remoteHelpUseDefaultPort", "");
setPreference("remoteHelpPort", "8081");
setPreference("remoteHelpName", "local");
setPreference("remoteHelpICEnabled", "true");
setPreference("remoteHelpICContributed", "false");
PreferenceFileHandler handler = new PreferenceFileHandler();
assertEquals(1, handler.getTotalRemoteInfocenters());
assertEquals(1, handler.getHostEntries().length);
assertEquals("localhost", handler.getHostEntries()[0]);
assertEquals(1, handler.getPortEntries().length);
assertEquals("8081", handler.getPortEntries()[0]);
assertEquals(1, handler.getEnabledEntries().length);
assertEquals("true", handler.getEnabledEntries()[0].toLowerCase());
assertEquals(1, handler.getPathEntries().length);
assertEquals("/help", handler.getPathEntries()[0].toLowerCase());
}
public void testTwoRemoteInfocenters() {
setPreference("remoteHelpHost", "localhost,www.eclipse.org");
setPreference("remoteHelpPath", "/help,/eclipse/help");
setPreference("remoteHelpUseDefaultPort", "");
setPreference("remoteHelpPort", "8081,8082");
setPreference("remoteHelpName", "local,remote");
setPreference("remoteHelpICEnabled", "true,false");
setPreference("remoteHelpICContributed", "false,false");
PreferenceFileHandler handler = new PreferenceFileHandler();
assertEquals(2, handler.getTotalRemoteInfocenters());
assertEquals(2, handler.getHostEntries().length);
assertEquals("localhost", handler.getHostEntries()[0]);
assertEquals("www.eclipse.org", handler.getHostEntries()[1]);
assertEquals(2, handler.getPortEntries().length);
assertEquals("8081", handler.getPortEntries()[0]);
assertEquals("8082", handler.getPortEntries()[1]);
assertEquals(2, handler.getEnabledEntries().length);
assertEquals("true", handler.getEnabledEntries()[0].toLowerCase());
assertEquals("false", handler.getEnabledEntries()[1].toLowerCase());
assertEquals(2, handler.getPathEntries().length);
assertEquals("/help", handler.getPathEntries()[0].toLowerCase());
assertEquals("/eclipse/help", handler.getPathEntries()[1].toLowerCase());
}
public void testOnePathTwoOfEverythingElse() {
setPreference("remoteHelpOn", "true");
setPreference("remoteHelpHost", "localhost");
setPreference("remoteHelpPath", "/help,/nhelp");
setPreference("remoteHelpUseDefaultPort", "true,false");
setPreference("remoteHelpPort", "8081,8082");
setPreference("remoteHelpName", "local,remote");
setPreference("remoteHelpICEnabled", "true,false");
setPreference("remoteHelpICContributed", "false,true");
PreferenceFileHandler handler = new PreferenceFileHandler();
assertEquals(1, handler.getTotalRemoteInfocenters());
assertEquals(1, handler.getHostEntries().length);
assertEquals("localhost", handler.getHostEntries()[0]);
assertEquals(1, handler.getPortEntries().length);
assertEquals("8081", handler.getPortEntries()[0]);
assertEquals(1, handler.getEnabledEntries().length);
assertEquals("true", handler.getEnabledEntries()[0].toLowerCase());
assertEquals(1, handler.getPathEntries().length);
assertEquals("/help", handler.getPathEntries()[0].toLowerCase());
}
public void testPathOnly() {
setPreference("remoteHelpOn", "true");
setPreference("remoteHelpHost", "localhost");
setPreference("remoteHelpPath", "");
setPreference("remoteHelpUseDefaultPort", "");
setPreference("remoteHelpPort", "");
setPreference("remoteHelpName", "");
setPreference("remoteHelpICEnabled", "");
setPreference("remoteHelpICContributed", "");
PreferenceFileHandler handler = new PreferenceFileHandler();
assertEquals(1, handler.getTotalRemoteInfocenters());
assertEquals(1, handler.getHostEntries().length);
assertEquals("localhost", handler.getHostEntries()[0]);
assertEquals(1, handler.getPortEntries().length);
//assertEquals("80", handler.getPortEntries()[0]);
assertEquals(1, handler.getEnabledEntries().length);
//assertEquals("true", handler.getEnabledEntries()[0].toLowerCase());
assertEquals(1, handler.getPathEntries().length);
//assertEquals("/help", handler.getPathEntries()[0].toLowerCase());
}
public void testWriteNoRemote() {
PreferenceFileHandler.commitRemoteICs(new RemoteIC[0]);
PreferenceFileHandler handler = new PreferenceFileHandler();
assertEquals(0, handler.getTotalRemoteInfocenters());
assertEquals(0, handler.getHostEntries().length);
assertEquals(0, handler.getPortEntries().length);
assertEquals(0, handler.getEnabledEntries().length);
assertEquals(0, handler.getPathEntries().length);
}
public void testWriteOneRemote() {
RemoteIC[] ic = {new RemoteIC(true, "name", "host", "/help", "http","8080")};
PreferenceFileHandler.commitRemoteICs(ic);
PreferenceFileHandler handler = new PreferenceFileHandler();
assertEquals(1, handler.getTotalRemoteInfocenters());
assertEquals(1, handler.getHostEntries().length);
assertEquals("host", handler.getHostEntries()[0]);
assertEquals(1, handler.getPortEntries().length);
assertEquals("8080", handler.getPortEntries()[0]);
assertEquals(1, handler.getEnabledEntries().length);
assertEquals("true", handler.getEnabledEntries()[0].toLowerCase());
assertEquals(1, handler.getPathEntries().length);
assertEquals("/help", handler.getPathEntries()[0].toLowerCase());
}
public void testWriteTwoRemote() {
RemoteIC[] ic = {new RemoteIC(true, "name", "host", "/help", "http", "8080"),
new RemoteIC(false, "remote", "remotehost", "/help2", "http", "8081")};
PreferenceFileHandler.commitRemoteICs(ic);
PreferenceFileHandler handler = new PreferenceFileHandler();
assertEquals(2, handler.getTotalRemoteInfocenters());
assertEquals(2, handler.getHostEntries().length);
assertEquals("host", handler.getHostEntries()[0]);
assertEquals("remotehost", handler.getHostEntries()[1]);
assertEquals(2, handler.getPortEntries().length);
assertEquals("8080", handler.getPortEntries()[0]);
assertEquals("8081", handler.getPortEntries()[1]);
assertEquals(2, handler.getEnabledEntries().length);
assertEquals("true", handler.getEnabledEntries()[0].toLowerCase());
assertEquals("false", handler.getEnabledEntries()[1].toLowerCase());
assertEquals(2, handler.getPathEntries().length);
assertEquals("/help", handler.getPathEntries()[0].toLowerCase());
assertEquals("/help2", handler.getPathEntries()[1].toLowerCase());
}
}