describe('filter', function() { var filter = angular.filter; it('should called the filter when evaluating expression', function() { var scope = createScope(); filter.fakeFilter = function(){}; spyOn(filter, 'fakeFilter'); scope.$eval('10|fakeFilter'); expect(filter.fakeFilter).toHaveBeenCalledWith(10); delete filter['fakeFilter']; }); it('should call filter on scope context', function() { var scope = createScope(); scope.name = 'misko'; filter.fakeFilter = function() { expect(this.name).toEqual('misko'); }; spyOn(filter, 'fakeFilter').andCallThrough(); scope.$eval('10|fakeFilter'); expect(filter.fakeFilter).toHaveBeenCalled(); delete filter['fakeFilter']; }); describe('currency', function() { it('should do basic filter', function() { var html = jqLite(''); var context = {$element:html}; var currency = bind(context, filter.currency); expect(currency(0)).toEqual('$0.00'); expect(html.hasClass('ng-format-negative')).toBeFalsy(); expect(currency(-999)).toEqual('$-999.00'); expect(html.hasClass('ng-format-negative')).toBeTruthy(); expect(currency(1234.5678)).toEqual('$1,234.57'); expect(html.hasClass('ng-format-negative')).toBeFalsy(); }); }); describe('number', function() { it('should do basic filter', function() { var context = {jqElement:jqLite('')}; var number = bind(context, filter.number); expect(number(0, 0)).toEqual('0'); expect(number(0)).toEqual('0.00'); expect(number(-999)).toEqual('-999.00'); expect(number(1234.5678)).toEqual('1,234.57'); expect(number(Number.NaN)).toEqual(''); expect(number("1234.5678")).toEqual('1,234.57'); expect(number(1/0)).toEqual(""); }); }); describe('json', function () { it('should do basic filter', function() { expect(filter.json.call({$element:jqLite('
')}, {a:"b"})).toEqual(toJson({a:"b"}, true)); }); }); describe('lowercase', function() { it('should do basic filter', function() { expect(filter.lowercase('AbC')).toEqual('abc'); expect(filter.lowercase(null)).toBeNull(); }); }); describe('uppercase', function() { it('should do basic filter', function() { expect(filter.uppercase('AbC')).toEqual('ABC'); expect(filter.uppercase(null)).toBeNull(); }); }); describe('html', function() { it('should do basic filter', function() { var html = filter.html("acd"); expect(html instanceof HTML).toBeTruthy(); expect(html.html).toEqual("acd"); }); }); describe('linky', function() { var linky = filter.linky; it('should do basic filter', function() { expect(linky("http://ab/ (http://a/)