ooni-probe-cli/internal/engine/sessionresolver/resolvermaker_test.go
Simone Basso 1153850aca
cleanup: doh.powerdns.org is not working anymore (#924)
While there, `.../internal/sessionresolver` => `.../sessionresolver`

See https://github.com/ooni/probe/issues/2255
2022-09-02 14:44:23 +02:00

124 lines
2.4 KiB
Go

package sessionresolver
import (
"strings"
"testing"
"github.com/ooni/probe-cli/v3/internal/bytecounter"
"github.com/ooni/probe-cli/v3/internal/model"
"github.com/ooni/probe-cli/v3/internal/model/mocks"
)
func TestDefaultLogger(t *testing.T) {
t.Run("when using a different logger", func(t *testing.T) {
logger := &mocks.Logger{}
reso := &Resolver{Logger: logger}
lo := reso.logger()
if lo != logger {
t.Fatal("expected another logger here")
}
})
t.Run("when no logger is set", func(t *testing.T) {
reso := &Resolver{Logger: nil}
lo := reso.logger()
if lo != model.DiscardLogger {
t.Fatal("expected another logger here")
}
})
}
func TestGetResolverHTTPSStandard(t *testing.T) {
bc := bytecounter.New()
URL := "https://dns.google"
var closed bool
re := &mocks.Resolver{
MockCloseIdleConnections: func() {
closed = true
},
}
var (
savedURL string
savedH3 bool
)
reso := &Resolver{
ByteCounter: bc,
newChildResolverFn: func(h3 bool, URL string) (model.Resolver, error) {
savedURL = URL
savedH3 = h3
return re, nil
},
}
out, err := reso.getresolver(URL)
if err != nil {
t.Fatal(err)
}
if out != re {
t.Fatal("not the result we expected")
}
o2, err := reso.getresolver(URL)
if err != nil {
t.Fatal(err)
}
if out != o2 {
t.Fatal("not the result we expected")
}
reso.closeall()
if closed != true {
t.Fatal("was not closed")
}
if savedURL != URL {
t.Fatal("not the URL we expected")
}
if savedH3 {
t.Fatal("expected false")
}
}
func TestGetResolverHTTP3(t *testing.T) {
bc := bytecounter.New()
URL := "http3://dns.google"
var closed bool
re := &mocks.Resolver{
MockCloseIdleConnections: func() {
closed = true
},
}
var (
savedURL string
savedH3 bool
)
reso := &Resolver{
ByteCounter: bc,
newChildResolverFn: func(h3 bool, URL string) (model.Resolver, error) {
savedURL = URL
savedH3 = h3
return re, nil
},
}
out, err := reso.getresolver(URL)
if err != nil {
t.Fatal(err)
}
if out != re {
t.Fatal("not the result we expected")
}
o2, err := reso.getresolver(URL)
if err != nil {
t.Fatal(err)
}
if out != o2 {
t.Fatal("not the result we expected")
}
reso.closeall()
if closed != true {
t.Fatal("was not closed")
}
if savedURL != strings.Replace(URL, "http3://", "https://", 1) {
t.Fatal("not the URL we expected")
}
if !savedH3 {
t.Fatal("expected true")
}
}