37 lines
986 B
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()
|
|
}
|
|
}
|
|
|
|
}
|