diff options
| -rw-r--r-- | src/services.js | 15 | ||||
| -rw-r--r-- | test/angular-mocks.js | 2 | ||||
| -rw-r--r-- | test/servicesSpec.js | 33 |
3 files changed, 43 insertions, 7 deletions
diff --git a/src/services.js b/src/services.js index aa749e32..940f1905 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; @@ -229,7 +234,7 @@ angularService('$xhr', function($browser, $error, $log){ angularService('$xhr.error', function($log){ return function(request, response){ - $log.error(response); + $log.error('ERROR: XHR: ' + request.url, request, response); }; }, {inject:['$log']}); @@ -267,7 +272,7 @@ angularService('$xhr.bulk', function($xhr, $error, $log){ if (response.status == 200) { (currentRequests[i].callback || noop)(response.status, response.response); } else { - $error(currentRequests[i], {status: response.status, body:response.response}); + $error(currentRequests[i], response); } } catch(e) { $log.error(e); diff --git a/test/angular-mocks.js b/test/angular-mocks.js index c5784ac9..8838b2cd 100644 --- a/test/angular-mocks.js +++ b/test/angular-mocks.js @@ -54,7 +54,7 @@ function MockBrowser() { var expect = expectations[method] || (expectations[method] = {}); return { respond: function(code, response) { - if (!isNumber(code)) { + if (!angular.isNumber(code)) { response = code; code = 200; } diff --git a/test/servicesSpec.js b/test/servicesSpec.js index 60b465d2..c2c13461 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'); @@ -257,7 +288,7 @@ describe("service", function(){ expect(typeof cb).toEqual('function'); expect($xhrError).wasCalledWith( {url:'/req1', method:'GET', data:null, callback:cb}, - {status:404, body:'NotFound'}); + {status:404, response:'NotFound'}); expect(log).toEqual('"second";DONE'); }); |
