otp/otp_test.go

37 lines
986 B
Go

package otp
import (
"testing"
)
func TestFromURL(t *testing.T) {
errorUrls := map[string]string{
"garbage": ":",
"badScheme": "http://hotp/example.com:test?counter=0&digits=6&issuer=example.com&secret=GEZDGNBVGY3TQOJQGEZDGNBVGY3TQOJQ",
"badKey": "otpauth://motp/example.com:test?counter=0&digits=6&issuer=example.com&secret=GEZDGNBVGY3TQOJQGEZDGNBVGY3TQOJQ",
"noSecret": "otpauth://hotp/example.com:test?counter=0&digits=6&issuer=example.com",
}
otherUrls := map[string]string{
"badDigits": "otpauth://hotp/example.com:test?counter=0&digits=six&issuer=example.com&secret=GEZDGNBVGY3TQOJQGEZDGNBVGY3TQOJQ",
}
for name, url := range errorUrls {
_, err := FromURL(url)
if err == nil {
t.Logf("Error expected for %s url - %s", name, url)
t.FailNow()
}
}
for name, url := range otherUrls {
_, err := FromURL(url)
if err != nil {
t.Logf("Error not expected for %s url - %s", name, url)
t.Logf("\t %s", err.Error())
t.FailNow()
}
}
}