diff options
| author | Igor Minar | 2012-03-19 11:15:09 -0700 | 
|---|---|---|
| committer | Igor Minar | 2012-03-20 11:07:36 -0700 | 
| commit | 15213ec212769837cb2b7e781ffc5bfd598d27ca (patch) | |
| tree | c602f2019f4cf66efbb47004fa641ab1de4da53c /test/service/logSpec.js | |
| parent | 9171c76bb4951b5ad6449ff9d0b658f2d390f784 (diff) | |
| download | angular.js-15213ec212769837cb2b7e781ffc5bfd598d27ca.tar.bz2 | |
fix($log): avoid console.log.apply calls in IE
In IE window.console.log and friends are functions that don't have apply or call fns.
For this reason we have to treat them specially and do our best to log at least
something when running in this browser.
Closes #805
Diffstat (limited to 'test/service/logSpec.js')
| -rw-r--r-- | test/service/logSpec.js | 35 | 
1 files changed, 29 insertions, 6 deletions
| diff --git a/test/service/logSpec.js b/test/service/logSpec.js index 72ce6a5c..269057a2 100644 --- a/test/service/logSpec.js +++ b/test/service/logSpec.js @@ -1,17 +1,18 @@  'use strict';  describe('$log', function() { -  var $window; -  var logger; +  var $window, logger, log, warn, info, error; + -  function log() { logger+= 'log;'; } -  function warn() { logger+= 'warn;'; } -  function info() { logger+= 'info;'; } -  function error() { logger+= 'error;'; }    beforeEach(module(function($provide){      $window = {};      logger = ''; +    log = function() { logger+= 'log;'; }; +    warn = function() { logger+= 'warn;'; }; +    info = function() { logger+= 'info;'; }; +    error = function() { logger+= 'error;'; }; +      $provide.provider('$log', $LogProvider);      $provide.value('$exceptionHandler', angular.mock.rethrow);      $provide.value('$window', $window); @@ -58,6 +59,28 @@ describe('$log', function() {    )); +  it("should work in IE where console.error doesn't have apply method", inject( +      function() { +        log.apply = log.call = +            warn.apply = warn.call = +            info.apply = info.call = +            error.apply = error.call = null; + +        $window.console = {log: log, +                           warn: warn, +                           info: info, +                           error: error}; +      }, +      function($log) { +        $log.log.apply($log); +        $log.warn.apply($log); +        $log.info.apply($log); +        $log.error.apply($log); +        expect(logger).toEqual('log;warn;info;error;'); +      }) +  ); + +    describe('$log.error', function() {      var e, $log, errorArgs; | 
