Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(169)

Unified Diff: third_party/pkg/angular/playback_middleware/spec/middleware_spec.js

Issue 124053002: Adding Angular and dependent packages for testing (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 years, 12 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/pkg/angular/playback_middleware/spec/middleware_spec.js
diff --git a/third_party/pkg/angular/playback_middleware/spec/middleware_spec.js b/third_party/pkg/angular/playback_middleware/spec/middleware_spec.js
new file mode 100644
index 0000000000000000000000000000000000000000..bc426e20161a1b944322143c1e7406c189503f03
--- /dev/null
+++ b/third_party/pkg/angular/playback_middleware/spec/middleware_spec.js
@@ -0,0 +1,73 @@
+var middleware = require('../lib/middleware.js');
+
+describe('middleware', function() {
+ var m, next, playImpl;
+ beforeEach(function() {
+ playImpl = { burn: false,
+ record: jasmine.createSpy('record'),
+ playback: jasmine.createSpy('playback')
+ };
+ m = middleware.endpoint({
+ playbackImpl: playImpl
+ });
+ next = jasmine.createSpy('next');
+ });
+
+
+ it('should call next() for requests it does not handle', function() {
+ m({url: '/notrecord'}, undefined, next);
+ expect(next).toHaveBeenCalled();
+ });
+
+ it('should call playback.record for POST requests', function() {
+ var req = jasmine.createSpy('req');
+ var res = {
+ writeHead: jasmine.createSpy('writeHead'),
+ end: jasmine.createSpy('end')
+ };
+
+ req.url = '/record';
+ req.method = 'POST';
+ var dataCb, endCb;
+ req.on = function(type, cb) {
+ if (type == 'data') dataCb = cb;
+ else if (type == 'end') endCb = cb;
+ else throw "Unknown type " + type;
+ };
+
+ m(req, res, next);
+
+ dataCb('{"key": "K",');
+ dataCb('"data": "V"}');
+ endCb();
+
+ expect(next).not.toHaveBeenCalled();
+ expect(playImpl.record).toHaveBeenCalledWith('K', 'V');
+ expect(res.writeHead).toHaveBeenCalledWith(200);
+ expect(res.end).toHaveBeenCalled();
+ });
+
+
+ it('should call playback.playback for GET requests', function() {
+ var req = {
+ url: '/record',
+ method: 'GET'
+ };
+
+ var res = {
+ writeHead: jasmine.createSpy('writeHead'),
+ end: jasmine.createSpy('end')
+ };
+
+ playImpl.playback.andReturn('data from a dart file');
+
+ m(req, res, next);
+
+ expect(next).not.toHaveBeenCalled();
+ expect(playImpl.playback).toHaveBeenCalled();
+ expect(res.writeHead).toHaveBeenCalledWith(200, {
+ 'Content-Type' : 'application/dart',
+ 'Content-Length' : 21 });
+ expect(res.end).toHaveBeenCalledWith('data from a dart file');
+ });
+});

Powered by Google App Engine
This is Rietveld 408576698