| // Copyright (c) 2009 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef APP_TEST_SUITE_H_ |
| #define APP_TEST_SUITE_H_ |
| |
| #include "build/build_config.h" |
| |
| #include <string> |
| |
| #include "app/app_paths.h" |
| #include "app/resource_bundle.h" |
| #include "base/path_service.h" |
| #if defined(OS_MACOSX) |
| #include "base/mac_util.h" |
| #endif |
| #include "base/scoped_nsautorelease_pool.h" |
| #include "base/test/test_suite.h" |
| |
| class AppTestSuite : public TestSuite { |
| public: |
| AppTestSuite(int argc, char** argv) : TestSuite(argc, argv) { |
| } |
| |
| protected: |
| |
| virtual void Initialize() { |
| base::ScopedNSAutoreleasePool autorelease_pool; |
| |
| TestSuite::Initialize(); |
| |
| app::RegisterPathProvider(); |
| #if defined(OS_MACOSX) |
| // Look in the framework bundle for resources. |
| // TODO(port): make a resource bundle for non-app exes. What's done here |
| // isn't really right because this code needs to depend on chrome_dll |
| // being built. This is inappropriate in app. |
| FilePath path; |
| PathService::Get(base::DIR_EXE, &path); |
| #if defined(GOOGLE_CHROME_BUILD) |
| path = path.AppendASCII("Google Chrome Framework.framework"); |
| #elif defined(CHROMIUM_BUILD) |
| path = path.AppendASCII("Chromium Framework.framework"); |
| #else |
| #error Unknown branding |
| #endif |
| mac_util::SetOverrideAppBundlePath(path); |
| #endif // OS_MACOSX |
| |
| #if defined(OS_LINUX) |
| FilePath pak_dir; |
| PathService::Get(base::DIR_MODULE, &pak_dir); |
| pak_dir = pak_dir.AppendASCII("app_unittests_strings"); |
| PathService::Override(app::DIR_LOCALES, pak_dir); |
| PathService::Override(app::FILE_RESOURCES_PAK, |
| pak_dir.AppendASCII("app_resources.pak")); |
| #endif // OS_LINUX |
| |
| // Force unittests to run using en-US so if we test against string |
| // output, it'll pass regardless of the system language. |
| ResourceBundle::InitSharedInstance(L"en-US"); |
| } |
| |
| virtual void Shutdown() { |
| ResourceBundle::CleanupSharedInstance(); |
| |
| #if defined(OS_MACOSX) |
| mac_util::SetOverrideAppBundle(NULL); |
| #endif |
| TestSuite::Shutdown(); |
| } |
| }; |
| |
| #endif // APP_TEST_SUITE_H_ |