41 lines
1.3 KiB
Go
41 lines
1.3 KiB
Go
package windowsx
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/example/sessionguard/internal/model"
|
|
)
|
|
|
|
func TestDecodePowerShellJSONCleanArray(t *testing.T) {
|
|
var got []model.RemoteAppStatus
|
|
if err := decodePowerShellJSON(`[{"alias":"Calc","published":true}]`, &got); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if len(got) != 1 || got[0].Alias != "Calc" || !got[0].Published {
|
|
t.Fatalf("unexpected result: %#v", got)
|
|
}
|
|
}
|
|
|
|
func TestDecodePowerShellJSONSingleObject(t *testing.T) {
|
|
var got []model.RemoteAppStatus
|
|
if err := decodePowerShellJSON(`{"alias":"Calc","published":true}`, &got); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if len(got) != 1 || got[0].Alias != "Calc" {
|
|
t.Fatalf("unexpected result: %#v", got)
|
|
}
|
|
}
|
|
|
|
func TestDecodePowerShellJSONIgnoresCLIXMLNoise(t *testing.T) {
|
|
raw := "#< CLIXML\r\n" +
|
|
`[{"resource_id":"281750fc5851c7fd","alias":"Rechner","display_name":"Rechner","path":"C:\\Windows\\system32\\win32calc.exe","path_exists":true,"published":true,"managed":true,"in_sync":true}]` +
|
|
"\r\nSystem.Management.Automation.PSCustomObjectSystem.Object1Module werden fuer erstmalige Verwendung vorbereitet."
|
|
var got []model.RemoteAppStatus
|
|
if err := decodePowerShellJSON(raw, &got); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if len(got) != 1 || got[0].Alias != "Rechner" || got[0].Path != `C:\Windows\system32\win32calc.exe` {
|
|
t.Fatalf("unexpected result: %#v", got)
|
|
}
|
|
}
|