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