更新
This commit is contained in:
@@ -0,0 +1,71 @@
|
||||
package mailx_test
|
||||
|
||||
import (
|
||||
"reflect"
|
||||
"testing"
|
||||
|
||||
mailx "code.yun.ink/pkg/mailx"
|
||||
)
|
||||
|
||||
func TestParseHtmlResourceAll(t *testing.T) {
|
||||
html := `<html>
|
||||
<head>
|
||||
<link rel="dns-prefetch" href="//dns.example.com">
|
||||
<link rel="stylesheet" href="./css/a.css">
|
||||
<script src="./js/app.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<img src="./img/a.png" data-src="./img/b.png">
|
||||
<video src="./v/a.mp4" data-src="./v/b.mp4"></video>
|
||||
<audio src="./au/a.mp3"></audio>
|
||||
</body>
|
||||
</html>`
|
||||
|
||||
got, err := mailx.ParseHTMLResource(html)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
want := []string{
|
||||
"./css/a.css",
|
||||
"./js/app.js",
|
||||
"./img/a.png",
|
||||
"./img/b.png",
|
||||
"./v/a.mp4",
|
||||
"./v/b.mp4",
|
||||
"./au/a.mp3",
|
||||
}
|
||||
if !reflect.DeepEqual(got, want) {
|
||||
t.Fatalf("got %v, want %v", got, want)
|
||||
}
|
||||
}
|
||||
|
||||
func TestParseHtmlResourceNoResources(t *testing.T) {
|
||||
got, err := mailx.ParseHtmlResource("<html><body>plain</body></html>")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if len(got) != 0 {
|
||||
t.Fatalf("got %v, want empty", got)
|
||||
}
|
||||
}
|
||||
|
||||
func TestParseHtmlResourceInvalidInput(t *testing.T) {
|
||||
// 非法 HTML 输入不应返回错误(goquery 容错解析)
|
||||
if _, err := mailx.ParseHtmlResource("not html at all <<<"); err != nil {
|
||||
t.Fatalf("unexpected error: %v", err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestParseHtmlResourceEmptyHrefIgnored(t *testing.T) {
|
||||
got, err := mailx.ParseHtmlResource(`<html>
|
||||
<link rel="stylesheet" href="">
|
||||
<script src=""></script>
|
||||
<img src="">
|
||||
</html>`)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if len(got) != 0 {
|
||||
t.Fatalf("got %v, want empty", got)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user