blob: a6cb552351d1480541efbe51d4c6be4060ae4c9b [file] [log] [blame] [edit]
// Copyright 2014 The Flutter Authors. 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:ui' show Display;
import 'package:flutter/src/foundation/_features.dart' show isWindowingEnabled;
import 'package:flutter/src/widgets/_window.dart'
show
BaseWindowController,
DialogWindow,
DialogWindowController,
DialogWindowControllerDelegate,
RegularWindow,
RegularWindowController,
RegularWindowControllerDelegate,
TooltipWindow,
TooltipWindowController,
WindowScope,
WindowingOwner,
createDefaultWindowingOwner;
import 'package:flutter/widgets.dart';
import 'package:flutter_test/flutter_test.dart';
import 'multi_view_testing.dart';
class _StubRegularWindowController extends RegularWindowController {
_StubRegularWindowController(WidgetTester tester) : super.empty() {
rootView = FakeView(tester.view);
}
@override
Size get contentSize => Size.zero;
@override
String get title => 'Stub Window';
@override
bool get isActivated => true;
@override
bool get isMaximized => false;
@override
bool get isMinimized => false;
@override
bool get isFullscreen => false;
@override
void setSize(Size size) {}
@override
void setConstraints(BoxConstraints constraints) {}
@override
void setTitle(String title) {}
@override
void activate() {}
@override
void setMaximized(bool maximized) {}
@override
void setMinimized(bool minimized) {}
@override
void setFullscreen(bool fullscreen, {Display? display}) {}
@override
void destroy() {}
}
class _StubDialogWindowController extends DialogWindowController {
_StubDialogWindowController(WidgetTester tester) : super.empty() {
rootView = FakeView(tester.view);
}
@override
BaseWindowController? get parent => null;
@override
Size get contentSize => Size.zero;
@override
String get title => 'Stub Window';
@override
bool get isActivated => true;
@override
bool get isMinimized => false;
@override
void setSize(Size size) {}
@override
void setConstraints(BoxConstraints constraints) {}
@override
void setTitle(String title) {}
@override
void activate() {}
@override
void setMinimized(bool minimized) {}
@override
void destroy() {}
}
class _StubTooltipWindowController extends TooltipWindowController {
_StubTooltipWindowController({required this.tester}) : super.empty() {
rootView = FakeView(tester.view);
}
final WidgetTester tester;
@override
BaseWindowController get parent => _StubRegularWindowController(tester);
@override
Size get contentSize => Size.zero;
@override
void setConstraints(BoxConstraints constraints) {}
@override
void destroy() {}
}
void main() {
group('Windowing', () {
group('isWindowingEnabled is false', () {
setUp(() {
isWindowingEnabled = false;
});
test('createDefaultOwner returns a WindowingOwner', () {
final WindowingOwner owner = createDefaultWindowingOwner();
expect(owner, isA<WindowingOwner>());
});
test('default WindowingOwner throws when accessing createRegularWindowController', () {
final WindowingOwner owner = createDefaultWindowingOwner();
expect(
() => owner.createRegularWindowController(delegate: RegularWindowControllerDelegate()),
throwsUnsupportedError,
);
});
test('default WindowingOwner throws when accessing createDialogWindowController', () {
final WindowingOwner owner = createDefaultWindowingOwner();
expect(
() => owner.createDialogWindowController(delegate: DialogWindowControllerDelegate()),
throwsUnsupportedError,
);
});
testWidgets('DialogWindow throws UnsupportedError', (WidgetTester tester) async {
expect(
() => DialogWindow(
controller: _StubDialogWindowController(tester),
child: const Text('Test'),
),
throwsUnsupportedError,
);
});
testWidgets('TooltipWindow throws UnsupportedError', (WidgetTester tester) async {
expect(
() => TooltipWindow(
controller: _StubTooltipWindowController(tester: tester),
child: const Text('Test'),
),
throwsUnsupportedError,
);
});
testWidgets('Accessing WindowScope.of throws UnsupportedError', (WidgetTester tester) async {
await tester.pumpWidget(LookupBoundary(child: Container()));
final BuildContext context = tester.element(find.byType(Container));
expect(() => WindowScope.of(context), throwsUnsupportedError);
});
});
group('isWindowingEnabled is true', () {
setUp(() {
isWindowingEnabled = true;
});
testWidgets('RegularWindow does not throw', (WidgetTester tester) async {
final controller = _StubRegularWindowController(tester);
addTearDown(controller.dispose);
await tester.pumpWidget(
wrapWithView: false,
RegularWindow(controller: controller, child: Container()),
);
});
testWidgets('Dialog does not throw', (WidgetTester tester) async {
final controller = _StubDialogWindowController(tester);
addTearDown(controller.dispose);
await tester.pumpWidget(
wrapWithView: false,
DialogWindow(controller: controller, child: Container()),
);
});
testWidgets('Can access WindowScope.of for regular windows', (WidgetTester tester) async {
final controller = _StubRegularWindowController(tester);
addTearDown(controller.dispose);
await tester.pumpWidget(
wrapWithView: false,
RegularWindow(
controller: controller,
child: Builder(
builder: (BuildContext context) {
final BaseWindowController scope = WindowScope.of(context);
expect(scope, isA<RegularWindowController>());
return const SizedBox.shrink();
},
),
),
);
});
testWidgets('Can access WindowScope.of for dialog windows', (WidgetTester tester) async {
final controller = _StubDialogWindowController(tester);
addTearDown(controller.dispose);
await tester.pumpWidget(
wrapWithView: false,
DialogWindow(
controller: controller,
child: Builder(
builder: (BuildContext context) {
final BaseWindowController scope = WindowScope.of(context);
expect(scope, isA<DialogWindowController>());
return const SizedBox.shrink();
},
),
),
);
});
testWidgets('Can access WindowScope.of for tooltip windows', (WidgetTester tester) async {
final controller = _StubTooltipWindowController(tester: tester);
addTearDown(controller.dispose);
await tester.pumpWidget(
wrapWithView: false,
TooltipWindow(
controller: controller,
child: Builder(
builder: (BuildContext context) {
final BaseWindowController scope = WindowScope.of(context);
expect(scope, isA<TooltipWindowController>());
return const SizedBox.shrink();
},
),
),
);
});
testWidgets('Can access WindowScope.maybeOf for regular windows', (
WidgetTester tester,
) async {
final controller = _StubRegularWindowController(tester);
addTearDown(controller.dispose);
await tester.pumpWidget(
wrapWithView: false,
RegularWindow(
controller: controller,
child: Builder(
builder: (BuildContext context) {
final BaseWindowController? scope = WindowScope.maybeOf(context);
expect(scope, isA<RegularWindowController>());
return const SizedBox.shrink();
},
),
),
);
});
testWidgets('Can access WindowScope.maybeOf for dialog windows', (WidgetTester tester) async {
final controller = _StubDialogWindowController(tester);
addTearDown(controller.dispose);
await tester.pumpWidget(
wrapWithView: false,
DialogWindow(
controller: controller,
child: Builder(
builder: (BuildContext context) {
final BaseWindowController? scope = WindowScope.maybeOf(context);
expect(scope, isA<DialogWindowController>());
return const SizedBox.shrink();
},
),
),
);
});
testWidgets('Can access WindowScope.maybeOf for tooltip windows', (
WidgetTester tester,
) async {
final controller = _StubTooltipWindowController(tester: tester);
addTearDown(controller.dispose);
await tester.pumpWidget(
wrapWithView: false,
TooltipWindow(
controller: controller,
child: Builder(
builder: (BuildContext context) {
final BaseWindowController? scope = WindowScope.maybeOf(context);
expect(scope, isA<TooltipWindowController>());
return const SizedBox.shrink();
},
),
),
);
});
testWidgets('Can access WindowScope.contentSizeOf for regular windows', (
WidgetTester tester,
) async {
final controller = _StubRegularWindowController(tester);
addTearDown(controller.dispose);
await tester.pumpWidget(
wrapWithView: false,
RegularWindow(
controller: controller,
child: Builder(
builder: (BuildContext context) {
final Size size = WindowScope.contentSizeOf(context);
expect(size, equals(Size.zero));
return const SizedBox.shrink();
},
),
),
);
});
testWidgets('Can access WindowScope.contentSizeOf for dialog windows', (
WidgetTester tester,
) async {
final controller = _StubDialogWindowController(tester);
addTearDown(controller.dispose);
await tester.pumpWidget(
wrapWithView: false,
DialogWindow(
controller: controller,
child: Builder(
builder: (BuildContext context) {
final Size size = WindowScope.contentSizeOf(context);
expect(size, equals(Size.zero));
return const SizedBox.shrink();
},
),
),
);
});
testWidgets('Can access WindowScope.contentSizeOf for tooltip windows', (
WidgetTester tester,
) async {
final controller = _StubTooltipWindowController(tester: tester);
addTearDown(controller.dispose);
await tester.pumpWidget(
wrapWithView: false,
TooltipWindow(
controller: controller,
child: Builder(
builder: (BuildContext context) {
final Size size = WindowScope.contentSizeOf(context);
expect(size, equals(Size.zero));
return const SizedBox.shrink();
},
),
),
);
});
testWidgets('Can access WindowScope.maybeContentSizeOf for regular windows', (
WidgetTester tester,
) async {
final controller = _StubRegularWindowController(tester);
addTearDown(controller.dispose);
await tester.pumpWidget(
wrapWithView: false,
RegularWindow(
controller: controller,
child: Builder(
builder: (BuildContext context) {
final Size? size = WindowScope.maybeContentSizeOf(context);
expect(size, equals(Size.zero));
return const SizedBox.shrink();
},
),
),
);
});
testWidgets('Can access WindowScope.maybeContentSizeOf for dialog windows', (
WidgetTester tester,
) async {
final controller = _StubDialogWindowController(tester);
addTearDown(controller.dispose);
await tester.pumpWidget(
wrapWithView: false,
DialogWindow(
controller: controller,
child: Builder(
builder: (BuildContext context) {
final Size? size = WindowScope.maybeContentSizeOf(context);
expect(size, equals(Size.zero));
return const SizedBox.shrink();
},
),
),
);
});
testWidgets('Can access WindowScope.maybeContentSizeOf for tooltip windows', (
WidgetTester tester,
) async {
final controller = _StubTooltipWindowController(tester: tester);
addTearDown(controller.dispose);
await tester.pumpWidget(
wrapWithView: false,
TooltipWindow(
controller: controller,
child: Builder(
builder: (BuildContext context) {
final Size? size = WindowScope.maybeContentSizeOf(context);
expect(size, equals(Size.zero));
return const SizedBox.shrink();
},
),
),
);
});
testWidgets('Can access WindowScope.titleOf for regular windows', (
WidgetTester tester,
) async {
final controller = _StubRegularWindowController(tester);
addTearDown(controller.dispose);
await tester.pumpWidget(
wrapWithView: false,
RegularWindow(
controller: controller,
child: Builder(
builder: (BuildContext context) {
final String title = WindowScope.titleOf(context);
expect(title, equals('Stub Window'));
return const SizedBox.shrink();
},
),
),
);
});
testWidgets('Can access WindowScope.titleOf for dialog windows', (WidgetTester tester) async {
final controller = _StubDialogWindowController(tester);
addTearDown(controller.dispose);
await tester.pumpWidget(
wrapWithView: false,
DialogWindow(
controller: controller,
child: Builder(
builder: (BuildContext context) {
final String title = WindowScope.titleOf(context);
expect(title, equals('Stub Window'));
return const SizedBox.shrink();
},
),
),
);
});
testWidgets('Can access WindowScope.titleOf for tooltip windows', (
WidgetTester tester,
) async {
final controller = _StubTooltipWindowController(tester: tester);
addTearDown(controller.dispose);
await tester.pumpWidget(
wrapWithView: false,
TooltipWindow(
controller: controller,
child: Builder(
builder: (BuildContext context) {
final String title = WindowScope.titleOf(context);
expect(title, equals(''));
return const SizedBox.shrink();
},
),
),
);
});
testWidgets('Can access WindowScope.maybeTitleOf for regular windows', (
WidgetTester tester,
) async {
final controller = _StubRegularWindowController(tester);
addTearDown(controller.dispose);
await tester.pumpWidget(
wrapWithView: false,
RegularWindow(
controller: controller,
child: Builder(
builder: (BuildContext context) {
final String? title = WindowScope.maybeTitleOf(context);
expect(title, equals('Stub Window'));
return const SizedBox.shrink();
},
),
),
);
});
testWidgets('Can access WindowScope.maybeTitleOf for dialog windows', (
WidgetTester tester,
) async {
final controller = _StubDialogWindowController(tester);
addTearDown(controller.dispose);
await tester.pumpWidget(
wrapWithView: false,
DialogWindow(
controller: controller,
child: Builder(
builder: (BuildContext context) {
final String? title = WindowScope.maybeTitleOf(context);
expect(title, equals('Stub Window'));
return const SizedBox.shrink();
},
),
),
);
});
testWidgets('Can access WindowScope.maybeTitleOf for tooltip windows', (
WidgetTester tester,
) async {
final controller = _StubTooltipWindowController(tester: tester);
addTearDown(controller.dispose);
await tester.pumpWidget(
wrapWithView: false,
TooltipWindow(
controller: controller,
child: Builder(
builder: (BuildContext context) {
final String? title = WindowScope.maybeTitleOf(context);
expect(title, equals(''));
return const SizedBox.shrink();
},
),
),
);
});
testWidgets('Can access WindowScope.isActivatedOf for regular windows', (
WidgetTester tester,
) async {
final controller = _StubRegularWindowController(tester);
addTearDown(controller.dispose);
await tester.pumpWidget(
wrapWithView: false,
RegularWindow(
controller: controller,
child: Builder(
builder: (BuildContext context) {
final bool isActivated = WindowScope.isActivatedOf(context);
expect(isActivated, equals(true));
return const SizedBox.shrink();
},
),
),
);
});
testWidgets('Can access WindowScope.isActivatedOf for dialog windows', (
WidgetTester tester,
) async {
final controller = _StubDialogWindowController(tester);
addTearDown(controller.dispose);
await tester.pumpWidget(
wrapWithView: false,
DialogWindow(
controller: controller,
child: Builder(
builder: (BuildContext context) {
final bool isActivated = WindowScope.isActivatedOf(context);
expect(isActivated, equals(true));
return const SizedBox.shrink();
},
),
),
);
});
testWidgets('Can access WindowScope.isActivatedOf for tooltip windows', (
WidgetTester tester,
) async {
final controller = _StubTooltipWindowController(tester: tester);
addTearDown(controller.dispose);
await tester.pumpWidget(
wrapWithView: false,
TooltipWindow(
controller: controller,
child: Builder(
builder: (BuildContext context) {
final bool isActivated = WindowScope.isActivatedOf(context);
expect(isActivated, equals(false));
return const SizedBox.shrink();
},
),
),
);
});
testWidgets('Can access WindowScope.maybeIsActivatedOf for regular windows', (
WidgetTester tester,
) async {
final controller = _StubRegularWindowController(tester);
addTearDown(controller.dispose);
await tester.pumpWidget(
wrapWithView: false,
RegularWindow(
controller: controller,
child: Builder(
builder: (BuildContext context) {
final bool? isActivated = WindowScope.maybeIsActivatedOf(context);
expect(isActivated, equals(true));
return const SizedBox.shrink();
},
),
),
);
});
testWidgets('Can access WindowScope.maybeIsActivatedOf for dialog windows', (
WidgetTester tester,
) async {
final controller = _StubDialogWindowController(tester);
addTearDown(controller.dispose);
await tester.pumpWidget(
wrapWithView: false,
DialogWindow(
controller: controller,
child: Builder(
builder: (BuildContext context) {
final bool? isActivated = WindowScope.maybeIsActivatedOf(context);
expect(isActivated, equals(true));
return const SizedBox.shrink();
},
),
),
);
});
testWidgets('Can access WindowScope.maybeIsActivatedOf for tooltip windows', (
WidgetTester tester,
) async {
final controller = _StubTooltipWindowController(tester: tester);
addTearDown(controller.dispose);
await tester.pumpWidget(
wrapWithView: false,
TooltipWindow(
controller: controller,
child: Builder(
builder: (BuildContext context) {
final bool? isActivated = WindowScope.maybeIsActivatedOf(context);
expect(isActivated, equals(false));
return const SizedBox.shrink();
},
),
),
);
});
testWidgets('Can access WindowScope.isMinimizedOf for regular windows', (
WidgetTester tester,
) async {
final controller = _StubRegularWindowController(tester);
addTearDown(controller.dispose);
await tester.pumpWidget(
wrapWithView: false,
RegularWindow(
controller: controller,
child: Builder(
builder: (BuildContext context) {
final bool isMinimized = WindowScope.isMinimizedOf(context);
expect(isMinimized, equals(false));
return const SizedBox.shrink();
},
),
),
);
});
testWidgets('Can access WindowScope.isMinimizedOf for dialog windows', (
WidgetTester tester,
) async {
final controller = _StubDialogWindowController(tester);
addTearDown(controller.dispose);
await tester.pumpWidget(
wrapWithView: false,
DialogWindow(
controller: controller,
child: Builder(
builder: (BuildContext context) {
final bool isMinimized = WindowScope.isMinimizedOf(context);
expect(isMinimized, equals(false));
return const SizedBox.shrink();
},
),
),
);
});
testWidgets('Can access WindowScope.isMinimizedOf for tooltip windows', (
WidgetTester tester,
) async {
final controller = _StubTooltipWindowController(tester: tester);
addTearDown(controller.dispose);
await tester.pumpWidget(
wrapWithView: false,
TooltipWindow(
controller: controller,
child: Builder(
builder: (BuildContext context) {
final bool isMinimized = WindowScope.isMinimizedOf(context);
expect(isMinimized, equals(false));
return const SizedBox.shrink();
},
),
),
);
});
testWidgets('Can access WindowScope.maybeIsMinimizedOf for regular windows', (
WidgetTester tester,
) async {
final controller = _StubRegularWindowController(tester);
addTearDown(controller.dispose);
await tester.pumpWidget(
wrapWithView: false,
RegularWindow(
controller: controller,
child: Builder(
builder: (BuildContext context) {
final bool? isMinimized = WindowScope.maybeIsMinimizedOf(context);
expect(isMinimized, equals(false));
return const SizedBox.shrink();
},
),
),
);
});
testWidgets('Can access WindowScope.maybeIsMinimizedOf for dialog windows', (
WidgetTester tester,
) async {
final controller = _StubDialogWindowController(tester);
addTearDown(controller.dispose);
await tester.pumpWidget(
wrapWithView: false,
DialogWindow(
controller: controller,
child: Builder(
builder: (BuildContext context) {
final bool? isMinimized = WindowScope.maybeIsMinimizedOf(context);
expect(isMinimized, equals(false));
return const SizedBox.shrink();
},
),
),
);
});
testWidgets('Can access WindowScope.maybeIsMinimizedOf for tooltip windows', (
WidgetTester tester,
) async {
final controller = _StubTooltipWindowController(tester: tester);
addTearDown(controller.dispose);
await tester.pumpWidget(
wrapWithView: false,
TooltipWindow(
controller: controller,
child: Builder(
builder: (BuildContext context) {
final bool? isMinimized = WindowScope.maybeIsMinimizedOf(context);
expect(isMinimized, equals(false));
return const SizedBox.shrink();
},
),
),
);
});
testWidgets('Can access WindowScope.isMaximizedOf for regular windows', (
WidgetTester tester,
) async {
final controller = _StubRegularWindowController(tester);
addTearDown(controller.dispose);
await tester.pumpWidget(
wrapWithView: false,
RegularWindow(
controller: controller,
child: Builder(
builder: (BuildContext context) {
final bool isMaximized = WindowScope.isMaximizedOf(context);
expect(isMaximized, equals(false));
return const SizedBox.shrink();
},
),
),
);
});
testWidgets('Can access WindowScope.isMaximizedOf for dialog windows', (
WidgetTester tester,
) async {
final controller = _StubDialogWindowController(tester);
addTearDown(controller.dispose);
await tester.pumpWidget(
wrapWithView: false,
DialogWindow(
controller: controller,
child: Builder(
builder: (BuildContext context) {
final bool isMaximized = WindowScope.isMaximizedOf(context);
expect(isMaximized, equals(false));
return const SizedBox.shrink();
},
),
),
);
});
testWidgets('Can access WindowScope.isMaximizedOf for tooltip windows', (
WidgetTester tester,
) async {
final controller = _StubTooltipWindowController(tester: tester);
addTearDown(controller.dispose);
await tester.pumpWidget(
wrapWithView: false,
TooltipWindow(
controller: controller,
child: Builder(
builder: (BuildContext context) {
final bool isMaximized = WindowScope.isMaximizedOf(context);
expect(isMaximized, equals(false));
return const SizedBox.shrink();
},
),
),
);
});
testWidgets('Can access WindowScope.maybeIsMaximizedOf for regular windows', (
WidgetTester tester,
) async {
final controller = _StubRegularWindowController(tester);
addTearDown(controller.dispose);
await tester.pumpWidget(
wrapWithView: false,
RegularWindow(
controller: controller,
child: Builder(
builder: (BuildContext context) {
final bool? isMaximized = WindowScope.maybeIsMaximizedOf(context);
expect(isMaximized, equals(false));
return const SizedBox.shrink();
},
),
),
);
});
testWidgets('Can access WindowScope.maybeIsMaximizedOf for dialog windows', (
WidgetTester tester,
) async {
final controller = _StubDialogWindowController(tester);
addTearDown(controller.dispose);
await tester.pumpWidget(
wrapWithView: false,
DialogWindow(
controller: controller,
child: Builder(
builder: (BuildContext context) {
final bool? isMaximized = WindowScope.maybeIsMaximizedOf(context);
expect(isMaximized, equals(false));
return const SizedBox.shrink();
},
),
),
);
});
testWidgets('Can access WindowScope.maybeIsMaximizedOf for tooltip windows', (
WidgetTester tester,
) async {
final controller = _StubTooltipWindowController(tester: tester);
addTearDown(controller.dispose);
await tester.pumpWidget(
wrapWithView: false,
TooltipWindow(
controller: controller,
child: Builder(
builder: (BuildContext context) {
final bool? isMaximized = WindowScope.maybeIsMaximizedOf(context);
expect(isMaximized, equals(false));
return const SizedBox.shrink();
},
),
),
);
});
testWidgets('Can access WindowScope.isFullscreenOf for regular windows', (
WidgetTester tester,
) async {
final controller = _StubRegularWindowController(tester);
addTearDown(controller.dispose);
await tester.pumpWidget(
wrapWithView: false,
RegularWindow(
controller: controller,
child: Builder(
builder: (BuildContext context) {
final bool isFullscreen = WindowScope.isFullscreenOf(context);
expect(isFullscreen, equals(false));
return const SizedBox.shrink();
},
),
),
);
});
testWidgets('Can access WindowScope.isFullscreenOf for dialog windows', (
WidgetTester tester,
) async {
final controller = _StubDialogWindowController(tester);
addTearDown(controller.dispose);
await tester.pumpWidget(
wrapWithView: false,
DialogWindow(
controller: controller,
child: Builder(
builder: (BuildContext context) {
final bool isFullscreen = WindowScope.isFullscreenOf(context);
expect(isFullscreen, equals(false));
return const SizedBox.shrink();
},
),
),
);
});
testWidgets('Can access WindowScope.isFullscreenOf for tooltip windows', (
WidgetTester tester,
) async {
final controller = _StubTooltipWindowController(tester: tester);
addTearDown(controller.dispose);
await tester.pumpWidget(
wrapWithView: false,
TooltipWindow(
controller: controller,
child: Builder(
builder: (BuildContext context) {
final bool isFullscreen = WindowScope.isFullscreenOf(context);
expect(isFullscreen, equals(false));
return const SizedBox.shrink();
},
),
),
);
});
testWidgets('Can access WindowScope.maybeIsFullscreenOf for regular windows', (
WidgetTester tester,
) async {
final controller = _StubRegularWindowController(tester);
addTearDown(controller.dispose);
await tester.pumpWidget(
wrapWithView: false,
RegularWindow(
controller: controller,
child: Builder(
builder: (BuildContext context) {
final bool? isFullscreen = WindowScope.maybeIsFullscreenOf(context);
expect(isFullscreen, equals(false));
return const SizedBox.shrink();
},
),
),
);
});
testWidgets('Can access WindowScope.maybeIsFullscreenOf for dialog windows', (
WidgetTester tester,
) async {
final controller = _StubDialogWindowController(tester);
addTearDown(controller.dispose);
await tester.pumpWidget(
wrapWithView: false,
DialogWindow(
controller: controller,
child: Builder(
builder: (BuildContext context) {
final bool? isFullscreen = WindowScope.maybeIsFullscreenOf(context);
expect(isFullscreen, equals(false));
return const SizedBox.shrink();
},
),
),
);
});
testWidgets('Can access WindowScope.maybeIsFullscreenOf for tooltip windows', (
WidgetTester tester,
) async {
final controller = _StubTooltipWindowController(tester: tester);
addTearDown(controller.dispose);
await tester.pumpWidget(
wrapWithView: false,
TooltipWindow(
controller: controller,
child: Builder(
builder: (BuildContext context) {
final bool? isFullscreen = WindowScope.maybeIsFullscreenOf(context);
expect(isFullscreen, equals(false));
return const SizedBox.shrink();
},
),
),
);
});
});
});
}