cd970af91a
This includes the following pub commits: git log --format="%C(auto) %h %s" 5b4df5a6f931c63622ac349602d6ef0367e8070f..fb72c1f774ca27556225b207185c0b6b6ab1c274 fb72c1f7 Make `run` available (but deprecated) in the embedding (#2698) 63b56ea4 Return the exit-code from commands (#2689) 7fc4e273 Deprecate top level (#2694) Change-Id: I5842b1ecb15fc7844d628e2ad5fb00e3f627dbff Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/168347 Commit-Queue: Sigurd Meldgaard <sigurdm@google.com> Reviewed-by: Sigurd Meldgaard <sigurdm@google.com> Reviewed-by: Ben Konyi <bkonyi@google.com> Reviewed-by: Jonas Jensen <jonasfj@google.com>
264 lines
6.7 KiB
Dart
264 lines
6.7 KiB
Dart
// Copyright (c) 2020, 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';
|
|
import 'dart:io';
|
|
|
|
import 'package:dartdev/src/analytics.dart';
|
|
import 'package:test/test.dart';
|
|
|
|
import 'utils.dart';
|
|
|
|
List<Map> extractAnalytics(ProcessResult result) {
|
|
return LineSplitter.split(result.stderr)
|
|
.where((line) => line.startsWith('[analytics]: '))
|
|
.map((line) => json.decode(line.substring('[analytics]: '.length)) as Map)
|
|
.toList();
|
|
}
|
|
|
|
void main() {
|
|
group('DisabledAnalytics', disabledAnalyticsObject);
|
|
|
|
group('Sending analytics', () {
|
|
test('help', () {
|
|
final p = project(logAnalytics: true);
|
|
final result = p.runSync('help', []);
|
|
expect(extractAnalytics(result), [
|
|
{
|
|
'hitType': 'screenView',
|
|
'message': {'viewName': 'help'}
|
|
},
|
|
{
|
|
'hitType': 'event',
|
|
'message': {
|
|
'category': 'dartdev',
|
|
'action': 'help',
|
|
'label': null,
|
|
'value': null
|
|
}
|
|
},
|
|
{
|
|
'hitType': 'timing',
|
|
'message': {
|
|
'variableName': 'help',
|
|
'time': isA<int>(),
|
|
'category': 'commands',
|
|
'label': null
|
|
}
|
|
}
|
|
]);
|
|
});
|
|
test('create', () {
|
|
final p = project(logAnalytics: true);
|
|
final result = p.runSync('create', ['-tpackage-simple', 'name']);
|
|
expect(extractAnalytics(result), [
|
|
{
|
|
'hitType': 'screenView',
|
|
'message': {'viewName': 'create'}
|
|
},
|
|
{
|
|
'hitType': 'event',
|
|
'message': {
|
|
'category': 'dartdev',
|
|
'action': 'create',
|
|
'label': null,
|
|
'value': null,
|
|
'cd1': '0',
|
|
'cd3': ' template ',
|
|
}
|
|
},
|
|
{
|
|
'hitType': 'timing',
|
|
'message': {
|
|
'variableName': 'create',
|
|
'time': isA<int>(),
|
|
'category': 'commands',
|
|
'label': null
|
|
}
|
|
}
|
|
]);
|
|
});
|
|
|
|
test('pub get', () {
|
|
final p = project(logAnalytics: true);
|
|
final result = p.runSync('pub', ['get', '--dry-run']);
|
|
expect(extractAnalytics(result), [
|
|
{
|
|
'hitType': 'screenView',
|
|
'message': {'viewName': 'pub/get'}
|
|
},
|
|
{
|
|
'hitType': 'event',
|
|
'message': {
|
|
'category': 'dartdev',
|
|
'action': 'pub/get',
|
|
'label': null,
|
|
'value': null,
|
|
'cd1': '0',
|
|
'cd3': ' dry-run '
|
|
}
|
|
},
|
|
{
|
|
'hitType': 'timing',
|
|
'message': {
|
|
'variableName': 'pub/get',
|
|
'time': isA<int>(),
|
|
'category': 'commands',
|
|
'label': null
|
|
}
|
|
}
|
|
]);
|
|
});
|
|
|
|
test('format', () {
|
|
final p = project(logAnalytics: true);
|
|
final result = p.runSync('format', ['-l80']);
|
|
expect(extractAnalytics(result), [
|
|
{
|
|
'hitType': 'screenView',
|
|
'message': {'viewName': 'format'}
|
|
},
|
|
{
|
|
'hitType': 'event',
|
|
'message': {
|
|
'category': 'dartdev',
|
|
'action': 'format',
|
|
'label': null,
|
|
'value': null,
|
|
'cd1': '0',
|
|
'cd3': ' line-length ',
|
|
}
|
|
},
|
|
{
|
|
'hitType': 'timing',
|
|
'message': {
|
|
'variableName': 'format',
|
|
'time': isA<int>(),
|
|
'category': 'commands',
|
|
'label': null
|
|
}
|
|
}
|
|
]);
|
|
});
|
|
|
|
test('run', () {
|
|
final p = project(
|
|
mainSrc: 'void main(List<String> args) => print(args)',
|
|
logAnalytics: true);
|
|
final result = p.runSync('run', [
|
|
'--no-pause-isolates-on-exit',
|
|
'--enable-asserts',
|
|
'lib/main.dart',
|
|
'--argument'
|
|
]);
|
|
expect(extractAnalytics(result), [
|
|
{
|
|
'hitType': 'screenView',
|
|
'message': {'viewName': 'run'}
|
|
},
|
|
{
|
|
'hitType': 'event',
|
|
'message': {
|
|
'category': 'dartdev',
|
|
'action': 'run',
|
|
'label': null,
|
|
'value': null,
|
|
'cd1': '0',
|
|
'cd3': ' enable-asserts pause-isolates-on-exit ',
|
|
}
|
|
},
|
|
{
|
|
'hitType': 'timing',
|
|
'message': {
|
|
'variableName': 'run',
|
|
'time': isA<int>(),
|
|
'category': 'commands',
|
|
'label': null
|
|
}
|
|
}
|
|
]);
|
|
});
|
|
|
|
test('run --enable-experiments', () {
|
|
final p = project(
|
|
mainSrc: 'void main(List<String> args) => print(args);',
|
|
logAnalytics: true);
|
|
final result = p.runSync('run', [
|
|
'--enable-experiment=non-nullable',
|
|
'lib/main.dart',
|
|
]);
|
|
expect(extractAnalytics(result), [
|
|
{
|
|
'hitType': 'screenView',
|
|
'message': {'viewName': 'run'}
|
|
},
|
|
{
|
|
'hitType': 'event',
|
|
'message': {
|
|
'category': 'dartdev',
|
|
'action': 'run',
|
|
'label': null,
|
|
'value': null,
|
|
'cd1': '0',
|
|
'cd2': ' non-nullable ',
|
|
}
|
|
},
|
|
{
|
|
'hitType': 'timing',
|
|
'message': {
|
|
'variableName': 'run',
|
|
'time': isA<int>(),
|
|
'category': 'commands',
|
|
'label': null
|
|
}
|
|
}
|
|
]);
|
|
});
|
|
|
|
test('compile', () {
|
|
final p = project(
|
|
mainSrc: 'void main(List<String> args) => print(args);',
|
|
logAnalytics: true);
|
|
final result = p
|
|
.runSync('compile', ['kernel', 'lib/main.dart', '-o', 'main.kernel']);
|
|
expect(extractAnalytics(result), [
|
|
{
|
|
'hitType': 'screenView',
|
|
'message': {'viewName': 'compile/kernel'}
|
|
},
|
|
{
|
|
'hitType': 'event',
|
|
'message': {
|
|
'category': 'dartdev',
|
|
'action': 'compile/kernel',
|
|
'label': null,
|
|
'value': null,
|
|
'cd1': '0',
|
|
'cd3': ' output ',
|
|
}
|
|
},
|
|
{
|
|
'hitType': 'timing',
|
|
'message': {
|
|
'variableName': 'compile/kernel',
|
|
'time': isA<int>(),
|
|
'category': 'commands',
|
|
'label': null
|
|
}
|
|
}
|
|
]);
|
|
});
|
|
});
|
|
}
|
|
|
|
void disabledAnalyticsObject() {
|
|
test('object', () {
|
|
var diabledAnalytics = DisabledAnalytics('trackingId', 'appName');
|
|
expect(diabledAnalytics.trackingId, 'trackingId');
|
|
expect(diabledAnalytics.applicationName, 'appName');
|
|
expect(diabledAnalytics.enabled, isFalse);
|
|
expect(diabledAnalytics.firstRun, isFalse);
|
|
});
|
|
}
|