Skip to content

Commit

Permalink
remove unnecessary validator tests (oauth2-proxy#288)
Browse files Browse the repository at this point in the history
* remove unnecessary validator tests

* fix WriteString error
  • Loading branch information
Dan Bond authored Oct 18, 2019
1 parent 86977f7 commit 9d0a0c7
Show file tree
Hide file tree
Showing 3 changed files with 62 additions and 163 deletions.
75 changes: 62 additions & 13 deletions validator_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,30 +8,34 @@ import (
)

type ValidatorTest struct {
authEmailFile *os.File
done chan bool
updateSeen bool
authEmailFileName string
done chan bool
updateSeen bool
}

func NewValidatorTest(t *testing.T) *ValidatorTest {
vt := &ValidatorTest{}
var err error
vt.authEmailFile, err = ioutil.TempFile("", "test_auth_emails_")
f, err := ioutil.TempFile("", "test_auth_emails_")
if err != nil {
t.Fatal("failed to create temp file: " + err.Error())
t.Fatalf("failed to create temp file: %v", err)
}
if err := f.Close(); err != nil {
t.Fatalf("failed to close temp file: %v", err)
}
vt.authEmailFileName = f.Name()
vt.done = make(chan bool, 1)
return vt
}

func (vt *ValidatorTest) TearDown() {
vt.done <- true
os.Remove(vt.authEmailFile.Name())
os.Remove(vt.authEmailFileName)
}

func (vt *ValidatorTest) NewValidator(domains []string,
updated chan<- bool) func(string) bool {
return newValidatorImpl(domains, vt.authEmailFile.Name(),
return newValidatorImpl(domains, vt.authEmailFileName,
vt.done, func() {
if vt.updateSeen == false {
updated <- true
Expand All @@ -40,13 +44,18 @@ func (vt *ValidatorTest) NewValidator(domains []string,
})
}

// This will close vt.authEmailFile.
func (vt *ValidatorTest) WriteEmails(t *testing.T, emails []string) {
defer vt.authEmailFile.Close()
vt.authEmailFile.WriteString(strings.Join(emails, "\n"))
if err := vt.authEmailFile.Close(); err != nil {
t.Fatal("failed to close temp file " +
vt.authEmailFile.Name() + ": " + err.Error())
f, err := os.OpenFile(vt.authEmailFileName, os.O_WRONLY, 0600)
if err != nil {
t.Fatalf("failed to open auth email file: %v", err)
}

if _, err := f.WriteString(strings.Join(emails, "\n")); err != nil {
t.Fatalf("failed to write emails to auth email file: %v", err)
}

if err := f.Close(); err != nil {
t.Fatalf("failed to close auth email file: %v", err)
}
}

Expand Down Expand Up @@ -160,3 +169,43 @@ func TestValidatorIgnoreSpacesInAuthEmails(t *testing.T) {
t.Error("email should validate")
}
}

func TestValidatorOverwriteEmailListDirectly(t *testing.T) {
vt := NewValidatorTest(t)
defer vt.TearDown()

vt.WriteEmails(t, []string{
"xyzzy@example.com",
"plugh@example.com",
})
domains := []string(nil)
updated := make(chan bool)
validator := vt.NewValidator(domains, updated)

if !validator("xyzzy@example.com") {
t.Error("first email in list should validate")
}
if !validator("plugh@example.com") {
t.Error("second email in list should validate")
}
if validator("xyzzy.plugh@example.com") {
t.Error("email not in list that matches no domains " +
"should not validate")
}

vt.WriteEmails(t, []string{
"xyzzy.plugh@example.com",
"plugh@example.com",
})
<-updated

if validator("xyzzy@example.com") {
t.Error("email removed from list should not validate")
}
if !validator("plugh@example.com") {
t.Error("email retained in list should validate")
}
if !validator("xyzzy.plugh@example.com") {
t.Error("email added to list should validate")
}
}
48 changes: 0 additions & 48 deletions validator_watcher_copy_test.go

This file was deleted.

102 changes: 0 additions & 102 deletions validator_watcher_test.go

This file was deleted.

0 comments on commit 9d0a0c7

Please sign in to comment.