1.4.5.2
This commit is contained in:
105
EdgeNode/internal/uam/manager_test.go
Normal file
105
EdgeNode/internal/uam/manager_test.go
Normal file
@@ -0,0 +1,105 @@
|
||||
// Copyright 2022 Liuxiangchao iwind.liu@gmail.com. All rights reserved.
|
||||
//go:build plus
|
||||
|
||||
package uam_test
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"github.com/TeaOSLab/EdgeNode/internal/uam"
|
||||
"github.com/iwind/TeaGo/assert"
|
||||
"github.com/iwind/TeaGo/types"
|
||||
"net/http"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestManager_ComposeKey(t *testing.T) {
|
||||
manager, err := uam.NewManager("abc", "123")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
req, err := http.NewRequest(http.MethodGet, "https://127.0.0.1/hello", nil)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
req.Header.Set("User-Agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36")
|
||||
t.Logf("%#v", manager.ComposeKey(req, "127.0.0.1"))
|
||||
}
|
||||
|
||||
func TestManager_GeneratePrevKey(t *testing.T) {
|
||||
manager, err := uam.NewManager("abc", "123")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
req, err := http.NewRequest(http.MethodGet, "https://127.0.0.1/hello", nil)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
req.Header.Set("User-Agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36")
|
||||
key, err := manager.EncodeKey(manager.ComposeKey(req, "127.0.0.1"))
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
t.Log("[" + types.String(len(key)) + "]" + key)
|
||||
}
|
||||
|
||||
func TestParseTopDomain(t *testing.T) {
|
||||
var a = assert.NewAssertion(t)
|
||||
|
||||
manager, err := uam.NewManager("", "")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
a.IsTrue(manager.ParseTopDomain("") == "")
|
||||
a.IsTrue(manager.ParseTopDomain("192.168.1.1") == "192.168.1.1")
|
||||
a.IsTrue(manager.ParseTopDomain("192.168.1.1:1234") == "192.168.1.1")
|
||||
a.IsTrue(manager.ParseTopDomain("example.com") == "example.com")
|
||||
a.IsTrue(manager.ParseTopDomain("sub.example.com") == "example.com")
|
||||
a.IsTrue(manager.ParseTopDomain("google") == "google")
|
||||
a.IsTrue(manager.ParseTopDomain("sub1.sub2.sub3.sub.example.com") == "example.com")
|
||||
a.IsTrue(manager.ParseTopDomain("example.com.cn") == "example.com.cn")
|
||||
a.IsTrue(manager.ParseTopDomain("example.net.cn") == "example.net.cn")
|
||||
a.IsTrue(manager.ParseTopDomain("example.org.cn") == "example.org.cn")
|
||||
a.IsTrue(manager.ParseTopDomain("sub.example.com.cn") == "example.com.cn")
|
||||
a.IsTrue(manager.ParseTopDomain("a.中国") == "a.中国")
|
||||
a.IsTrue(manager.ParseTopDomain("b.a.中国") == "a.中国")
|
||||
}
|
||||
|
||||
func BenchmarkManager_MarshalKey_PB(b *testing.B) {
|
||||
manager, err := uam.NewManager("abc", "123")
|
||||
if err != nil {
|
||||
b.Fatal(err)
|
||||
}
|
||||
|
||||
req, err := http.NewRequest(http.MethodGet, "https://127.0.0.1/hello", nil)
|
||||
if err != nil {
|
||||
b.Fatal(err)
|
||||
}
|
||||
req.Header.Set("User-Agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36")
|
||||
|
||||
b.ResetTimer()
|
||||
|
||||
for i := 0; i < b.N; i++ {
|
||||
_, _ = manager.ComposeKey(req, "127.0.0.1").AsPB()
|
||||
}
|
||||
}
|
||||
|
||||
func BenchmarkManager_MarshalKey_JSON(b *testing.B) {
|
||||
manager, err := uam.NewManager("abc", "123")
|
||||
if err != nil {
|
||||
b.Fatal(err)
|
||||
}
|
||||
|
||||
req, err := http.NewRequest(http.MethodGet, "https://127.0.0.1/hello", nil)
|
||||
if err != nil {
|
||||
b.Fatal(err)
|
||||
}
|
||||
req.Header.Set("User-Agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36")
|
||||
|
||||
b.ResetTimer()
|
||||
|
||||
for i := 0; i < b.N; i++ {
|
||||
_, _ = json.Marshal(manager.ComposeKey(req, "127.0.0.1"))
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user