blob: 95db57467ae1477e8863891f5121a8829813269b [file] [log] [blame]
// Copyright 2024 The Chromium 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 'package:dds/devtools_server.dart';
import 'package:test/test.dart';
import 'utils/server_driver.dart';
void main() {
const dtdUriSwitch = '--${DevToolsServer.argDtdUri}';
const dtdExposedUriSwitch = '--${DevToolsServer.argDtdExposedUri}';
group('Dart Tooling Daemon connection', () {
test('does not start DTD when a DTD uri is passed as an argument',
() async {
final server = await DevToolsServerDriver.create(
additionalArgs: ['$dtdUriSwitch=ws://localhost:123/'],
);
try {
// Ensure the event does not arrive within some reasonable amount of
// time.
final dtdStartedEvent = await server.stdout
.firstWhere(
(map) => map!['event'] == 'server.dtdStarted',
orElse: () => null,
)
.timeout(
Duration(seconds: 3),
onTimeout: () => null,
);
expect(dtdStartedEvent, isNull);
} finally {
server.kill();
}
});
test('starts DTD when no DTD uri is passed as an argument', () async {
final server = await DevToolsServerDriver.create();
try {
final dtdStartedEvent = await server.stdout.firstWhere(
(map) => map!['event'] == 'server.dtdStarted',
orElse: () => null,
);
expect(dtdStartedEvent, isNotNull);
} finally {
server.kill();
}
});
test('rejects invalid URIs for --dtd-uri', () async {
final server = await DevToolsServerDriver.create(
additionalArgs: ['$dtdUriSwitch=some_uri'],
);
try {
final firstLine = await server.stdoutRaw.first;
expect(firstLine, '$dtdUriSwitch must be a valid URI');
} finally {
server.kill();
}
});
test('rejects invalid URIs for --dtd-exposed-uri', () async {
final server = await DevToolsServerDriver.create(
additionalArgs: [
'$dtdUriSwitch=ws://localhost:123/',
'$dtdExposedUriSwitch=some_uri'
],
);
try {
final firstLine = await server.stdoutRaw.first;
expect(firstLine, '$dtdExposedUriSwitch must be a valid URI');
} finally {
server.kill();
}
});
test('rejects --dtd-exposed-uri without --dtd-uri', () async {
final server = await DevToolsServerDriver.create(
additionalArgs: ['$dtdExposedUriSwitch=some_uri'],
);
try {
final firstLine = await server.stdoutRaw.first;
expect(firstLine,
'$dtdExposedUriSwitch can only be supplied with $dtdUriSwitch');
} finally {
server.kill();
}
});
});
}