|
@@ -19,6 +19,7 @@ package jsre
|
|
|
import (
|
|
import (
|
|
|
"io/ioutil"
|
|
"io/ioutil"
|
|
|
"os"
|
|
"os"
|
|
|
|
|
+ "path"
|
|
|
"testing"
|
|
"testing"
|
|
|
"time"
|
|
"time"
|
|
|
|
|
|
|
@@ -40,10 +41,23 @@ func (no *testNativeObjectBinding) TestMethod(call otto.FunctionCall) otto.Value
|
|
|
return v
|
|
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) {
|
|
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")
|
|
err := jsre.Exec("test.js")
|
|
|
if err != nil {
|
|
if err != nil {
|
|
|
t.Errorf("expected no error, got %v", err)
|
|
t.Errorf("expected no error, got %v", err)
|
|
@@ -64,9 +78,9 @@ func TestExec(t *testing.T) {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
func TestNatto(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")
|
|
err := jsre.Exec("test.js")
|
|
|
if err != nil {
|
|
if err != nil {
|
|
|
t.Errorf("expected no error, got %v", err)
|
|
t.Errorf("expected no error, got %v", err)
|
|
@@ -88,7 +102,7 @@ func TestNatto(t *testing.T) {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
func TestBind(t *testing.T) {
|
|
func TestBind(t *testing.T) {
|
|
|
- jsre := New("/tmp")
|
|
|
|
|
|
|
+ jsre := New("")
|
|
|
|
|
|
|
|
jsre.Bind("no", &testNativeObjectBinding{})
|
|
jsre.Bind("no", &testNativeObjectBinding{})
|
|
|
|
|
|
|
@@ -105,9 +119,9 @@ func TestBind(t *testing.T) {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
func TestLoadScript(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")`)
|
|
_, err := jsre.Run(`loadScript("test.js")`)
|
|
|
if err != nil {
|
|
if err != nil {
|
|
|
t.Errorf("expected no error, got %v", err)
|
|
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)
|
|
t.Errorf("expected '%v', got '%v'", exp, got)
|
|
|
}
|
|
}
|
|
|
jsre.Stop(false)
|
|
jsre.Stop(false)
|
|
|
-}
|
|
|
|
|
|
|
+}
|