N3/Turtle version of this page RDF/XML version of this page

W3C

Media Fragments Server Test Cases

2 November 2011

This version:
http://www.w3.org/2008/WebVideo/Fragments/TC/server-test-cases
Editor:
Davy Van Deursen, IBBT Multimedia Lab, University of Ghent

Introduction

This page aims at summarizing all the server test cases covering the syntax, semantics, units, and protocol of the three dimensions defined in the Media Fragment URI specification. The temporal test cases have been partially defined during the 5th face-to-face meeting, see also http://www.w3.org/2008/WebVideo/Fragments/meetings/2010-03-09-f2f_ghent/

Definition

For the temporal test cases, we introduce the following definitions:

Test Cases Matrix

Apply filters here:

Fragment axis
Fragment characteristic
Test case type
TCDescriptionHTTP requestExpected HTTP responseCommentStatus
TC0001-S#t=,
GET spatial_30fps.webm HTTP/1.1
HTTP/1.1 200 OK
Content-Type: video/webm
No Range header -> standard HTTP request.approved
TC0002-S#t=a,a and a >= 0
GET spatial_30fps.webm HTTP/1.1
Range: t:npt=3-3
HTTP/1.1 416 Requested Range Not Satisfiable
An empty resource is considered as a 416 error.unreviewed
TC0003-S#t=a,b and a > b
GET spatial_30fps.webm HTTP/1.1
Range: t:npt=7-3
HTTP/1.1 416 Requested Range Not Satisfiable
An semantical invalid fragment results in a 416 error.unreviewed
TC0004-S#t=a,b and a = 0, b = e
GET spatial_30fps.webm HTTP/1.1
Range: t:npt=0-9.97
HTTP/1.1 206 Partial Content
Content-Type: video/webm
Content-Range: bytes 5466-3050247/3050248
Content-Range-Mapping: {t:npt 0-9.97/0-9.97}={bytes 5466-3050247/3050248}
The media is delivered from 0 to e.unreviewed
TC0005-S#t=a,b and a >= 0, a < b, a < e and b <= e
GET spatial_30fps.webm HTTP/1.1
Range: t:npt=3-7
HTTP/1.1 206 Partial Content
Content-Type: video/webm
Content-Range: bytes 887229-2171226/3050248
Content-Range-Mapping: {t:npt 2.93-7.2/0-9.97}={bytes 887229-2171226/3050248}
The media is delivered from a to b, taking into account the random access points.unreviewed
TC0006-S#t=a,b and a >= 0, a < b, a < e and b > e
GET spatial_30fps.webm HTTP/1.1
Range: t:npt=3-15
HTTP/1.1 206 Partial Content
Content-Type: video/webm
Content-Range: bytes 887229-3050247/3050248
Content-Range-Mapping: {t:npt 2.93-9.97/0-9.97}={bytes 887229-3050247/3050248}
The media is delivered from a to e, taking into account the random access points.unreviewed
TC0009-S#t=a,b and a < b, a >= e and b > e
GET spatial_30fps.webm HTTP/1.1
Range: t:npt=15-20
HTTP/1.1 416 Requested Range Not Satisfiable
An non-existing fragment results in a 416 error.unreviewed
TC0011-S#t=a with a >= 0, a < e
GET spatial_30fps.webm HTTP/1.1
Range: t:npt=3-
HTTP/1.1 206 Partial Content
Content-Type: video/webm
Content-Range: bytes 887229-3050247/3050248
Content-Range-Mapping: {t:npt 2.93-9.97/0-9.97}={bytes 887229-3050247/3050248}
The media is delivered from a to e, taking into account the random access points.unreviewed
TC0014-S#t=a with a >= e
GET spatial_30fps.webm HTTP/1.1
Range: t:npt=15-
HTTP/1.1 416 Requested Range Not Satisfiable
An non-existing fragment results in a 416 error.unreviewed
TC0015-S#t=,b and b > 0, b <= e
GET spatial_30fps.webm HTTP/1.1
Range: t:npt=0-7
HTTP/1.1 206 Partial Content
Content-Type: video/webm
Content-Range: bytes 5466-2171226/3050248
Content-Range-Mapping: {t:npt 0-7.2/0-9.97}={bytes 5466-2171226/3050248}
The media is delivered from 0 to b, taking into account the random access points.unreviewed
TC0017-S#t=,b and b > e
GET spatial_30fps.webm HTTP/1.1
Range: t:npt=0-15
HTTP/1.1 206 Partial Content
Content-Type: video/webm
Content-Range: bytes 5466-3050247/3050248
Content-Range-Mapping: {t:npt 0-9.97/0-9.97}={bytes 5466-3050247/3050248}
The media is delivered from 0 to e.unreviewed
TC0018-SSMPTE
GET spatial_30fps.webm HTTP/1.1
Range: t:smpte=0:00:03-0:00:07
HTTP/1.1 206 Partial Content
Content-Type: video/webm
Content-Range: bytes 887229-2171226/3050248
Content-Range-Mapping: {t:smpte 0:00:02:27-0:00:07:06/0:00:00-0:00:09:29}={bytes 887229-2171226/3050248}
The media is delivered from 3 to 7 secondsunreviewed
TC0019-SSMPTE (detail)
GET spatial_30fps.webm HTTP/1.1
Range: t:smpte=0:00:03:15-0:00:07
HTTP/1.1 206 Partial Content
Content-Type: video/webm
Content-Range: bytes 1041425-2171226/3050248
Content-Range-Mapping: {t:smpte-30 0:00:03:14-0:00:07:06/0:00:00-0:00:09:29}={bytes 1041425-2171226/3050248}
The media is delivered from 3.5 to 7 seconds, taking into account the random access pointsunreviewed
TC0020-SSMPTE-25
GET spatial_25fps.webm HTTP/1.1
Range: t:smpte-25=0:00:03-0:00:07
HTTP/1.1 206 Partial Content
Content-Type: video/webm
Content-Range: bytes 774326-1929599/2792270
Content-Range-Mapping: {t:smpte-25 0:00:02:21-0:00:07:01/0:00:00-0:00:09:24}={bytes 774326-1929599/2792270}
The media is delivered from 3 to 7 seconds, taking into account the random access points.unreviewed
TC0021-SSMPTE-25 applied to a non-25fps media resource
GET spatial_30fps.webm HTTP/1.1
Range: t:smpte-25=0:00:03-0:00:07
HTTP/1.1 200 OK
Content-Type: video/webm
The whole media resource is returned.unreviewed
TC0022-SSMPTE-30
GET spatial_30fps.webm HTTP/1.1
Range: t:smpte-30=0:00:03-0:00:07
HTTP/1.1 206 Partial Content
Content-Type: video/webm
Content-Range: bytes 887229-2171226/3050248
Content-Range-Mapping: {t:smpte-30 0:00:02:27-0:00:07:06/0:00:00-0:00:09:29}={bytes 887229-2171226/3050248}
The media is delivered from 3 to 7 secondsunreviewed
TC0023-SSMPTE-30-drop
GET media#spatial_30-dropfps.webm HTTP/1.1
Range: t:smpte-30-drop=0:00:03-0:00:07
HTTP/1.1 206 Partial Content
Content-Type: video/webm
Content-Range: bytes ???
Content-Range-Mapping: {t:smpte-30-drop ???}
The media is delivered from 3 to 7 secondsunreviewed
TC0025-SClock
GET spatial_30fps.webm HTTP/1.1
Range: t:clock=2011-05-13T13:57:03Z-
HTTP/1.1 206 Partial Content
Content-Type: video/webm
Content-Range: bytes 887229-3050247/3050248
Content-Range-Mapping: {t:clock 2011-05-13T13:57:02.932Z-2011-05-13T13:57:09.967Z/2011-05-13T13:57:00Z-2011-05-13T13:57:09.967Z}={bytes 887229-3050247/3050248}
The media is delivered from 3 seconds to the endunreviewed
TC0026-SClock with +
GET spatial_30fps.webm HTTP/1.1
Range: t:clock=2011-05-13T15:57:03+02:00-
HTTP/1.1 206 Partial Content
Content-Type: video/webm
Content-Range: bytes 887229-3050247/3050248
Content-Range-Mapping: {t:clock 2011-05-13T13:57:02.932Z-2011-05-13T13:57:09.967Z/2011-05-13T13:57:00Z-2011-05-13T13:57:09.967Z}={bytes 887229-3050247/3050248}
The media is delivered from 3 seconds to the endunreviewed
TC0027-SIllegal strings
GET spatial_30fps.webm HTTP/1.1
Range: t:npt=banana
HTTP/1.1 200 OK
Content-Type: video/webm
An undefined fragment results in a 200.unreviewed
TC0028-SIllegal strings
GET spatial_30fps.webm HTTP/1.1
Range: t:npt=3-banana
HTTP/1.1 200 OK
Content-Type: video/webm
An undefined fragment results in a 200.unreviewed
TC0029-SIllegal strings
GET spatial_30fps.webm HTTP/1.1
Range: t:npt=banana-7
HTTP/1.1 200 OK
Content-Type: video/webm
An undefined fragment results in a 200.unreviewed
TC0030-SIllegal strings
GET spatial_30fps.webm HTTP/1.1
Range: t:npt='3'
HTTP/1.1 200 OK
Content-Type: video/webm
An undefined fragment results in a 200.unreviewed
TC0031-SIllegal strings
GET spatial_30fps.webm HTTP/1.1
Range: t:npt=3,7
HTTP/1.1 200 OK
Content-Type: video/webm
An undefined fragment results in a 200.unreviewed
TC0032-SIllegal strings
GET spatial_30fps.webm HTTP/1.1
Range: t:npt=3:7
HTTP/1.1 200 OK
Content-Type: video/webm
An undefined fragment results in a 200.unreviewed
TC0033-SIllegal strings
GET spatial_30fps.webm HTTP/1.1
Range: t:npt=3-7-9
HTTP/1.1 200 OK
Content-Type: video/webm
An undefined fragment results in a 200.unreviewed
TC0034-SIllegal strings
GET spatial_30fps.webm HTTP/1.1
Range: t%3Anpt%3D3
HTTP/1.1 200 OK
Content-Type: video/webm
An undefined fragment results in a 200.unreviewed
TC0035-SPercent encoding
GET spatial_30fps.webm HTTP/1.1
Range: %74:npt=3-
HTTP/1.1 200 OK
Content-Type: video/webm
An undefined fragment results in a 200.unreviewed
TC0036-SPercent encoding
GET spatial_30fps.webm HTTP/1.1
Range: t:npt=%33-
HTTP/1.1 200 OK
Content-Type: video/webm
An undefined fragment results in a 200.unreviewed
TC0037-SPercent encoding
GET spatial_30fps.webm HTTP/1.1
Range: t:npt=3%2D7
HTTP/1.1 200 OK
Content-Type: video/webm
An undefined fragment results in a 200.unreviewed
TC0038-SPercent encoding
GET spatial_30fps.webm HTTP/1.1
Range: t:%6Ept=3-
HTTP/1.1 200 OK
Content-Type: video/webm
An undefined fragment results in a 200.unreviewed
TC0039-SPercent encoding
GET spatial_30fps.webm HTTP/1.1
Range: t%3Anpt=3-
HTTP/1.1 200 OK
Content-Type: video/webm
An undefined fragment results in a 200.unreviewed
TC0040-Sinclude-setup
GET spatial_30fps.webm HTTP/1.1
Range: include-setup
HTTP/1.1 206 Partial Content
Content-Type: video/webm
Content-Range: bytes 0-5465/3050248
Content-Range-Mapping: {include-setup}={bytes 0-5465/3050248}
Setup request results in the delivery of codec setup information (e.g., headers).unreviewed
TC0041-SAccept-Range-Redirect
GET spatial_30fps.webm HTTP/1.1
Range: t:npt=3-7
Accept-Range-Redirect: bytes
HTTP/1.1 307 Temporary Redirect
Content-Type: video/webm
Content-Range-Mapping: {t:npt 2.93-7.2/0-9.97}={bytes 887229-2171226/3050248}
Range-Redirect: bytes 887229-2171226
Vary: Accept-Range-Redirect
A HTTP redirect is returned pointing to the requested byte ranges.unreviewed
TC0042-STemporal range with setup info
GET spatial_30fps.webm HTTP/1.1
Range: t:npt=3-7;include-setup
HTTP/1.1 206 Partial Content
Content-Type: multipart/byteranges
Content-Range-Mapping: {t:npt 2.93-7.2/0-9.97;include-setup}={bytes 0-5465,887229-2171226/3050248}
---------------
Content-Type: video/webm
Content-Range: bytes 0-5465/3050248
---------------
Content-Type: video/webm
Content-Range: bytes 887229-2171226/3050248
Requesting a temporal range and setup info results in a multi-part message.unreviewed
TC0043-SAccept-Range-Redirect with multiple ranges
GET spatial_30fps.webm HTTP/1.1
Range: t:npt=3-7;include-setup
Accept-Range-Redirect: bytes
HTTP/1.1 307 Temporary Redirect
Content-Type: video/webm
Content-Range-Mapping: {t:npt 2.93-7.2/0-9.97;include-setup}={bytes 0-5465,887229-2171226/3050248}
Range-Redirect: bytes 0-5465,887229-2171226
Vary: Accept-Range-Redirect
A HTTP redirect is returned pointing to the requested byte ranges.unreviewed
TC0044-S#t=a,b and a < 0
GET spatial_30fps.webm HTTP/1.1
Range: t:npt=-1-3
HTTP/1.1 200 OK
Content-Type: video/webm
A syntactical invalid fragment results in a 200.unreviewed
TC0045-SSpatial fragment request
GET spatial_30fps.webm HTTP/1.1
Range: xywh:pixel=200-100-200-200
HTTP/1.1 200 OK
Content-Type: video/webm
Spatial fragments are not supported server-side and thus result in a 200.unreviewed
TC0051-STrailing '&'
GET spatial_30fps.webm HTTP/1.1
Range: t:npt=3-&
HTTP/1.1 200 OK
Content-Type: video/webm
A syntactical invalid fragment results in a 200.unreviewed
TC0052-SUnknown keys
GET spatial_30fps.webm HTTP/1.1
Range: u=12&t:npt=3-
HTTP/1.1 200 OK
Content-Type: video/webm
A syntactical invalid fragment results in a 200.unreviewed
TC0053-SUnknown unit
GET spatial_30fps.webm HTTP/1.1
Range: t:foo=7-&t:npt=3-
HTTP/1.1 200 OK
Content-Type: video/webm
A syntactical invalid fragment results in a 200.unreviewed
TC0054-SUnknown keys (bis)
GET spatial_30fps.webm HTTP/1.1
Range: &&=&=tom&jerry=&t:npt=3-&t=meow:0#
HTTP/1.1 200 OK
Content-Type: video/webm
A syntactical invalid fragment results in a 200.unreviewed
TC0055-SDuplicate (key - known unit) combination
GET spatial_30fps.webm HTTP/1.1
Range: t:npt=7&t:npt=3
HTTP/1.1 200 OK
Content-Type: video/webm
A syntactical invalid fragment results in a 200.unreviewed
TC0056-STrack fragment request
GET spatial_30fps.webm HTTP/1.1
Range: track=4
HTTP/1.1 200 OK
Content-Type: video/webm
Track fragment are not interpreted at the server, they are resolved locally.unreviewed
TC0058-SInvalid axis parameters
GET spatial_30fps.webm HTTP/1.1
Range: T:npt=3-7
HTTP/1.1 200 OK
Content-Type: video/webm
A syntactical invalid fragment results in a 200.unreviewed
TC0072-STrailing dot
GET spatial_30fps.webm HTTP/1.1
Range: t:npt=3.-
HTTP/1.1 206 Partial Content
Content-Type: video/webm
Content-Range: bytes 887229-3050247/3050248
Content-Range-Mapping: {t:npt 2.93-9.97/0-9.97}={bytes 887229-3050247/3050248}
The media is delivered from a to e, taking into account the random access points.unreviewed
TC0078-SNPT HH:MM:SS format
GET spatial_30fps.webm HTTP/1.1
Range: t:npt=00:00:03-00:00:07
HTTP/1.1 206 Partial Content
Content-Type: video/webm
Content-Range: bytes 887229-2171226/3050248
Content-Range-Mapping: {t:npt 2.93-7.2/0-9.97}={bytes 887229-2171226/3050248}
The media is delivered from a to b, taking into account the random access points.unreviewed
TC0079-SMixed NPT formats
GET spatial_30fps.webm HTTP/1.1
Range: t:npt=3-00:00:07
HTTP/1.1 206 Partial Content
Content-Type: video/webm
Content-Range: bytes 887229-2171226/3050248
Content-Range-Mapping: {t:npt 2.93-7.2/0-9.97}={bytes 887229-2171226/3050248}
The media is delivered from a to b, taking into account the random access points.unreviewed
TC0099-SSMPTE starting at non-zero
GET media#spatial_smpte_webm HTTP/1.1
Range: t:smpte-30=0:00:03-0:00:07
HTTP/1.1 206 Partial Content
Content-Type: video/webm
Content-Range: bytes ???-???/???
Content-Range-Mapping: {t:smpte-30 0:00:05-0:00:07:06/0:00:05-0:00:15}={bytes ???-???/???}
SMPTE encoded media resources having smpte time codes starting at non-zero. The first frame of the media resource is marked with timecode 0:00:05 in smpte-30.unreviewed
TC0100-SSMPTE starting at non-zero (bis)
GET media#spatial_smpte_webm HTTP/1.1
Range: t:smpte-30=0:00:00-0:00:03
HTTP/1.1 416 Requested Range Not Satisfiable
SMPTE encoded media resources having smpte time codes starting at non-zero. The first frame of the media resource is marked with timecode 0:00:05 in smpte-30.unreviewed
TC0101-SA valid id fragment
GET media#spatial_30fps_withID_webm HTTP/1.1
Range: id=song1
HTTP/1.1 206 Partial Content
Content-Type: video/webm
Content-Range: bytes 887229-2171226/3050248
Content-Range-Mapping: {id song1}={bytes 887229-2171226/3050248}
The bytes corresponding to the id fragment are requested.unreviewed
TC0102-SAn invalid id fragment
GET media#spatial_30fps_withID_webm HTTP/1.1
Range: id=foo
HTTP/1.1 416 Requested Range Not Satisfiable
The requested id fragment does not exist within the media resource.unreviewed