a little more work on tests.

This commit is contained in:
fiatjaf
2023-11-15 14:45:06 -03:00
parent 6b810d5ed1
commit ff286a1715

View File

@@ -21,6 +21,7 @@ type OpengraphFields struct {
Video string Video string
VideoFullType string VideoFullType string
Text string Text string
TelegramAndroidApp string
} }
func TestMain(m *testing.M) { func TestMain(m *testing.M) {
@@ -43,7 +44,7 @@ func TestHomePage(t *testing.T) {
} }
func TestNormalShortTextNote(t *testing.T) { func TestNormalShortTextNote(t *testing.T) {
og := makeRequest(t, "/nevent1qqswgl5fgcwcrhzmy2u9d3nq6dg7xnsp95657xe0xk9xh6xac43vwsqpqqrf49qe") og := makeRequest(t, "/nevent1qqswgl5fgcwcrhzmy2u9d3nq6dg7xnsp95657xe0xk9xh6xac43vwsqpqqrf49qe", "")
assert.Equal(t, og.Image, "", "") assert.Equal(t, og.Image, "", "")
assert.Equal(t, og.TwitterCard, "summary", "") assert.Equal(t, og.TwitterCard, "summary", "")
@@ -51,15 +52,22 @@ func TestNormalShortTextNote(t *testing.T) {
} }
func TestNoteWithTextImage(t *testing.T) { func TestNoteWithTextImage(t *testing.T) {
og := makeRequest(t, "/nevent1qqs860kwt3m500hfnve6vxdpagkfqkm6hq03dnn2n7u8dev580kd2uszyztuwzjyxe4x2dwpgken87tna2rdlhpd02va5cvvgrrywpddnr3jydc2w4t") og := makeRequest(t, "/nevent1qqs860kwt3m500hfnve6vxdpagkfqkm6hq03dnn2n7u8dev580kd2uszyztuwzjyxe4x2dwpgken87tna2rdlhpd02va5cvvgrrywpddnr3jydc2w4t", "")
assert.Contains(t, og.Image, "/njump/image/nevent1qqs860kwt3m500hfnve6vxdpagkfqkm6hq03dnn2n7u8dev580kd2uszyztuwzjyxe4x2dwpgken87tna2rdlhpd02va5cvvgrrywpddnr3jydc2w4t", "") assert.Contains(t, og.Image, "/njump/image/nevent1qqs860kwt3m500hfnve6vxdpagkfqkm6hq03dnn2n7u8dev580kd2uszyztuwzjyxe4x2dwpgken87tna2rdlhpd02va5cvvgrrywpddnr3jydc2w4t", "")
assert.Equal(t, og.TwitterCard, "summary_large_image", "") assert.Equal(t, og.TwitterCard, "summary_large_image", "")
assert.Contains(t, og.Text, "seen on", "") assert.Contains(t, og.Text, "seen on", "")
} }
func makeRequest(t *testing.T, path string) *OpengraphFields { func TestNoteAsTelegramInstantView(t *testing.T) {
og := makeRequest(t, "/nevent1qqs860kwt3m500hfnve6vxdpagkfqkm6hq03dnn2n7u8dev580kd2uszyztuwzjyxe4x2dwpgken87tna2rdlhpd02va5cvvgrrywpddnr3jydc2w4t", "TelegramBot (like TwitterBot)")
assert.Equal(t, og.TelegramAndroidApp, "Medium", "")
}
func makeRequest(t *testing.T, path string, ua string) *OpengraphFields {
r := httptest.NewRequest("GET", path, nil) r := httptest.NewRequest("GET", path, nil)
r.Header.Set("user-agent", ua)
w := httptest.NewRecorder() w := httptest.NewRecorder()
renderEvent(w, r) renderEvent(w, r)
@@ -103,6 +111,9 @@ func parseHead(resp io.Reader, og *OpengraphFields) error {
doc.Find(`meta[property="og:description"]`).Each(func(_ int, s *goquery.Selection) { doc.Find(`meta[property="og:description"]`).Each(func(_ int, s *goquery.Selection) {
og.Text, _ = s.Attr("content") og.Text, _ = s.Attr("content")
}) })
doc.Find(`meta[property="al:android:app_name"]`).Each(func(_ int, s *goquery.Selection) {
og.TelegramAndroidApp, _ = s.Attr("content")
})
return nil return nil
} }