Exemplo n.º 1
0
  public void testQuoteWorkingDirectoryAndExecutable() {
    Shell sh = newShell();

    sh.setWorkingDirectory("/usr/local/bin");
    sh.setExecutable("chmod");

    String executable = StringUtils.join(sh.getShellCommandLine(new String[] {}).iterator(), " ");

    assertEquals("/bin/sh -c cd /usr/local/bin && chmod", executable);
  }
Exemplo n.º 2
0
  public void testQuoteWorkingDirectoryAndExecutable_WDPathWithSingleQuotes_BackslashFileSep() {
    Shell sh = newShell();

    sh.setWorkingDirectory("\\usr\\local\\'something else'");
    sh.setExecutable("chmod");

    String executable = StringUtils.join(sh.getShellCommandLine(new String[] {}).iterator(), " ");

    assertEquals("/bin/sh -c cd \"\\usr\\local\\\'something else\'\" && chmod", executable);
  }
Exemplo n.º 3
0
  public void testArgumentsWithsemicolon() {

    System.out.println("---- semi colon tests ----");

    Shell sh = newShell();

    sh.setWorkingDirectory("/usr/bin");
    sh.setExecutable("chmod");

    String[] args = {";some&argwithunix$chars"};

    List shellCommandLine = sh.getShellCommandLine(args);

    String cli = StringUtils.join(shellCommandLine.iterator(), " ");
    System.out.println(cli);
    assertTrue(cli.endsWith("\'" + args[0] + "\'"));

    Commandline commandline = new Commandline(newShell());
    commandline.setExecutable("chmod");
    commandline.getShell().setQuotedArgumentsEnabled(true);
    commandline.createArg().setValue("--password");
    commandline.createArg().setValue(";password");

    String[] lines = commandline.getShellCommandline();
    System.out.println(Arrays.asList(lines));

    assertEquals("/bin/sh", lines[0]);
    assertEquals("-c", lines[1]);
    assertEquals("chmod --password ';password'", lines[2]);

    commandline = new Commandline(newShell());
    commandline.setExecutable("chmod");
    commandline.getShell().setQuotedArgumentsEnabled(true);
    commandline.createArg().setValue("--password");
    commandline.createArg().setValue(";password");
    lines = commandline.getShellCommandline();
    System.out.println(Arrays.asList(lines));

    assertEquals("/bin/sh", lines[0]);
    assertEquals("-c", lines[1]);
    assertEquals("chmod --password ';password'", lines[2]);

    commandline = new Commandline(new CmdShell());
    commandline.getShell().setQuotedArgumentsEnabled(true);
    commandline.createArg().setValue("--password");
    commandline.createArg().setValue(";password");
    lines = commandline.getShellCommandline();
    System.out.println(Arrays.asList(lines));

    assertEquals("cmd.exe", lines[0]);
    assertEquals("/X", lines[1]);
    assertEquals("/C", lines[2]);
    assertEquals("\"--password ;password\"", lines[3]);
  }
Exemplo n.º 4
0
  public void testAddSingleQuotesOnArgumentWithSpaces() {
    Shell sh = newShell();

    sh.setWorkingDirectory("/usr/bin");
    sh.setExecutable("chmod");

    String[] args = {"some arg with spaces"};

    List shellCommandLine = sh.getShellCommandLine(args);

    String cli = StringUtils.join(shellCommandLine.iterator(), " ");
    System.out.println(cli);
    assertTrue(cli.endsWith("\'" + args[0] + "\'"));
  }
Exemplo n.º 5
0
  public void testEscapeSingleQuotesOnArgument() {
    Shell sh = newShell();

    sh.setWorkingDirectory("/usr/bin");
    sh.setExecutable("chmod");

    String[] args = {"arg'withquote"};

    List shellCommandLine = sh.getShellCommandLine(args);

    String cli = StringUtils.join(shellCommandLine.iterator(), " ");
    System.out.println(cli);
    assertEquals(
        "cd /usr/bin && chmod 'arg'\\''withquote'",
        shellCommandLine.get(shellCommandLine.size() - 1));
  }