'use strict'; describe('boolean attr directives', function() { var element; afterEach(function() { dealoc(element); }); it('should properly evaluate 0 as false', inject(function($rootScope, $compile) { // jQuery does not treat 0 as false, when setting attr() element = $compile('')($rootScope) $rootScope.isDisabled = 0; $rootScope.$digest(); expect(element.attr('disabled')).toBeFalsy(); $rootScope.isDisabled = 1; $rootScope.$digest(); expect(element.attr('disabled')).toBeTruthy(); })); it('should bind disabled', inject(function($rootScope, $compile) { element = $compile('')($rootScope) $rootScope.isDisabled = false; $rootScope.$digest(); expect(element.attr('disabled')).toBeFalsy(); $rootScope.isDisabled = true; $rootScope.$digest(); expect(element.attr('disabled')).toBeTruthy(); })); it('should bind checked', inject(function($rootScope, $compile) { element = $compile('')($rootScope) $rootScope.isChecked = false; $rootScope.$digest(); expect(element.attr('checked')).toBeFalsy(); $rootScope.isChecked=true; $rootScope.$digest(); expect(element.attr('checked')).toBeTruthy(); })); it('should bind selected', inject(function($rootScope, $compile) { element = $compile('')($rootScope) jqLite(document.body).append(element) $rootScope.isSelected=false; $rootScope.$digest(); expect(element.children()[1].selected).toBeFalsy(); $rootScope.isSelected=true; $rootScope.$digest(); expect(element.children()[1].selected).toBeTruthy(); })); it('should bind readonly', inject(function($rootScope, $compile) { element = $compile('')($rootScope) $rootScope.isReadonly=false; $rootScope.$digest(); expect(element.attr('readOnly')).toBeFalsy(); $rootScope.isReadonly=true; $rootScope.$digest(); expect(element.attr('readOnly')).toBeTruthy(); })); it('should bind open', inject(function($rootScope, $compile) { element = $compile('
')($rootScope) $rootScope.isOpen=false; $rootScope.$digest(); expect(element.attr('open')).toBeFalsy(); $rootScope.isOpen=true; $rootScope.$digest(); expect(element.attr('open')).toBeTruthy(); })); describe('multiple', function() { it('should NOT bind to multiple via ngMultiple', inject(function($rootScope, $compile) { element = $compile('')($rootScope) $rootScope.isMultiple=false; $rootScope.$digest(); expect(element.attr('multiple')).toBeFalsy(); $rootScope.isMultiple='multiple'; $rootScope.$digest(); expect(element.attr('multiple')).toBeFalsy(); // ignore })); it('should throw an exception if binding to multiple attribute', inject(function($rootScope, $compile) { if (msie < 9) return; //IE8 doesn't support biding to boolean attributes expect(function() { $compile('') }).toThrowMinErr('$compile', 'selmulti', 'Binding to the \'multiple\' attribute is not supported. ' + 'Element: