From 3c3ed300015c47e37d17b1c0ca1abf4d66784ba8 Mon Sep 17 00:00:00 2001 From: eenblam Date: Tue, 10 Jul 2018 08:47:13 -0700 Subject: [PATCH] Add tests for Session.ParseCommands() Small tests, but can be expanded to table of cases --- session/session_test.go | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 session/session_test.go diff --git a/session/session_test.go b/session/session_test.go new file mode 100644 index 00000000..29edcef3 --- /dev/null +++ b/session/session_test.go @@ -0,0 +1,38 @@ +package session + +import ( + "fmt" + "testing" +) + +func TestParseCommands(t *testing.T) { + //commands := ParseCommands("wifi.recon on; asdf; \"asdf;\" asdf") + t.Run("handles a semicolon as a delimiter", func(t *testing.T) { + first := "wifi.recon on" + second := "wifi.ap" + cmd := fmt.Sprintf("%s; %s", first, second) + commands := ParseCommands(cmd) + if l := len(commands); l != 2 { + t.Fatalf("Expected 2 commands, got %d", l) + } + if got := commands[0]; got != first { + t.Fatalf("expected %s got %s", first, got) + } + if got := commands[1]; got != second { + t.Fatalf("expected %s got %s", second, got) + } + }) + t.Run("handles semicolon inside quotes", func(t *testing.T) { + cmd := "set ticker.commands \"clear; net.show\"" + commands := ParseCommands(cmd) + if l := len(commands); l != 1 { + t.Fatalf("expected 1 command, got %d", l) + } + // Expect double-quotes stripped + expected := "set ticker.commands clear; net.show" + if got := commands[0]; got != expected { + fmt.Println(got) + t.Fatalf("expected %s got %s", cmd, got) + } + }) +}