github.com/simpleiot/simpleiot@v0.18.3/server/fs-decomp_test.go (about) 1 package server 2 3 import ( 4 "compress/gzip" 5 "os" 6 "testing" 7 ) 8 9 func TestFsDecomp(t *testing.T) { 10 f, err := os.Create("testfile.gz") 11 if err != nil { 12 t.Fatal(err) 13 } 14 15 defer os.Remove("testfile.gz") 16 17 w := gzip.NewWriter(f) 18 19 testString := "Hi, this is a test" 20 21 _, err = w.Write([]byte(testString)) 22 if err != nil { 23 t.Fatal(err) 24 } 25 26 w.Close() 27 f.Close() 28 29 fs := os.DirFS(".") 30 31 fsGz := newFsDecomp(fs, "") 32 33 fd, err := fsGz.Open("testfile") 34 if err != nil { 35 t.Fatal(err) 36 } 37 38 fi, err := fd.Stat() 39 if err != nil { 40 t.Fatal(err) 41 } 42 43 if fi.Size() != int64(len(testString)) { 44 t.Fatal("len is not correct") 45 } 46 47 if fi.Name() != "testfile" { 48 t.Fatal("name is not correct: ", fi.Name()) 49 } 50 51 buf := make([]byte, 50) 52 c, _ := fd.Read(buf) 53 54 buf = buf[0:c] 55 56 if string(buf) != testString { 57 t.Fatal("Test string is not correct") 58 } 59 } 60 61 func TestFsRoot(t *testing.T) { 62 contents := "index.html contents test" 63 err := os.WriteFile("index.html", []byte(contents), 0644) 64 if err != nil { 65 t.Fatal("Error writing test file: ", err) 66 } 67 defer os.Remove("index.html") 68 69 fs := os.DirFS(".") 70 71 fsGz := newFsDecomp(fs, "index.html") 72 73 rootPaths := []string{"/", ""} 74 75 for _, rp := range rootPaths { 76 fd, err := fsGz.Open(rp) 77 if err != nil { 78 t.Fatal(err) 79 } 80 81 buf := make([]byte, 50) 82 c, _ := fd.Read(buf) 83 84 buf = buf[0:c] 85 86 if string(buf) != contents { 87 t.Fatal("Test contents are not correct for ", rp) 88 } 89 } 90 }