// Copyright (c) 2014, 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 'package:test/test.dart'; import 'package:usage/usage.dart'; void main() => defineTests(); void defineTests() { group('AnalyticsMock', () { test('simple', () { var mock = AnalyticsMock(); mock.sendScreenView('main'); mock.sendScreenView('withParameters', parameters: {'cd1': 'custom'}); mock.sendEvent('files', 'save'); mock.sendEvent('eventWithParameters', 'save', parameters: {'cd1': 'custom'}); mock.sendSocial('g+', 'plus', 'userid'); mock.sendTiming('compile', 123); mock.startTimer('compile').finish(); mock.sendException('FooException'); mock.setSessionValue('val', 'ue'); return mock.waitForLastPing(); }); }); group('sanitizeStacktrace', () { test('replace file', () { expect( sanitizeStacktrace('(file:///Users/foo/tmp/error.dart:3:13)', shorten: false), '(error.dart:3:13)'); }); test('replace files', () { expect( sanitizeStacktrace( 'foo (file:///Users/foo/tmp/error.dart:3:13)\n' 'bar (file:///Users/foo/tmp/error.dart:3:13)', shorten: false), 'foo (error.dart:3:13)\nbar (error.dart:3:13)'); }); test('shorten 1', () { expect(sanitizeStacktrace('(file:///Users/foo/tmp/error.dart:3:13)'), '(error.dart:3:13)'); }); test('shorten 2', () { expect( sanitizeStacktrace('foo (file:///Users/foo/tmp/error.dart:3:13)\n' 'bar (file:///Users/foo/tmp/error.dart:3:13)'), 'foo (error.dart:3:13)\nbar (error.dart:3:13)'); }); test('shorten 3', () { expect( sanitizeStacktrace('foo (package:foo/foo.dart:3:13)\n' 'bar (dart:async/schedule_microtask.dart:41)'), 'foo (package:foo/foo.dart:3:13)\nbar (dart:async/schedule_microtask.dart:41)'); }); }); }