From 5fe1f39f027c6f2c6a530975dd5389d788d3c0eb Mon Sep 17 00:00:00 2001 From: Caitlin Potter Date: Tue, 7 Jan 2014 16:41:54 -0500 Subject: fix($parse): reduce false-positives in isElement tests There are always going to be false positives here, unfortunately. But testing different properties will hopefully reduce the number of false positives in a meaningful way, without harming performance too much. Closes #4805 Closes #5675 --- test/ng/parseSpec.js | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'test') diff --git a/test/ng/parseSpec.js b/test/ng/parseSpec.js index 24f5c950..466be755 100644 --- a/test/ng/parseSpec.js +++ b/test/ng/parseSpec.js @@ -786,6 +786,28 @@ describe('parser', function() { '$parse', 'isecdom', 'Referencing DOM nodes in Angular expressions is ' + 'disallowed! Expression: a.b.doc.on("click")'); })); + + // Issue #4805 + it('should NOT throw isecdom when referencing a Backbone Collection', function() { + // Backbone stuff is sort of hard to mock, if you have a better way of doing this, + // please fix this. + var fakeBackboneCollection = { + children: [{}, {}, {}], + find: function() {}, + on: function() {}, + off: function() {}, + bind: function() {} + }; + scope.backbone = fakeBackboneCollection; + expect(function() { scope.$eval('backbone'); }).not.toThrow(); + }); + + it('should NOT throw isecdom when referencing an array with node properties', function() { + var array = [1,2,3]; + array.on = array.attr = array.prop = array.bind = true; + scope.array = array; + expect(function() { scope.$eval('array'); }).not.toThrow(); + }); }); }); -- cgit v1.2.3