| // Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file |
| // for details. All rights reserved. Use of this source code is governed by a |
| // BSD-style license that can be found in the LICENSE file. |
| |
| import 'dart:convert' show utf8; |
| |
| import 'package:http/http.dart'; |
| import 'package:http/testing.dart'; |
| import 'package:telemetry/crash_reporting.dart'; |
| import 'package:test/test.dart'; |
| import 'package:usage/usage.dart'; |
| |
| void main() { |
| group('crash_reporting', () { |
| MockClient mockClient; |
| |
| Request request; |
| |
| setUp(() { |
| mockClient = new MockClient((Request r) async { |
| request = r; |
| return new Response('crash-report-001', 200); |
| }); |
| }); |
| |
| test('CrashReportSender', () async { |
| AnalyticsMock analytics = new AnalyticsMock()..enabled = true; |
| CrashReportSender sender = new CrashReportSender( |
| analytics.trackingId, analytics, |
| httpClient: mockClient); |
| |
| await sender.sendReport('test-error', stackTrace: StackTrace.current); |
| |
| String body = utf8.decode(request.bodyBytes); |
| expect(body, contains('String')); // error.runtimeType |
| expect(body, contains(analytics.trackingId)); |
| expect(body, contains('1.0.0')); |
| expect(body, contains(analytics.clientId)); |
| }, skip: CRASH_REPORTING_DISABLED); |
| }); |
| } |