Skip to content

Commit

Permalink
integration test fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
kenzieschmoll committed Jul 11, 2023
1 parent 37b4556 commit 2e9394a
Show file tree
Hide file tree
Showing 21 changed files with 96 additions and 88 deletions.
Expand Up @@ -40,12 +40,11 @@ void main() {
await pumpAndConnectDevTools(tester, testApp);

final evalTester = _EvalAndBrowseTester(tester);
await evalTester.prepareMemoryUI();

await _testBasicEval(evalTester);
await _testAssignment(evalTester);

await evalTester.switchToMemoryAndIncreaseEval();

await _profileOneInstance(evalTester);
await _profileAllInstances(evalTester);

Expand Down Expand Up @@ -151,7 +150,9 @@ class _EvalAndBrowseTester {
await tester.pump(longPumpDuration);
}

Future<void> switchToMemoryAndIncreaseEval() async {
/// Prepares the UI of the memory screen so that the eval-related elements are
/// visible on the screen for testing.
Future<void> prepareMemoryUI() async {
// Open memory screen.
await switchToScreen(tester, ScreenMetaData.memory);

Expand Down
16 changes: 9 additions & 7 deletions packages/devtools_app/lib/src/framework/home_screen.dart
Expand Up @@ -19,7 +19,6 @@ import '../shared/feature_flags.dart';
import '../shared/globals.dart';
import '../shared/primitives/auto_dispose.dart';
import '../shared/primitives/blocking_action_mixin.dart';
import '../shared/primitives/simple_items.dart';
import '../shared/primitives/utils.dart';
import '../shared/routing.dart';
import '../shared/screen.dart';
Expand All @@ -35,7 +34,7 @@ class HomeScreen extends Screen {
: super.conditional(
id: id,
requiresConnection: false,
icon: Icons.home_rounded,
icon: ScreenMetaData.home.icon,
titleGenerator: () => devToolsTitle.value,
);

Expand Down Expand Up @@ -71,11 +70,13 @@ class _HomeScreenBodyState extends State<HomeScreenBody> with AutoDisposeMixin {

@override
Widget build(BuildContext context) {
final connected =
serviceManager.hasConnection && serviceManager.connectedAppInitialized;
return Scrollbar(
child: ListView(
children: [
const ConnectionSection(),
if (widget.sampleData.isNotEmpty && !kReleaseMode) ...[
ConnectionSection(connected: connected),
if (widget.sampleData.isNotEmpty && !kReleaseMode && !connected) ...[
SampleDataDropDownButton(sampleData: widget.sampleData),
const SizedBox(height: defaultSpacing),
],
Expand All @@ -93,15 +94,16 @@ class _HomeScreenBodyState extends State<HomeScreenBody> with AutoDisposeMixin {
}

class ConnectionSection extends StatelessWidget {
const ConnectionSection({super.key});
const ConnectionSection({super.key, required this.connected});

static const _primaryMinScreenWidthForTextBeforeScaling = 480.0;
static const _secondaryMinScreenWidthForTextBeforeScaling = 600.0;

final bool connected;

@override
Widget build(BuildContext context) {
if (serviceManager.hasConnection &&
serviceManager.connectedAppInitialized) {
if (connected) {
return LandingScreenSection(
title: 'Connected app',
actions: [
Expand Down
1 change: 0 additions & 1 deletion packages/devtools_app/lib/src/framework/scaffold.dart
Expand Up @@ -16,7 +16,6 @@ import '../shared/console/widgets/console_pane.dart';
import '../shared/framework_controller.dart';
import '../shared/globals.dart';
import '../shared/primitives/auto_dispose.dart';
import '../shared/primitives/simple_items.dart';
import '../shared/routing.dart';
import '../shared/screen.dart';
import '../shared/split.dart';
Expand Down
Expand Up @@ -18,12 +18,10 @@ import '../../shared/config_specific/url/url.dart';
import '../../shared/file_import.dart';
import '../../shared/globals.dart';
import '../../shared/primitives/auto_dispose.dart';
import '../../shared/primitives/simple_items.dart';
import '../../shared/primitives/utils.dart';
import '../../shared/screen.dart';
import '../../shared/split.dart';
import '../../shared/theme.dart';
import '../../shared/ui/icons.dart';
import '../../shared/ui/tab.dart';
import '../../shared/utils.dart';
import 'app_size_controller.dart';
Expand All @@ -40,7 +38,7 @@ class AppSizeScreen extends Screen {
requiresConnection: false,
requiresDartVm: true,
title: ScreenMetaData.appSize.title,
icon: Octicons.fileZip,
icon: ScreenMetaData.appSize.icon,
);

static const analysisTabKey = Key('Analysis Tab');
Expand Down
Expand Up @@ -19,12 +19,10 @@ import '../../shared/flex_split_column.dart';
import '../../shared/globals.dart';
import '../../shared/primitives/auto_dispose.dart';
import '../../shared/primitives/listenable.dart';
import '../../shared/primitives/simple_items.dart';
import '../../shared/routing.dart';
import '../../shared/screen.dart';
import '../../shared/split.dart';
import '../../shared/theme.dart';
import '../../shared/ui/icons.dart';
import '../../shared/utils.dart';
import 'breakpoints.dart';
import 'call_stack.dart';
Expand All @@ -44,7 +42,7 @@ class DebuggerScreen extends Screen {
id: id,
requiresDebugBuild: true,
title: ScreenMetaData.debugger.title,
icon: Octicons.bug,
icon: ScreenMetaData.debugger.icon,
showFloatingDebuggerControls: false,
);

Expand Down
Expand Up @@ -21,11 +21,9 @@ import '../../shared/error_badge_manager.dart';
import '../../shared/globals.dart';
import '../../shared/primitives/auto_dispose.dart';
import '../../shared/primitives/blocking_action_mixin.dart';
import '../../shared/primitives/simple_items.dart';
import '../../shared/screen.dart';
import '../../shared/split.dart';
import '../../shared/theme.dart';
import '../../shared/ui/icons.dart';
import '../../shared/ui/search.dart';
import '../../shared/utils.dart';
import 'inspector_controller.dart';
Expand All @@ -39,7 +37,7 @@ class InspectorScreen extends Screen {
requiresLibrary: flutterLibraryUri,
requiresDebugBuild: true,
title: ScreenMetaData.inspector.title,
icon: Octicons.deviceMobile,
icon: ScreenMetaData.inspector.icon,
);

static final id = ScreenMetaData.inspector.id;
Expand Down
Expand Up @@ -12,12 +12,10 @@ import '../../shared/analytics/analytics.dart' as ga;
import '../../shared/analytics/constants.dart' as gac;
import '../../shared/common_widgets.dart';
import '../../shared/primitives/auto_dispose.dart';
import '../../shared/primitives/simple_items.dart';
import '../../shared/screen.dart';
import '../../shared/split.dart';
import '../../shared/theme.dart';
import '../../shared/ui/filter.dart';
import '../../shared/ui/icons.dart';
import '../../shared/ui/search.dart';
import '../../shared/utils.dart';
import '_log_details.dart';
Expand All @@ -30,7 +28,7 @@ class LoggingScreen extends Screen {
: super(
id,
title: ScreenMetaData.logging.title,
icon: Octicons.clippy,
icon: ScreenMetaData.logging.icon,
);

static final id = ScreenMetaData.logging.id;
Expand Down
Expand Up @@ -7,7 +7,7 @@ import 'package:flutter/material.dart';
import '../../../../shared/banner_messages.dart';
import '../../../../shared/http/http_service.dart' as http_service;
import '../../../../shared/primitives/auto_dispose.dart';
import '../../../../shared/primitives/simple_items.dart';
import '../../../../shared/screen.dart';
import '../../../../shared/theme.dart';
import '../../../../shared/utils.dart';
import '../../panes/chart/chart_pane.dart';
Expand Down
Expand Up @@ -7,9 +7,7 @@ import 'package:flutter/material.dart';

import '../../../shared/analytics/analytics.dart' as ga;
import '../../../shared/primitives/listenable.dart';
import '../../../shared/primitives/simple_items.dart';
import '../../../shared/screen.dart';
import '../../../shared/ui/icons.dart';
import 'connected/connected_screen_body.dart';

class MemoryScreen extends Screen {
Expand All @@ -18,7 +16,7 @@ class MemoryScreen extends Screen {
id: id,
requiresDartVm: true,
title: ScreenMetaData.memory.title,
icon: Octicons.package,
icon: ScreenMetaData.memory.icon,
);

static final id = ScreenMetaData.memory.id;
Expand Down
Expand Up @@ -15,7 +15,6 @@ import '../../shared/globals.dart';
import '../../shared/http/curl_command.dart';
import '../../shared/http/http_request_data.dart';
import '../../shared/primitives/auto_dispose.dart';
import '../../shared/primitives/simple_items.dart';
import '../../shared/primitives/utils.dart';
import '../../shared/screen.dart';
import '../../shared/split.dart';
Expand All @@ -35,7 +34,7 @@ class NetworkScreen extends Screen {
id: id,
requiresDartVm: true,
title: ScreenMetaData.network.title,
icon: Icons.network_check,
icon: ScreenMetaData.network.icon,
);

static final id = ScreenMetaData.network.id;
Expand Down
Expand Up @@ -10,10 +10,8 @@ import '../../shared/banner_messages.dart';
import '../../shared/common_widgets.dart';
import '../../shared/globals.dart';
import '../../shared/primitives/auto_dispose.dart';
import '../../shared/primitives/simple_items.dart';
import '../../shared/screen.dart';
import '../../shared/theme.dart';
import '../../shared/ui/icons.dart';
import '../../shared/utils.dart';
import 'panes/controls/performance_controls.dart';
import 'panes/flutter_frames/flutter_frames_chart.dart';
Expand All @@ -30,7 +28,7 @@ class PerformanceScreen extends Screen {
requiresDartVm: true,
worksOffline: true,
title: ScreenMetaData.performance.title,
icon: Octicons.pulse,
icon: ScreenMetaData.performance.icon,
);

static final id = ScreenMetaData.performance.id;
Expand Down
Expand Up @@ -12,10 +12,8 @@ import '../../shared/common_widgets.dart';
import '../../shared/globals.dart';
import '../../shared/primitives/auto_dispose.dart';
import '../../shared/primitives/listenable.dart';
import '../../shared/primitives/simple_items.dart';
import '../../shared/screen.dart';
import '../../shared/theme.dart';
import '../../shared/ui/icons.dart';
import '../../shared/utils.dart';
import 'cpu_profile_model.dart';
import 'cpu_profiler.dart';
Expand All @@ -31,7 +29,7 @@ class ProfilerScreen extends Screen {
requiresDartVm: true,
worksOffline: true,
title: ScreenMetaData.cpuProfiler.title,
icon: Octicons.dashboard,
icon: ScreenMetaData.cpuProfiler.icon,
);

static final id = ScreenMetaData.cpuProfiler.id;
Expand Down
Expand Up @@ -13,7 +13,6 @@ import '../../shared/banner_messages.dart';
import '../../shared/common_widgets.dart';
import '../../shared/dialogs.dart';
import '../../shared/globals.dart';
import '../../shared/primitives/simple_items.dart';
import '../../shared/screen.dart';
import '../../shared/split.dart';
import 'instance_viewer/instance_details.dart';
Expand Down Expand Up @@ -52,8 +51,8 @@ class ProviderScreen extends Screen {
id: id,
requiresLibrary: 'package:provider/',
title: ScreenMetaData.provider.title,
icon: ScreenMetaData.provider.icon,
requiresDebugBuild: true,
icon: Icons.attach_file,
);

static final id = ScreenMetaData.provider.id;
Expand Down
Expand Up @@ -6,7 +6,6 @@ import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';

import '../../shared/primitives/auto_dispose.dart';
import '../../shared/primitives/simple_items.dart';
import '../../shared/screen.dart';
import '../../shared/theme.dart';
import '../../shared/utils.dart';
Expand Down Expand Up @@ -44,7 +43,7 @@ class VMDeveloperToolsScreen extends Screen {
: super.conditional(
id: id,
title: ScreenMetaData.vmTools.title,
icon: Icons.settings_applications,
icon: ScreenMetaData.vmTools.icon ,
requiresVmDeveloperMode: true,
);

Expand Down
Expand Up @@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

import '../primitives/simple_items.dart';
import '../screen.dart';

// Type of events (event_category):
const screenViewEvent = 'screen'; // Active screen (tab selected).
Expand Down
Expand Up @@ -18,6 +18,7 @@ import '../../file_import.dart';
import '../../globals.dart';
import '../../primitives/simple_items.dart';
import '../../primitives/utils.dart';
import '../../screen.dart';
import '../../theme.dart';
import '_export_stub.dart'
if (dart.library.html) '_export_web.dart'
Expand Down
Expand Up @@ -5,14 +5,14 @@
import 'package:flutter/material.dart' hide Stack;
import 'package:vm_service/vm_service.dart';

import '../../../shared/common_widgets.dart';
import '../../../shared/globals.dart';
import '../../../shared/primitives/selection_controls.dart';
import '../../../shared/primitives/utils.dart';
import '../../../shared/routing.dart';
import '../../../shared/theme.dart';
import '../../common_widgets.dart';
import '../../diagnostics/dart_object_node.dart';
import '../../primitives/simple_items.dart';
import '../../globals.dart';
import '../../primitives/selection_controls.dart';
import '../../primitives/utils.dart';
import '../../routing.dart';
import '../../screen.dart';
import '../../theme.dart';
import 'description.dart';

VariableSelectionControls _selectionControls({
Expand Down
21 changes: 0 additions & 21 deletions packages/devtools_app/lib/src/shared/primitives/simple_items.dart
Expand Up @@ -25,27 +25,6 @@ class PackagePrefixes {
static const dartUi = 'dart:ui';
}

enum ScreenMetaData {
home('home'),
inspector('inspector', title: 'Flutter Inspector'),
performance('performance', title: 'Performance'),
cpuProfiler('cpu-profiler', title: 'CPU Profiler'),
memory('memory', title: 'Memory'),
debugger('debugger', title: 'Debugger'),
network('network', title: 'Network'),
logging('logging', title: 'Logging'),
provider('provider', title: 'Provider'),
appSize('app-size', title: 'App Size'),
vmTools('vm-tools', title: 'VM Tools'),
simple('simple');

const ScreenMetaData(this.id, {this.title});

final String id;

final String? title;
}

const String traceEventsFieldName = 'traceEvents';

const closureName = '<closure>';
Expand Down
28 changes: 28 additions & 0 deletions packages/devtools_app/lib/src/shared/screen.dart
Expand Up @@ -11,10 +11,38 @@ import 'package:logging/logging.dart';
import 'globals.dart';
import 'primitives/listenable.dart';
import 'theme.dart';
import 'ui/icons.dart';
import 'version.dart';

final _log = Logger('screen.dart');

enum ScreenMetaData {
home('home', icon: Icons.home_rounded),
inspector(
'inspector',
title: 'Flutter Inspector',
icon: Octicons.deviceMobile,
),
performance('performance', title: 'Performance', icon: Octicons.pulse),
cpuProfiler('cpu-profiler', title: 'CPU Profiler', icon: Octicons.dashboard),
memory('memory', title: 'Memory', icon: Octicons.package),
debugger('debugger', title: 'Debugger', icon: Octicons.bug),
network('network', title: 'Network', icon: Icons.network_check),
logging('logging', title: 'Logging', icon: Octicons.clippy),
provider('provider', title: 'Provider', icon: Icons.attach_file),
appSize('app-size', title: 'App Size', icon: Octicons.fileZip),
vmTools('vm-tools', title: 'VM Tools', icon: Icons.settings_applications),
simple('simple');

const ScreenMetaData(this.id, {this.title, this.icon});

final String id;

final String? title;

final IconData? icon;
}

/// Defines a page shown in the DevTools [TabBar].
@immutable
abstract class Screen {
Expand Down

0 comments on commit 2e9394a

Please sign in to comment.