chromium/ui/base/l10n/l10n_util_ios_unittest.mm

// Copyright 2022 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include "ui/base/l10n/l10n_util_ios.h"

#import <Foundation/Foundation.h>

#include "base/strings/sys_string_conversions.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "testing/platform_test.h"

using L10nUtilIOSTest = PlatformTest;

TEST_F(L10nUtilIOSTest, GetDisplayNameForLocale) {
  // Test documented error cases and return values of GetDisplayNameForLocale.
  std::u16string result = l10n_util::GetDisplayNameForLocale("xyz", "en");
  EXPECT_EQ(base::SysNSStringToUTF16(@"xyz"), result);

  result = l10n_util::GetDisplayNameForLocale("Xyz", "en");
  EXPECT_EQ(base::SysNSStringToUTF16(@"xyz"), result);

  result = l10n_util::GetDisplayNameForLocale("Xyz-Xyz", "en");
  EXPECT_EQ(base::SysNSStringToUTF16(@"xyz (XYZ)"), result);

  result = l10n_util::GetDisplayNameForLocale("Xyz-", "en");
  EXPECT_EQ(base::SysNSStringToUTF16(@"xyz"), result);

  result = l10n_util::GetDisplayNameForLocale("xyz-xyz-xyz", "en");
  EXPECT_EQ(base::SysNSStringToUTF16(@"xyz-xyz (XYZ)"), result);

  result = l10n_util::GetDisplayNameForLocale("", "en");
  EXPECT_EQ(base::SysNSStringToUTF16(@""), result);
}