blob: 1f154450a9ffb4ca805dd4fdde23d6360f2f731f [file] [log] [blame]
// Copyright (c) 2016, 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:html';
import 'package:test/test.dart';
import 'package:observatory/models.dart' as M;
import 'package:observatory/src/elements/cpu_profile/virtual_tree.dart';
import '../../mocks.dart';
main() {
CpuProfileVirtualTreeElement.tag.ensureRegistration();
const isolate = const IsolateRefMock();
group('instantiation', () {
final profile = new SampleProfileMock();
test('default', () {
final e = new CpuProfileVirtualTreeElement(isolate, profile);
expect(e, isNotNull, reason: 'element correctly created');
expect(e.isolate, equals(isolate));
expect(e.profile, equals(profile));
expect(e.mode, equals(ProfileTreeMode.function));
expect(e.direction, equals(M.ProfileTreeDirection.exclusive));
});
test('mode', () {
final e = new CpuProfileVirtualTreeElement(isolate, profile,
mode: ProfileTreeMode.code);
expect(e, isNotNull, reason: 'element correctly created');
expect(e.isolate, equals(isolate));
expect(e.profile, equals(profile));
expect(e.mode, equals(ProfileTreeMode.code));
expect(e.direction, equals(M.ProfileTreeDirection.exclusive));
});
test('direction', () {
final e = new CpuProfileVirtualTreeElement(isolate, profile,
direction: M.ProfileTreeDirection.inclusive);
expect(e, isNotNull, reason: 'element correctly created');
expect(e.isolate, equals(isolate));
expect(e.profile, equals(profile));
expect(e.mode, equals(ProfileTreeMode.function));
expect(e.direction, equals(M.ProfileTreeDirection.inclusive));
});
});
test('elements created after attachment', () async {
final profile = new SampleProfileMock();
final e = new CpuProfileVirtualTreeElement(isolate, profile);
document.body.append(e);
await e.onRendered.first;
expect(e.children.length, isNonZero, reason: 'has elements');
e.remove();
await e.onRendered.first;
expect(e.children.length, isZero, reason: 'is empty');
});
}