Files
waf-platform/EdgeNode/internal/js/lib_net_http_response_test.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
}