Skip to content

Commit

Permalink
Use data URI content-type for manifest type detection (#550)
Browse files Browse the repository at this point in the history
* Fix when using Data URIs for the manifest
* update test/net/data_uri_plugin_unit.js to test Data URIs content-type header response
  • Loading branch information
unkiwii authored and joeyparrish committed Oct 19, 2016
1 parent 5c4c8f4 commit 403a141
Show file tree
Hide file tree
Showing 4 changed files with 18 additions and 7 deletions.
1 change: 1 addition & 0 deletions AUTHORS
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ Jesper Haug Karsrud <jesper.karsrud@gmail.com>
Johan Sundström <oyasumi@gmail.com>
Jonas Birmé <jonas.birme@eyevinn.se>
JW Player <*@jwplayer.com>
Lucas Gabriel Sánchez <unkiwii@gmail.com>
Mattias Wadman <mattias.wadman@gmail.com>
Nick Desaulniers <nick@mozilla.com>
Oskar Arvidsson <oskar@irock.se>
Expand Down
1 change: 1 addition & 0 deletions CONTRIBUTORS
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ Joey Parrish <joeyparrish@google.com>
Johan Sundström <oyasumi@gmail.com>
Jonas Birmé <jonas.birme@eyevinn.se>
Jono Ward <jonoward@gmail.com>
Lucas Gabriel Sánchez <unkiwii@gmail.com>
Mattias Wadman <mattias.wadman@gmail.com>
Natalie Harris <natalieharris@google.com>
Nick Desaulniers <nick@mozilla.com>
Expand Down
9 changes: 8 additions & 1 deletion lib/net/data_uri_plugin.js
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,14 @@ shaka.net.DataUriPlugin = function(uri, request) {
}

/** @type {shakaExtern.Response} */
var response = {uri: uri, data: data, headers: {}};
var response = {
uri: uri,
data: data,
headers: {
'content-type': typeAndEncoding[0]
}
};

resolve(response);
});
};
Expand Down
14 changes: 8 additions & 6 deletions test/net/data_uri_plugin_unit.js
Original file line number Diff line number Diff line change
Expand Up @@ -23,31 +23,32 @@ describe('DataUriPlugin', function() {
});

it('supports MIME types', function(done) {
testSucceeds('data:text/plain,Hello', 'Hello', done);
testSucceeds('data:text/plain,Hello', 'text/plain', 'Hello', done);
});

it('supports URI encoded text', function(done) {
testSucceeds(
'data:text/html,%3Ch1%3EHello%2C%20World!%3C%2Fh1%3E',
'text/html',
'<h1>Hello, World!</h1>',
done);
});

it('supports base64 encoded text', function(done) {
testSucceeds(
'data:;base64,SGVsbG8sIFdvcmxkIQ%3D%3D', 'Hello, World!', done);
'data:;base64,SGVsbG8sIFdvcmxkIQ%3D%3D', '', 'Hello, World!', done);
});

it('supports extra colin', function(done) {
testSucceeds('data:,Hello:', 'Hello:', done);
testSucceeds('data:,Hello:', '', 'Hello:', done);
});

it('supports extra semi-colin', function(done) {
testSucceeds('data:,Hello;', 'Hello;', done);
testSucceeds('data:,Hello;', '', 'Hello;', done);
});

it('supports extra comma', function(done) {
testSucceeds('data:,Hello,', 'Hello,', done);
testSucceeds('data:,Hello,', '', 'Hello,', done);
});

it('fails for empty URI', function(done) {
Expand All @@ -67,14 +68,15 @@ describe('DataUriPlugin', function() {
testFails('data:Bad', done, shaka.util.Error.Code.MALFORMED_DATA_URI);
});

function testSucceeds(uri, text, done) {
function testSucceeds(uri, contentType, text, done) {
var request =
shaka.net.NetworkingEngine.makeRequest([uri], retryParameters);
shaka.net.DataUriPlugin(uri, request)
.then(function(response) {
expect(response).toBeTruthy();
expect(response.uri).toBe(uri);
expect(response.data).toBeTruthy();
expect(response.headers['content-type']).toBe(contentType);
var data = shaka.util.StringUtils.fromBytesAutoDetect(response.data);
expect(data).toBe(text);
})
Expand Down

0 comments on commit 403a141

Please sign in to comment.