OSDN Git Service

versoin1.1.9 (#594)
[bytom/vapor.git] / vendor / golang.org / x / crypto / acme / autocert / cache_test.go
1 // Copyright 2016 The Go Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style
3 // license that can be found in the LICENSE file.
4
5 package autocert
6
7 import (
8         "context"
9         "io/ioutil"
10         "os"
11         "path/filepath"
12         "reflect"
13         "testing"
14 )
15
16 // make sure DirCache satisfies Cache interface
17 var _ Cache = DirCache("/")
18
19 func TestDirCache(t *testing.T) {
20         dir, err := ioutil.TempDir("", "autocert")
21         if err != nil {
22                 t.Fatal(err)
23         }
24         defer os.RemoveAll(dir)
25         dir = filepath.Join(dir, "certs") // a nonexistent dir
26         cache := DirCache(dir)
27         ctx := context.Background()
28
29         // test cache miss
30         if _, err := cache.Get(ctx, "nonexistent"); err != ErrCacheMiss {
31                 t.Errorf("get: %v; want ErrCacheMiss", err)
32         }
33
34         // test put/get
35         b1 := []byte{1}
36         if err := cache.Put(ctx, "dummy", b1); err != nil {
37                 t.Fatalf("put: %v", err)
38         }
39         b2, err := cache.Get(ctx, "dummy")
40         if err != nil {
41                 t.Fatalf("get: %v", err)
42         }
43         if !reflect.DeepEqual(b1, b2) {
44                 t.Errorf("b1 = %v; want %v", b1, b2)
45         }
46         name := filepath.Join(dir, "dummy")
47         if _, err := os.Stat(name); err != nil {
48                 t.Error(err)
49         }
50
51         // test delete
52         if err := cache.Delete(ctx, "dummy"); err != nil {
53                 t.Fatalf("delete: %v", err)
54         }
55         if _, err := cache.Get(ctx, "dummy"); err != ErrCacheMiss {
56                 t.Errorf("get: %v; want ErrCacheMiss", err)
57         }
58 }