diff --git a/cbz/cbz_creator.go b/cbz/cbz_creator.go
index fcd5c8b..c03bd4d 100644
--- a/cbz/cbz_creator.go
+++ b/cbz/cbz_creator.go
@@ -17,6 +17,10 @@ func WriteChapterToCBZ(chapter *packer.Chapter, outputFilePath string) error {
// Create a new ZIP writer
zipWriter := zip.NewWriter(zipFile)
+ err = zipWriter.SetComment("Created by CBZOptimizer")
+ if err != nil {
+ return err
+ }
defer zipWriter.Close()
// Write each page to the ZIP archive
diff --git a/cbz/cbz_loader_test.go b/cbz/cbz_loader_test.go
index 9fdb5b6..f49452b 100644
--- a/cbz/cbz_loader_test.go
+++ b/cbz/cbz_loader_test.go
@@ -6,25 +6,51 @@ import (
)
func TestLoadChapter(t *testing.T) {
- // Define the path to the .cbz file
- chapterFilePath := "../testdata/Chapter 1.cbz"
-
- // Load the chapter
- chapter, err := LoadChapter(chapterFilePath)
- if err != nil {
- t.Fatalf("Failed to load chapter: %v", err)
+ type testCase struct {
+ name string
+ filePath string
+ expectedPages int
+ expectedSeries string
+ expectedConversion bool
}
- // Check the number of pages
- expectedPages := 16
- actualPages := len(chapter.Pages)
- if actualPages != expectedPages {
- t.Errorf("Expected %d pages, but got %d", expectedPages, actualPages)
+ testCases := []testCase{
+ {
+ name: "Original Chapter",
+ filePath: "../testdata/Chapter 1.cbz",
+ expectedPages: 16,
+ expectedSeries: "Boundless Necromancer",
+ expectedConversion: false,
+ },
+ {
+ name: "Converted Chapter",
+ filePath: "../testdata/Chapter 1_converted.cbz",
+ expectedPages: 107,
+ expectedSeries: "Boundless Necromancer",
+ expectedConversion: true,
+ },
+ // Add more test cases as needed
}
- // Check if ComicInfoXml contains the expected series name
- expectedSeries := "Boundless Necromancer"
- if !strings.Contains(chapter.ComicInfoXml, expectedSeries) {
- t.Errorf("ComicInfoXml does not contain the expected series: %s", expectedSeries)
+ for _, tc := range testCases {
+ t.Run(tc.name, func(t *testing.T) {
+ chapter, err := LoadChapter(tc.filePath)
+ if err != nil {
+ t.Fatalf("Failed to load chapter: %v", err)
+ }
+
+ actualPages := len(chapter.Pages)
+ if actualPages != tc.expectedPages {
+ t.Errorf("Expected %d pages, but got %d", tc.expectedPages, actualPages)
+ }
+
+ if !strings.Contains(chapter.ComicInfoXml, tc.expectedSeries) {
+ t.Errorf("ComicInfoXml does not contain the expected series: %s", tc.expectedSeries)
+ }
+
+ if chapter.IsConverted != tc.expectedConversion {
+ t.Errorf("Expected chapter to be converted: %t, but got %t", tc.expectedConversion, chapter.IsConverted)
+ }
+ })
}
}
diff --git a/testdata/Chapter 1_converted.cbz b/testdata/Chapter 1_converted.cbz
new file mode 100644
index 0000000..1c08d13
Binary files /dev/null and b/testdata/Chapter 1_converted.cbz differ