feat(netxlite): write factories for quic code (#470)

Part of https://github.com/ooni/probe/issues/1591
This commit is contained in:
Simone Basso 2021-09-06 21:34:14 +02:00 committed by GitHub
commit bdad392b61
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 107 additions and 20 deletions

View file

@ -427,3 +427,36 @@ func TestQUICDialerLoggerFailure(t *testing.T) {
t.Fatal("expected nil session")
}
}
func TestNewQUICDialerWithoutResolverChain(t *testing.T) {
ql := NewQUICListener()
dlr := NewQUICDialerWithoutResolver(ql, log.Log)
dlog, okay := dlr.(*quicDialerLogger)
if !okay {
t.Fatal("invalid type")
}
if dlog.Logger != log.Log {
t.Fatal("invalid logger")
}
dr, okay := dlog.Dialer.(*quicDialerResolver)
if !okay {
t.Fatal("invalid type")
}
if _, okay := dr.Resolver.(*nullResolver); !okay {
t.Fatal("invalid resolver type")
}
dlog, okay = dr.Dialer.(*quicDialerLogger)
if !okay {
t.Fatal("invalid type")
}
if dlog.Logger != log.Log {
t.Fatal("invalid logger")
}
dgo, okay := dlog.Dialer.(*quicDialerQUICGo)
if !okay {
t.Fatal("invalid type")
}
if dgo.QUICListener != ql {
t.Fatal("invalid quic listener")
}
}