From 80e12276f423a0dcb486b1191857db96a0ba0a93 Mon Sep 17 00:00:00 2001 From: Misko Hevery Date: Wed, 19 May 2010 13:24:20 -0700 Subject: added $log to console connection --- src/services.js | 11 ++++++++--- test/servicesSpec.js | 31 +++++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+), 3 deletions(-) diff --git a/src/services.js b/src/services.js index aa749e32..93822a8c 100644 --- a/src/services.js +++ b/src/services.js @@ -64,11 +64,16 @@ angularService("$location", function(browser){ return location; }, {inject: ['$browser']}); -angularService("$log", function(){ +angularService("$log", function($window){ + var console = $window.console, + log = console && console.log || noop; return { - error: noop + log: log, + warn: console && console.warn || log, + info: console && console.info || log, + error: console && console.error || log }; -}); +}, {inject:['$window']}); angularService("$hover", function(browser) { var tooltip, self = this, error, width = 300, arrowWidth = 10; diff --git a/test/servicesSpec.js b/test/servicesSpec.js index 60b465d2..45993490 100644 --- a/test/servicesSpec.js +++ b/test/servicesSpec.js @@ -31,6 +31,37 @@ describe("service", function(){ scope.$document.addStyleSheet('css/angular.css'); }); + describe("$log", function(){ + it('should use console if present', function(){ + function log(){}; + function warn(){}; + function info(){}; + function error(){}; + var scope = createScope(null, angularService, {$window: {console:{log:log, warn:warn, info:info, error:error}}}); + expect(scope.$log.log).toEqual(log); + expect(scope.$log.warn).toEqual(warn); + expect(scope.$log.info).toEqual(info); + expect(scope.$log.error).toEqual(error); + }); + + it('should use console.log if other not present', function(){ + function log(){}; + var scope = createScope(null, angularService, {$window: {console:{log:log}}}); + expect(scope.$log.log).toEqual(log); + expect(scope.$log.warn).toEqual(log); + expect(scope.$log.info).toEqual(log); + expect(scope.$log.error).toEqual(log); + }); + + it('should use noop if no console', function(){ + var scope = createScope(null, angularService, {$window: {}}); + expect(scope.$log.log).toEqual(noop); + expect(scope.$log.warn).toEqual(noop); + expect(scope.$log.info).toEqual(noop); + expect(scope.$log.error).toEqual(noop); + }); + }); + describe("$location", function(){ it("should inject $location", function(){ scope.$location.parse('http://host:123/p/a/t/h.html?query=value#path?key=value'); -- cgit v1.2.3