| OLD | NEW |
| 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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 "chrome_frame/simple_resource_loader.h" | 5 #include "chrome_frame/simple_resource_loader.h" |
| 6 | 6 |
| 7 #include "base/file_path.h" | 7 #include "base/file_path.h" |
| 8 #include "base/win/windows_version.h" | 8 #include "base/win/windows_version.h" |
| 9 #include "testing/gtest/include/gtest/gtest.h" | 9 #include "testing/gtest/include/gtest/gtest.h" |
| 10 #include "ui/base/resource/data_pack.h" |
| 10 | 11 |
| 11 TEST(SimpleResourceLoaderTest, LoadLocaleDll) { | 12 TEST(SimpleResourceLoaderTest, LoadLocaleDll) { |
| 12 std::vector<std::wstring> language_tags; | 13 std::vector<std::wstring> language_tags; |
| 13 FilePath locales_path; | 14 FilePath locales_path; |
| 14 FilePath file_path; | 15 FilePath file_path; |
| 15 HMODULE dll_handle = NULL; | 16 HMODULE dll_handle = NULL; |
| 16 | 17 |
| 17 SimpleResourceLoader::DetermineLocalesDirectory(&locales_path); | 18 SimpleResourceLoader::DetermineLocalesDirectory(&locales_path); |
| 18 | 19 |
| 19 // Test valid language-region string: | 20 // Test valid language-region string: |
| 20 language_tags.clear(); | 21 language_tags.clear(); |
| 21 language_tags.push_back(L"en-GB"); | 22 language_tags.push_back(L"en-GB"); |
| 22 language_tags.push_back(L"en"); | 23 language_tags.push_back(L"en"); |
| 24 ui::DataPack* data_pack = NULL; |
| 25 |
| 26 std::wstring language; |
| 27 |
| 23 EXPECT_TRUE( | 28 EXPECT_TRUE( |
| 24 SimpleResourceLoader::LoadLocaleDll(language_tags, locales_path, | 29 SimpleResourceLoader::LoadLocalePack(language_tags, locales_path, |
| 25 &dll_handle, &file_path)); | 30 &dll_handle, &data_pack, |
| 31 &language)); |
| 26 if (NULL != dll_handle) { | 32 if (NULL != dll_handle) { |
| 27 FreeLibrary(dll_handle); | 33 FreeLibrary(dll_handle); |
| 28 dll_handle = NULL; | 34 dll_handle = NULL; |
| 29 } | 35 } |
| 30 EXPECT_TRUE(file_path.BaseName() == FilePath(L"en-GB.dll")); | 36 EXPECT_TRUE(data_pack != NULL); |
| 37 delete data_pack; |
| 38 data_pack = NULL; |
| 39 |
| 40 EXPECT_EQ(language, L"en-GB"); |
| 41 language.clear(); |
| 31 | 42 |
| 32 // Test valid language-region string for which we only have a language dll: | 43 // Test valid language-region string for which we only have a language dll: |
| 33 language_tags.clear(); | 44 language_tags.clear(); |
| 34 language_tags.push_back(L"fr-FR"); | 45 language_tags.push_back(L"fr-FR"); |
| 35 language_tags.push_back(L"fr"); | 46 language_tags.push_back(L"fr"); |
| 36 EXPECT_TRUE( | 47 EXPECT_TRUE( |
| 37 SimpleResourceLoader::LoadLocaleDll(language_tags, locales_path, | 48 SimpleResourceLoader::LoadLocalePack(language_tags, locales_path, |
| 38 &dll_handle, &file_path)); | 49 &dll_handle, &data_pack, |
| 50 &language)); |
| 39 if (NULL != dll_handle) { | 51 if (NULL != dll_handle) { |
| 40 FreeLibrary(dll_handle); | 52 FreeLibrary(dll_handle); |
| 41 dll_handle = NULL; | 53 dll_handle = NULL; |
| 42 } | 54 } |
| 43 EXPECT_TRUE(file_path.BaseName() == FilePath(L"fr.dll")); | 55 EXPECT_TRUE(data_pack != NULL); |
| 56 delete data_pack; |
| 57 data_pack = NULL; |
| 58 |
| 59 EXPECT_EQ(language, L"fr"); |
| 60 language.clear(); |
| 44 | 61 |
| 45 // Test invalid language-region string, make sure fallback works: | 62 // Test invalid language-region string, make sure fallback works: |
| 46 language_tags.clear(); | 63 language_tags.clear(); |
| 47 language_tags.push_back(L"xx-XX"); | 64 language_tags.push_back(L"xx-XX"); |
| 48 language_tags.push_back(L"en-US"); | 65 language_tags.push_back(L"en-US"); |
| 49 EXPECT_TRUE( | 66 EXPECT_TRUE( |
| 50 SimpleResourceLoader::LoadLocaleDll(language_tags, locales_path, | 67 SimpleResourceLoader::LoadLocalePack(language_tags, locales_path, |
| 51 &dll_handle, &file_path)); | 68 &dll_handle, &data_pack, |
| 69 &language)); |
| 52 if (NULL != dll_handle) { | 70 if (NULL != dll_handle) { |
| 53 FreeLibrary(dll_handle); | 71 FreeLibrary(dll_handle); |
| 54 dll_handle = NULL; | 72 dll_handle = NULL; |
| 55 } | 73 } |
| 56 EXPECT_TRUE(file_path.BaseName() == FilePath(L"en-US.dll")); | 74 |
| 75 EXPECT_TRUE(data_pack != NULL); |
| 76 delete data_pack; |
| 77 data_pack = NULL; |
| 78 |
| 79 EXPECT_EQ(language, L"en-US"); |
| 80 language.clear(); |
| 57 } | 81 } |
| 58 | 82 |
| 59 TEST(SimpleResourceLoaderTest, InstanceTest) { | 83 TEST(SimpleResourceLoaderTest, InstanceTest) { |
| 60 SimpleResourceLoader* loader = SimpleResourceLoader::GetInstance(); | 84 SimpleResourceLoader* loader = SimpleResourceLoader::GetInstance(); |
| 61 | 85 |
| 62 ASSERT_TRUE(NULL != loader); | 86 ASSERT_TRUE(NULL != loader); |
| 63 ASSERT_TRUE(NULL != loader->GetResourceModuleHandle()); | 87 ASSERT_TRUE(NULL != loader->GetResourceModuleHandle()); |
| 64 } | 88 } |
| OLD | NEW |