mirror of
https://github.com/wailsapp/wails.git
synced 2025-05-04 05:20:00 +08:00
85 lines
1.8 KiB
Go
85 lines
1.8 KiB
Go
package html
|
|
|
|
import (
|
|
"testing"
|
|
)
|
|
|
|
func TestNewAssetBundle(t *testing.T) {
|
|
tests := []struct {
|
|
name string
|
|
pathToHTML string
|
|
wantAssets []string
|
|
wantErr bool
|
|
}{
|
|
{
|
|
name: "basic html",
|
|
pathToHTML: "testdata/basic.html",
|
|
wantAssets: []string{
|
|
AssetTypes.HTML,
|
|
AssetTypes.FAVICON,
|
|
AssetTypes.JS,
|
|
AssetTypes.CSS,
|
|
},
|
|
wantErr: false,
|
|
},
|
|
{
|
|
name: "self closing tags",
|
|
pathToHTML: "testdata/self_closing.html",
|
|
wantAssets: []string{
|
|
AssetTypes.HTML,
|
|
AssetTypes.FAVICON,
|
|
AssetTypes.JS,
|
|
AssetTypes.CSS,
|
|
},
|
|
wantErr: false,
|
|
},
|
|
{
|
|
name: "multi-line tags",
|
|
pathToHTML: "testdata/self_closing.html",
|
|
wantAssets: []string{
|
|
AssetTypes.HTML,
|
|
AssetTypes.FAVICON,
|
|
AssetTypes.JS,
|
|
AssetTypes.CSS,
|
|
},
|
|
wantErr: false,
|
|
},
|
|
{
|
|
name: "inline javascript",
|
|
pathToHTML: "testdata/inline_javascript.html",
|
|
wantAssets: []string{
|
|
AssetTypes.HTML,
|
|
AssetTypes.FAVICON,
|
|
AssetTypes.JS,
|
|
AssetTypes.CSS,
|
|
},
|
|
wantErr: false,
|
|
},
|
|
}
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
got, err := NewAssetBundle(tt.pathToHTML)
|
|
if (err != nil) != tt.wantErr {
|
|
t.Errorf("NewAssetBundle() error = %v, wantErr %v", err, tt.wantErr)
|
|
return
|
|
}
|
|
if len(got.assets) != len(tt.wantAssets) {
|
|
t.Errorf("NewAssetBundle() len(assets) = %d, want %d",
|
|
len(got.assets), len(tt.wantAssets))
|
|
}
|
|
|
|
for i := range tt.wantAssets {
|
|
if i >= len(got.assets) {
|
|
t.Errorf("NewAssetBundle() missing assets[%d].Type = %s",
|
|
i, tt.wantAssets[i])
|
|
} else {
|
|
if got.assets[i].Type != tt.wantAssets[i] {
|
|
t.Errorf("NewAssetBundle() assets[%d].Type = %s, want %s",
|
|
i, got.assets[i].Type, tt.wantAssets[i])
|
|
}
|
|
}
|
|
}
|
|
})
|
|
}
|
|
}
|