blob: 2390b60739a152115cc86f490e57693366492524 [file] [log] [blame]
// Copyright (c) 2017, 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')
import 'dart:io';
import 'package:http/http.dart' as http;
import 'package:shelf/shelf.dart';
import 'package:shelf_test_handler/shelf_test_handler.dart';
import 'package:shelf_web_socket/shelf_web_socket.dart';
import 'package:test/test.dart';
void main() {
test('serves a ShelfTestHandler', () async {
var server = await ShelfTestServer.create();
addTearDown(server.close);
server.handler.expect('GET', '/', expectAsync1((_) => Response.ok('')));
var response = await http.get(server.url);
expect(response.statusCode, equals(200));
});
test('supports request hijacking', () async {
var server = await ShelfTestServer.create();
addTearDown(server.close);
server.handler.expect('GET', '/', webSocketHandler((webSocket) {
webSocket.sink.add('hello!');
webSocket.sink.close();
}));
var webSocket =
await WebSocket.connect('ws://localhost:${server.url.port}');
expect(webSocket, emits('hello!'));
});
}