aboutsummaryrefslogtreecommitdiff
path: root/middleware/auto/watcher_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'middleware/auto/watcher_test.go')
-rw-r--r--middleware/auto/watcher_test.go48
1 files changed, 48 insertions, 0 deletions
diff --git a/middleware/auto/watcher_test.go b/middleware/auto/watcher_test.go
new file mode 100644
index 000000000..751c78c0d
--- /dev/null
+++ b/middleware/auto/watcher_test.go
@@ -0,0 +1,48 @@
+package auto
+
+import (
+ "io/ioutil"
+ "log"
+ "os"
+ "path"
+ "regexp"
+ "testing"
+)
+
+func TestWatcher(t *testing.T) {
+ log.SetOutput(ioutil.Discard)
+
+ tempdir, err := createFiles()
+ if err != nil {
+ if tempdir != "" {
+ os.RemoveAll(tempdir)
+ }
+ t.Fatal(err)
+ }
+ defer os.RemoveAll(tempdir)
+
+ ldr := loader{
+ directory: tempdir,
+ re: regexp.MustCompile(`db\.(.*)`),
+ template: `${1}`,
+ }
+
+ z := &Zones{}
+
+ z.Walk(ldr)
+
+ // example.org and example.com should exist
+ if x := len(z.Z["example.org."].All()); x != 4 {
+ t.Fatalf("expected 4 RRs, got %d", x)
+ }
+ if x := len(z.Z["example.com."].All()); x != 4 {
+ t.Fatalf("expected 4 RRs, got %d", x)
+ }
+
+ // Now remove one file, rescan and see if it's gone.
+ if err := os.Remove(path.Join(tempdir, "db.example.com")); err != nil {
+ t.Fatal(err)
+ }
+
+ z.Walk(ldr)
+}