mirror of https://github.com/jlelse/GoBlog
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
78 lines
1.9 KiB
Go
78 lines
1.9 KiB
Go
package main
|
|
|
|
import (
|
|
"testing"
|
|
"time"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func Test_webmentions(t *testing.T) {
|
|
app := &goBlog{
|
|
cfg: createDefaultTestConfig(t),
|
|
}
|
|
app.cfg.Server.PublicAddress = "https://example.com"
|
|
app.cfg.Blogs = map[string]*configBlog{
|
|
"en": {
|
|
Lang: "en",
|
|
},
|
|
}
|
|
|
|
_ = app.initConfig(false)
|
|
|
|
_ = app.db.insertWebmention(&mention{
|
|
Source: "https://example.net/test",
|
|
Target: "https://example.com/täst",
|
|
Created: time.Now().Unix(),
|
|
Title: "Test-Title",
|
|
Content: "Test-Content",
|
|
Author: "Test-Author",
|
|
}, webmentionStatusVerified)
|
|
|
|
mentions, err := app.db.getWebmentions(&webmentionsRequestConfig{
|
|
sourcelike: "example.xyz",
|
|
})
|
|
require.NoError(t, err)
|
|
assert.Len(t, mentions, 0)
|
|
|
|
count, err := app.db.countWebmentions(&webmentionsRequestConfig{
|
|
sourcelike: "example.net",
|
|
})
|
|
require.NoError(t, err)
|
|
assert.Equal(t, 1, count)
|
|
|
|
exists := app.db.webmentionExists(&mention{Source: "Https://Example.net/test", Target: "Https://Example.com/TÄst"})
|
|
assert.True(t, exists)
|
|
|
|
mentions = app.db.getWebmentionsByAddress("https://example.com/täst")
|
|
assert.Len(t, mentions, 0)
|
|
|
|
mentions = app.db.getWebmentionsByAddress("")
|
|
assert.Len(t, mentions, 0)
|
|
|
|
mentions, err = app.db.getWebmentions(&webmentionsRequestConfig{
|
|
sourcelike: "example.net",
|
|
})
|
|
require.NoError(t, err)
|
|
if assert.Len(t, mentions, 1) {
|
|
_ = app.db.approveWebmentionId(mentions[0].ID)
|
|
}
|
|
|
|
mentions = app.db.getWebmentionsByAddress("https://example.com/täst")
|
|
assert.Len(t, mentions, 1)
|
|
|
|
mentions = app.db.getWebmentionsByAddress("https://example.com/t%C3%A4st")
|
|
assert.Len(t, mentions, 1)
|
|
|
|
err = app.db.deleteWebmention(&mention{
|
|
Source: "https://example.net/test",
|
|
Target: "https://example.com/T%C3%84ST",
|
|
})
|
|
assert.NoError(t, err)
|
|
|
|
mentions = app.db.getWebmentionsByAddress("https://example.com/täst")
|
|
assert.Len(t, mentions, 0)
|
|
|
|
}
|