blob: 1b96c1bcdc952e9b4fc39b04f1dab1ead7e6ffa3 [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.
*/
/**
* @assertion HttpHeaders defaultResponseHeaders
* Default set of headers added to all response objects.
*
* By default the following headers are in this set:
*
* Content-Type: text/plain; charset=utf-8
* X-Frame-Options: SAMEORIGIN
* X-Content-Type-Options: nosniff
* X-XSS-Protection: 1; mode=block
*
* If the Server header is added here and the serverHeader is set as well then
* the value of serverHeader takes precedence.
* @description Checks that this property returns default set of headers added
* to all response objects
* @author sgrekhov@unipro.ru
*/
import "dart:io";
import "../../../Utils/expect.dart";
main() {
asyncStart();
HttpServer? server = null;
HttpServer.bind(InternetAddress.loopbackIPv4, 0).then((HttpServer s) {
server = s;
int counter = 0;
int total = 0;
s.defaultResponseHeaders.forEach((String name, List<String> value) {
if (name == "x-frame-options") {
Expect.listEquals(["SAMEORIGIN"], value);
counter++;
}
if (name == "content-type") {
Expect.listEquals(["text/plain; charset=utf-8"], value);
counter++;
}
if (name == "x-xss-protection") {
Expect.listEquals(["1; mode=block"], value);
counter++;
}
if (name == "x-content-type-options") {
Expect.listEquals(["nosniff"], value);
counter++;
}
total++;
});
Expect.equals(4, counter);
Expect.equals(4, total);
asyncEnd();
}).whenComplete(() {
server?.close();
});
}