blob: c40085a329f7ad5fbb34ed842542db29c2bc3734 [file] [log] [blame]
(function() {
'use strict';
// NOTE: When new default variants are added DEFAULT_VARIANTS in conftest.py
// must also be updated
var variants = {
/**
* Tests are executed in the absence of the global Promise constructor by
* default in order to verify support for the Server browser engine.
*
* https://github.com/web-platform-tests/wpt/issues/6266
*/
'default': {
description: 'Global Promise constructor removed.',
apply: function() {
delete window.Promise;
}
},
/**
* This variant allows for testing functionality that is fundamentally
* dependent on Promise support, e.g. the `promise_test` function
*/
'keep-promise': {
description: 'No modification of global environment.',
apply: function() {}
}
};
var match = window.location.search.match(/\?(.*)$/);
var variantName = (match && match[1]) || 'default';
if (!Object.hasOwnProperty.call(variants, variantName)) {
window.location = 'javascript:"Unrecognized variant: ' + variantName + '";';
document.close();
return;
}
if (typeof test === 'function') {
test(function() {
assert_unreached('variants.js must be included before testharness.js');
});
}
var variant = variants[variantName];
var variantNode = document.createElement('div');
variantNode.innerHTML = '<p>This testharness.js test was executed with ' +
'the variant named, "' + variantName + '". ' + variant.description +
'</p><p>Refer to the test harness README file for more information.</p>';
function onReady() {
if (document.readyState !== 'complete') {
return;
}
document.body.insertBefore(variantNode, document.body.firstChild);
}
onReady();
document.addEventListener('readystatechange', onReady);
variant.apply();
}());