fix(jqLite): attr() should not special-case 'class' attribute

since jQuery 1.6 'class' is not treated specially, so we have to revert this fix and use className in tests instead
This commit is contained in:
Igor Minar 2011-09-15 00:35:09 +02:00
parent a2a830e227
commit 0d7fe97aff
3 changed files with 6 additions and 21 deletions

View file

@ -253,13 +253,7 @@ forEach({
},
attr: function(element, name, value){
if (name === 'class') {
if(isDefined(value)) {
element.className = value;
} else {
return element.className;
}
} else if (SPECIAL_ATTR[name]) {
if (SPECIAL_ATTR[name]) {
if (isDefined(value)) {
element[name] = !!value;
} else {

View file

@ -254,7 +254,7 @@ describe("directive", function() {
scope.$digest();
scope.dynCls = 'foo';
scope.$digest();
expect(element.attr('class')).toBe('ui-panel ui-selected ng-directive foo');
expect(element[0].className).toBe('ui-panel ui-selected ng-directive foo');
});
@ -262,7 +262,7 @@ describe("directive", function() {
var scope = compile('<div class="panel bar" ng:class="dynCls"></div>');
scope.dynCls = 'panel';
scope.$digest();
expect(element.attr('class')).toBe('panel bar ng-directive');
expect(element[0].className).toBe('panel bar ng-directive');
});
@ -272,7 +272,7 @@ describe("directive", function() {
scope.$digest();
scope.dynCls = 'window';
scope.$digest();
expect(element.attr('class')).toBe('bar ng-directive window');
expect(element[0].className).toBe('bar ng-directive window');
});
@ -283,7 +283,7 @@ describe("directive", function() {
element.addClass('foo');
scope.dynCls = '';
scope.$digest();
expect(element.attr('class')).toBe('ng-directive');
expect(element[0].className).toBe('ng-directive');
});
@ -291,7 +291,7 @@ describe("directive", function() {
var scope = compile('<div ng:class="dynCls"></div>');
scope.dynCls = [undefined, null];
scope.$digest();
expect(element.attr('class')).toBe('ng-directive');
expect(element[0].className).toBe('ng-directive');
});
});

View file

@ -168,15 +168,6 @@ describe('jqLite', function(){
var elm = jqLite('<div class="any">a</div>');
expect(elm.attr('non-existing')).toBeUndefined();
});
it('should special-case "class" attribute', function() {
// stupid IE9 returns null for element.getAttribute('class') when element has ng:class attr
var elm = jqLite('<div class=" any " ng:class="dynCls">a</div>');
expect(elm.attr('class')).toBe(' any ');
elm.attr('class', 'foo bar');
expect(elm.attr('class')).toBe('foo bar');
});
});