blob: 4c132c14b4e2bba39a94d12932fe13a922dcc52b [file]
// Copyright 2022 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:leak_tracker/devtools_integration.dart';
import 'package:leak_tracker/src/devtools_integration/_protocol.dart';
import 'package:test/test.dart';
import '../../test_infra/data/messages.dart';
void main() {
final messagesByChannel = {
for (var c in Channel.values)
c: messages
.where((m) => envelopeByType(m.runtimeType).channel == c)
.toList(),
};
setUpAll(verifyTestsCoverAllEnvelopes);
for (final message in messagesByChannel[Channel.eventFromApp]!) {
test('$EventFromApp serializes ${message.runtimeType}', () {
final event = EventFromApp(message);
final serialized = event.messageAsJson();
final deserialized = EventFromApp.fromJson(serialized);
expect(event.message.runtimeType, deserialized.message.runtimeType);
});
}
for (final message in messagesByChannel[Channel.requestToApp]!) {
test('$RequestToApp serializes ${message.runtimeType}', () {
final request = RequestToApp(message);
final serialized = request.toRequestParameters();
final deserialized = RequestToApp.fromRequestParameters(serialized);
expect(request.message.runtimeType, deserialized.message.runtimeType);
});
}
for (final message in messagesByChannel[Channel.responseFromApp]!) {
test('$ResponseFromApp serializes ${message.runtimeType}', () {
final response = ResponseFromApp(message);
final serialized = response.toJson();
final deserialized = ResponseFromApp.fromJson(serialized);
expect(
response.message.runtimeType,
deserialized.message.runtimeType,
);
});
}
}