diff options
Diffstat (limited to 'ui/base/test/run_all_unittests.cc')
-rw-r--r-- | ui/base/test/run_all_unittests.cc | 43 |
1 files changed, 25 insertions, 18 deletions
diff --git a/ui/base/test/run_all_unittests.cc b/ui/base/test/run_all_unittests.cc index 0f94dac..9d40ebb 100644 --- a/ui/base/test/run_all_unittests.cc +++ b/ui/base/test/run_all_unittests.cc @@ -52,27 +52,34 @@ void UIBaseTestSuite::Initialize() { ui::RegisterPathProvider(); gfx::RegisterPathProvider(); + base::FilePath exe_path; + PathService::Get(base::DIR_EXE, &exe_path); + #if defined(OS_MACOSX) && !defined(OS_IOS) - // 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. - base::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 - base::mac::SetOverrideFrameworkBundlePath(path); -#endif // defined(OS_MACOSX) && !defined(OS_IOS) + // On Mac, a test Framework bundle is created that links locale.pak and + // chrome_100_percent.pak at the appropriate places to ui_test.pak. + base::mac::SetOverrideFrameworkBundlePath( + exe_path.AppendASCII("ui_unittests Framework.framework")); + ui::ResourceBundle::InitSharedInstanceWithLocale("en-US", NULL); - // TODO(tfarina): This loads chrome_100_percent.pak and thus introduces a - // dependency on chrome/, we don't want that here, so change this to - // InitSharedInstanceWithPakPath(). +#elif defined(OS_IOS) || defined(OS_ANDROID) + // On iOS, the ui_unittests binary is itself a mini bundle, with resources + // built in. On Android, ui_unittests_apk provides the necessary framework. ui::ResourceBundle::InitSharedInstanceWithLocale("en-US", NULL); + +#else + // On other platforms, the (hardcoded) paths for chrome_100_percent.pak and + // locale.pak get populated by later build steps. To avoid clobbering them, + // load the test .pak files directly. + ui::ResourceBundle::InitSharedInstanceWithPakPath( + exe_path.AppendASCII("ui_test.pak")); + + // ui_unittests can't depend on the locales folder which Chrome will make + // later, so use the path created by ui_unittest_strings. + PathService::Override( + ui::DIR_LOCALES, + exe_path.AppendASCII("ui_unittests_strings")); +#endif } void UIBaseTestSuite::Shutdown() { |