From de9464c1431906883bdf180fb00615e6fa371577 Mon Sep 17 00:00:00 2001 From: Misko Hevery Date: Tue, 13 Mar 2012 14:42:26 -0700 Subject: f(compile): boolean attributes too agresive - compiler would rewrite boolean attributes on all elements. This is too aggressive and interferes with some third-party frameworks --- test/service/compilerSpec.js | 49 ++++++++++++++++++++++---------------------- 1 file changed, 25 insertions(+), 24 deletions(-) (limited to 'test/service') diff --git a/test/service/compilerSpec.js b/test/service/compilerSpec.js index b42b871a..28c91492 100644 --- a/test/service/compilerSpec.js +++ b/test/service/compilerSpec.js @@ -1226,20 +1226,39 @@ describe('$compile', function() { }); - it('should read boolean attributes as boolean', function() { + it('should read boolean attributes as boolean only on control elements', function() { + var value; + module(function($compileProvider) { + $compileProvider.directive({ + input: valueFn({ + restrict: 'ECA', + link:function(scope, element, attr) { + value = attr.required; + } + }) + }); + }); + inject(function($rootScope, $compile) { + element = $compile('')($rootScope); + expect(value).toEqual(true); + }); + }); + + it('should read boolean attributes as text on non-controll elements', function() { + var value; module(function($compileProvider) { $compileProvider.directive({ div: valueFn({ restrict: 'ECA', link:function(scope, element, attr) { - element.text(attr.required); + value = attr.required; } }) }); }); inject(function($rootScope, $compile) { - element = $compile('
')($rootScope); - expect(element.text()).toEqual('true'); + element = $compile('')($rootScope); + expect(value).toEqual('some text'); }); }); @@ -1262,24 +1281,6 @@ describe('$compile', function() { }); - it('should read boolean attributes as boolean', function() { - module(function($compileProvider) { - $compileProvider.directive({ - div: valueFn({ - restrict: 'ECA', - link: function(scope, element, attr) { - element.text(attr.required); - } - }) - }); - }); - inject(function($rootScope, $compile) { - element = $compile('')($rootScope); - expect(element.text()).toEqual('true'); - }); - }); - - it('should create new instance of attr for each template stamping', function() { module(function($compileProvider, $provide) { var state = { first: [], second: [] }; @@ -1335,7 +1336,7 @@ describe('$compile', function() { var attr; beforeEach(function(){ module(function($compileProvider) { - $compileProvider.directive('div', valueFn({ + $compileProvider.directive('input', valueFn({ restrict: 'ECA', link: function(scope, element, attr) { scope.attr = attr; @@ -1343,7 +1344,7 @@ describe('$compile', function() { })); }); inject(function($compile, $rootScope) { - element = $compile('')($rootScope); + element = $compile('')($rootScope); attr = $rootScope.attr; expect(attr).toBeDefined(); }); -- cgit v1.2.3