46 lines
2.7 KiB
Racket
46 lines
2.7 KiB
Racket
#lang racket/base
|
|
|
|
(require rackunit
|
|
racket/file
|
|
keystore
|
|
"../private/flac2opus-state.rkt"
|
|
"../private/state.rkt"
|
|
"../private/util.rkt")
|
|
|
|
(check-equal? (normalize-relpath-string "disc1\\track.flac") "disc1/track.flac")
|
|
(check-equal? (legacy-backslash-relpath-string "disc1/track.flac") "disc1\\track.flac")
|
|
(check-exn exn:fail:contract? (lambda () (normalize-relpath-string "../track.flac")))
|
|
(check-exn exn:fail:contract? (lambda () (normalize-relpath-string "/music/track.flac")))
|
|
(check-exn exn:fail:contract? (lambda () (normalize-relpath-string "C:/music/track.flac")))
|
|
|
|
(define state-file (make-temporary-file "alm-state-~a.db"))
|
|
(define ks (open-manager-state state-file))
|
|
(void (state-set-file! ks "disc1\\track.flac" '((status . normalized))))
|
|
(check-equal? (state-get-file ks "disc1/track.flac") '((status . normalized)))
|
|
(check-equal? (state-known-relpaths ks) '("disc1/track.flac"))
|
|
(check-not-false (member "flac-48khz:file:disc1/track.flac" (ks-keys-glob ks "flac-48khz:file:*")))
|
|
(check-false (member "flac-48khz:file:disc1\\track.flac" (ks-keys-glob ks "flac-48khz:file:*")))
|
|
|
|
(define legacy-48-key (string-append "flac-48khz:file:" (legacy-backslash-relpath-string "legacy/track.flac")))
|
|
(void (ks-set! ks legacy-48-key '((status . legacy))))
|
|
(check-equal? (state-get-file ks "legacy/track.flac") '((status . legacy)))
|
|
(void (state-set-file! ks "legacy/track.flac" '((status . migrated))))
|
|
(check-equal? (state-get-file ks "legacy/track.flac") '((status . migrated)))
|
|
(check-false (member legacy-48-key (ks-keys-glob ks "flac-48khz:file:*")))
|
|
|
|
(define ks2 (open-flac2opus-state state-file))
|
|
(void (flac2opus-state-set-file! ks2 "disc1\\track.flac" '((target-relpath . "disc1/track.opus"))))
|
|
(check-equal? (flac2opus-state-get-file ks2 "disc1/track.flac") '((target-relpath . "disc1/track.opus")))
|
|
(check-equal? (flac2opus-state-known-relpaths ks2) '("disc1/track.flac"))
|
|
(check-not-false (member "flac2opus:file:disc1/track.flac" (ks-keys-glob ks2 "flac2opus:file:*")))
|
|
(check-false (member "flac2opus:file:disc1\\track.flac" (ks-keys-glob ks2 "flac2opus:file:*")))
|
|
|
|
(define legacy-opus-key (string-append "flac2opus:file:" (legacy-backslash-relpath-string "legacy/track.flac")))
|
|
(void (ks-set! ks2 legacy-opus-key '((target-relpath . "legacy\\track.opus"))))
|
|
(check-equal? (flac2opus-state-get-file ks2 "legacy/track.flac") '((target-relpath . "legacy\\track.opus")))
|
|
(void (flac2opus-state-set-file! ks2 "legacy/track.flac" '((target-relpath . "legacy/track.opus"))))
|
|
(check-equal? (flac2opus-state-get-file ks2 "legacy/track.flac") '((target-relpath . "legacy/track.opus")))
|
|
(check-false (member legacy-opus-key (ks-keys-glob ks2 "flac2opus:file:*")))
|
|
|
|
(delete-file state-file)
|