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 KF{}, 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 KF{}, err } hc := http.Client{ Jar: jar, Transport: tr, } return NewKF(hc, u) }