blob: 17acb85133acb2df0839cea4844eafc98e427069 [file] [log] [blame]
// Copyright (c) 2011, 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 String encodeFull(String uri)
* Encode the string uri using percent-encoding to make it safe for literal
* use as a full URI.
* All characters except uppercase and lowercase letters, digits
* and the characters !$&'()*+,-./:;=?@_~ are percent-encoded.
* This is the set of characters specified in in ECMA-262 version 5.1 for the
* encodeURI function .
* @description Checks that the set of characters specified in in ECMA-262
* version 5.1 is not encoded
* @author sgrekhov@unipro.ru
*/
import "../../../Utils/expect.dart";
String unreserved = "0123456789" +
"ABCDEFGHIJKLMNOPQRSTUVWXYZ" +
"abcdefghijklmnopqrstuvwxyz" +
"-" + "_" + "." + "!" + "~" + "*" + "'" + "(" + ")";
String reserved = ";" + "/" + "?" + ":" + "@" + "&" + "=" + "+" + r"$" + ",";
String mustNotBeEncoded = unreserved + reserved + "#";
main() {
Expect.equals(mustNotBeEncoded, Uri.encodeFull(mustNotBeEncoded));
}