Skip to content

Commit

Permalink
migrate web integration tests to null safety (#106231)
Browse files Browse the repository at this point in the history
  • Loading branch information
jonahwilliams committed Jun 21, 2022
1 parent adec8f2 commit dfaec11
Show file tree
Hide file tree
Showing 7 changed files with 30 additions and 46 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,6 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// @dart = 2.8

import 'package:file/file.dart';

import '../integration.shard/test_data/stepping_project.dart';
Expand All @@ -12,8 +10,8 @@ import '../integration.shard/test_utils.dart';
import '../src/common.dart';

void main() {
Directory tempDirectory;
FlutterRunTestDriver flutter;
late Directory tempDirectory;
late FlutterRunTestDriver flutter;

setUp(() {
tempDirectory = createResolvedTempDirectorySync('debugger_stepping_test.');
Expand All @@ -30,13 +28,13 @@ void main() {
additionalCommandArgs: <String>['--verbose', '--web-renderer=html']);
await flutter.addBreakpoint(project.breakpointUri, project.breakpointLine);
await flutter.resume(waitForNextPause: true); // Now we should be on the breakpoint.
expect((await flutter.getSourceLocation()).line, equals(project.breakpointLine));
expect((await flutter.getSourceLocation())!.line, equals(project.breakpointLine));

// Issue 5 steps, ensuring that we end up on the annotated lines each time.
for (int i = 1; i <= project.numberOfSteps; i += 1) {
await flutter.stepOverOrOverAsyncSuspension();
final SourcePosition location = await flutter.getSourceLocation();
final int actualLine = location.line;
final SourcePosition? location = await flutter.getSourceLocation();
final int actualLine = location!.line;

// Get the line we're expected to stop at by searching for the comment
// within the source code.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,6 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// @dart = 2.8

import 'package:file/file.dart';
import 'package:vm_service/vm_service.dart';

Expand All @@ -16,8 +14,8 @@ import '../src/common.dart';
void main() {
group('Flutter run for web', () {
final BasicProject project = BasicProject();
Directory tempDir;
FlutterRunTestDriver flutter;
late Directory tempDir;
late FlutterRunTestDriver flutter;

setUp(() async {
tempDir = createResolvedTempDirectorySync('run_expression_eval_test.');
Expand All @@ -33,7 +31,7 @@ void main() {
tryToDelete(tempDir);
});

Future<void> start({bool expressionEvaluation}) async {
Future<void> start({required bool expressionEvaluation}) async {
// The non-test project has a loop around its breakpoints.
// No need to start paused as all breakpoint would be eventually reached.
await flutter.run(
Expand Down Expand Up @@ -116,8 +114,8 @@ void main() {

group('Flutter test for web', () {
final TestsProject project = TestsProject();
Directory tempDir;
FlutterRunTestDriver flutter;
late Directory tempDir;
late FlutterRunTestDriver flutter;

setUp(() async {
tempDir = createResolvedTempDirectorySync('run_expression_eval_test.');
Expand All @@ -130,15 +128,15 @@ void main() {
tryToDelete(tempDir);
});

Future<Isolate> breakInMethod(FlutterTestDriver flutter) async {
Future<Isolate?> breakInMethod(FlutterTestDriver flutter) async {
await flutter.addBreakpoint(
project.breakpointAppUri,
project.breakpointLine,
);
return flutter.resume(waitForNextPause: true);
}

Future<void> startPaused({bool expressionEvaluation}) {
Future<void> startPaused({required bool expressionEvaluation}) {
// The test project does not have a loop around its breakpoints.
// Start paused so we can set a breakpoint before passing it
// in the execution.
Expand Down Expand Up @@ -224,19 +222,19 @@ Future<void> evaluateComplexExpressions(FlutterTestDriver flutter) async {

Future<void> evaluateTrivialExpressionsInLibrary(FlutterTestDriver flutter) async {
final LibraryRef library = await getRootLibrary(flutter);
final ObjRef res = await flutter.evaluate(library.id, '"test"');
final ObjRef res = await flutter.evaluate(library.id!, '"test"');
expectInstance(res, InstanceKind.kString, 'test');
}

Future<void> evaluateComplexExpressionsInLibrary(FlutterTestDriver flutter) async {
final LibraryRef library = await getRootLibrary(flutter);
final ObjRef res = await flutter.evaluate(library.id, 'new DateTime.now().year');
final ObjRef res = await flutter.evaluate(library.id!, 'new DateTime.now().year');
expectInstance(res, InstanceKind.kDouble, DateTime.now().year.toString());
}

Future<void> evaluateWebLibraryBooleanFromEnvironmentInLibrary(FlutterTestDriver flutter) async {
final LibraryRef library = await getRootLibrary(flutter);
final ObjRef res = await flutter.evaluate(library.id, 'const bool.fromEnvironment("dart.library.html")');
final ObjRef res = await flutter.evaluate(library.id!, 'const bool.fromEnvironment("dart.library.html")');
expectInstance(res, InstanceKind.kBool, true.toString());
}

Expand All @@ -246,8 +244,8 @@ Future<LibraryRef> getRootLibrary(FlutterTestDriver flutter) async {
//
// Issue: https://github.com/dart-lang/sdk/issues/44760
final Isolate isolate = await flutter.getFlutterIsolate();
return isolate.libraries
.firstWhere((LibraryRef l) => l.uri.contains('org-dartlang-app'));
return isolate.libraries!
.firstWhere((LibraryRef l) => l.uri!.contains('org-dartlang-app'));
}

void expectInstance(ObjRef result, String kind, String message) {
Expand Down
10 changes: 4 additions & 6 deletions packages/flutter_tools/test/web.shard/hot_reload_web_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,6 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// @dart = 2.8

import 'dart:async';

import 'package:file/file.dart';
Expand All @@ -14,9 +12,9 @@ import '../integration.shard/test_utils.dart';
import '../src/common.dart';

void main() {
Directory tempDir;
late Directory tempDir;
final HotReloadProject project = HotReloadProject();
FlutterRunTestDriver flutter;
late FlutterRunTestDriver flutter;

setUp(() async {
tempDir = createResolvedTempDirectorySync('hot_reload_test.');
Expand All @@ -25,8 +23,8 @@ void main() {
});

tearDown(() async {
await flutter?.stop();
await flutter?.done;
await flutter.stop();
await flutter.done;
tryToDelete(tempDir);
});

Expand Down
8 changes: 2 additions & 6 deletions packages/flutter_tools/test/web.shard/output_web_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,6 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// @dart = 2.8

import 'package:file/file.dart';
import 'package:flutter_tools/src/base/file_system.dart';
import 'package:vm_service/vm_service.dart';
Expand All @@ -15,15 +13,14 @@ import '../integration.shard/test_utils.dart';
import '../src/common.dart';

void main() {
Directory tempDir;
late Directory tempDir;
final BasicProjectWithUnaryMain project = BasicProjectWithUnaryMain();
FlutterRunTestDriver flutter;
late FlutterRunTestDriver flutter;

setUp(() async {
tempDir = createResolvedTempDirectorySync('run_test.');
await project.setUpIn(tempDir);
flutter = FlutterRunTestDriver(tempDir);
//flutter.stdout.listen(print);
});

tearDown(() async {
Expand All @@ -37,7 +34,6 @@ void main() {
await flutter.run(
withDebugger: true,
chrome: true,
expressionEvaluation: true,
additionalCommandArgs: <String>[
if (verbose) '--verbose',
'--web-renderer=html',
Expand Down
12 changes: 5 additions & 7 deletions packages/flutter_tools/test/web.shard/vm_service_web_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,6 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// @dart = 2.8

import 'dart:async';

import 'package:file/file.dart';
Expand All @@ -17,9 +15,9 @@ import '../integration.shard/test_utils.dart';
import '../src/common.dart';

void main() {
Directory tempDir;
late Directory tempDir;
final BasicProjectWithUnaryMain project = BasicProjectWithUnaryMain();
FlutterRunTestDriver flutter;
late FlutterRunTestDriver flutter;

group('Clients of flutter run on web with DDS enabled', () {
setUp(() async {
Expand Down Expand Up @@ -92,7 +90,7 @@ void main() {
}

Future<void> validateFlutterVersion(VmService client) async {
String method;
String? method;

final Future<dynamic> registration = expectLater(
client.onEvent('Service'),
Expand All @@ -110,10 +108,10 @@ Future<void> validateFlutterVersion(VmService client) async {
await registration;
await client.streamCancel('Service');

final dynamic version1 = await client.callServiceExtension(method);
final dynamic version1 = await client.callServiceExtension(method!);
expect(version1, const TypeMatcher<Success>()
.having((Success r) => r.type, 'type', 'Success')
.having((Success r) => r.json['frameworkVersion'], 'frameworkVersion', isNotNull));
.having((Success r) => r.json!['frameworkVersion'], 'frameworkVersion', isNotNull));

await client.dispose();
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,6 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// @dart = 2.8

import 'package:flutter_tools/src/base/common.dart';
import 'package:flutter_tools/src/base/logger.dart';
import 'package:flutter_tools/src/base/process.dart';
Expand Down
6 changes: 2 additions & 4 deletions packages/flutter_tools/test/web.shard/web_run_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,6 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// @dart = 2.8

import 'package:file/file.dart';
import 'package:flutter_tools/src/base/file_system.dart';

Expand All @@ -13,9 +11,9 @@ import '../integration.shard/test_utils.dart';
import '../src/common.dart';

void main() {
Directory tempDir;
late Directory tempDir;
final BasicProjectWithUnaryMain project = BasicProjectWithUnaryMain();
FlutterRunTestDriver flutter;
late FlutterRunTestDriver flutter;

setUp(() async {
tempDir = createResolvedTempDirectorySync('run_test.');
Expand Down

0 comments on commit dfaec11

Please sign in to comment.