blob: 3702ba8db9ad35224d238817dddafe24a4c20628 [file] [log] [blame]
// Copyright 2022 The Flutter Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file or at https://developers.google.com/open-source/licenses/bsd.
import 'package:devtools_app/devtools_app.dart';
import 'package:devtools_app/src/screens/memory/panes/diff/controller/diff_pane_controller.dart';
import 'package:devtools_app/src/screens/memory/panes/diff/diff_pane.dart';
import 'package:devtools_app/src/screens/memory/shared/heap/class_filter.dart';
import 'package:devtools_app_shared/ui.dart';
import 'package:devtools_app_shared/utils.dart';
import 'package:devtools_test/devtools_test.dart';
import 'package:devtools_test/helpers.dart';
import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:stager/stager.dart';
import '../../test_data/memory/heap/heap_data.dart';
/// Fragment of the memory screen with diff for two snapshots.
///
/// To run:
/// flutter run -t test/test_infra/scenes/memory/diff_snapshot.stager_app.g.dart -d macos
class DiffSnapshotScene extends Scene {
late DiffPaneController diffController;
late FakeServiceConnectionManager fakeServiceConnection;
@override
Widget build(BuildContext context) {
return wrap(SnapshotInstanceItemPane(controller: diffController));
}
@override
Future<void> setUp() async {
setGlobal(OfflineDataController, OfflineDataController());
setGlobal(IdeTheme, IdeTheme());
setGlobal(NotificationService, NotificationService());
fakeServiceConnection = FakeServiceConnectionManager();
mockConnectedApp(
fakeServiceConnection.serviceManager.connectedApp!,
isFlutterApp: true,
isProfileBuild: true,
isWebApp: false,
);
setGlobal(ServiceConnectionManager, fakeServiceConnection);
diffController = DiffPaneController(
loader: HeapGraphLoaderGoldens(),
rootPackage: 'root',
);
setClassFilterToShowAll();
await diffController.takeSnapshot();
await diffController.takeSnapshot();
}
@override
String get title => '$DiffSnapshotScene';
void setClassFilterToShowAll() {
diffController.derived.applyFilter(
ClassFilter(filterType: ClassFilterType.showAll, except: '', only: ''),
);
}
void tearDown() {}
}