123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124 |
- package main
- import (
- "fmt"
- "testing"
- )
- func TestGeneratePassphrase(t *testing.T) {
- profile := "guest"
- passphrase := "secret"
- site := Site{
- Host: "google.com",
- MinimumLength: 6,
- MaximumLength: 18,
- SpecialCharacters: " !@#$%^&*()_+-=<>,./|\\",
- NumberOfSpecialCharacters: 2,
- NumberOfDigits: 2,
- NumberOfUpperCase: 1,
- }
- i := 0
- expected := "C\\041|e1dc001da138"
- for i = 0; i < 2; i++ {
- b, _ := generatePassphrase(profile, passphrase, site)
- actual := fmt.Sprintf("%s", string(b))
- if actual != expected {
- t.FailNow()
- }
- }
- }
- func TestContainsDigits(t *testing.T) {
- expected := true
- actual := containsDigits([]byte("blah0blah2"), 2)
- if actual != expected {
- t.FailNow()
- }
- expected = false
- actual = containsDigits([]byte("blah0blah"), 2)
- if actual != expected {
- t.FailNow()
- }
- expected = true
- actual = containsDigits([]byte("blah0blah12"), 2)
- if actual != expected {
- t.FailNow()
- }
- }
- func TestContainsUppercase(t *testing.T) {
- expected := true
- actual := containsUppercase([]byte("Blah0Blah2"), 2)
- if actual != expected {
- t.FailNow()
- }
- expected = false
- actual = containsUppercase([]byte("Blah0blah"), 2)
- if actual != expected {
- t.FailNow()
- }
- expected = true
- actual = containsUppercase([]byte("Blah0BLaH12"), 2)
- if actual != expected {
- t.FailNow()
- }
- }
- func TestContainsSpecialCharacters(t *testing.T) {
- special := "~!@#$%^&*()_+-= []{};':\",./<>?\\|"
- expected := true
- actual := containsSpecialCharacters([]byte("Blah!Blah&"), special, 2)
- if actual != expected {
- t.FailNow()
- }
- expected = false
- actual = containsSpecialCharacters([]byte("Blah!blah"), special, 2)
- if actual != expected {
- t.FailNow()
- }
- expected = true
- actual = containsSpecialCharacters([]byte("Blah!BLa l."), special, 2)
- if actual != expected {
- t.FailNow()
- }
- }
- func TestLength(t *testing.T) {
- expected := true
- actual := validateLength([]byte("eightormore"), 8, -1)
- if actual != expected {
- t.FailNow()
- }
- expected = true
- actual = validateLength([]byte("eighttoten"), 8, 10)
- if actual != expected {
- t.FailNow()
- }
- expected = false
- actual = validateLength([]byte("eighttoten----"), 8, 10)
- if actual != expected {
- t.FailNow()
- }
- expected = true
- actual = validateLength([]byte("maxof8--"), -1, 8)
- if actual != expected {
- t.FailNow()
- }
- expected = false
- actual = validateLength([]byte("ei"), 8, -1)
- if actual != expected {
- t.FailNow()
- }
- }
|