50 lines
1.5 KiB
Go
50 lines
1.5 KiB
Go
|
package utils
|
||
|
|
||
|
import (
|
||
|
. "github.com/onsi/ginkgo"
|
||
|
. "github.com/onsi/gomega"
|
||
|
)
|
||
|
|
||
|
var _ = Describe("Hostname", func() {
|
||
|
It("gets the hostname from an URL", func() {
|
||
|
h, err := HostnameFromAddr("https://quic.clemente.io/file.dat?param=true¶m2=false")
|
||
|
Expect(err).ToNot(HaveOccurred())
|
||
|
Expect(h).To(Equal("quic.clemente.io"))
|
||
|
})
|
||
|
|
||
|
It("gets the hostname from an URL with a port number", func() {
|
||
|
h, err := HostnameFromAddr("https://quic.clemente.io:6121/file.dat")
|
||
|
Expect(err).ToNot(HaveOccurred())
|
||
|
Expect(h).To(Equal("quic.clemente.io"))
|
||
|
})
|
||
|
|
||
|
It("gets the hostname from an URL containing username and password", func() {
|
||
|
h, err := HostnameFromAddr("https://user:password@quic.clemente.io:6121/file.dat")
|
||
|
Expect(err).ToNot(HaveOccurred())
|
||
|
Expect(h).To(Equal("quic.clemente.io"))
|
||
|
})
|
||
|
|
||
|
It("gets local hostnames", func() {
|
||
|
h, err := HostnameFromAddr("https://localhost/file.dat")
|
||
|
Expect(err).ToNot(HaveOccurred())
|
||
|
Expect(h).To(Equal("localhost"))
|
||
|
})
|
||
|
|
||
|
It("gets the hostname for other protocols", func() {
|
||
|
h, err := HostnameFromAddr("ftp://quic.clemente.io:6121/file.dat")
|
||
|
Expect(err).ToNot(HaveOccurred())
|
||
|
Expect(h).To(Equal("quic.clemente.io"))
|
||
|
})
|
||
|
|
||
|
It("gets an IP", func() {
|
||
|
h, err := HostnameFromAddr("https://1.3.3.7:6121/file.dat")
|
||
|
Expect(err).ToNot(HaveOccurred())
|
||
|
Expect(h).To(Equal("1.3.3.7"))
|
||
|
})
|
||
|
|
||
|
It("errors on malformed URLs", func() {
|
||
|
_, err := HostnameFromAddr("://quic.clemente.io:6121/file.dat")
|
||
|
Expect(err).To(HaveOccurred())
|
||
|
})
|
||
|
})
|