-
Notifications
You must be signed in to change notification settings - Fork 12
Expand file tree
/
Copy pathEscapeHelperTests.cs
More file actions
36 lines (34 loc) · 1.52 KB
/
EscapeHelperTests.cs
File metadata and controls
36 lines (34 loc) · 1.52 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using IPTables.Net.Iptables.Helpers;
using IPTables.Net.Supporting;
namespace IPTables.Net.Tests
{
public class EscapeHelperTests
{
[Fact]
public void TestSpaces()
{
Assert.Equal("'a word'", ShellHelper.EscapeArguments("a word"));
Assert.Equal("singleword", ShellHelper.EscapeArguments("singleword"));
}
[Fact]
public void TestPipe()
{
Assert.Equal("'|'", ShellHelper.EscapeArguments("|"));
Assert.Equal("'a|word'", ShellHelper.EscapeArguments("a|word"));
Assert.Equal("singleword", ShellHelper.EscapeArguments("singleword"));
}
[Fact]
public void TestSpace()
{
Assert.Equal("a word", ShellHelper.BuildArgumentString(new []{"a", "word"}));
Assert.Equal("\"two words\"", ShellHelper.BuildArgumentString(new[] { "two words" }));
Assert.Equal("\"two words and \\\"punctuation\\\"\"", ShellHelper.BuildArgumentString(new[] { "two words and \"punctuation\"" }));
Assert.Equal("bash -c \"bash -c \\\"echo a\\\"\"", ShellHelper.BuildArgumentString(new[] { "bash", "-c", ShellHelper.BuildArgumentString(new []{"bash", "-c", "echo a"}) }));
Assert.Equal("bash -c \"bash -c \\\"echo \\\\\\\"a\\\\\\\"\\\"\"", ShellHelper.BuildArgumentString(new[] { "bash", "-c", ShellHelper.BuildArgumentString(new[] { "bash", "-c", "echo \"a\"" }) }));
}
}
}