blob: b306917c8c3eddfe7902c09c35250bbc5fb37a2b [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2004, 2006 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.jst.server.tomcat.core.tests.internal;
import java.io.File;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.jst.server.tomcat.core.internal.TomcatServerBehaviour;
import org.eclipse.jst.server.tomcat.core.internal.VerifyResourceSpec;
import org.eclipse.jst.server.tomcat.core.tests.RuntimeLocation;
import junit.framework.TestCase;
public class UtilTestCase extends TestCase {
public void testArgMerge() {
assertEquals("", TomcatServerBehaviour.mergeArguments("", new String[] { }, null, false));
assertEquals("", TomcatServerBehaviour.mergeArguments("", new String[] { }, null, true));
assertEquals("", TomcatServerBehaviour.mergeArguments("", new String[] { }, new String[] { "a" } , true));
}
public void testArgMerge2() {
assertEquals("a=b", TomcatServerBehaviour.mergeArguments("", new String[] { "a=b"}, null, false));
assertEquals("a=b", TomcatServerBehaviour.mergeArguments("", new String[] { "a=b"}, null, true));
// new arguments aren't removed
assertEquals("a=b", TomcatServerBehaviour.mergeArguments("", new String[] { "a=b"}, new String[] { "a" }, true));
}
public void testArgMerge3() {
assertEquals("a=b c=d", TomcatServerBehaviour.mergeArguments("", new String[] { "a=b", "c=d" }, null, false));
assertEquals("a=b c=d", TomcatServerBehaviour.mergeArguments("", new String[] { "a=b", "c=d" }, null, true));
// new arguments aren't removed
assertEquals("a=b c=d", TomcatServerBehaviour.mergeArguments("", new String[] { "a=b", "c=d" }, new String[] { "a" }, true));
}
public void testArgMerge4() {
assertEquals("a=b c=d", TomcatServerBehaviour.mergeArguments("a=b", new String[] { "c=d" }, null, false));
assertEquals("a=b c=d", TomcatServerBehaviour.mergeArguments("a=b", new String[] { "c=d" }, null, true));
// old argument is removed
assertEquals("c=d", TomcatServerBehaviour.mergeArguments("a=b", new String[] { "c=d" }, new String[] { "a" }, true));
}
public void testArgMerge5() {
assertEquals("a=c", TomcatServerBehaviour.mergeArguments("a=b", new String[] { "a=c" }, null, false));
assertEquals("a=c", TomcatServerBehaviour.mergeArguments("a=b", new String[] { "a=c" }, null, true));
// replaced argument is removed
assertEquals("", TomcatServerBehaviour.mergeArguments("a=b", new String[] { "a=c" }, new String[] { "a" }, true));
}
public void testArgMerge6() {
assertEquals("a b=2 d e=3", TomcatServerBehaviour.mergeArguments("a b=c d", new String[] { "b=2", "e=3" }, null, false));
assertEquals("a b=2 d e=3", TomcatServerBehaviour.mergeArguments("a b=c d", new String[] { "b=2", "e=3" }, null, true));
// old argument is removed
assertEquals("b=2 d e=3", TomcatServerBehaviour.mergeArguments("a b=c d", new String[] { "b=2", "e=3" }, new String[] { "a" }, true));
assertEquals("a e=3", TomcatServerBehaviour.mergeArguments("a b=c d", new String[] { "b=2", "e=3" }, new String[] { "b", "d" }, true));
assertEquals("a e=3", TomcatServerBehaviour.mergeArguments("a b=c d", new String[] { "b=2", "e=3" }, new String[] { "b=", "d" }, true));
}
public void testArgMerge7() {
assertEquals("a bb=c d b=2 e=3", TomcatServerBehaviour.mergeArguments("a bb=c d", new String[] { "b=2", "e=3" }, null, false));
assertEquals("a bb=c d b=2 e=3", TomcatServerBehaviour.mergeArguments("a bb=c d", new String[] { "b=2", "e=3" }, null, true));
// remove expected wrong argument
assertEquals("a d b=2 e=3", TomcatServerBehaviour.mergeArguments("a bb=c d", new String[] { "b=2", "e=3" }, new String[] { "b" }, true));
// avoid removing wrong argument
assertEquals("a bb=c d b=2 e=3", TomcatServerBehaviour.mergeArguments("a bb=c d", new String[] { "b=2", "e=3" }, new String[] { "b=" }, true));
}
public void testArgMerge8() {
assertEquals("a", TomcatServerBehaviour.mergeArguments("a", new String[] { }, null, false));
assertEquals("a", TomcatServerBehaviour.mergeArguments("a", new String[] { }, null, true));
// remove single exiting argument
assertEquals("", TomcatServerBehaviour.mergeArguments("a", new String[] { }, new String[] { "a" }, true));
}
public void testArgMerge9() {
assertEquals("a b", TomcatServerBehaviour.mergeArguments("a", new String[] { "b" }, null, false));
assertEquals("a b", TomcatServerBehaviour.mergeArguments("a", new String[] { "b" }, null, true));
// remove single exiting argument
assertEquals("b", TomcatServerBehaviour.mergeArguments("a", new String[] { "b" }, new String[] { "a" }, true));
}
public void testArgMerge10() {
assertEquals("a b c d", TomcatServerBehaviour.mergeArguments("a b ", new String[] { "c", "d" }, null, false));
assertEquals("a b c d", TomcatServerBehaviour.mergeArguments("a b ", new String[] { "c", "d" }, null, true));
// remove argumets
assertEquals("b c d", TomcatServerBehaviour.mergeArguments("a b ", new String[] { "c", "d" }, new String[] { "a" }, true));
assertEquals("a c d", TomcatServerBehaviour.mergeArguments("a b ", new String[] { "c", "d" }, new String[] { "b" }, true));
assertEquals("c d", TomcatServerBehaviour.mergeArguments("a b ", new String[] { "c", "d" }, new String[] { "a", "b" }, true));
}
public void testArgMerge11() {
assertEquals("a=b c=\"e\"", TomcatServerBehaviour.mergeArguments("a=b c=d", new String[] { "c=\"e\"" }, null, false));
assertEquals("a=b c=\"e\"", TomcatServerBehaviour.mergeArguments("a=b c=d", new String[] { "c=\"e\"" }, null, true));
// remove argument
assertEquals("c=\"e\"", TomcatServerBehaviour.mergeArguments("a=b c=d", new String[] { "c=\"e\"" }, new String[] { "a=" }, true));
}
public void testArgMerge12() {
assertEquals("a=b c=\"e f\"", TomcatServerBehaviour.mergeArguments("a=b c=\"d e\"", new String[] { "c=\"e f\"" }, null, false));
assertEquals("a=b c=\"e f\"", TomcatServerBehaviour.mergeArguments("a=b c=\"d e\"", new String[] { "c=\"e f\"" }, null, true));
// remove argument
assertEquals("c=\"e f\"", TomcatServerBehaviour.mergeArguments("a=b c=\"d e\"", new String[] { "c=\"e f\"" }, new String[] { "a=" }, true));
assertEquals("a=g ", TomcatServerBehaviour.mergeArguments("a=b c=\"d e\"", new String[] { "a=g" }, new String[] { "c=" }, true));
}
public void testArgMerge13() {
assertEquals("a=b -c \"e\"", TomcatServerBehaviour.mergeArguments("a=b -c d", new String[] { "-c \"e\"" }, null, false));
assertEquals("a=b -c \"e\"", TomcatServerBehaviour.mergeArguments("a=b -c d", new String[] { "-c \"e\"" }, null, true));
// remove argument
assertEquals("-c \"e\"", TomcatServerBehaviour.mergeArguments("a=b -c d", new String[] { "-c \"e\"" }, new String[] { "a=" }, true));
assertEquals("a=g ", TomcatServerBehaviour.mergeArguments("a=b -c d", new String[] { "a=g" }, new String[] { "-c " }, true));
}
public void testArgMerge14() {
assertEquals("a=b -c \"e f\"", TomcatServerBehaviour.mergeArguments("a=b -c \"d e\"", new String[] { "-c \"e f\"" }, null, false));
assertEquals("a=b -c \"e f\"", TomcatServerBehaviour.mergeArguments("a=b -c \"d e\"", new String[] { "-c \"e f\"" }, null, true));
// remove argument
assertEquals("-c \"e f\"", TomcatServerBehaviour.mergeArguments("a=b -c \"d e\"", new String[] { "-c \"e f\"" }, new String[] { "a=" }, true));
assertEquals("a=g ", TomcatServerBehaviour.mergeArguments("a=b -c \"d e\"", new String[] { "a=g" }, new String[] { "-c " }, true));
}
public void testArgMerge15() {
assertEquals("b a", TomcatServerBehaviour.mergeArguments("b", new String[] { "a", "b" }, null, false));
assertEquals("a b", TomcatServerBehaviour.mergeArguments("b", new String[] { "a", "b" }, null, true));
}
public void testArgMerge16() {
assertEquals("c b a", TomcatServerBehaviour.mergeArguments("c b", new String[] { "a", "b" }, null, false));
assertEquals("c a b", TomcatServerBehaviour.mergeArguments("c b", new String[] { "a", "b" }, null, true));
}
public void testArgMerge17() {
// remove middle arguments
assertEquals("a e f", TomcatServerBehaviour.mergeArguments("a -b c e", new String[] { "f" }, new String[] { "-b " }, false));
assertEquals("a e f", TomcatServerBehaviour.mergeArguments("a -b \"c d\" e", new String[] { "f" }, new String[] { "-b " }, false));
assertEquals("a e f", TomcatServerBehaviour.mergeArguments("a b=c e", new String[] { "f" }, new String[] { "b=" }, false));
assertEquals("a e f", TomcatServerBehaviour.mergeArguments("a b=\"c d\" e", new String[] { "f" }, new String[] { "b=" }, false));
}
public void testVerifySpec() {
VerifyResourceSpec spec = new VerifyResourceSpec("");
assertEquals("", spec.toString());
String [] paths = spec.getPaths();
assertEquals(1, paths.length);
assertEquals("", paths[0]);
}
public void testVerifySpec2() {
VerifyResourceSpec spec = new VerifyResourceSpec("file ");
assertEquals("file ", spec.toString());
String [] paths = spec.getPaths();
assertEquals(1, paths.length);
assertEquals("file", paths[0]);
}
public void testVerifySpec3() {
VerifyResourceSpec spec = new VerifyResourceSpec("dir" + File.separator + "file");
String [] paths = spec.getPaths();
assertEquals(1, paths.length);
assertEquals("dir" + File.separator + "file", paths[0]);
}
public void testVerifySpec4() {
VerifyResourceSpec spec = new VerifyResourceSpec("dir" + File.separator + "file| alt ");
String [] paths = spec.getPaths();
assertEquals(2, paths.length);
assertEquals("dir" + File.separator + "file", paths[0]);
assertEquals("dir" + File.separator + "alt", paths[1]);
}
public void testVerifySpec5() {
VerifyResourceSpec spec = new VerifyResourceSpec("dir" + File.separator + "file| alt1 | alt2 ");
String [] paths = spec.getPaths();
assertEquals(3, paths.length);
assertEquals("dir" + File.separator + "file", paths[0]);
assertEquals("dir" + File.separator + "alt1", paths[1]);
assertEquals("dir" + File.separator + "alt2", paths[2]);
}
public void testVerifySpec6() {
if (RuntimeLocation.runtimeLocation != null) {
VerifyResourceSpec spec = new VerifyResourceSpec("conf");
IStatus status = spec.checkResource(RuntimeLocation.runtimeLocation);
assertTrue(status.isOK());
}
}
public void testVerifySpec7() {
if (RuntimeLocation.runtimeLocation != null) {
VerifyResourceSpec spec = new VerifyResourceSpec("conf" + File.separator + "server.xml");
IStatus status = spec.checkResource(RuntimeLocation.runtimeLocation);
assertTrue(status.isOK());
}
}
public void testVerifySpec8() {
if (RuntimeLocation.runtimeLocation != null) {
VerifyResourceSpec spec = new VerifyResourceSpec("conf" + File.separator + "nofile|server.xml");
IStatus status = spec.checkResource(RuntimeLocation.runtimeLocation);
assertTrue(status.isOK());
}
}
public void testVerifySpec9() {
if (RuntimeLocation.runtimeLocation != null) {
VerifyResourceSpec spec = new VerifyResourceSpec("conf" + File.separator + "nofile");
IStatus status = spec.checkResource(RuntimeLocation.runtimeLocation);
assertFalse(status.isOK());
}
}
}