| package deps | |
| import ( | |
| "bytes" | |
| "fmt" | |
| "io" | |
| "net" | |
| "net/http" | |
| "os" | |
| "testing" | |
| ) | |
| func serveTestString(w http.ResponseWriter, _ *http.Request) { | |
| io.WriteString(w, "test") | |
| } | |
| func TestFetch(t *testing.T) { | |
| http.HandleFunc("/test", serveTestString) | |
| listener, err := net.Listen("tcp", ":0") | |
| if err != nil { | |
| t.Fatal(err) | |
| } | |
| port := listener.Addr().(*net.TCPAddr).Port | |
| url := fmt.Sprintf("http://localhost:%d/test", port) | |
| go http.Serve(listener, nil) | |
| tmpdir, err := os.MkdirTemp("", "*") | |
| if err != nil { | |
| t.Fatal(err) | |
| } | |
| defer os.RemoveAll(tmpdir) | |
| entry := Entry{ | |
| Name: "com_example", | |
| SHA256: "9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08", // SHA256("test") | |
| Prefix: "", | |
| URL: url, | |
| LastUpdated: "2022-05-18", | |
| } | |
| filename, err := FetchEntry(&entry, tmpdir) | |
| if err != nil { | |
| t.Fatal(err) | |
| } | |
| contents, err := os.ReadFile(filename) | |
| if err != nil { | |
| t.Fatal(err) | |
| } | |
| if !bytes.Equal(contents, []byte("test")) { | |
| t.Errorf("Expected to get 'test', instead got '%s'", contents) | |
| } | |
| } |