From 383201996463ddb91aa754f81d00d472e3436380 Mon Sep 17 00:00:00 2001
From: Felix Lange <fjl@twurst.com>
Date: Thu, 6 Aug 2015 15:19:09 +0100
Subject: common/compiler, common/docserver, jsre: fix tests on windows

---
 jsre/jsre_test.go | 30 ++++++++++++++++++++++--------
 1 file changed, 22 insertions(+), 8 deletions(-)

(limited to 'jsre/jsre_test.go')

diff --git a/jsre/jsre_test.go b/jsre/jsre_test.go
index ad210932a..93dc7d1f9 100644
--- a/jsre/jsre_test.go
+++ b/jsre/jsre_test.go
@@ -19,6 +19,7 @@ package jsre
 import (
 	"io/ioutil"
 	"os"
+	"path"
 	"testing"
 	"time"
 
@@ -40,10 +41,23 @@ func (no *testNativeObjectBinding) TestMethod(call otto.FunctionCall) otto.Value
 	return v
 }
 
+func newWithTestJS(t *testing.T, testjs string) (*JSRE, string) {
+	dir, err := ioutil.TempDir("", "jsre-test")
+	if err != nil {
+		t.Fatal("cannot create temporary directory:", err)
+	}
+	if testjs != "" {
+		if err := ioutil.WriteFile(path.Join(dir, "test.js"), []byte(testjs), os.ModePerm); err != nil {
+			t.Fatal("cannot create test.js:", err)
+		}
+	}
+	return New(dir), dir
+}
+
 func TestExec(t *testing.T) {
-	jsre := New("/tmp")
+	jsre, dir := newWithTestJS(t, `msg = "testMsg"`)
+	defer os.RemoveAll(dir)
 
-	ioutil.WriteFile("/tmp/test.js", []byte(`msg = "testMsg"`), os.ModePerm)
 	err := jsre.Exec("test.js")
 	if err != nil {
 		t.Errorf("expected no error, got %v", err)
@@ -64,9 +78,9 @@ func TestExec(t *testing.T) {
 }
 
 func TestNatto(t *testing.T) {
-	jsre := New("/tmp")
+	jsre, dir := newWithTestJS(t, `setTimeout(function(){msg = "testMsg"}, 1);`)
+	defer os.RemoveAll(dir)
 
-	ioutil.WriteFile("/tmp/test.js", []byte(`setTimeout(function(){msg = "testMsg"}, 1);`), os.ModePerm)
 	err := jsre.Exec("test.js")
 	if err != nil {
 		t.Errorf("expected no error, got %v", err)
@@ -88,7 +102,7 @@ func TestNatto(t *testing.T) {
 }
 
 func TestBind(t *testing.T) {
-	jsre := New("/tmp")
+	jsre := New("")
 
 	jsre.Bind("no", &testNativeObjectBinding{})
 
@@ -105,9 +119,9 @@ func TestBind(t *testing.T) {
 }
 
 func TestLoadScript(t *testing.T) {
-	jsre := New("/tmp")
+	jsre, dir := newWithTestJS(t, `msg = "testMsg"`)
+	defer os.RemoveAll(dir)
 
-	ioutil.WriteFile("/tmp/test.js", []byte(`msg = "testMsg"`), os.ModePerm)
 	_, err := jsre.Run(`loadScript("test.js")`)
 	if err != nil {
 		t.Errorf("expected no error, got %v", err)
@@ -125,4 +139,4 @@ func TestLoadScript(t *testing.T) {
 		t.Errorf("expected '%v', got '%v'", exp, got)
 	}
 	jsre.Stop(false)
-}
+}
\ No newline at end of file
-- 
cgit v1.2.3