// 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 String name
///  Name of the encoding.
///  If the encoding is standardized, this is the lower-case version of one
///  of the IANA official names for the character set
///  (see http://www.iana.org/assignments/character-sets/character-sets.xml)
///
/// The system encoding is the current code page on Windows and UTF-8 on Linux
/// and Mac.
/// @description Checks that system encoding is UTF-8 on Linux and Mac
/// @author a.semenov@unipro.ru
/// @issue #31014
/// @issue #31015

import "dart:io";
import "../../../Utils/expect.dart";

main() {
  const SystemEncoding systemEncoding = const SystemEncoding();
  if (Platform.isLinux || Platform.isMacOS) {
    Expect.equals("system", systemEncoding.name);
  }
  // For windows there is no way to find current code page
}
