mirror of
https://github.com/Control-D-Inc/ctrld.git
synced 2026-09-04 13:36:35 +02:00
55 lines
1.5 KiB
Go
55 lines
1.5 KiB
Go
//go:build windows
|
|
|
|
package cli
|
|
|
|
import "testing"
|
|
|
|
func TestBinaryPathArgumentPresent(t *testing.T) {
|
|
path := `C:\ControlD\ctrld.exe run --config=C:\Users\officer\ctrld.toml --intercept-mode=dns`
|
|
if !binaryPathArgumentPresent(path, "--intercept-mode=dns") {
|
|
t.Fatal("exact inline argument was not found")
|
|
}
|
|
if binaryPathArgumentPresent(path, "--intercept-mode") {
|
|
t.Fatal("inline flag was mistaken for a separate flag argument")
|
|
}
|
|
if binaryPathArgumentPresent(path, "off") {
|
|
t.Fatal("substring in an unrelated path was mistaken for the off argument")
|
|
}
|
|
}
|
|
|
|
func TestRemoveBinaryPathFlag(t *testing.T) {
|
|
tests := []struct {
|
|
name string
|
|
binaryPath string
|
|
wantPath string
|
|
wantRemoved bool
|
|
}{
|
|
{
|
|
name: "split form",
|
|
binaryPath: `ctrld.exe run --cd=uid --intercept-mode dns --config=ctrld.toml`,
|
|
wantPath: `ctrld.exe run --cd=uid --config=ctrld.toml`,
|
|
wantRemoved: true,
|
|
},
|
|
{
|
|
name: "inline form",
|
|
binaryPath: `ctrld.exe run --cd=uid --intercept-mode=dns --config=ctrld.toml`,
|
|
wantPath: `ctrld.exe run --cd=uid --config=ctrld.toml`,
|
|
wantRemoved: true,
|
|
},
|
|
{
|
|
name: "absent",
|
|
binaryPath: `ctrld.exe run --cd=uid`,
|
|
wantPath: `ctrld.exe run --cd=uid`,
|
|
},
|
|
}
|
|
|
|
for _, tc := range tests {
|
|
t.Run(tc.name, func(t *testing.T) {
|
|
path, removed := removeBinaryPathFlag(tc.binaryPath, "--intercept-mode")
|
|
if path != tc.wantPath || removed != tc.wantRemoved {
|
|
t.Fatalf("removeBinaryPathFlag() = (%q, %v), want (%q, %v)", path, removed, tc.wantPath, tc.wantRemoved)
|
|
}
|
|
})
|
|
}
|
|
}
|