diff --git a/core/js/tests/html-domparser.js b/core/js/tests/html-domparser.js new file mode 100644 index 0000000000000000000000000000000000000000..ea22f9b875226f429e9b5421bc49315b0c4080af --- /dev/null +++ b/core/js/tests/html-domparser.js @@ -0,0 +1,46 @@ +/* + * DOMParser HTML extension + * 2012-09-04 + * + * By Eli Grey, http://eligrey.com + * Public domain. + * NO WARRANTY EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK. + */ + +/*! @source https://gist.github.com/1129031 */ +/*global document, DOMParser*/ + +(function(DOMParser) { + "use strict"; + + var + DOMParser_proto = DOMParser.prototype + , real_parseFromString = DOMParser_proto.parseFromString + ; + + // Firefox/Opera/IE throw errors on unsupported types + try { + // WebKit returns null on unsupported types + if ((new DOMParser).parseFromString("", "text/html")) { + // text/html parsing is natively supported + return; + } + } catch (ex) {} + + DOMParser_proto.parseFromString = function(markup, type) { + if (/^\s*text\/html\s*(?:;|$)/i.test(type)) { + var + doc = document.implementation.createHTMLDocument("") + ; + if (markup.toLowerCase().indexOf('<!doctype') > -1) { + doc.documentElement.innerHTML = markup; + } + else { + doc.body.innerHTML = markup; + } + return doc; + } else { + return real_parseFromString.apply(this, arguments); + } + }; +}(DOMParser)); diff --git a/tests/karma.config.js b/tests/karma.config.js index e86f3d397bd962da24b93267a30fb1a35b588920..fb460ad850d5217b0553671dcee2303c0eaec02c 100644 --- a/tests/karma.config.js +++ b/tests/karma.config.js @@ -127,6 +127,7 @@ module.exports = function(config) { testCore = true; } + files.push(corePath + 'tests/html-domparser.js'); files.push('core/js/dist/main.js'); // core mocks files.push(corePath + 'tests/specHelper.js');