Files
proxypin/test/websocket_persistence_test.dart

54 lines
1.7 KiB
Dart

import 'dart:typed_data';
import 'package:flutter_test/flutter_test.dart';
import 'package:proxypin/network/http/http.dart';
import 'package:proxypin/network/http/websocket.dart';
void main() {
test('HttpRequest persists websocket messages', () {
final request = HttpRequest(HttpMethod.get, 'https://example.com/ws');
final frame = WebSocketFrame(
fin: true,
opcode: 0x01,
mask: false,
payloadLength: 5,
maskingKey: 0,
payloadData: Uint8List.fromList('hello'.codeUnits),
time: DateTime.fromMillisecondsSinceEpoch(1710000000000),
)
..isFromClient = true;
request.messages.add(frame);
final restored = HttpRequest.fromJson(request.toJson());
expect(restored.messages.length, 1);
expect(restored.messages.first.payloadDataAsString, 'hello');
expect(restored.messages.first.isFromClient, isTrue);
expect(restored.messages.first.time.millisecondsSinceEpoch, 1710000000000);
});
test('HttpResponse persists websocket messages', () {
final response = HttpResponse(HttpStatus.ok);
final frame = WebSocketFrame(
fin: true,
opcode: 0x02,
mask: false,
payloadLength: 3,
maskingKey: 0,
payloadData: Uint8List.fromList([1, 2, 3]),
time: DateTime.fromMillisecondsSinceEpoch(1710000001000),
)
..isFromClient = false;
response.messages.add(frame);
final restored = HttpResponse.fromJson(response.toJson());
expect(restored.messages.length, 1);
expect(restored.messages.first.isBinary, isTrue);
expect(restored.messages.first.payloadData, [1, 2, 3]);
expect(restored.messages.first.time.millisecondsSinceEpoch, 1710000001000);
});
}