fix: Wails file drop, duplicate listeners, trim drag, crop stage, preview cache/pixfmt, NSIS temp quoting
Build Windows Installer / build (push) Successful in 8m46s
Build Windows Installer / build (push) Successful in 8m46s
This commit is contained in:
12 files changed
+563
-226
No files matched your search
@@ -3,6 +3,7 @@ package preview
|
||||
import (
|
||||
"io"
|
||||
"net/http"
|
||||
"os"
|
||||
"os/exec"
|
||||
"path/filepath"
|
||||
"testing"
|
||||
@@ -85,3 +86,57 @@ func TestPreviewServer_RangeThumbAndProxy(t *testing.T) {
|
||||
t.Fatalf("expected 404, got %d", nfResp.StatusCode)
|
||||
}
|
||||
}
|
||||
|
||||
func TestPreviewServer_CacheInvalidationAndOddWidthProxy(t *testing.T) {
|
||||
bins := media.FindBinaries("", "")
|
||||
if bins.FFmpeg == "" || bins.FFprobe == "" {
|
||||
t.Skip("ffmpeg/ffprobe not installed")
|
||||
}
|
||||
|
||||
tmpDir := t.TempDir()
|
||||
src := filepath.Join(tmpDir, "odd.mkv")
|
||||
// Odd width (321x180) vp8 source forces libx264 transcode in /proxy
|
||||
gen := exec.Command(bins.FFmpeg,
|
||||
"-hide_banner", "-loglevel", "error",
|
||||
"-f", "lavfi", "-i", "testsrc=duration=1:size=321x180:rate=30",
|
||||
"-c:v", "libvpx", "-y", src,
|
||||
)
|
||||
if out, err := gen.CombinedOutput(); err != nil {
|
||||
t.Fatalf("failed generating odd-width mkv: %v (%s)", err, string(out))
|
||||
}
|
||||
|
||||
info, err := media.Probe(bins.FFprobe, src)
|
||||
if err != nil {
|
||||
t.Fatalf("probe failed: %v", err)
|
||||
}
|
||||
|
||||
srv, err := Start(bins.FFmpeg)
|
||||
if err != nil {
|
||||
t.Fatalf("start failed: %v", err)
|
||||
}
|
||||
defer srv.Close()
|
||||
|
||||
id1 := srv.Register(info)
|
||||
|
||||
// /proxy must succeed even on odd width (321 -> 320)
|
||||
pResp, err := http.Get(srv.BaseURL() + "/proxy?id=" + id1 + "&merge=0")
|
||||
if err != nil {
|
||||
t.Fatalf("GET /proxy failed: %v", err)
|
||||
}
|
||||
pBody, _ := io.ReadAll(pResp.Body)
|
||||
pResp.Body.Close()
|
||||
if pResp.StatusCode != http.StatusOK || len(pBody) < 500 {
|
||||
t.Fatalf("expected valid MP4 proxy for odd-width source, status=%d len=%d", pResp.StatusCode, len(pBody))
|
||||
}
|
||||
|
||||
// Overwrite same path with different size -> Register must yield a new ID
|
||||
if err := os.WriteFile(src, []byte("different-content-size"), 0o644); err != nil {
|
||||
t.Fatalf("overwrite failed: %v", err)
|
||||
}
|
||||
info2 := *info
|
||||
info2.SizeBytes = 22
|
||||
id2 := srv.Register(&info2)
|
||||
if id1 == id2 {
|
||||
t.Fatalf("expected different videoId after file modification at same path, both were %q", id1)
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user