public void TestProgressiveDownloadWithBadResource() { HttpRequestMessage request = new HttpRequestMessage(); request.Headers.Range = null; MemoryStream ms = null; var vidStreamer = new ProgressiveDownload(request); using (var result = vidStreamer.ResultMessage(ms, "application/octet-stream")) { Assert.AreEqual(System.Net.HttpStatusCode.BadRequest, result.StatusCode); } }
public void TestProgressiveDownloadWithBadRange() { HttpRequestMessage request = new HttpRequestMessage(); request.Headers.Range = new System.Net.Http.Headers.RangeHeaderValue(50, 100); var ms = new MemoryStream(_DummyData); ms.Seek(0, SeekOrigin.Begin); var vidStreamer = new ProgressiveDownload(request); using (var result = vidStreamer.ResultMessage(ms, "application/octet-stream")) { Assert.AreEqual(System.Net.HttpStatusCode.RequestedRangeNotSatisfiable, result.StatusCode); } }
public void TestProgressiveDownloadWithRangeRequestHasAcceptRangesBytesResponseHeader() { HttpRequestMessage request = new HttpRequestMessage(); request.Headers.Range = new System.Net.Http.Headers.RangeHeaderValue(0, 5); var ms = new MemoryStream(_DummyData); ms.Seek(0, SeekOrigin.Begin); var vidStreamer = new ProgressiveDownload(request); using (var result = vidStreamer.ResultMessage(ms, "application/octet-stream")) { Assert.IsTrue(result.Headers.AcceptRanges.Contains("bytes")); } }
public void TestProgressiveDownloadWithOpenRangeRequest() { HttpRequestMessage request = new HttpRequestMessage(); request.Headers.Range = new System.Net.Http.Headers.RangeHeaderValue(5, null); var ms = new MemoryStream(_DummyData); ms.Seek(0, SeekOrigin.Begin); var vidStreamer = new ProgressiveDownload(request); using (var result = vidStreamer.ResultMessage(ms, "application/octet-stream")) { Assert.AreEqual(System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/octet-stream"), result.Content.Headers.ContentType); Assert.AreEqual(_DummyData.Length - 5, result.Content.Headers.ContentLength); Assert.AreEqual(System.Net.HttpStatusCode.PartialContent, result.StatusCode); } }
public void TestProgressiveDownloadWithMultipleRangeRequest() { HttpRequestMessage request = new HttpRequestMessage(); request.Headers.Range = new System.Net.Http.Headers.RangeHeaderValue(0, 4); request.Headers.Range.Ranges.Add(new System.Net.Http.Headers.RangeItemHeaderValue(10, 14)); var ms = new MemoryStream(_DummyData); ms.Seek(0, SeekOrigin.Begin); var vidStreamer = new ProgressiveDownload(request); using (var result = vidStreamer.ResultMessage(ms, "application/octet-stream")) { var multipartStart = "multipart/byteranges; boundary="; var responseContentType = result.Content.Headers.ContentType.ToString().Substring(0, multipartStart.Length); var resultContent = result.Content.ReadAsStringAsync().Result; Assert.AreEqual(multipartStart, responseContentType); Assert.AreEqual(System.Net.HttpStatusCode.PartialContent, result.StatusCode); } }