| // 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(); |
| }); |
| }); |
| } |