blob: c5bb6b44164652b0304e76a4236b7414bdb44eae [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/src/devtools/handler.dart';
import 'package:test/test.dart';
void main() {
/// A set of test cases to verify base hrefs for.
///
/// The key is a suffix appended to / or /devtools/ depending on how DevTools
/// is hosted.
/// The value is the expected base href (which should always resolve back to
/// the root of where DevTools is being hosted).
final testBaseHrefs = {
'': '.',
'inspector': '.',
'inspector/': '..',
'inspector/foo': '..',
'inspector/foo/': '../..',
'inspector/foo/bar': '../..',
'inspector/foo/bar/baz': '../../..',
};
for (final MapEntry(key: suffix, value: expectedBaseHref)
in testBaseHrefs.entries) {
test('computes correct base href for /$suffix with devtools at root',
() async {
final actual = computeRelativeBaseHref(
'/',
Uri.parse('http://localhost/$suffix'),
);
expect(actual, expectedBaseHref);
});
test('computes correct base href for /$suffix with devtools at /devtools/',
() async {
final actual = computeRelativeBaseHref(
'/devtools/',
Uri.parse('http://localhost/devtools/$suffix'),
);
expect(actual, expectedBaseHref);
});
test('computes correct base href for /$suffix in a devtools extension',
() async {
final actual = computeRelativeBaseHref(
'/devtools/devtools_extension/foo/',
Uri.parse('http://localhost/devtools/devtools_extension/foo/$suffix'),
);
expect(actual, expectedBaseHref);
});
}
}