diff options
-rw-r--r-- | browserenv.go | 6 | ||||
-rw-r--r-- | browserenv_unix_test.go | 39 |
2 files changed, 44 insertions, 1 deletions
diff --git a/browserenv.go b/browserenv.go index e83c3d1..f5a51ca 100644 --- a/browserenv.go +++ b/browserenv.go @@ -81,7 +81,11 @@ func browserCommand(command, url string) *exec.Cmd { args = append(args, command) - return exec.Command(shell, args...) + cmd := exec.Command(shell, args...) + cmd.Stdout = Stdout + cmd.Stderr = Stderr + + return cmd } func fmtBrowserCommand(command, url string) string { diff --git a/browserenv_unix_test.go b/browserenv_unix_test.go index 0d61a52..f79d31d 100644 --- a/browserenv_unix_test.go +++ b/browserenv_unix_test.go @@ -5,6 +5,7 @@ package browserenv import ( "os" "reflect" + "strings" "testing" ) @@ -57,3 +58,41 @@ func TestBrowserCommand(t *testing.T) { }) } } + +func TestOpenURLStdout(t *testing.T) { + var stdout strings.Builder + Stdout = &stdout + + err := os.Setenv("BROWSER", "printf") + if err != nil { + t.Fatal(err) + } + + url := "http://localhost:8000" + + OpenURL(url) + + got := stdout.String() + if got != url { + t.Errorf("got stdout value %q want %q", got, url) + } +} + +func TestOpenURLStderr(t *testing.T) { + var stderr strings.Builder + Stderr = &stderr + + err := os.Setenv("BROWSER", "printf >&2") + if err != nil { + t.Fatal(err) + } + + url := "http://localhost:8000" + + OpenURL(url) + + got := stderr.String() + if got != url { + t.Errorf("got stdout value %q want %q", got, url) + } +} |