github.com/go-asm/go@v1.21.1-0.20240213172139-40c5ead50c48/cmd/go/web/file_test.go (about) 1 // Copyright 2019 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 web 6 7 import ( 8 "errors" 9 "io/fs" 10 "os" 11 "path/filepath" 12 "testing" 13 ) 14 15 func TestGetFileURL(t *testing.T) { 16 const content = "Hello, file!\n" 17 18 f, err := os.CreateTemp("", "web-TestGetFileURL") 19 if err != nil { 20 t.Fatal(err) 21 } 22 defer os.Remove(f.Name()) 23 24 if _, err := f.WriteString(content); err != nil { 25 t.Error(err) 26 } 27 if err := f.Close(); err != nil { 28 t.Fatal(err) 29 } 30 31 u, err := urlFromFilePath(f.Name()) 32 if err != nil { 33 t.Fatal(err) 34 } 35 36 b, err := GetBytes(u) 37 if err != nil { 38 t.Fatalf("GetBytes(%v) = _, %v", u, err) 39 } 40 if string(b) != content { 41 t.Fatalf("after writing %q to %s, GetBytes(%v) read %q", content, f.Name(), u, b) 42 } 43 } 44 45 func TestGetNonexistentFile(t *testing.T) { 46 path, err := filepath.Abs("nonexistent") 47 if err != nil { 48 t.Fatal(err) 49 } 50 51 u, err := urlFromFilePath(path) 52 if err != nil { 53 t.Fatal(err) 54 } 55 56 b, err := GetBytes(u) 57 if !errors.Is(err, fs.ErrNotExist) { 58 t.Fatalf("GetBytes(%v) = %q, %v; want _, fs.ErrNotExist", u, b, err) 59 } 60 }