aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--browserenv.go6
-rw-r--r--browserenv_unix_test.go39
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)
+ }
+}