Files
libkiwi/libkiwi_test.go
T
2026-06-06 18:55:14 -04:00

89 lines
1.4 KiB
Go

package libkiwi
import (
"net/http"
"net/http/cookiejar"
"net/url"
"os"
"testing"
"golang.org/x/net/proxy"
)
const _TEST_HOST = "kiwifarms.st"
func TestGetPage(t *testing.T) {
kf, err := newTestKF()
if err != nil {
t.Error(err)
}
ctx := t.Context()
t.Log("Getting homepage\n")
resp, err := kf.Get(ctx, kf.domain)
if err != nil {
t.Error(err)
return
}
defer resp.Body.Close()
t.Logf("Response status code: %d\n\n", resp.StatusCode)
for k, v := range resp.Header {
if len(v) > 0 {
t.Logf("%s: %s\n", k, v[0])
}
}
t.Logf("Response host: %s\n\n", kf.domain)
}
func TestGetPost(t *testing.T) {
kf, err := newTestKF()
if err != nil {
t.Error(err)
return
}
const POST_ID = 22058462
ctx := t.Context()
t.Logf("Getting post #%d\n", POST_ID)
post, err := kf.GetPost(ctx, POST_ID)
if err != nil {
t.Error(err)
return
}
t.Logf("Post author: %+v\n", post.Author)
t.Logf("Post text: %s\n", post.TextContent())
}
func newTestKF() (*KF, error) {
host := os.Getenv("TEST_HOST")
if host == "" {
host = _TEST_HOST
}
u, err := url.Parse("https://" + host)
if err != nil {
return nil, err
}
p := proxy.FromEnvironment()
tr := http.DefaultTransport.(*http.Transport).Clone()
tr.DialContext = p.(proxy.ContextDialer).DialContext
jar, err := cookiejar.New(nil)
if err != nil {
return nil, err
}
hc := http.Client{
Jar: jar,
Transport: tr,
}
return NewKF(hc, u)
}