blob: 98fd3f2252c336936bc6a4f45615279f9bdec91e [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 Cookie(String name, String value)
* Creates a new cookie setting the name and value.
* By default the value of httpOnly will be set to true.
* @description Checks that it is runtime error if cookie value is invalid (see
* https://tools.ietf.org/html/rfc6265)
* @issue 29463
* @author sgrekhov@unipro.ru
*/
import "dart:io";
import "../../../Utils/expect.dart";
const invalidCharacters = [0x20, 0x22, 0x2C, 0x3B, 0x5C, 0x7F];
main() {
Expect.throws(() {new Cookie("cname", '"');});
Expect.throws(() {new Cookie("cname", 'v"v');});
Expect.throws(() {new Cookie("cname", '"v');});
Expect.throws(() {new Cookie("cname", 'v"');});
Expect.throws(() {new Cookie("cname", 's"s');});
for (int charCode in invalidCharacters) {
String v = new String.fromCharCode(charCode);
Expect.throws(() {new Cookie("cname", v);}, null,
"Exception expected for character $v ($charCode)");
}
}