diff --git a/cbconvert_test.go b/cbconvert_test.go new file mode 100644 index 0000000..bc4a9c4 --- /dev/null +++ b/cbconvert_test.go @@ -0,0 +1,117 @@ +package cbconvert + +import ( + "fmt" + "os" + "path/filepath" + "testing" +) + +func TestConvert(t *testing.T) { + tmpDir, err := os.MkdirTemp(os.TempDir(), "cbc") + if err != nil { + t.Error(err) + } + + opts := Options{} + opts.OutDir = tmpDir + opts.Archive = "zip" + opts.Quality = 75 + opts.Filter = 2 + + conv := New(opts) + + conv.Initialize() + defer conv.Terminate() + + files, err := conv.Files([]string{"testdata/test", "testdata"}) + if err != nil { + t.Error(err) + } + + for _, format := range []string{"jpeg", "png", "tiff", "bmp", "webp", "avif"} { + conv.Opts.Format = format + + for _, file := range files { + conv.Opts.Suffix = fmt.Sprintf("_%s%s", format, filepath.Ext(file.Path)) + + err = conv.Convert(file.Path, file.Stat) + if err != nil { + t.Errorf("format %s: file %s: %v", format, file.Name, err) + } + } + } + + err = os.RemoveAll(tmpDir) + if err != nil { + t.Error(err) + } +} + +func TestCover(t *testing.T) { + tmpDir, err := os.MkdirTemp(os.TempDir(), "cbc") + if err != nil { + t.Error(err) + } + + opts := Options{} + opts.OutDir = tmpDir + opts.Quality = 75 + opts.Filter = 2 + opts.Format = "jpeg" + + conv := New(opts) + + conv.Initialize() + defer conv.Terminate() + + files, err := conv.Files([]string{"testdata/test.cbt"}) + if err != nil { + t.Error(err) + } + + for _, file := range files { + err = conv.Cover(file.Path, file.Stat) + if err != nil { + t.Error(err) + } + } + + err = os.RemoveAll(tmpDir) + if err != nil { + t.Error(err) + } +} + +func TestThumbnail(t *testing.T) { + tmpDir, err := os.MkdirTemp(os.TempDir(), "cbc") + if err != nil { + t.Error(err) + } + + opts := Options{} + opts.OutDir = tmpDir + opts.Filter = 2 + + conv := New(opts) + + conv.Initialize() + defer conv.Terminate() + + files, err := conv.Files([]string{"testdata/test.pdf"}) + if err != nil { + t.Error(err) + } + + for _, file := range files { + err = conv.Thumbnail(file.Path, file.Stat) + if err != nil { + t.Error(err) + } + } + + err = os.RemoveAll(tmpDir) + if err != nil { + t.Error(err) + } +} diff --git a/testdata/test.cb7 b/testdata/test.cb7 new file mode 100644 index 0000000..f935477 Binary files /dev/null and b/testdata/test.cb7 differ diff --git a/testdata/test.cbr b/testdata/test.cbr new file mode 100644 index 0000000..36876bb Binary files /dev/null and b/testdata/test.cbr differ diff --git a/testdata/test.cbt b/testdata/test.cbt new file mode 100644 index 0000000..41fb4af Binary files /dev/null and b/testdata/test.cbt differ diff --git a/testdata/test.cbz b/testdata/test.cbz new file mode 100644 index 0000000..1bbdea6 Binary files /dev/null and b/testdata/test.cbz differ diff --git a/testdata/test.epub b/testdata/test.epub new file mode 100644 index 0000000..a41ed14 Binary files /dev/null and b/testdata/test.epub differ diff --git a/testdata/test.pdf b/testdata/test.pdf new file mode 100644 index 0000000..38d925d Binary files /dev/null and b/testdata/test.pdf differ diff --git a/testdata/test/00.jpg b/testdata/test/00.jpg new file mode 100644 index 0000000..204c1ad Binary files /dev/null and b/testdata/test/00.jpg differ diff --git a/testdata/test/01.jpg b/testdata/test/01.jpg new file mode 100644 index 0000000..868dbe6 Binary files /dev/null and b/testdata/test/01.jpg differ