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  }