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

Side by Side Diff: pkg/appengine/test/logging_test.dart

Issue 804973002: Add appengine/gcloud/mustache dependencies. (Closed) Base URL: git@github.com:dart-lang/pub-dartlang-dart.git@master
Patch Set: Added AUTHORS/LICENSE/PATENTS files Created 6 years 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 unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file.
4
5 import 'dart:async';
6
7 import 'package:unittest/unittest.dart';
8
9 import 'package:appengine/api/errors.dart';
10 import 'package:appengine/src/api_impl/logging_impl.dart';
11 import 'package:appengine/src/protobuf_api/internal/'
12 'api_base.pb.dart' as pb_base;
13 import 'package:appengine/src/protobuf_api/internal/log_service.pb.dart' as pb;
14
15 import 'utils/mock_rpc.dart';
16
17 main() {
18 const INVALID_PROTOBUF = const [1, 2, 3, 4, 5];
19
20 group('logging', () {
21 test('log_and_flush', () {
22 var mock = new MockRPCService('logservice');
23 var logging = new LoggingRpcImpl(mock, '');
24
25 var utc42 = new DateTime.fromMillisecondsSinceEpoch(42, isUtc: true);
26
27 // Make sure we can log without getting RPC requests.
28 logging.debug('debug-custom-ts', timestamp: utc42);
29 logging.debug('debug');
30 logging.info('info');
31 logging.warning('warning');
32 logging.error('error');
33 logging.critical('critical');
34
35 // Now we register a Flush handler and call flush, and validate that
36 // the generated protocol buffers are correct.
37 mock.register('Flush', pb.FlushRequest, expectAsync((request) {
38 var group = new pb.UserAppLogGroup.fromBuffer(request.logs);
39 var logs = group.logLine;
40 expect(logs.length, equals(6));
41
42 expect(logs[0].message, equals('debug-custom-ts'));
43 expect(logs[0].level.toInt(), equals(0));
44 expect(logs[0].timestampUsec.toInt(), equals(42000));
45
46 expect(logs[1].message, equals('debug'));
47 expect(logs[1].level.toInt(), equals(0));
48
49 expect(logs[2].message, equals('info'));
50 expect(logs[2].level.toInt(), equals(1));
51
52 expect(logs[3].message, equals('warning'));
53 expect(logs[3].level.toInt(), equals(2));
54
55 expect(logs[4].message, equals('error'));
56 expect(logs[4].level.toInt(), equals(3));
57
58 expect(logs[5].message, equals('critical'));
59 expect(logs[5].level.toInt(), equals(4));
60
61 return new Future.value(new pb_base.VoidProto().writeToBuffer());
62 }));
63 expect(logging.flush(), completes);
64 });
65 test('no_error', () {
66 var mock = new MockRPCService('logservice');
67 var logging = new LoggingRpcImpl(mock, '');
68
69 // Protocol errors are silently ignored.
70 logging.debug('debug');
71 mock.register('Flush', pb.FlushRequest, expectAsync((request) {
72 return new Future.value(INVALID_PROTOBUF);
73 }));
74 expect(logging.flush(), completes);
75
76 // Network errors are silently ignored.
77 logging.debug('debug');
78 mock.register('Flush', pb.FlushRequest, expectAsync((request) {
79 return new Future.error(new NetworkError(''));
80 }));
81 expect(logging.flush(), completes);
82 });
83 });
84 }
OLDNEW
« no previous file with comments | « pkg/appengine/test/integration/raw_datastore_v3_test.dart ('k') | pkg/appengine/test/memcache_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698