mirror of
https://github.com/Hopiu/angular.js.git
synced 2026-03-16 23:30:23 +00:00
fix(specs): jQuery now returns attr name instead of true/false for special attrs
for special attrs like 'checked' or 'multiple', jquery now returns the name or undedefined.
e.g. foo.attr('checked') => 'checked' || undefined
The solution is a combination of updating our tests as well as switching
over to prop() instead which properly returns true/false
This commit is contained in:
parent
4e8f0d6e9f
commit
0e5a24c584
3 changed files with 17 additions and 17 deletions
|
|
@ -150,18 +150,18 @@ describe('jqLite', function(){
|
|||
expect(jqLite(b).attr('prop')).toBeFalsy();
|
||||
});
|
||||
|
||||
it('should read special attributes as boolean', function(){
|
||||
it('should read special attributes as strings', function(){
|
||||
var select = jqLite('<select>');
|
||||
expect(select.attr('multiple')).toEqual(false);
|
||||
expect(jqLite('<select multiple>').attr('multiple')).toEqual(true);
|
||||
expect(jqLite('<select multiple="">').attr('multiple')).toEqual(true);
|
||||
expect(jqLite('<select multiple="x">').attr('multiple')).toEqual(true);
|
||||
expect(select.attr('multiple')).toBeUndefined();
|
||||
expect(jqLite('<select multiple>').attr('multiple')).toBe('multiple');
|
||||
expect(jqLite('<select multiple="">').attr('multiple')).toBe('multiple');
|
||||
expect(jqLite('<select multiple="x">').attr('multiple')).toBe('multiple');
|
||||
|
||||
select.attr('multiple', false);
|
||||
expect(select.attr('multiple')).toEqual(false);
|
||||
expect(select.attr('multiple')).toBeUndefined();
|
||||
|
||||
select.attr('multiple', true);
|
||||
expect(select.attr('multiple')).toEqual(true);
|
||||
expect(select.attr('multiple')).toBe('multiple');
|
||||
});
|
||||
|
||||
it('should return undefined for non-existing attributes', function() {
|
||||
|
|
|
|||
|
|
@ -504,15 +504,15 @@ describe("angular.scenario.dsl", function() {
|
|||
it('should toggle checkbox state', function() {
|
||||
doc.append('<input type="checkbox" name="test.input" checked>');
|
||||
expect(_jQuery('input[name="test.input"]').
|
||||
attr('checked')).toBeTruthy();
|
||||
prop('checked')).toBe(true);
|
||||
var chain = $root.dsl.input('test.input');
|
||||
chain.check();
|
||||
expect(_jQuery('input[name="test.input"]').
|
||||
attr('checked')).toBeFalsy();
|
||||
prop('checked')).toBe(false);
|
||||
$window.angular.reset();
|
||||
chain.check();
|
||||
expect(_jQuery('input[name="test.input"]').
|
||||
attr('checked')).toBeTruthy();
|
||||
prop('checked')).toBe(true);
|
||||
});
|
||||
|
||||
it('should return error if checkbox did not match', function() {
|
||||
|
|
@ -527,17 +527,17 @@ describe("angular.scenario.dsl", function() {
|
|||
'<input type="radio" name="0@test.input" value="bar" checked="checked">'
|
||||
);
|
||||
// HACK! We don't know why this is sometimes false on chrome
|
||||
_jQuery('input[name="0@test.input"][value="bar"]').attr('checked', true);
|
||||
_jQuery('input[name="0@test.input"][value="bar"]').prop('checked', true);
|
||||
expect(_jQuery('input[name="0@test.input"][value="bar"]').
|
||||
attr('checked')).toBeTruthy();
|
||||
prop('checked')).toBe(true);
|
||||
expect(_jQuery('input[name="0@test.input"][value="foo"]').
|
||||
attr('checked')).toBeFalsy();
|
||||
prop('checked')).toBe(false);
|
||||
var chain = $root.dsl.input('test.input');
|
||||
chain.select('foo');
|
||||
expect(_jQuery('input[name="0@test.input"][value="bar"]').
|
||||
attr('checked')).toBeFalsy();
|
||||
prop('checked')).toBe(false);
|
||||
expect(_jQuery('input[name="0@test.input"][value="foo"]').
|
||||
attr('checked')).toBeTruthy();
|
||||
prop('checked')).toBe(true);
|
||||
});
|
||||
|
||||
it('should return error if radio button did not match', function() {
|
||||
|
|
|
|||
|
|
@ -957,8 +957,8 @@ describe("widget", function(){
|
|||
scope.selected = [];
|
||||
scope.$digest();
|
||||
expect(select.find('option').length).toEqual(2);
|
||||
expect(jqLite(select.find('option')[0]).attr('selected')).toEqual(false);
|
||||
expect(jqLite(select.find('option')[1]).attr('selected')).toEqual(false);
|
||||
expect(select.find('option')[0].selected).toBe(false);
|
||||
expect(select.find('option')[1].selected).toBe(false);
|
||||
|
||||
scope.selected.push(scope.values[1]);
|
||||
scope.$digest();
|
||||
|
|
|
|||
Loading…
Reference in a new issue