test(jqLite): add missing test for $destroy event

This commit is contained in:
Igor Minar 2012-08-10 10:24:28 -07:00
parent 663ccc5449
commit 3b5f1105f6

View file

@ -2,6 +2,9 @@
describe('jqLite', function() {
var scope, a, b, c;
beforeEach(module(provideLog));
beforeEach(function() {
a = jqLite('<div>A</div>')[0];
b = jqLite('<div>B</div>')[0];
@ -241,7 +244,7 @@ describe('jqLite', function() {
expect(jqLite(c).data('prop')).toBeUndefined();
});
it('should call $destroy function if element removed', function() {
it('should emit $destroy event if element removed via remove()', function() {
var log = '';
var element = jqLite(a);
element.bind('$destroy', function() {log+= 'destroy;';});
@ -249,6 +252,18 @@ describe('jqLite', function() {
expect(log).toEqual('destroy;');
});
it('should emit $destroy event if an element is removed via html()', inject(function(log) {
var element = jqLite('<div><span>x</span></div>');
element.find('span').bind('$destroy', log.fn('destroyed'));
element.html('');
expect(element.html()).toBe('');
expect(log).toEqual('destroyed');
}));
it('should retrieve all data if called without params', function() {
var element = jqLite(a);
expect(element.data()).toEqual({});