blob: 2d3a7e75b70b571983cafcd75bdb40426673a838 [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 const Base64Codec.urlSafe()
* @description Checks that this constructor creates valid Base64Codec in
* "URL and Filename safe" Base 64 Alphabet
* @author sgrekhov@unipro.ru
*/
import "dart:convert";
import "../../../Utils/expect.dart";
RegExp alphabet = new RegExp("[A-Za-z0-9_=-]");
check(Base64Codec codec, List<int> toEncode) {
String encoded = codec.encode(toEncode);
Expect.listEquals(toEncode, codec.decode(encoded));
for (int i = 0; i < encoded.length - 1; i++) {
String char = encoded.substring(i, i + 1);
Expect.isTrue(alphabet.hasMatch(char), "Wrong character " + char);
}
}
main() {
Base64Codec codec = new Base64Codec.urlSafe();
for (int i = 0; i < 256; i++) {
check(codec, [i]);
}
}