OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "base/file_path.h" | 5 #include "base/file_path.h" |
6 #include "base/file_util.h" | 6 #include "base/file_util.h" |
7 #include "base/files/scoped_temp_dir.h" | 7 #include "base/files/scoped_temp_dir.h" |
8 #include "base/memory/linked_ptr.h" | 8 #include "base/memory/linked_ptr.h" |
9 #include "base/memory/scoped_ptr.h" | 9 #include "base/memory/scoped_ptr.h" |
10 #include "base/path_service.h" | 10 #include "base/path_service.h" |
11 #include "base/values.h" | 11 #include "base/values.h" |
12 #include "chrome/common/chrome_paths.h" | 12 #include "chrome/common/chrome_paths.h" |
13 #include "chrome/common/extensions/extension.h" | 13 #include "chrome/common/extensions/extension.h" |
14 #include "chrome/common/extensions/extension_l10n_util.h" | 14 #include "chrome/common/extensions/extension_l10n_util.h" |
15 #include "chrome/common/extensions/extension_manifest_constants.h" | 15 #include "chrome/common/extensions/extension_manifest_constants.h" |
16 #include "chrome/common/extensions/message_bundle.h" | 16 #include "chrome/common/extensions/message_bundle.h" |
17 #include "testing/gtest/include/gtest/gtest.h" | 17 #include "testing/gtest/include/gtest/gtest.h" |
18 #include "ui/base/l10n/l10n_util.h" | 18 #include "ui/base/l10n/l10n_util.h" |
19 | 19 |
20 using extensions::Extension; | 20 using extensions::Extension; |
21 using extensions::ExtensionInfo; | 21 using extensions::ExtensionInfo; |
| 22 using extensions::Manifest; |
22 using extensions::MessageBundle; | 23 using extensions::MessageBundle; |
23 | 24 |
24 namespace errors = extension_manifest_errors; | 25 namespace errors = extension_manifest_errors; |
25 namespace keys = extension_manifest_keys; | 26 namespace keys = extension_manifest_keys; |
26 | 27 |
27 namespace { | 28 namespace { |
28 | 29 |
29 // crbug.com/108429: Crashing on Windows Vista bots. | 30 // crbug.com/108429: Crashing on Windows Vista bots. |
30 #if defined(OS_WIN) | 31 #if defined(OS_WIN) |
31 #define GetValidLocalesEmptyLocaleFolder \ | 32 #define GetValidLocalesEmptyLocaleFolder \ |
(...skipping 521 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
553 EXPECT_EQ("description", result); | 554 EXPECT_EQ("description", result); |
554 | 555 |
555 ASSERT_TRUE(handler->GetString(keys::kPageActionDefaultTitle, &result)); | 556 ASSERT_TRUE(handler->GetString(keys::kPageActionDefaultTitle, &result)); |
556 EXPECT_EQ("file handler title", result); | 557 EXPECT_EQ("file handler title", result); |
557 | 558 |
558 EXPECT_TRUE(error.empty()); | 559 EXPECT_TRUE(error.empty()); |
559 } | 560 } |
560 | 561 |
561 // Try with NULL manifest. | 562 // Try with NULL manifest. |
562 TEST(ExtensionL10nUtil, ShouldRelocalizeManifestWithNullManifest) { | 563 TEST(ExtensionL10nUtil, ShouldRelocalizeManifestWithNullManifest) { |
563 ExtensionInfo info(NULL, "", FilePath(), Extension::LOAD); | 564 ExtensionInfo info(NULL, "", FilePath(), Manifest::LOAD); |
564 | 565 |
565 EXPECT_FALSE(extension_l10n_util::ShouldRelocalizeManifest(info)); | 566 EXPECT_FALSE(extension_l10n_util::ShouldRelocalizeManifest(info)); |
566 } | 567 } |
567 | 568 |
568 // Try with default and current locales missing. | 569 // Try with default and current locales missing. |
569 TEST(ExtensionL10nUtil, ShouldRelocalizeManifestEmptyManifest) { | 570 TEST(ExtensionL10nUtil, ShouldRelocalizeManifestEmptyManifest) { |
570 DictionaryValue manifest; | 571 DictionaryValue manifest; |
571 ExtensionInfo info(&manifest, "", FilePath(), Extension::LOAD); | 572 ExtensionInfo info(&manifest, "", FilePath(), Manifest::LOAD); |
572 | 573 |
573 EXPECT_FALSE(extension_l10n_util::ShouldRelocalizeManifest(info)); | 574 EXPECT_FALSE(extension_l10n_util::ShouldRelocalizeManifest(info)); |
574 } | 575 } |
575 | 576 |
576 // Try with missing current_locale. | 577 // Try with missing current_locale. |
577 TEST(ExtensionL10nUtil, ShouldRelocalizeManifestWithDefaultLocale) { | 578 TEST(ExtensionL10nUtil, ShouldRelocalizeManifestWithDefaultLocale) { |
578 DictionaryValue manifest; | 579 DictionaryValue manifest; |
579 manifest.SetString(keys::kDefaultLocale, "en_US"); | 580 manifest.SetString(keys::kDefaultLocale, "en_US"); |
580 | 581 |
581 ExtensionInfo info(&manifest, "", FilePath(), Extension::LOAD); | 582 ExtensionInfo info(&manifest, "", FilePath(), Manifest::LOAD); |
582 | 583 |
583 EXPECT_TRUE(extension_l10n_util::ShouldRelocalizeManifest(info)); | 584 EXPECT_TRUE(extension_l10n_util::ShouldRelocalizeManifest(info)); |
584 } | 585 } |
585 | 586 |
586 // Try with missing default_locale. | 587 // Try with missing default_locale. |
587 TEST(ExtensionL10nUtil, ShouldRelocalizeManifestWithCurrentLocale) { | 588 TEST(ExtensionL10nUtil, ShouldRelocalizeManifestWithCurrentLocale) { |
588 DictionaryValue manifest; | 589 DictionaryValue manifest; |
589 manifest.SetString(keys::kCurrentLocale, | 590 manifest.SetString(keys::kCurrentLocale, |
590 extension_l10n_util::CurrentLocaleOrDefault()); | 591 extension_l10n_util::CurrentLocaleOrDefault()); |
591 | 592 |
592 ExtensionInfo info(&manifest, "", FilePath(), Extension::LOAD); | 593 ExtensionInfo info(&manifest, "", FilePath(), Manifest::LOAD); |
593 | 594 |
594 EXPECT_FALSE(extension_l10n_util::ShouldRelocalizeManifest(info)); | 595 EXPECT_FALSE(extension_l10n_util::ShouldRelocalizeManifest(info)); |
595 } | 596 } |
596 | 597 |
597 // Try with all data present, but with same current_locale as system locale. | 598 // Try with all data present, but with same current_locale as system locale. |
598 TEST(ExtensionL10nUtil, ShouldRelocalizeManifestSameCurrentLocale) { | 599 TEST(ExtensionL10nUtil, ShouldRelocalizeManifestSameCurrentLocale) { |
599 DictionaryValue manifest; | 600 DictionaryValue manifest; |
600 manifest.SetString(keys::kDefaultLocale, "en_US"); | 601 manifest.SetString(keys::kDefaultLocale, "en_US"); |
601 manifest.SetString(keys::kCurrentLocale, | 602 manifest.SetString(keys::kCurrentLocale, |
602 extension_l10n_util::CurrentLocaleOrDefault()); | 603 extension_l10n_util::CurrentLocaleOrDefault()); |
603 | 604 |
604 ExtensionInfo info(&manifest, "", FilePath(), Extension::LOAD); | 605 ExtensionInfo info(&manifest, "", FilePath(), Manifest::LOAD); |
605 | 606 |
606 EXPECT_FALSE(extension_l10n_util::ShouldRelocalizeManifest(info)); | 607 EXPECT_FALSE(extension_l10n_util::ShouldRelocalizeManifest(info)); |
607 } | 608 } |
608 | 609 |
609 // Try with all data present, but with different current_locale. | 610 // Try with all data present, but with different current_locale. |
610 TEST(ExtensionL10nUtil, ShouldRelocalizeManifestDifferentCurrentLocale) { | 611 TEST(ExtensionL10nUtil, ShouldRelocalizeManifestDifferentCurrentLocale) { |
611 DictionaryValue manifest; | 612 DictionaryValue manifest; |
612 manifest.SetString(keys::kDefaultLocale, "en_US"); | 613 manifest.SetString(keys::kDefaultLocale, "en_US"); |
613 manifest.SetString(keys::kCurrentLocale, "sr"); | 614 manifest.SetString(keys::kCurrentLocale, "sr"); |
614 | 615 |
615 ExtensionInfo info(&manifest, "", FilePath(), Extension::LOAD); | 616 ExtensionInfo info(&manifest, "", FilePath(), Manifest::LOAD); |
616 | 617 |
617 EXPECT_TRUE(extension_l10n_util::ShouldRelocalizeManifest(info)); | 618 EXPECT_TRUE(extension_l10n_util::ShouldRelocalizeManifest(info)); |
618 } | 619 } |
619 | 620 |
620 TEST(ExtensionL10nUtil, GetAllFallbackLocales) { | 621 TEST(ExtensionL10nUtil, GetAllFallbackLocales) { |
621 std::vector<std::string> fallback_locales; | 622 std::vector<std::string> fallback_locales; |
622 extension_l10n_util::GetAllFallbackLocales("en_US", "all", &fallback_locales); | 623 extension_l10n_util::GetAllFallbackLocales("en_US", "all", &fallback_locales); |
623 ASSERT_EQ(3U, fallback_locales.size()); | 624 ASSERT_EQ(3U, fallback_locales.size()); |
624 | 625 |
625 CHECK_EQ("en_US", fallback_locales[0]); | 626 CHECK_EQ("en_US", fallback_locales[0]); |
626 CHECK_EQ("en", fallback_locales[1]); | 627 CHECK_EQ("en", fallback_locales[1]); |
627 CHECK_EQ("all", fallback_locales[2]); | 628 CHECK_EQ("all", fallback_locales[2]); |
628 } | 629 } |
629 | 630 |
630 } // namespace | 631 } // namespace |
OLD | NEW |