package zim import ( "log" "path/filepath" "testing" "github.com/davecgh/go-spew/spew" "github.com/pkg/errors" ) func TestReader(t *testing.T) { files, err := filepath.Glob("testdata/*.zim") if err != nil { t.Fatalf("%+v", errors.WithStack(err)) } for _, zf := range files { testName := filepath.Base(zf) t.Run(testName, func(t *testing.T) { reader, err := Open(zf) if err != nil { t.Fatalf("%+v", errors.WithStack(err)) } defer func() { if err := reader.Close(); err != nil { t.Fatalf("%+v", errors.WithStack(err)) } }() iterator := reader.Entries() for iterator.Next() { entry := iterator.Entry() content, err := entry.Redirect() if err != nil { t.Errorf("%+v", errors.WithStack(err)) break } log.Printf("%s/%s: %s", content.Namespace(), content.URL(), content.Title()) contentReader, err := content.Reader() if err != nil { t.Errorf("%+v", errors.WithStack(err)) break } spew.Dump(contentReader) } if err := iterator.Err(); err != nil { if err != nil { t.Errorf("%+v", errors.WithStack(err)) } } }) // entry, err := reader.EntryWithURL(V6NamespaceContent, "A/a.tile.openstreetmap.org/16/33682/22970.png") // if err != nil { // t.Fatalf("%+v", errors.WithStack(err)) // } // content, err := entry.Redirect() // if err != nil { // t.Fatalf("%+v", errors.WithStack(err)) // } // contentReader, err := content.Reader() // if err != nil { // t.Fatalf("%+v", errors.WithStack(err)) // break // } // data, err := io.ReadAll(contentReader) // if err != nil { // t.Fatalf("%+v", errors.WithStack(err)) // break // } // spew.Dump(data) } }