diff --git a/test/mithril.trust.js b/test/mithril.trust.js index 71463edd..17727a0d 100644 --- a/test/mithril.trust.js +++ b/test/mithril.trust.js @@ -41,7 +41,7 @@ describe("m.trust()", function () { expect(root.childNodes[3].tagName).to.equal("I") }) - // TODO: this currently fails. + // TODO: m.trust's contents are having their tags stripped. xit("works with mixed trusted content in td", function () { var root = document.createElement("table") root.appendChild(root = document.createElement("tr")) diff --git a/tests/index.html b/tests/index.html index 9d7f08f4..54e36a51 100644 --- a/tests/index.html +++ b/tests/index.html @@ -1,7 +1,7 @@ - + - + diff --git a/tests/mock.js b/tests/mock.js deleted file mode 100644 index ee39d861..00000000 --- a/tests/mock.js +++ /dev/null @@ -1,193 +0,0 @@ -(function (global) { // eslint-disable-line max-statements - "use strict" - - /* eslint-disable no-extend-native */ - if (!Array.prototype.indexOf) { - Array.prototype.indexOf = function (item) { - for (var i = 0; i < this.length; i++) { - if (this[i] === item) return i - } - return -1 - } - } - - if (!Array.prototype.map) { - Array.prototype.map = function (callback) { - var results = [] - for (var i = 0; i < this.length; i++) { - results[i] = callback(this[i], i, this) - } - return results - } - } - - if (!Array.prototype.filter) { - Array.prototype.filter = function (callback) { - var results = [] - for (var i = 0; i < this.length; i++) { - if (callback(this[i], i, this)) results.push(this[i]) - } - return results - } - } - - if (!Object.keys) { - Object.keys = function () { - var keys = [] - for (var i in this) if ({}.hasOwnProperty.call(this, i)) { - keys.push(i) - } - return keys - } - } - /* eslint-enable no-extend-native */ - - var window = global.mock = {window: window} - window.window = window - window.document = {} - window.document.childNodes = [] - window.document.createElement = function (tag) { - return { - style: {}, - childNodes: [], - nodeType: 1, - nodeName: tag.toUpperCase(), - appendChild: window.document.appendChild, - removeChild: window.document.removeChild, - replaceChild: window.document.replaceChild, - - insertBefore: function (node, reference) { - node.parentNode = this - var referenceIndex = this.childNodes.indexOf(reference) - var index = this.childNodes.indexOf(node) - if (index > -1) this.childNodes.splice(index, 1) - if (referenceIndex < 0) this.childNodes.push(node) - else this.childNodes.splice(referenceIndex, 0, node) - }, - - insertAdjacentHTML: function (position, html) { - // todo: accept markup - if (position === "beforebegin") { - this.parentNode.insertBefore( - window.document.createTextNode(html), - this) - } else if (position === "beforeend") { - this.appendChild(window.document.createTextNode(html)) - } - }, - - setAttribute: function (name, value) { - this[name] = value.toString() - }, - setAttributeNS: function (namespace, name, value) { - this.namespaceURI = namespace - this[name] = value.toString() - }, - getAttribute: function (name) { - return this[name] - }, - addEventListener: function () {}, - removeEventListener: function () {} - } - } - window.document.createElementNS = function (namespace, tag) { - var element = window.document.createElement(tag) - element.namespaceURI = namespace - return element - } - window.document.createTextNode = function (text) { - return {nodeValue: text.toString()} - } - window.document.documentElement = window.document.createElement("html") - window.document.replaceChild = function (newChild, oldChild) { - var index = this.childNodes.indexOf(oldChild) - if (index > -1) this.childNodes.splice(index, 1, newChild) - else this.childNodes.push(newChild) - newChild.parentNode = this - oldChild.parentNode = null - } - window.document.appendChild = function (child) { - var index = this.childNodes.indexOf(child) - if (index > -1) this.childNodes.splice(index, 1) - this.childNodes.push(child) - child.parentNode = this - } - window.document.removeChild = function (child) { - var index = this.childNodes.indexOf(child) - this.childNodes.splice(index, 1) - child.parentNode = null - } - // getElementsByTagName is only used by JSONP tests, it's not required by - // Mithril - window.document.getElementsByTagName = function (name){ - name = name.toLowerCase() - var out = [] - - function traverse(node) { - if (node.childNodes && node.childNodes.length > 0){ - node.childNodes.map(function (curr){ - if (curr.nodeName.toLowerCase() === name) { - out.push(curr) - } - traverse(curr) - }) - } - } - - traverse(window.document) - return out - } - window.scrollTo = function () {} - window.cancelAnimationFrame = function () {} - window.requestAnimationFrame = function (callback) { - window.requestAnimationFrame.$callback = callback - return window.requestAnimationFrame.$id++ - } - window.requestAnimationFrame.$id = 1 - window.requestAnimationFrame.$resolve = function () { - if (window.requestAnimationFrame.$callback) { - var callback = window.requestAnimationFrame.$callback - window.requestAnimationFrame.$callback = null - callback() - } - } - - window.XMLHttpRequest = (function () { - function XMLHttpRequest() { - this.$headers = {} - this.setRequestHeader = function (key, value) { - this.$headers[key] = value - } - this.open = function (method, url) { - this.method = method - this.url = url - } - this.send = function () { - this.responseText = JSON.stringify(this) - this.readyState = 4 - this.status = 200 - XMLHttpRequest.$instances.push(this) - } - } - XMLHttpRequest.$instances = [] - return XMLHttpRequest - })() - - window.location = {search: "", pathname: "", hash: ""} - - window.history = {} - window.history.$$length = 0 - - window.history.pushState = function (data, title, url) { - window.history.$$length++ - window.location.pathname = - window.location.search = - window.location.hash = url - } - - window.history.replaceState = function (data, title, url) { - window.location.pathname = - window.location.search = - window.location.hash = url - } -})(this)