Home | History | Annotate | Download | only in l10n
      1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #import <Foundation/Foundation.h>
      6 
      7 #include "base/strings/sys_string_conversions.h"
      8 #include "testing/gtest/include/gtest/gtest.h"
      9 #include "testing/platform_test.h"
     10 #include "ui/base/l10n/l10n_util_mac.h"
     11 
     12 typedef PlatformTest L10nUtilMacTest;
     13 
     14 TEST_F(L10nUtilMacTest, FixUpWindowsStyleLabel) {
     15   struct TestData {
     16     NSString* input;
     17     NSString* output;
     18   };
     19 
     20   TestData data[] = {
     21     { @"", @"" },
     22     { @"nothing", @"nothing" },
     23     { @"foo &bar", @"foo bar" },
     24     { @"foo &&bar", @"foo &bar" },
     25     { @"foo &&&bar", @"foo &bar" },
     26     { @"&foo &&bar", @"foo &bar" },
     27     { @"&foo &bar", @"foo bar" },
     28     { @"foo bar.", @"foo bar." },
     29     { @"foo bar..", @"foo bar.." },
     30     { @"foo bar...", @"foo bar\u2026" },
     31     { @"foo.bar", @"foo.bar" },
     32     { @"foo..bar", @"foo..bar" },
     33     { @"foo...bar", @"foo\u2026bar" },
     34     { @"foo...bar...", @"foo\u2026bar\u2026" },
     35     { @"foo(&b)", @"foo" },
     36     { @"foo(&b)...", @"foo\u2026" },
     37     { @"(&b)foo", @"foo" },
     38   };
     39   for (size_t idx = 0; idx < ARRAYSIZE_UNSAFE(data); ++idx) {
     40     base::string16 input16(base::SysNSStringToUTF16(data[idx].input));
     41 
     42     NSString* result = l10n_util::FixUpWindowsStyleLabel(input16);
     43     EXPECT_TRUE(result != nil) << "Fixup Failed, idx = " << idx;
     44 
     45     EXPECT_TRUE([data[idx].output isEqual:result])
     46         << "For idx " << idx << ", expected '" << [data[idx].output UTF8String]
     47         << "', got '" << [result UTF8String] << "'";
     48   }
     49 }
     50