From bda2bba2be7a52bf39fb1b257b6363edc7b71173 Mon Sep 17 00:00:00 2001 From: Misko Hevery Date: Tue, 26 Jul 2011 12:06:14 -0700 Subject: feat(jqlite): added .inheritedData method and $destroy event. - refactored .scope() to use .inheritedData() instead. - .bind('$destroy', callback) will call when the DOM element is removed --- test/jqLiteSpec.js | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) (limited to 'test') diff --git a/test/jqLiteSpec.js b/test/jqLiteSpec.js index 24795331..f66b6244 100644 --- a/test/jqLiteSpec.js +++ b/test/jqLiteSpec.js @@ -83,6 +83,33 @@ describe('jqLite', function(){ }); + describe('inheritedData', function() { + + it('should retrieve data attached to the current element', function() { + var element = jqLite('foo'); + element.data('myData', 'abc'); + expect(element.inheritedData('myData')).toBe('abc'); + dealoc(element); + }); + + + it('should walk up the dom to find data', function() { + var element = jqLite(''); + var deepChild = jqLite(element[0].getElementsByTagName('b')[0]); + element.data('myData', 'abc'); + expect(deepChild.inheritedData('myData')).toBe('abc'); + dealoc(element); + }); + + + it('should return undefined when no data was found', function() { + var element = jqLite(''); + var deepChild = jqLite(element[0].getElementsByTagName('b')[0]); + expect(deepChild.inheritedData('myData')).toBeFalsy(); + dealoc(element); + }); + }); + describe('scope', function() { it('should retrieve scope attached to the current element', function() { var element = jqLite('foo'); -- cgit v1.2.3