/*
 * 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 Encoding getByName(String name)
 * Gets an Encoding object from the name of the character set name. The names
 * used are the IANA official names for the character set (see
 * http://www.iana.org/assignments/character-sets/character-sets.xml).
 *
 * ...
 * If character set is not supported null is returned.
 * @description Checks that if character set is not supported null is returned.
 * @author sgrekhov@unipro.ru
 */
import "dart:convert";
import "../../../Utils/expect.dart";

List<String> encodings = [
  "",
  "no",
  "!2343"
];

main() {
  encodings.forEach((String encodingName) {
    Encoding? e = Encoding.getByName(encodingName);
    Expect.isNull(e, "Encoding " + encodingName + " is supported");
  });
}
