| Index: goopdate/resource_manager_unittest.cc
|
| diff --git a/goopdate/resource_manager_unittest.cc b/goopdate/resource_manager_unittest.cc
|
| deleted file mode 100644
|
| index 235856b033ee4093561b59c1bcc2e31a7e9397f7..0000000000000000000000000000000000000000
|
| --- a/goopdate/resource_manager_unittest.cc
|
| +++ /dev/null
|
| @@ -1,257 +0,0 @@
|
| -// Copyright 2007-2009 Google Inc.
|
| -//
|
| -// Licensed under the Apache License, Version 2.0 (the "License");
|
| -// you may not use this file except in compliance with the License.
|
| -// You may obtain a copy of the License at
|
| -//
|
| -// http://www.apache.org/licenses/LICENSE-2.0
|
| -//
|
| -// Unless required by applicable law or agreed to in writing, software
|
| -// distributed under the License is distributed on an "AS IS" BASIS,
|
| -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
| -// See the License for the specific language governing permissions and
|
| -// limitations under the License.
|
| -// ========================================================================
|
| -//
|
| -// ResourceManager unit tests.
|
| -
|
| -#include <map>
|
| -#include <vector>
|
| -#include "omaha/base/app_util.h"
|
| -#include "omaha/base/constants.h"
|
| -#include "omaha/base/debug.h"
|
| -#include "omaha/base/file.h"
|
| -#include "omaha/base/path.h"
|
| -#include "omaha/base/string.h"
|
| -#include "omaha/common/lang.h"
|
| -#include "omaha/goopdate/resource_manager.h"
|
| -#include "omaha/goopdate/resources/goopdateres/goopdate.grh"
|
| -#include "omaha/testing/unit_test.h"
|
| -
|
| -namespace omaha {
|
| -
|
| -namespace {
|
| -
|
| -const int kNumberOfLanguageDlls = 55;
|
| -
|
| -} // namespace
|
| -
|
| -class ResourceManagerTest : public testing::Test {
|
| - protected:
|
| - virtual void SetUp() {
|
| - path_ = app_util::GetModuleDirectory(NULL);
|
| - EXPECT_HRESULT_SUCCEEDED(
|
| - ResourceManager::CreateForDefaultLanguage(false, path_));
|
| - }
|
| -
|
| - virtual void TearDown() {
|
| - ResourceManager::Delete();
|
| - }
|
| -
|
| - void SetMachine(bool is_machine) {
|
| - ResourceManager::instance_->is_machine_ = is_machine;
|
| - }
|
| -
|
| - void SetResourceDir(const CString& resource_dir) {
|
| - ResourceManager::instance_->resource_dir_ = resource_dir;
|
| - }
|
| -
|
| - CString GetResourceDir() const {
|
| - return ResourceManager::instance_->resource_dir_;
|
| - }
|
| -
|
| - CString GetLang(LANGID langid) {
|
| - return lang::GetLanguageForLangID(langid);
|
| - }
|
| -
|
| - void VerifyLoadingResourceDll(const CString& lang, bool is_success) {
|
| - ResourceManager::ResourceDllInfo dll_info;
|
| -
|
| - HRESULT hr = ResourceManager::Instance().GetResourceDllInfo(lang,
|
| - &dll_info);
|
| - if (is_success) {
|
| - EXPECT_HRESULT_SUCCEEDED(hr);
|
| - EXPECT_TRUE(dll_info.dll_handle != NULL);
|
| - EXPECT_STREQ(lang, dll_info.language);
|
| -
|
| - CString expected_file_name;
|
| - expected_file_name.Format(kOmahaResourceDllNameFormat, lang);
|
| - CString expected_path = ConcatenatePath(path_, expected_file_name);
|
| - EXPECT_STREQ(expected_path, dll_info.file_path);
|
| - } else {
|
| - EXPECT_HRESULT_FAILED(hr);
|
| - EXPECT_EQ(NULL, dll_info.dll_handle);
|
| - EXPECT_STREQ(_T(""), dll_info.language);
|
| - }
|
| - }
|
| -
|
| - static CString GetResourceDllName(const CString& language) {
|
| - return ResourceManager::GetResourceDllName(language);
|
| - }
|
| -
|
| - CString path_;
|
| -};
|
| -
|
| -// Disables the default resources used for unit testing and restores them after
|
| -// the test.
|
| -// For some reason, the _AtlBaseModule.SetResourceInstance() call in
|
| -// ResourceManager does not replace the existing resources, so they must be
|
| -// unloaded first.
|
| -class ResourceManagerResourcesProtectedTest : public ResourceManagerTest {
|
| - protected:
|
| - // Assumes that the default resources are the first loaded at index 0.
|
| - virtual void SetUp() {
|
| - ResourceManagerTest::SetUp();
|
| -
|
| - default_resources_ = _AtlBaseModule.GetHInstanceAt(0);
|
| - _AtlBaseModule.RemoveResourceInstance(default_resources_);
|
| - }
|
| -
|
| - virtual void TearDown() {
|
| - _AtlBaseModule.AddResourceInstance(default_resources_);
|
| -
|
| - ResourceManagerTest::TearDown();
|
| - }
|
| -
|
| - private:
|
| - HINSTANCE default_resources_;
|
| -};
|
| -
|
| -TEST_F(ResourceManagerTest, GetResourceDllName) {
|
| - const CString kLang(_T("en"));
|
| - CString ret = GetResourceDllName(kLang);
|
| -
|
| - CString expected_filename;
|
| - expected_filename.Format(kOmahaResourceDllNameFormat, kLang);
|
| - EXPECT_STREQ(expected_filename, ret);
|
| -}
|
| -
|
| -TEST_F(ResourceManagerTest, GetResourceDllName_SpecialCases) {
|
| - // zh-HK -> zh-TW
|
| - EXPECT_STREQ(_T("goopdateres_zh-TW.dll"), GetResourceDllName(_T("zh-TW")));
|
| - EXPECT_STREQ(_T("goopdateres_zh-TW.dll"), GetResourceDllName(_T("zh-HK")));
|
| -
|
| - // he -> iw
|
| - EXPECT_STREQ(_T("goopdateres_iw.dll"), GetResourceDllName(_T("iw")));
|
| - EXPECT_STREQ(_T("goopdateres_iw.dll"), GetResourceDllName(_T("he")));
|
| -}
|
| -
|
| -TEST_F(ResourceManagerTest, LoadResourceFail) {
|
| - SetMachine(false);
|
| -
|
| - CString original_resoruce_dir = GetResourceDir();
|
| - SetResourceDir(_T("non_existing\\abcddir"));
|
| -
|
| - // Loading resource from a non-existing directory should fail. The language
|
| - // being loaded here should not be loaded previously. Otherwise the resource
|
| - // manager will return the cached value instead of doing actual load.
|
| - VerifyLoadingResourceDll(_T("ca"), false);
|
| -
|
| - SetResourceDir(original_resoruce_dir);
|
| -}
|
| -
|
| -TEST_F(ResourceManagerTest, LoadResourceDllCmdLine) {
|
| - SetMachine(false);
|
| -
|
| - CString lang = _T("ca");
|
| - VerifyLoadingResourceDll(lang, true);
|
| -}
|
| -
|
| -TEST_F(ResourceManagerTest, LoadResourceDllCmdLineMachine) {
|
| - SetMachine(true);
|
| -
|
| - CString lang = _T("ca");
|
| - VerifyLoadingResourceDll(lang, true);
|
| -}
|
| -
|
| -TEST_F(ResourceManagerTest, TestCountLanguageDlls) {
|
| - std::vector<CString> filenames;
|
| - ResourceManager::GetSupportedLanguageDllNames(&filenames);
|
| - EXPECT_EQ(kNumberOfLanguageDlls, filenames.size());
|
| -}
|
| -
|
| -TEST_F(ResourceManagerTest, TestAppropriateLanguageDlls) {
|
| - std::vector<CString> filenames;
|
| - ResourceManager::GetSupportedLanguageDllNames(&filenames);
|
| -
|
| - std::vector<CString>::iterator iter = filenames.begin();
|
| -
|
| - EXPECT_STREQ(_T("goopdateres_am.dll"), *iter++);
|
| - EXPECT_STREQ(_T("goopdateres_ar.dll"), *iter++);
|
| - EXPECT_STREQ(_T("goopdateres_bg.dll"), *iter++);
|
| - EXPECT_STREQ(_T("goopdateres_bn.dll"), *iter++);
|
| - EXPECT_STREQ(_T("goopdateres_ca.dll"), *iter++);
|
| - EXPECT_STREQ(_T("goopdateres_cs.dll"), *iter++);
|
| - EXPECT_STREQ(_T("goopdateres_da.dll"), *iter++);
|
| - EXPECT_STREQ(_T("goopdateres_de.dll"), *iter++);
|
| - EXPECT_STREQ(_T("goopdateres_el.dll"), *iter++);
|
| - EXPECT_STREQ(_T("goopdateres_en.dll"), *iter++);
|
| - EXPECT_STREQ(_T("goopdateres_en-GB.dll"), *iter++);
|
| - EXPECT_STREQ(_T("goopdateres_es.dll"), *iter++);
|
| - EXPECT_STREQ(_T("goopdateres_es-419.dll"), *iter++);
|
| - EXPECT_STREQ(_T("goopdateres_et.dll"), *iter++);
|
| - EXPECT_STREQ(_T("goopdateres_fa.dll"), *iter++);
|
| - EXPECT_STREQ(_T("goopdateres_fi.dll"), *iter++);
|
| - EXPECT_STREQ(_T("goopdateres_fil.dll"), *iter++);
|
| - EXPECT_STREQ(_T("goopdateres_fr.dll"), *iter++);
|
| - EXPECT_STREQ(_T("goopdateres_gu.dll"), *iter++);
|
| - EXPECT_STREQ(_T("goopdateres_hi.dll"), *iter++);
|
| - EXPECT_STREQ(_T("goopdateres_hr.dll"), *iter++);
|
| - EXPECT_STREQ(_T("goopdateres_hu.dll"), *iter++);
|
| - EXPECT_STREQ(_T("goopdateres_id.dll"), *iter++);
|
| - EXPECT_STREQ(_T("goopdateres_is.dll"), *iter++);
|
| - EXPECT_STREQ(_T("goopdateres_it.dll"), *iter++);
|
| - EXPECT_STREQ(_T("goopdateres_iw.dll"), *iter++);
|
| - EXPECT_STREQ(_T("goopdateres_ja.dll"), *iter++);
|
| - EXPECT_STREQ(_T("goopdateres_kn.dll"), *iter++);
|
| - EXPECT_STREQ(_T("goopdateres_ko.dll"), *iter++);
|
| - EXPECT_STREQ(_T("goopdateres_lt.dll"), *iter++);
|
| - EXPECT_STREQ(_T("goopdateres_lv.dll"), *iter++);
|
| - EXPECT_STREQ(_T("goopdateres_ml.dll"), *iter++);
|
| - EXPECT_STREQ(_T("goopdateres_mr.dll"), *iter++);
|
| - EXPECT_STREQ(_T("goopdateres_ms.dll"), *iter++);
|
| - EXPECT_STREQ(_T("goopdateres_nl.dll"), *iter++);
|
| - EXPECT_STREQ(_T("goopdateres_no.dll"), *iter++);
|
| - EXPECT_STREQ(_T("goopdateres_pl.dll"), *iter++);
|
| - EXPECT_STREQ(_T("goopdateres_pt-BR.dll"), *iter++);
|
| - EXPECT_STREQ(_T("goopdateres_pt-PT.dll"), *iter++);
|
| - EXPECT_STREQ(_T("goopdateres_ro.dll"), *iter++);
|
| - EXPECT_STREQ(_T("goopdateres_ru.dll"), *iter++);
|
| - EXPECT_STREQ(_T("goopdateres_sk.dll"), *iter++);
|
| - EXPECT_STREQ(_T("goopdateres_sl.dll"), *iter++);
|
| - EXPECT_STREQ(_T("goopdateres_sr.dll"), *iter++);
|
| - EXPECT_STREQ(_T("goopdateres_sv.dll"), *iter++);
|
| - EXPECT_STREQ(_T("goopdateres_sw.dll"), *iter++);
|
| - EXPECT_STREQ(_T("goopdateres_ta.dll"), *iter++);
|
| - EXPECT_STREQ(_T("goopdateres_te.dll"), *iter++);
|
| - EXPECT_STREQ(_T("goopdateres_th.dll"), *iter++);
|
| - EXPECT_STREQ(_T("goopdateres_tr.dll"), *iter++);
|
| - EXPECT_STREQ(_T("goopdateres_uk.dll"), *iter++);
|
| - EXPECT_STREQ(_T("goopdateres_ur.dll"), *iter++);
|
| - EXPECT_STREQ(_T("goopdateres_vi.dll"), *iter++);
|
| - EXPECT_STREQ(_T("goopdateres_zh-CN.dll"), *iter++);
|
| - // goopdateres_zh-HK.dll not present
|
| - EXPECT_STREQ(_T("goopdateres_zh-TW.dll"), *iter++);
|
| -}
|
| -
|
| -TEST_F(ResourceManagerResourcesProtectedTest, RussianResourcesValid) {
|
| - ResourceManager::Delete();
|
| -
|
| - CString lang(_T("ru"));
|
| - EXPECT_HRESULT_SUCCEEDED(ResourceManager::Create(false, path_, lang));
|
| -
|
| - CString install_success(FormatResourceMessage(
|
| - IDS_BUNDLE_INSTALLED_SUCCESSFULLY, _T("Google Gears")));
|
| -
|
| - EXPECT_STREQ("Благодарим за установку Google Gears.",
|
| - WideToUtf8(install_success));
|
| -
|
| - CString install_fail(FormatResourceMessage(IDS_INSTALLER_FAILED_WITH_MESSAGE,
|
| - _T("12345"),
|
| - _T("Action failed.")));
|
| -
|
| - EXPECT_STREQ("Ошибка установщика 12345: Action failed.",
|
| - WideToUtf8(install_fail));
|
| -}
|
| -
|
| -} // namespace omaha
|
|
|