blob: a0ee671ddd3da008084f9408303a2b93934a9319 [file] [log] [blame]
// Copyright (c) 2024, 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.
@TestOn('vm')
library;
import 'dart:io' as io;
import 'package:test/test.dart';
import 'package:web_socket/io_web_socket.dart';
import 'package:web_socket/web_socket.dart';
void main() {
group('fromWebSocket', () {
late final io.HttpServer server;
late io.HttpHeaders headers;
late Uri uri;
setUp(() async {
server = (await io.HttpServer.bind('localhost', 0))
..listen((request) async {
headers = request.headers;
await io.WebSocketTransformer.upgrade(request)
.then((webSocket) => webSocket.listen(webSocket.add));
});
uri = Uri.parse('ws://localhost:${server.port}');
});
test('custom headers', () async {
final ws = IOWebSocket.fromWebSocket(await io.WebSocket.connect(
uri.toString(),
headers: {'fruit': 'apple'}));
expect(headers['fruit'], ['apple']);
ws.sendText('Hello World!');
expect(await ws.events.first, TextDataReceived('Hello World!'));
await ws.close();
});
});
}