blob: 188def45f9ebe6c415cdceece15f379b2dea2412 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2010 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.ptp.utils.core.tests;
import junit.framework.TestCase;
import org.eclipse.ptp.utils.core.ArgumentParser;
public class ArgumentParserTests extends TestCase {
public void testFileStore() {
ArgumentParser parser = new ArgumentParser("foobar", new String[] {"arg1", "arg2", "arg\\3", "arg\"4", "arg'5", "more arguments"}); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$
assertEquals("foobar arg1 arg2 arg\\3 arg\"4 arg'5 more\\ arguments", parser.getCommandLine(false));
assertEquals("foobar arg1 arg2 arg\\\\3 arg\\\"4 arg\\'5 more\\ arguments", parser.getCommandLine(true));
parser = new ArgumentParser(" foo");
assertEquals("foo", parser.getCommandLine(true));
parser = new ArgumentParser("foo ");
assertEquals("foo", parser.getCommandLine(true));
parser = new ArgumentParser("foo");
assertEquals("foo", parser.getCommandLine(true));
parser = new ArgumentParser("foo a");
assertEquals("foo a", parser.getCommandLine(true));
parser = new ArgumentParser("foo a");
assertEquals("foo a", parser.getCommandLine(true));
parser = new ArgumentParser("foo a ");
assertEquals("foo a", parser.getCommandLine(true));
parser = new ArgumentParser(" foo a");
assertEquals("foo a", parser.getCommandLine(true));
parser = new ArgumentParser(" foo a ");
assertEquals("foo a", parser.getCommandLine(true));
parser = new ArgumentParser(" foo a ");
assertEquals("foo a", parser.getCommandLine(true));
parser = new ArgumentParser("foo a");
assertEquals("foo a", parser.getCommandLine(true));
parser = new ArgumentParser("foo a ");
assertEquals("foo a", parser.getCommandLine(true));
parser = new ArgumentParser("foo a ");
assertEquals("foo a", parser.getCommandLine(true));
parser = new ArgumentParser("foo a b");
assertEquals("foo a b", parser.getCommandLine(true));
parser = new ArgumentParser("foo a b ");
assertEquals("foo a b", parser.getCommandLine(true));
parser = new ArgumentParser("foo a b c ");
assertEquals("foo a b c", parser.getCommandLine(true));
parser = new ArgumentParser("foo\\ a b");
assertEquals("foo\\ a b", parser.getCommandLine(true));
parser = new ArgumentParser("foo \\ab");
assertEquals("foo ab", parser.getCommandLine(true));
parser = new ArgumentParser("foo a\\ b\\ c ");
assertEquals("foo a\\ b\\ c", parser.getCommandLine(true));
parser = new ArgumentParser("\\foo a b c ");
assertEquals("foo a b c", parser.getCommandLine(true));
parser = new ArgumentParser("foo a b c\\");
assertEquals("foo a b c", parser.getCommandLine(true));
parser = new ArgumentParser("foo a \\b c");
assertEquals("foo a b c", parser.getCommandLine(true));
parser = new ArgumentParser("foo a\\'c b");
assertEquals("foo a\\'c b", parser.getCommandLine(true));
parser = new ArgumentParser("foo a\\\"c b");
assertEquals("foo a\\\"c b", parser.getCommandLine(true));
parser = new ArgumentParser("foo a \\'c b");
assertEquals("foo a \\'c b", parser.getCommandLine(true));
parser = new ArgumentParser("foo a \\\"c b");
assertEquals("foo a \\\"c b", parser.getCommandLine(true));
parser = new ArgumentParser("foo a\\' c b");
assertEquals("foo a\\' c b", parser.getCommandLine(true));
parser = new ArgumentParser("foo a\\\" c b");
assertEquals("foo a\\\" c b", parser.getCommandLine(true));
parser = new ArgumentParser("foo a \\' c b");
assertEquals("foo a \\' c b", parser.getCommandLine(true));
parser = new ArgumentParser("foo a \\\" c b");
assertEquals("foo a \\\" c b", parser.getCommandLine(true));
parser = new ArgumentParser("foo a c b\\'");
assertEquals("foo a c b\\'", parser.getCommandLine(true));
parser = new ArgumentParser("foo a c b\\\"");
assertEquals("foo a c b\\\"", parser.getCommandLine(true));
parser = new ArgumentParser("foo a c b \\'");
assertEquals("foo a c b \\\'", parser.getCommandLine(true));
parser = new ArgumentParser("foo a c b \\\"");
assertEquals("foo a c b \\\"", parser.getCommandLine(true));
parser = new ArgumentParser("\\'foo a c b");
assertEquals("\\\'foo a c b", parser.getCommandLine(true));
parser = new ArgumentParser("\\\"foo a c b");
assertEquals("\\\"foo a c b", parser.getCommandLine(true));
parser = new ArgumentParser("\\' foo a c b");
assertEquals("\\\' foo a c b", parser.getCommandLine(true));
parser = new ArgumentParser("\\\" foo a c b");
assertEquals("\\\" foo a c b", parser.getCommandLine(true));
parser = new ArgumentParser("'foo a' b c d");
assertEquals("foo\\ a b c d", parser.getCommandLine(true));
parser = new ArgumentParser("foo a b 'c d'");
assertEquals("foo a b c\\ d", parser.getCommandLine(true));
parser = new ArgumentParser("foo a 'b c' d");
assertEquals("foo a b\\ c d", parser.getCommandLine(true));
parser = new ArgumentParser("foo a 'b\\e' d");
assertEquals("foo a b\\\\e d", parser.getCommandLine(true));
parser = new ArgumentParser("foo a \"b\\e\" d");
assertEquals("foo a b\\\\e d", parser.getCommandLine(true));
parser = new ArgumentParser("foo a 'b c d");
assertEquals("foo a b\\ c\\ d", parser.getCommandLine(true));
parser = new ArgumentParser("foo a \"b c d");
assertEquals("foo a b\\ c\\ d", parser.getCommandLine(true));
parser = new ArgumentParser("foo a \"b c\" d");
assertEquals("foo a b\\ c d", parser.getCommandLine(true));
parser = new ArgumentParser("foo a \"b c\"d");
assertEquals("foo a b\\ cd", parser.getCommandLine(true));
parser = new ArgumentParser("foo a 'b c' d");
assertEquals("foo a b\\ c d", parser.getCommandLine(true));
parser = new ArgumentParser("foo a 'b c'd");
assertEquals("foo a b\\ cd", parser.getCommandLine(true));
parser = new ArgumentParser("foo a 'b \" c' d");
assertEquals("foo a b\\ \\\"\\ c d", parser.getCommandLine(true));
parser = new ArgumentParser("foo a \"b ' c\" d");
assertEquals("foo a b\\ \\'\\ c d", parser.getCommandLine(true));
parser = new ArgumentParser("foo a 'b \\\" c' d");
assertEquals("foo a b\\ \\\\\\\"\\ c d", parser.getCommandLine(true));
parser = new ArgumentParser("foo a \"b \' c\" d");
assertEquals("foo a b\\ \\'\\ c d", parser.getCommandLine(true));
parser = new ArgumentParser(new String[] {});
assertEquals("", parser.getCommandLine(true));
parser = new ArgumentParser(new String[] {"a"});
assertEquals("a", parser.getCommandLine(true));
parser = new ArgumentParser(new String[] {"av"});
assertEquals("av", parser.getCommandLine(true));
parser = new ArgumentParser(new String[] {"a d"});
assertEquals("a\\ d", parser.getCommandLine(true));
parser = new ArgumentParser(new String[] {"a", "a"});
assertEquals("a a", parser.getCommandLine(true));
parser = new ArgumentParser(new String[] {"av", "a"});
assertEquals("av a", parser.getCommandLine(true));
parser = new ArgumentParser(new String[] {"a d", "a"});
assertEquals("a\\ d a", parser.getCommandLine(true));
parser = new ArgumentParser(new String[] {"a", "b b"});
assertEquals("a b\\ b", parser.getCommandLine(true));
parser = new ArgumentParser(new String[] {"av", "b b"});
assertEquals("av b\\ b", parser.getCommandLine(true));
parser = new ArgumentParser(new String[] {"a d", "b b"});
assertEquals("a\\ d b\\ b", parser.getCommandLine(true));
}
}