blob: 541667d9ead947d85e9978c190216b32e2da2b57 [file] [log] [blame]
// Copyright (c) 2025, 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.
/// The location of a test or group.
class TestLocation {
final Uri uri;
final int line;
final int column;
TestLocation(this.uri, this.line, this.column);
/// Serializes [this] into a JSON-safe object that can be deserialized using
/// [TestLocation.deserialize].
///
/// This method is also used to provide the location in the JSON reporter when
/// a custom location is provided for the test.
Map<String, dynamic> serialize() {
return {'url': uri.toString(), 'line': line, 'column': column};
}
/// Deserializes the result of [TestLocation.serialize] into a new [TestLocation].
TestLocation.deserialize(Map serialized)
: this(
Uri.parse(serialized['url'] as String),
serialized['line'] as int,
serialized['column'] as int,
);
}