blob: c760425a8fb54bb633aa32266416a6607ee3436a [file] [log] [blame]
// Copyright (c) 2011 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#import <Foundation/Foundation.h>
#include <stddef.h>
#include "base/macros.h"
#include "base/strings/sys_string_conversions.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "testing/platform_test.h"
#include "ui/base/l10n/l10n_util_mac.h"
typedef PlatformTest L10nUtilMacTest;
TEST_F(L10nUtilMacTest, FixUpWindowsStyleLabel) {
struct TestData {
NSString* input;
NSString* output;
};
TestData data[] = {
{ @"", @"" },
{ @"nothing", @"nothing" },
{ @"foo &bar", @"foo bar" },
{ @"foo &&bar", @"foo &bar" },
{ @"foo &&&bar", @"foo &bar" },
{ @"&foo &&bar", @"foo &bar" },
{ @"&foo &bar", @"foo bar" },
{ @"foo bar.", @"foo bar." },
{ @"foo bar..", @"foo bar.." },
{ @"foo bar...", @"foo bar\u2026" },
{ @"foo.bar", @"foo.bar" },
{ @"foo..bar", @"foo..bar" },
{ @"foo...bar", @"foo\u2026bar" },
{ @"foo...bar...", @"foo\u2026bar\u2026" },
{ @"foo(&b)", @"foo" },
{ @"foo(&b)...", @"foo\u2026" },
{ @"(&b)foo", @"foo" },
};
for (size_t idx = 0; idx < arraysize(data); ++idx) {
base::string16 input16(base::SysNSStringToUTF16(data[idx].input));
NSString* result = l10n_util::FixUpWindowsStyleLabel(input16);
EXPECT_TRUE(result != nil) << "Fixup Failed, idx = " << idx;
EXPECT_TRUE([data[idx].output isEqual:result])
<< "For idx " << idx << ", expected '" << [data[idx].output UTF8String]
<< "', got '" << [result UTF8String] << "'";
}
}
TEST_F(L10nUtilMacTest, GetDisplayNameForLocale) {
// Test documented error cases and return values of GetDisplayNameForLocale.
base::string16 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);
}