diff options
| author | Igor Minar | 2011-09-15 00:47:15 +0200 |
|---|---|---|
| committer | Igor Minar | 2011-09-16 02:44:32 +0200 |
| commit | 0e5a24c584d88b17297010676b8e0005b3545efd (patch) | |
| tree | 7a7e1a75b4c6fcb382b340d90cddef0913f5c325 /test | |
| parent | 4e8f0d6e9ff1b852de9de9da72d0fac138bcd1a7 (diff) | |
| download | angular.js-0e5a24c584d88b17297010676b8e0005b3545efd.tar.bz2 | |
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
Diffstat (limited to 'test')
| -rw-r--r-- | test/jqLiteSpec.js | 14 | ||||
| -rw-r--r-- | test/scenario/dslSpec.js | 16 | ||||
| -rw-r--r-- | test/widgetsSpec.js | 4 |
3 files changed, 17 insertions, 17 deletions
diff --git a/test/jqLiteSpec.js b/test/jqLiteSpec.js index a7fded5c..b31b1664 100644 --- a/test/jqLiteSpec.js +++ b/test/jqLiteSpec.js @@ -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() { diff --git a/test/scenario/dslSpec.js b/test/scenario/dslSpec.js index 8e22e469..0334dd78 100644 --- a/test/scenario/dslSpec.js +++ b/test/scenario/dslSpec.js @@ -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() { diff --git a/test/widgetsSpec.js b/test/widgetsSpec.js index 6d6e47c6..6fccaa48 100644 --- a/test/widgetsSpec.js +++ b/test/widgetsSpec.js @@ -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(); |
