mirror of
https://gitgud.io/yats/libkiwi.git
synced 2026-06-16 08:05:27 -04:00
89 lines
1.4 KiB
Go
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)
|
|
}
|