mirror of
https://github.com/truewhile/MeBox.git
synced 2026-10-10 23:36:37 +08:00
bug处理优化
bug处理优化
This commit is contained in:
@@ -0,0 +1,78 @@
|
||||
package service
|
||||
|
||||
import (
|
||||
"os"
|
||||
"path/filepath"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestTransferSidecarArtworkMovesPosterAndBackdrop(t *testing.T) {
|
||||
srcDir := t.TempDir()
|
||||
dstDir := t.TempDir()
|
||||
|
||||
srcMedia := filepath.Join(srcDir, "ADN-188.mkv")
|
||||
// Write a fake media + its scraped sidecar artwork.
|
||||
if err := os.WriteFile(srcMedia, []byte("media"), 0o644); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
poster := filepath.Join(srcDir, "ADN-188-poster.jpg")
|
||||
backdrop := filepath.Join(srcDir, "ADN-188-backdrop.jpg")
|
||||
if err := os.WriteFile(poster, []byte("poster"), 0o644); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if err := os.WriteFile(backdrop, []byte("backdrop"), 0o644); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
dstMedia := filepath.Join(dstDir, "出口, of a title (2018).mkv")
|
||||
if err := transferSidecarArtwork(srcMedia, dstMedia, TransferCopy); err != nil {
|
||||
t.Fatalf("transferSidecarArtwork: %v", err)
|
||||
}
|
||||
|
||||
// Poster + backdrop relocated with the same base file name.
|
||||
dstPoster := filepath.Join(dstDir, "ADN-188-poster.jpg")
|
||||
dstBackdrop := filepath.Join(dstDir, "ADN-188-backdrop.jpg")
|
||||
for _, p := range []string{dstPoster, dstBackdrop} {
|
||||
if _, err := os.Stat(p); err != nil {
|
||||
t.Fatalf("expected %s to exist after transfer: %v", p, err)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestTransferSidecarArtworkNoopWhenNoArtwork(t *testing.T) {
|
||||
srcDir := t.TempDir()
|
||||
dstDir := t.TempDir()
|
||||
srcMedia := filepath.Join(srcDir, "A.mkv")
|
||||
if err := os.WriteFile(srcMedia, []byte("x"), 0o644); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if err := transferSidecarArtwork(srcMedia, filepath.Join(dstDir, "B.mkv"), TransferCopy); err != nil {
|
||||
t.Fatalf("expected no error with no artwork, got %v", err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestTransferSidecarArtworkNeverOverwritesExisting(t *testing.T) {
|
||||
srcDir := t.TempDir()
|
||||
dstDir := t.TempDir()
|
||||
srcMedia := filepath.Join(srcDir, "A.mkv")
|
||||
poster := filepath.Join(srcDir, "A-poster.jpg")
|
||||
if err := os.WriteFile(srcMedia, []byte("x"), 0o644); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if err := os.WriteFile(poster, []byte("new"), 0o644); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
// Pre-existing poster at destination must be preserved.
|
||||
dstMedia := filepath.Join(dstDir, "A.mkv")
|
||||
dstPoster := filepath.Join(dstDir, "A-poster.jpg")
|
||||
if err := os.WriteFile(dstPoster, []byte("keep"), 0o644); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if err := transferSidecarArtwork(srcMedia, dstMedia, TransferCopy); err != nil {
|
||||
t.Fatalf("transferSidecarArtwork: %v", err)
|
||||
}
|
||||
data, _ := os.ReadFile(dstPoster)
|
||||
if string(data) != "keep" {
|
||||
t.Fatalf("destination poster overwritten, got %q", data)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user