mirror of
https://github.com/Mrs4s/go-cqhttp.git
synced 2025-05-04 19:17:37 +08:00
70 lines
2.0 KiB
Go
70 lines
2.0 KiB
Go
package coolq
|
|
|
|
import (
|
|
"fmt"
|
|
"strings"
|
|
"testing"
|
|
|
|
"github.com/Mrs4s/MiraiGo/message"
|
|
"github.com/Mrs4s/MiraiGo/utils"
|
|
"github.com/stretchr/testify/assert"
|
|
"github.com/tidwall/gjson"
|
|
|
|
"github.com/Mrs4s/go-cqhttp/internal/msg"
|
|
)
|
|
|
|
var bot = CQBot{}
|
|
|
|
func TestCQBot_ConvertStringMessage(t *testing.T) {
|
|
for _, v := range bot.ConvertStringMessage(`[CQ:face,id=115,text=111][CQ:face,id=217]] [CQ:text,text=123] [`, message.SourcePrivate) {
|
|
fmt.Println(v)
|
|
}
|
|
}
|
|
|
|
var (
|
|
bench = `asdfqwerqwerqwer[CQ:face,id=115,text=111]asdfasdfasdfasdfasdfasdfasd[CQ:face,id=217]] 123 [`
|
|
benchArray = gjson.Parse(`[{"type":"text","data":{"text":"asdfqwerqwerqwer"}},{"type":"face","data":{"id":"115","text":"111"}},{"type":"text","data":{"text":"asdfasdfasdfasdfasdfasdfasd"}},{"type":"face","data":{"id":"217"}},{"type":"text","data":{"text":"] "}},{"type":"text","data":{"text":"123"}},{"type":"text","data":{"text":" ["}}]`)
|
|
)
|
|
|
|
func BenchmarkCQBot_ConvertStringMessage(b *testing.B) {
|
|
for i := 0; i < b.N; i++ {
|
|
bot.ConvertStringMessage(bench, message.SourcePrivate)
|
|
}
|
|
b.SetBytes(int64(len(bench)))
|
|
}
|
|
|
|
func BenchmarkCQBot_ConvertObjectMessage(b *testing.B) {
|
|
for i := 0; i < b.N; i++ {
|
|
bot.ConvertObjectMessage(benchArray, message.SourcePrivate)
|
|
}
|
|
}
|
|
|
|
const bText = `123456789[]&987654321[]&987654321[]&987654321[]&987654321[]&987654321[]&`
|
|
|
|
func BenchmarkCQCodeEscapeText(b *testing.B) {
|
|
for i := 0; i < b.N; i++ {
|
|
ret := bText
|
|
msg.EscapeText(ret)
|
|
}
|
|
}
|
|
|
|
func BenchmarkCQCodeEscapeTextBefore(b *testing.B) {
|
|
for i := 0; i < b.N; i++ {
|
|
ret := bText
|
|
ret = strings.ReplaceAll(ret, "&", "&")
|
|
ret = strings.ReplaceAll(ret, "[", "[")
|
|
strings.ReplaceAll(ret, "]", "]")
|
|
}
|
|
}
|
|
|
|
func TestCQCodeEscapeText(t *testing.T) {
|
|
for i := 0; i < 200; i++ {
|
|
rs := utils.RandomStringRange(3000, "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890[]&")
|
|
ret := rs
|
|
ret = strings.ReplaceAll(ret, "&", "&")
|
|
ret = strings.ReplaceAll(ret, "[", "[")
|
|
ret = strings.ReplaceAll(ret, "]", "]")
|
|
assert.Equal(t, ret, msg.EscapeText(rs))
|
|
}
|
|
}
|