Home | History | Annotate | Download | only in test
      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 
     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 
     83 TEST(SimpleResourceLoaderTest, InstanceTest) {
     84   SimpleResourceLoader* loader = SimpleResourceLoader::GetInstance();
     85 
     86   ASSERT_TRUE(NULL != loader);
     87   ASSERT_TRUE(NULL != loader->GetResourceModuleHandle());
     88 }
     89