Mercurial > hg > mercurial
annotate mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/BaseCommandTest.java @ 229:9e60b6d1e5fd build-snapshot-124
Escape quotes in command line parameters
* * *
Escape quotes in command line parameters
author | Dmitry Neverov <dmitry.neverov@jetbrains.com> |
---|---|
date | Thu, 14 Apr 2011 14:39:31 +0400 |
parents | |
children | 8c10f5cec37d |
rev | line source |
---|---|
229
9e60b6d1e5fd
Escape quotes in command line parameters
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
1 package jetbrains.buildServer.buildTriggers.vcs.mercurial.command; |
9e60b6d1e5fd
Escape quotes in command line parameters
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
2 |
9e60b6d1e5fd
Escape quotes in command line parameters
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
3 import com.intellij.execution.configurations.GeneralCommandLine; |
9e60b6d1e5fd
Escape quotes in command line parameters
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
4 import com.intellij.openapi.util.SystemInfo; |
9e60b6d1e5fd
Escape quotes in command line parameters
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
5 import jetbrains.buildServer.buildTriggers.vcs.mercurial.Constants; |
9e60b6d1e5fd
Escape quotes in command line parameters
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
6 import jetbrains.buildServer.buildTriggers.vcs.mercurial.Util; |
9e60b6d1e5fd
Escape quotes in command line parameters
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
7 import jetbrains.buildServer.vcs.impl.VcsRootImpl; |
9e60b6d1e5fd
Escape quotes in command line parameters
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
8 import junit.framework.TestCase; |
9e60b6d1e5fd
Escape quotes in command line parameters
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
9 import org.testng.annotations.Test; |
9e60b6d1e5fd
Escape quotes in command line parameters
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
10 |
9e60b6d1e5fd
Escape quotes in command line parameters
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
11 import java.io.File; |
9e60b6d1e5fd
Escape quotes in command line parameters
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
12 import java.io.IOException; |
9e60b6d1e5fd
Escape quotes in command line parameters
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
13 |
9e60b6d1e5fd
Escape quotes in command line parameters
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
14 /** |
9e60b6d1e5fd
Escape quotes in command line parameters
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
15 * @author dmitry.neverov |
9e60b6d1e5fd
Escape quotes in command line parameters
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
16 */ |
9e60b6d1e5fd
Escape quotes in command line parameters
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
17 @Test |
9e60b6d1e5fd
Escape quotes in command line parameters
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
18 public class BaseCommandTest extends TestCase { |
9e60b6d1e5fd
Escape quotes in command line parameters
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
19 |
9e60b6d1e5fd
Escape quotes in command line parameters
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
20 public void should_quote_command_line_arguments() throws IOException { |
9e60b6d1e5fd
Escape quotes in command line parameters
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
21 VcsRootImpl root = new VcsRootImpl(1, "rootForTest"); |
9e60b6d1e5fd
Escape quotes in command line parameters
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
22 root.addProperty(Constants.REPOSITORY_PROP, "http://some.org/repo.hg"); |
9e60b6d1e5fd
Escape quotes in command line parameters
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
23 root.addProperty(Constants.HG_COMMAND_PATH_PROP, Util.getHgPath()); |
9e60b6d1e5fd
Escape quotes in command line parameters
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
24 File workingDir = new File("some dir"); |
9e60b6d1e5fd
Escape quotes in command line parameters
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
25 Settings settings = new Settings(root); |
9e60b6d1e5fd
Escape quotes in command line parameters
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
26 |
9e60b6d1e5fd
Escape quotes in command line parameters
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
27 BaseCommand command = new BaseCommand(settings, workingDir); |
9e60b6d1e5fd
Escape quotes in command line parameters
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
28 GeneralCommandLine cl = command.createCommandLine(); |
9e60b6d1e5fd
Escape quotes in command line parameters
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
29 cl.addParameter("param with spaces"); |
9e60b6d1e5fd
Escape quotes in command line parameters
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
30 cl.addParameter("param with quote \" rm -rf /"); |
9e60b6d1e5fd
Escape quotes in command line parameters
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
31 if (SystemInfo.isWindows) { |
9e60b6d1e5fd
Escape quotes in command line parameters
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
32 assertTrue(cl.getCommandLineString().endsWith(" \"param with spaces\" \"param with quote \\\" rm -rf /\"")); |
9e60b6d1e5fd
Escape quotes in command line parameters
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
33 } else { |
9e60b6d1e5fd
Escape quotes in command line parameters
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
34 assertTrue(cl.getCommandLineString().endsWith(" param with spaces param with quote \" rm -rf /")); |
9e60b6d1e5fd
Escape quotes in command line parameters
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
35 } |
9e60b6d1e5fd
Escape quotes in command line parameters
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
36 } |
9e60b6d1e5fd
Escape quotes in command line parameters
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
37 |
9e60b6d1e5fd
Escape quotes in command line parameters
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
38 } |