mirror of
https://github.com/zhigang1992/angular.js.git
synced 2026-05-14 16:29:30 +08:00
refactor(jqLite): make HTML-parsing constructor more robust
Previously, the jqLite constructor was limited and would be unable to circumvent many of the HTML5 spec's "allowed content" policies for various nodes. This led to complicated and gross hacks around this in the HTML compiler. This change refactors these hacks by simplifying them, and placing them in jqLite rather than in $compile, in order to better support these things, and simplify code. While the new jqLite constructor is still not even close to as robust as jQuery, it should be more than suitable enough for the needs of the framework, while adding minimal code. Closes #6941 Closes #6958
This commit is contained in:
@@ -95,6 +95,36 @@ describe('jqLite', function() {
|
||||
expect(fragment.length).toBe(1);
|
||||
expect(fragment[0].nodeType).toBe(11);
|
||||
});
|
||||
|
||||
|
||||
it('should allow construction of <option> elements', function() {
|
||||
var nodes = jqLite('<option>');
|
||||
expect(nodes.length).toBe(1);
|
||||
expect(nodes[0].nodeName.toLowerCase()).toBe('option');
|
||||
});
|
||||
|
||||
|
||||
// Special tests for the construction of elements which are restricted (in the HTML5 spec) to
|
||||
// being children of specific nodes.
|
||||
forEach([
|
||||
'caption',
|
||||
'colgroup',
|
||||
'col',
|
||||
'optgroup',
|
||||
'opt',
|
||||
'tbody',
|
||||
'td',
|
||||
'tfoot',
|
||||
'th',
|
||||
'thead',
|
||||
'tr'
|
||||
], function(name) {
|
||||
it('should allow construction of <$NAME$> elements'.replace('$NAME$', name), function() {
|
||||
var nodes = jqLite('<$NAME$>'.replace('$NAME$', name));
|
||||
expect(nodes.length).toBe(1);
|
||||
expect(nodes[0].nodeName.toLowerCase()).toBe(name);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe('_data', function() {
|
||||
|
||||
Reference in New Issue
Block a user