UNPKG

dojo

Version:

Dojo core is a powerful, lightweight library that makes common tasks quicker and easier. Animate elements, manipulate the DOM, and query with easy CSS syntax, all without sacrificing performance.

101 lines (83 loc) 2.56 kB
define([ 'intern!object', 'intern/chai!assert', '../../query', '../../_base/kernel', 'dojo/dom-construct', 'dojo/_base/declare', 'dojo/text!./support/html.template.html', '../../NodeList-html', '../../NodeList-dom' ], function (registerSuite, assert, query, dojo, domConstruct, declare, template) { function deleteGlobal(name) { window[name] = undefined; try { delete window[name]; } catch(e) { /* ie is special */ } } registerSuite(function () { var container; return { name: 'dojo/NodeList-html', 'before': function () { declare('SimpleThing', null, { constructor: function(params, node) { node.setAttribute('test', 'ok'); } }); }, 'beforeEach': function () { container = domConstruct.place(template, document.body); }, 'afterEach': function () { document.body.removeChild(container); container = null; }, 'after': function () { deleteGlobal('SimpleThing'); }, 'simple query usage': function () { var markup = '<p>expected</p>'; var options = { onEnd: onEnd }; query('#container').html(markup, options); function onEnd() { var node = query('#container p'); assert.lengthOf(node, 1); assert.strictEqual(node[0].innerHTML, 'expected'); } }, 'nodelist html': function () { var options = { parseContent: true, onBegin: onBegin }; var markup = '<li data-' + dojo._scopeName + '-type="SimpleThing">1</li>' + '<li data-' + dojo._scopeName + '-type="SimpleThing">2</li>' + '<li data-' + dojo._scopeName + '-type="SimpleThing">3</li>'; var liNodes; query('.zork').html(markup, options).removeClass('notdone').addClass('done'); liNodes = query('.zork > li'); assert.lengthOf(liNodes, 9); assert.isTrue(textReplacementHappened(liNodes)); assert.isTrue(doneIsAddedToEveryNode(query('.zork'))); assert.isTrue(hasATestAttribute(liNodes)); function onBegin() { this.content = this.content.replace(/([0-9])/g, 'MOOO'); this.inherited('onBegin', arguments); } function doneIsAddedToEveryNode(nodes) { return nodes.every(function (node) { return node.className.indexOf('zork') >= 0 && node.className.indexOf('done') >= 0; }); } function textReplacementHappened(nodes) { return nodes.every(function(node) { return node.innerHTML.match(/MOOO/); }); } function hasATestAttribute(nodes) { return nodes.every(function (node) { return node.getAttribute('test') === 'ok'; }); } } }; }); });