| 12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- package sub
- import (
- "net/http"
- "net/http/httptest"
- "strings"
- "testing"
- )
- func TestDoFetchSubscriptionLinks_RejectsOversizedBody(t *testing.T) {
- srv := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
- _, _ = w.Write([]byte(strings.Repeat("a", subscriptionMaxBytes+1)))
- }))
- defer srv.Close()
- links, err := doFetchSubscriptionLinks(srv.URL)
- if err != errSubscriptionBodyTooLarge {
- t.Fatalf("err = %v, want errSubscriptionBodyTooLarge", err)
- }
- if links != nil {
- t.Fatalf("links = %v, want nil", links)
- }
- }
- func TestDoFetchSubscriptionLinks_AcceptsBodyAtLimit(t *testing.T) {
- link := "vless://example"
- body := link + "\n" + strings.Repeat("#", subscriptionMaxBytes-len(link)-1)
- if len(body) != subscriptionMaxBytes {
- t.Fatalf("fixture size = %d, want %d", len(body), subscriptionMaxBytes)
- }
- srv := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
- _, _ = w.Write([]byte(body))
- }))
- defer srv.Close()
- links, err := doFetchSubscriptionLinks(srv.URL)
- if err != nil {
- t.Fatalf("unexpected err: %v", err)
- }
- if len(links) != 1 || links[0] != link {
- t.Fatalf("links = %v, want [%q]", links, link)
- }
- }
|