57 lines
1.2 KiB
Go
57 lines
1.2 KiB
Go
// Copyright 2021 Liuxiangchao iwind.liu@gmail.com. All rights reserved.
|
|
//go:build script
|
|
// +build script
|
|
|
|
package js_test
|
|
|
|
import (
|
|
"github.com/TeaOSLab/EdgeNode/internal/js"
|
|
"github.com/iwind/TeaGo/types"
|
|
"testing"
|
|
"time"
|
|
)
|
|
|
|
func TestJSNetHTTPResponseLibrary(t *testing.T) {
|
|
isolate, err := js.NewIsolateWithContexts(1)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
defer isolate.Dispose()
|
|
|
|
ctx, err := isolate.GetContext()
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
var before = time.Now()
|
|
defer func() {
|
|
t.Log(time.Since(before).Seconds()*1000, "ms")
|
|
}()
|
|
|
|
js.SharedJSConsoleLogLibrary.JSSetTesting(t)
|
|
|
|
var req = &FakeResponse{}
|
|
var objId = ctx.AddGoObject(req)
|
|
defer isolate.PutContext(ctx)
|
|
|
|
v, err := ctx.Run(`
|
|
let resp = new gojs.net.http.Response()
|
|
resp.setGoObject(`+types.String(objId)+`)
|
|
|
|
// user codes
|
|
resp.setHeader("Server", "goedge/1.0")
|
|
resp.setHeader("Hello", "World")
|
|
resp.setHeader("Hello-Deleted", "World")
|
|
resp.setHeader("Content-Length", [1024])
|
|
resp.setHeader("Set-Cookie", ["a=1", "b=2"])
|
|
resp.deleteHeader("Hello-Deleted")
|
|
console.log("header", resp.header)
|
|
|
|
resp.send(200, "Hello, From Javascript")
|
|
`, "req.js")
|
|
if err != nil {
|
|
t.Fatal(ctx.WrapJSErr(err))
|
|
}
|
|
_ = v
|
|
}
|