fix(jqLite): prepend array in correct order

Match jQuery behavior when prepending array into empty element
This commit is contained in:
Joao Sa 2013-06-28 00:53:17 -03:00 committed by Igor Minar
parent 3ffddad100
commit fd87eb0ca5
2 changed files with 13 additions and 6 deletions

View file

@ -715,12 +715,7 @@ forEach({
if (element.nodeType === 1) {
var index = element.firstChild;
forEach(new JQLite(node), function(child){
if (index) {
element.insertBefore(child, index);
} else {
element.appendChild(child);
index = child;
}
element.insertBefore(child, index);
});
}
},

View file

@ -1075,6 +1075,18 @@ describe('jqLite', function() {
expect(root.prepend('abc')).toEqual(root);
expect(root.html().toLowerCase()).toEqual('abctext');
});
it('should prepend array to empty in the right order', function() {
var root = jqLite('<div>');
expect(root.prepend([a, b, c])).toBe(root);
expect(sortedHtml(root)).
toBe('<div><div>A</div><div>B</div><div>C</div></div>');
});
it('should prepend array to content in the right order', function() {
var root = jqLite('<div>text</div>');
expect(root.prepend([a, b, c])).toBe(root);
expect(sortedHtml(root)).
toBe('<div><div>A</div><div>B</div><div>C</div>text</div>');
});
});