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