html5-utils
Version:
html5 dom utils....
106 lines (94 loc) • 4.21 kB
JavaScript
;
var _assert = require('assert');
var _assert2 = _interopRequireDefault(_assert);
var _parse = require('parse5');
var _parse2 = _interopRequireDefault(_parse);
var _ = require('..');
var _2 = _interopRequireDefault(_);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
describe('.getAttrIndex(node, name)', function () {
it('returns index of attribute if set', function () {
var doc = _parse2.default.parseFragment('<test-el foo="bar"></test-el>');
var node = doc.childNodes[0];
_assert2.default.equal(0, _2.default.getAttrIndex(node, 'foo'));
});
it('returns first index of attribute if set', function () {
var doc = _parse2.default.parseFragment('<test-el foo="bar1" foo="bar2"></test-el>');
var node = doc.childNodes[0];
_assert2.default.equal(0, _2.default.getAttrIndex(node, 'foo'));
});
it('returns -1 if attribute is not set', function () {
var doc = _parse2.default.parseFragment('<test-el foo="bar"></test-el>');
var node = doc.childNodes[0];
_assert2.default.equal(-1, _2.default.getAttrIndex(node, 'test'));
});
});
describe('.hasAttr(node, name)', function () {
it('true if attribute set', function () {
var doc = _parse2.default.parseFragment('<test-el foo="bar"></test-el>');
var node = doc.childNodes[0];
_assert2.default.equal(true, _2.default.hasAttr(node, 'foo'));
});
it('returns false if attribute is not set', function () {
var doc = _parse2.default.parseFragment('<test-el foo="bar"></test-el>');
var node = doc.childNodes[0];
_assert2.default.equal(false, _2.default.hasAttr(node, 'test'));
});
});
describe('.getAttr(node, name)', function () {
it('returns attribute if set', function () {
var doc = _parse2.default.parseFragment('<test-el foo="bar"></test-el>');
var node = doc.childNodes[0];
_assert2.default.equal('bar', _2.default.getAttr(node, 'foo'));
});
it('returns null if attribute is unset', function () {
var doc = _parse2.default.parseFragment('<test-el foo="bar"></test-el>');
var node = doc.childNodes[0];
_assert2.default.equal(null, _2.default.getAttr(node, 'bar'));
});
it('returns first value if attribute is set more than one times', function () {
var doc = _parse2.default.parseFragment('<test-el foo="bar1" foo="bar2"></test-el>');
var node = doc.childNodes[0];
_assert2.default.equal('bar1', _2.default.getAttr(node, 'foo'));
});
});
describe('.setAttr(node, name)', function () {
it('change value of an already set attribute', function () {
var doc = _parse2.default.parseFragment('<test-el foo="bar1"></test-el>');
var node = doc.childNodes[0];
_2.default.setAttr(node, 'foo', 'bar2');
_assert2.default.equal('bar2', node.attrs[0].value);
});
it('set a new attribute', function () {
var doc = _parse2.default.parseFragment('<test-el></test-el>');
var node = doc.childNodes[0];
_2.default.setAttr(node, 'foo', 'bar');
_assert2.default.equal('bar', node.attrs[0].value);
});
it('set first instance of attribute.', function () {
var doc = _parse2.default.parseFragment('<test-el foo="bar1" foo="bar2"></test-el>');
var node = doc.childNodes[0];
_2.default.setAttr(node, 'foo', 'bar');
_assert2.default.equal('bar', node.attrs[0].value);
});
});
describe('.removeAttr(node, name)', function () {
it('removes already set attribute', function () {
var doc = _parse2.default.parseFragment('<test-el foo="bar"></test-el>');
var node = doc.childNodes[0];
_2.default.removeAttr(node, 'foo');
_assert2.default.equal(0, node.attrs.length);
});
it('removes all instances of attribute', function () {
var doc = _parse2.default.parseFragment('<test-el foo="bar1" foo="bar2"></test-el>');
var node = doc.childNodes[0];
_2.default.removeAttr(node, 'foo');
_assert2.default.equal(0, node.attrs.length);
});
it('do nothing if attribute is not set', function () {
var doc = _parse2.default.parseFragment('<test-el foo="bar1"></test-el>');
var node = doc.childNodes[0];
_2.default.removeAttr(node, 'test');
_assert2.default.equal(1, node.attrs.length);
});
});