Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(90)

Unified Diff: ios/chrome/browser/ui/file_locations_unittest.mm

Issue 2590473002: Upstream Chrome on iOS source code [5/11]. (Closed)
Patch Set: Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: ios/chrome/browser/ui/file_locations_unittest.mm
diff --git a/ios/chrome/browser/ui/file_locations_unittest.mm b/ios/chrome/browser/ui/file_locations_unittest.mm
new file mode 100644
index 0000000000000000000000000000000000000000..7c0c0b25617f22df6b1aa065eaec5a196b82273b
--- /dev/null
+++ b/ios/chrome/browser/ui/file_locations_unittest.mm
@@ -0,0 +1,90 @@
+// Copyright 2012 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.
+
+#include "ios/chrome/browser/ui/file_locations.h"
+
+#include "base/mac/foundation_util.h"
+#include "base/strings/sys_string_conversions.h"
+#include "testing/gtest/include/gtest/gtest.h"
+#include "testing/platform_test.h"
+
+extern std::string GetLocalizedFileName(const std::string& base_name,
+ const std::string& locale,
+ const std::string& ext);
+
+extern std::string GetIOSLocaleMapping(const std::string& locale);
+
+namespace {
+
+class FileLocationsTest : public PlatformTest {
+ protected:
+ void SetUp() override {
+ // These files must exist for this unit test to pass.
+ termsBaseName_ = "terms";
+ extension_ = "html";
+ enFile_ = "terms_en.html";
+ frFile_ = "terms_fr.html";
+ }
+ std::string termsBaseName_;
+ std::string extension_;
+ std::string enFile_;
+ std::string frFile_;
+};
+
+TEST_F(FileLocationsTest, TestTermsOfServiceUrl) {
+ std::string filename(GetTermsOfServicePath());
+ EXPECT_FALSE(filename.empty());
+}
+
+TEST_F(FileLocationsTest, TestIOSLocaleMapping) {
+ EXPECT_EQ("en-US", GetIOSLocaleMapping("en-US"));
+ EXPECT_EQ("es", GetIOSLocaleMapping("es"));
+ EXPECT_EQ("es-419", GetIOSLocaleMapping("es-MX"));
+ EXPECT_EQ("pt-BR", GetIOSLocaleMapping("pt"));
+ EXPECT_EQ("pt-PT", GetIOSLocaleMapping("pt-PT"));
+ EXPECT_EQ("zh-CN", GetIOSLocaleMapping("zh-Hans"));
+ EXPECT_EQ("zh-TW", GetIOSLocaleMapping("zh-Hant"));
+}
+
+TEST_F(FileLocationsTest, TestFileNameLocaleWithExtension) {
+ EXPECT_EQ(enFile_, GetLocalizedFileName(termsBaseName_, "en", extension_));
+ EXPECT_EQ(frFile_, GetLocalizedFileName(termsBaseName_, "fr", extension_));
+ EXPECT_EQ(frFile_, GetLocalizedFileName(termsBaseName_, "fr-XX", extension_));
+
+ // No ToS for "xx" locale so expect default "en" ToS. Unlikely, but this
+ // test will fail once the ToS for "xx" locale is added.
+ EXPECT_EQ(enFile_, GetLocalizedFileName(termsBaseName_, "xx", extension_));
+}
+
+// Tests that locale/languages available on iOS are mapped to either a
+// translated Chrome Terms of Service or to English.
+TEST_F(FileLocationsTest, TestTermsOfServiceForSupportedLanguages) {
+ // List of available localized terms_*.html files. Note that this list is
+ // hardcoded and needs to be manually maintained as new locales are added
+ // to Chrome. See http://crbug/522638
+ NSSet* localizedTermsHtml =
+ [NSSet setWithObjects:@"ar", @"bg", @"ca", @"cs", @"da", @"de", @"el",
+ @"en-GB", @"en", @"es-419", @"es", @"fa", @"fi",
+ @"fr", @"he", @"hi", @"hr", @"hu", @"id", @"it",
+ @"ja", @"ko", @"lt", @"nb", @"nl", @"pl", @"pt-BR",
+ @"pt-PT", @"ro", @"ru", @"sk", @"sr", @"sv", @"th",
+ @"tr", @"uk", @"vi", @"zh-CN", @"zh-TW", nil];
+ for (NSString* locale in [NSLocale availableLocaleIdentifiers]) {
+ NSString* normalizedLocale =
+ [locale stringByReplacingOccurrencesOfString:@"_" withString:@"-"];
+ NSArray* parts = [normalizedLocale componentsSeparatedByString:@"-"];
+ NSString* language = [parts objectAtIndex:0];
+ std::string filename = GetLocalizedFileName(
+ termsBaseName_,
+ GetIOSLocaleMapping(base::SysNSStringToUTF8(normalizedLocale)),
+ extension_);
+ if (filename == enFile_ && ![language isEqualToString:@"en"]) {
+ NSLog(@"OK: Locale %@ using language %@ falls back to use English ToS",
+ locale, language);
+ EXPECT_FALSE([localizedTermsHtml containsObject:language]);
+ }
+ }
+}
+
+} // namespace
« no previous file with comments | « ios/chrome/browser/ui/fancy_ui/tinted_button.mm ('k') | ios/chrome/browser/ui/find_bar/find_bar_controller_ios.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698