ooni-probe-cli/internal/engine/netx/httptransport/saver_internal_test.go

52 lines
1.3 KiB
Go
Raw Normal View History

package httptransport
import (
"errors"
"fmt"
"io"
"net/http"
"testing"
)
func composeWithEOFError(msg string) error {
return fmt.Errorf("%w: %s", io.EOF, msg)
}
func TestIgnoreExpectedEOFWithNoError(t *testing.T) {
if err := ignoreExpectedEOF(nil, nil); err != nil {
t.Fatal(err)
}
}
func TestIgnoreExpectedEOFWithEOFErrorButNoCloseHint(t *testing.T) {
resp := &http.Response{}
in := composeWithEOFError("antani")
if err := ignoreExpectedEOF(in, resp); !errors.Is(err, io.EOF) {
t.Fatalf("not the error we expected: %+v", err)
}
}
func TestIgnoreExpectedEOFWithEOFErrorAndCloseHint(t *testing.T) {
resp := &http.Response{Close: true}
in := composeWithEOFError("antani")
if err := ignoreExpectedEOF(in, resp); err != nil {
t.Fatal(err)
}
}
func TestIgnoreExpectedEOFAnyOtherErrorAndCloseHint(t *testing.T) {
resp := &http.Response{Close: true}
in := errors.New("antani")
if err := ignoreExpectedEOF(in, resp); !errors.Is(err, in) {
t.Fatalf("not the error we expected: %+v", err)
}
}
func TestIgnoreExpectedEOFAnyOtherErrorAndNoCloseHint(t *testing.T) {
resp := &http.Response{Close: false /*explicit*/}
in := errors.New("antani")
if err := ignoreExpectedEOF(in, resp); !errors.Is(err, in) {
t.Fatalf("not the error we expected: %+v", err)
}
}