aboutsummaryrefslogtreecommitdiffstats
path: root/test/service/logSpec.js
diff options
context:
space:
mode:
authorIgor Minar2011-02-15 01:12:45 -0500
committerIgor Minar2011-02-15 11:01:53 -0500
commit1777110958f76ee4be5760e36c96702223385918 (patch)
tree5aa03b246507e66877e5eac69e58e004e244d7a5 /test/service/logSpec.js
parentd2089a16335276eecb8d81eb17332c2dff2cf1a2 (diff)
downloadangular.js-1777110958f76ee4be5760e36c96702223385918.tar.bz2
split up services into individual files
- split up services into files under src/service - split up specs into files under test/service - rewrite all specs so that they don't depend on one global forEach - get rid of obsolete code and tests in ng:switch - rename mock $log spec from "$log" to "$log mock"
Diffstat (limited to 'test/service/logSpec.js')
-rw-r--r--test/service/logSpec.js100
1 files changed, 100 insertions, 0 deletions
diff --git a/test/service/logSpec.js b/test/service/logSpec.js
new file mode 100644
index 00000000..5d8fa0db
--- /dev/null
+++ b/test/service/logSpec.js
@@ -0,0 +1,100 @@
+describe('$log', function() {
+ var scope;
+
+ beforeEach(function(){
+ scope = angular.scope();
+ });
+
+
+ afterEach(function(){
+ dealoc(scope);
+ });
+
+
+ it('should use console if present', function(){
+ var logger = "";
+ function log(){ logger+= 'log;'; }
+ function warn(){ logger+= 'warn;'; }
+ function info(){ logger+= 'info;'; }
+ function error(){ logger+= 'error;'; }
+ var scope = createScope({}, {$log: $logFactory},
+ {$exceptionHandler: rethrow,
+ $window: {console: {log: log,
+ warn: warn,
+ info: info,
+ error: error}}}),
+ $log = scope.$service('$log');
+
+ $log.log();
+ $log.warn();
+ $log.info();
+ $log.error();
+ expect(logger).toEqual('log;warn;info;error;');
+ });
+
+
+ it('should use console.log() if other not present', function(){
+ var logger = "";
+ function log(){ logger+= 'log;'; }
+ var scope = createScope({}, {$log: $logFactory},
+ {$window: {console:{log:log}},
+ $exceptionHandler: rethrow});
+ var $log = scope.$service('$log');
+ $log.log();
+ $log.warn();
+ $log.info();
+ $log.error();
+ expect(logger).toEqual('log;log;log;log;');
+ });
+
+
+ it('should use noop if no console', function(){
+ var scope = createScope({}, {$log: $logFactory},
+ {$window: {},
+ $exceptionHandler: rethrow}),
+ $log = scope.$service('$log');
+ $log.log();
+ $log.warn();
+ $log.info();
+ $log.error();
+ });
+
+
+ describe('$log.error', function(){
+ var e, $log, errorArgs;
+
+ beforeEach(function(){
+ e = new Error('');
+ e.message = undefined;
+ e.sourceURL = undefined;
+ e.line = undefined;
+ e.stack = undefined;
+
+ $log = $logFactory({console:{error:function(){
+ errorArgs = arguments;
+ }}});
+ });
+
+
+ it('should pass error if does not have trace', function(){
+ $log.error('abc', e);
+ expect(errorArgs).toEqual(['abc', e]);
+ });
+
+
+ it('should print stack', function(){
+ e.stack = 'stack';
+ $log.error('abc', e);
+ expect(errorArgs).toEqual(['abc', 'stack']);
+ });
+
+
+ it('should print line', function(){
+ e.message = 'message';
+ e.sourceURL = 'sourceURL';
+ e.line = '123';
+ $log.error('abc', e);
+ expect(errorArgs).toEqual(['abc', 'message\nsourceURL:123']);
+ });
+ });
+});