aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--browserenv.go13
-rw-r--r--browserenv_unix_test.go28
2 files changed, 41 insertions, 0 deletions
diff --git a/browserenv.go b/browserenv.go
index 8401a32..ff31ead 100644
--- a/browserenv.go
+++ b/browserenv.go
@@ -42,6 +42,8 @@ func OpenFile(path string) error {
return runBrowserCommand(envCommand, url)
}
+ setBrowserStdDescriptors()
+
return browser.OpenFile(path)
}
@@ -63,6 +65,8 @@ func OpenReader(r io.Reader) error {
return OpenFile(tempFile.Name())
}
+ setBrowserStdDescriptors()
+
return browser.OpenReader(r)
}
@@ -73,6 +77,8 @@ func OpenURL(url string) error {
return runBrowserCommand(envCommand, url)
}
+ setBrowserStdDescriptors()
+
return browser.OpenURL(url)
}
@@ -150,3 +156,10 @@ func fmtWithURL(command, url string) string {
func escapeURL(url string) string {
return strings.ReplaceAll(url, "'", "%27")
}
+
+// setBrowserStdDescriptors sets browser.Stderr and browser.Stdout to Stderr
+// and Stdout respectively.
+func setBrowserStdDescriptors() {
+ browser.Stderr = Stderr
+ browser.Stdout = Stdout
+}
diff --git a/browserenv_unix_test.go b/browserenv_unix_test.go
index 069c322..d328290 100644
--- a/browserenv_unix_test.go
+++ b/browserenv_unix_test.go
@@ -131,3 +131,31 @@ func TestOpenURLMultipleBrowserCommands(t *testing.T) {
unsetEnvBrowser(t)
}
+
+func TestOpenFilePkgBrowserUsesStderr(t *testing.T) {
+ var stderr strings.Builder
+ Stderr = &stderr
+
+ OpenFile("file:///tmp/does-not-exist")
+
+ got := stderr.String()
+ if got == "" {
+ t.Errorf("got empty stderr want an error message")
+ }
+
+ unsetEnvBrowser(t)
+}
+
+func TestOpenURLPkgBrowserUsesStderr(t *testing.T) {
+ var stderr strings.Builder
+ Stderr = &stderr
+
+ OpenURL("file:///tmp/does-not-exist")
+
+ got := stderr.String()
+ if got == "" {
+ t.Errorf("got empty stderr want an error message")
+ }
+
+ unsetEnvBrowser(t)
+}