42 lines
1.1 KiB
Racket
42 lines
1.1 KiB
Racket
#lang racket/base
|
|
|
|
(require rackunit
|
|
racket/port
|
|
xml
|
|
"../didl-lite.rkt"
|
|
"../private/xml.rkt")
|
|
|
|
(define metadata
|
|
(didl-lite-audio-item
|
|
"http://example.test/audio?a=1&b=2"
|
|
#:protocol-info
|
|
"http-get:*:audio/flac:DLNA.ORG_OP=01;DLNA.ORG_CI=0"
|
|
#:title "Rock & Roll <live>"
|
|
#:duration 639.9
|
|
#:size 50357462))
|
|
|
|
(define document
|
|
(call-with-input-string metadata read-xml))
|
|
|
|
(define root
|
|
(xml->xexpr (document-element document)))
|
|
|
|
(define item
|
|
(car (xexpr-child-elements root "item")))
|
|
|
|
(define resource
|
|
(car (xexpr-child-elements item "res")))
|
|
|
|
(check-equal? (xexpr-child-text item "title")
|
|
"Rock & Roll <live>")
|
|
(check-equal? (xexpr-child-text item "class")
|
|
"object.item.audioItem.musicTrack")
|
|
(check-equal? (xexpr-text resource)
|
|
"http://example.test/audio?a=1&b=2")
|
|
(check-equal? (xexpr-attribute resource 'protocolInfo)
|
|
"http-get:*:audio/flac:DLNA.ORG_OP=01;DLNA.ORG_CI=0")
|
|
(check-equal? (xexpr-attribute resource 'duration)
|
|
"0:10:39")
|
|
(check-equal? (xexpr-attribute resource 'size)
|
|
"50357462")
|