summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJulius Härtl <jus@bitgrid.net>2019-03-01 17:06:48 +0100
committerJulius Härtl <jus@bitgrid.net>2019-03-07 10:45:47 +0100
commitd7686346165bb63c04b2f087772c85354c205951 (patch)
treeeaaf1a6ba053c5234db7a4580c6fe3f2d37e2f06
parent067651b715fdce9aad5adb8fb89ebe73392d7f4f (diff)
downloadnextcloud-server-d7686346165bb63c04b2f087772c85354c205951.tar.gz
nextcloud-server-d7686346165bb63c04b2f087772c85354c205951.zip
Fix domparser on phantomjs
Signed-off-by: Julius Härtl <jus@bitgrid.net>
-rw-r--r--core/js/tests/html-domparser.js46
-rw-r--r--tests/karma.config.js1
2 files changed, 47 insertions, 0 deletions
diff --git a/core/js/tests/html-domparser.js b/core/js/tests/html-domparser.js
new file mode 100644
index 00000000000..ea22f9b8752
--- /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 e86f3d397bd..fb460ad850d 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');