7250fd6379
This reverts commit b8c5ecd5aa.
TEST=N/A
Change-Id: I38bbebe1e38bc9dbfdde764eff847aafb3e39353
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/200926
Reviewed-by: Siva Annamalai <asiva@google.com>
89 lines
2.4 KiB
Dart
89 lines
2.4 KiB
Dart
// Copyright (c) 2020, 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:io';
|
|
|
|
import 'package:dds/dds.dart';
|
|
import 'package:test/test.dart';
|
|
|
|
import 'common/test_helper.dart';
|
|
|
|
void main() {
|
|
late Process process;
|
|
late DartDevelopmentService dds;
|
|
setUp(() async {
|
|
process = await spawnDartProcess('smoke.dart');
|
|
});
|
|
|
|
tearDown(() async {
|
|
await dds.shutdown();
|
|
process.kill();
|
|
});
|
|
|
|
Future<int> getAvailablePort() async {
|
|
final tmpServer = await HttpServer.bind(InternetAddress.loopbackIPv4, 0);
|
|
final port = tmpServer.port;
|
|
await tmpServer.close();
|
|
return port;
|
|
}
|
|
|
|
group('Ensure DDS URIs are consistent', () {
|
|
test('without authentication codes', () async {
|
|
final port = await getAvailablePort();
|
|
final serviceUri = Uri.parse('http://127.0.0.1:$port/');
|
|
dds = await DartDevelopmentService.startDartDevelopmentService(
|
|
remoteVmServiceUri,
|
|
serviceUri: serviceUri,
|
|
enableAuthCodes: false,
|
|
);
|
|
|
|
expect(dds.uri, serviceUri);
|
|
expect(
|
|
dds.sseUri,
|
|
serviceUri.replace(
|
|
scheme: 'sse',
|
|
pathSegments: ['\$debugHandler'],
|
|
),
|
|
);
|
|
expect(
|
|
dds.wsUri,
|
|
serviceUri.replace(
|
|
scheme: 'ws',
|
|
pathSegments: ['ws'],
|
|
),
|
|
);
|
|
});
|
|
|
|
test('with authentication codes', () async {
|
|
final port = await getAvailablePort();
|
|
final serviceUri = Uri.parse('http://127.0.0.1:$port/');
|
|
dds = await DartDevelopmentService.startDartDevelopmentService(
|
|
remoteVmServiceUri,
|
|
serviceUri: serviceUri,
|
|
);
|
|
|
|
// We need to pull the authentication code out of the main DDS URI, so
|
|
// just make sure that it's at the right address and port.
|
|
expect(dds.uri.toString().contains(serviceUri.toString()), isTrue);
|
|
|
|
expect(dds.uri!.pathSegments, isNotEmpty);
|
|
final authCode = dds.uri!.pathSegments.first;
|
|
expect(
|
|
dds.sseUri,
|
|
serviceUri.replace(
|
|
scheme: 'sse',
|
|
pathSegments: [authCode, '\$debugHandler'],
|
|
),
|
|
);
|
|
expect(
|
|
dds.wsUri,
|
|
serviceUri.replace(
|
|
scheme: 'ws',
|
|
pathSegments: [authCode, 'ws'],
|
|
),
|
|
);
|
|
});
|
|
});
|
|
}
|