Merge pull request #2727 from vyv03354/feature_TextDecoder

Add feature tests for TextDecoder
This commit is contained in:
Yury Delendik 2013-02-16 08:12:19 -08:00
commit f8e70dcf13
2 changed files with 57 additions and 0 deletions

View File

@ -469,6 +469,18 @@ var tests = [
impact: 'Important',
area: 'Core'
},
{
id: 'TextDecoder',
name: 'TextDecoder is present',
run: function () {
if (typeof TextDecoder != 'undefined')
return { output: 'Success', emulated: '' };
else
return { output: 'Failed', emulated: 'No' };
},
impact: 'Critical',
area: 'Core'
},
{
id: 'Worker',
name: 'Worker is present',
@ -543,6 +555,46 @@ var tests = [
},
impact: 'Important',
area: 'Core'
},
{
id: 'Worker-TextDecoder',
name: 'TextDecoder is present in web workers',
run: function () {
if (typeof Worker == 'undefined')
return { output: 'Skipped', emulated: '' };
var emulatable = typeof TextDecoder !== 'undefined';
try {
var worker = new Worker('worker-stub.js');
var promise = new Promise();
var timeout = setTimeout(function () {
promise.resolve({ output: 'Failed',
emulated: emulatable ? '?' : 'No' });
}, 5000);
worker.addEventListener('message', function (e) {
var data = e.data;
if (data.action === 'TextDecoder') {
if (data.result) {
promise.resolve({ output: 'Success', emulated: '' });
} else {
promise.resolve({ output: 'Failed',
emulated: data.emulated ? 'Yes' : 'No' });
}
} else {
promise.resolve({ output: 'Failed',
emulated: emulatable ? 'Yes' : 'No' });
}
});
worker.postMessage({action: 'TextDecoder'});
return promise;
} catch (e) {
return { output: 'Failed', emulated: emulatable ? 'Yes' : 'No' };
}
},
impact: 'Important',
area: 'Core'
}
];

View File

@ -27,6 +27,11 @@ onmessage = function (e) {
'responseArrayBuffer' in xhr || 'mozResponseArrayBuffer' in xhr;
postMessage({action: 'xhr', result: responseExists});
break;
case 'TextDecoder':
postMessage({action: 'TextDecoder',
result: typeof TextDecoder !== 'undefined',
emulated: typeof FileReaderSync !== 'undefined'});
break;
}
};