flutter/packages/flutter_tools/test/general.shard/web/asset_server_test.dart
2019-09-26 13:24:05 -07:00

48 lines
1.5 KiB
Dart

// Copyright 2019 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:flutter_tools/src/base/file_system.dart';
import 'package:flutter_tools/src/build_runner/web_fs.dart';
import 'package:flutter_tools/src/project.dart';
import 'package:shelf/shelf.dart';
import '../../src/common.dart';
import '../../src/testbed.dart';
void main() {
Testbed testbed;
AssetServer assetServer;
setUp(() {
testbed = Testbed(
setup: () {
fs.file(fs.path.join('lib', 'main.dart'))
.createSync(recursive: true);
fs.file(fs.path.join('web', 'index.html'))
..createSync(recursive: true)
..writeAsStringSync('hello');
assetServer = AssetServer(FlutterProject.current(), fs.path.join('main'));
}
);
});
test('can serve an html file from the web directory', () => testbed.run(() async {
final Response response = await assetServer
.handle(Request('GET', Uri.parse('http://localhost:8080/index.html')));
expect(response.headers, <String, String>{
'Content-Type': 'text/html',
'content-length': '5'
});
expect(await response.readAsString(), 'hello');
}));
test('handles a missing html file from the web directory', () => testbed.run(() async {
final Response response = await assetServer
.handle(Request('GET', Uri.parse('http://localhost:8080/foobar.html')));
expect(response.statusCode, 404);
}));
}