diff options
Diffstat (limited to 'ui')
-rw-r--r-- | ui/base/l10n/time_format_unittest.cc | 15 | ||||
-rw-r--r-- | ui/base/strings/ui_strings.gyp | 2 | ||||
-rw-r--r-- | ui/base/test/framework-Info.plist | 18 | ||||
-rw-r--r-- | ui/base/test/run_all_unittests.cc | 43 | ||||
-rw-r--r-- | ui/ui_unittests.gyp | 19 | ||||
-rw-r--r-- | ui/ui_unittests_bundle.gypi | 52 |
6 files changed, 114 insertions, 35 deletions
diff --git a/ui/base/l10n/time_format_unittest.cc b/ui/base/l10n/time_format_unittest.cc index 69f8b4e..9a237b1 100644 --- a/ui/base/l10n/time_format_unittest.cc +++ b/ui/base/l10n/time_format_unittest.cc @@ -74,15 +74,6 @@ class TimeFormatTest : public ::testing::Test { {} protected: - static void SetUpTestCase() { - LoadLocale(ui::ResourceBundle::GetSharedInstance() - .GetLocaleFilePath("en-US", true)); - } - - static void TearDownTestCase() { - LoadLocale(base::FilePath()); - } - void TestStrings() { // Test English strings (simple, singular). EXPECT_EQ(ASCIIToUTF16("1 sec"), TimeFormat::Simple( @@ -229,12 +220,6 @@ class TimeFormatTest : public ::testing::Test { TimeDelta delta_1d12h_; TimeDelta delta_2d_; TimeDelta delta_2d1h_; - - private: - static void LoadLocale(const base::FilePath& file_path) { - ui::ResourceBundle::GetSharedInstance().OverrideLocalePakForTest(file_path); - ui::ResourceBundle::GetSharedInstance().ReloadLocaleResources("en-US"); - } }; TEST_F(TimeFormatTest, SimpleAndDetailedRounding) { diff --git a/ui/base/strings/ui_strings.gyp b/ui/base/strings/ui_strings.gyp index f8750c2..a9f2bf7 100644 --- a/ui/base/strings/ui_strings.gyp +++ b/ui/base/strings/ui_strings.gyp @@ -38,7 +38,7 @@ }, ], 'conditions': [ - ['os_posix == 1 and OS != "mac"', { + ['OS != "mac"', { 'targets': [{ 'target_name': 'ui_unittest_strings', 'type': 'none', diff --git a/ui/base/test/framework-Info.plist b/ui/base/test/framework-Info.plist new file mode 100644 index 0000000..f3b7fc7 --- /dev/null +++ b/ui/base/test/framework-Info.plist @@ -0,0 +1,18 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>CFBundleDevelopmentRegion</key> + <string>en</string> + <key>CFBundleExecutable</key> + <string>${EXECUTABLE_NAME}</string> + <key>CFBundleIdentifier</key> + <string>${CHROMIUM_BUNDLE_ID}.framework</string> + <key>CFBundleInfoDictionaryVersion</key> + <string>6.0</string> + <key>CFBundlePackageType</key> + <string>FMWK</string> + <key>CFBundleSignature</key> + <string>????</string> +</dict> +</plist> 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() { diff --git a/ui/ui_unittests.gyp b/ui/ui_unittests.gyp index 4517662..5f8de68 100644 --- a/ui/ui_unittests.gyp +++ b/ui/ui_unittests.gyp @@ -62,7 +62,6 @@ 'dependencies': [ '../base/base.gyp:base', '../base/base.gyp:test_support_base', - '../chrome/chrome_resources.gyp:packed_resources', '../skia/skia.gyp:skia', '../testing/gmock.gyp:gmock', '../testing/gtest.gyp:gtest', @@ -286,6 +285,11 @@ 'dependencies': [ 'events/events.gyp:events_test_support', 'gfx/gfx.gyp:gfx_test_support', + 'ui_unittests_bundle', + ], + }, { # OS!="mac" + 'dependencies': [ + 'base/strings/ui_strings.gyp:ui_unittest_strings', ], }], ['use_aura==1 or toolkit_views==1', { @@ -336,6 +340,19 @@ }, ], 'conditions': [ + # Mac target to build a test Framework bundle to mock out resource loading. + ['OS == "mac"', { + 'targets': [ + { + 'target_name': 'ui_unittests_bundle', + 'type': 'shared_library', + 'dependencies': [ + 'resources/ui_resources.gyp:ui_test_pak', + ], + 'includes': [ 'ui_unittests_bundle.gypi' ], + }, + ], + }], # Special target to wrap a gtest_target_type==shared_library # ui_unittests into an android apk for execution. # See base.gyp for TODO(jrg)s about this strategy. diff --git a/ui/ui_unittests_bundle.gypi b/ui/ui_unittests_bundle.gypi new file mode 100644 index 0000000..236f50f --- /dev/null +++ b/ui/ui_unittests_bundle.gypi @@ -0,0 +1,52 @@ +# Copyright 2014 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. + +# This file contains resources for the ui_unittests test bundle. +# See chrome_dll_bundle.gypi for a description of the techniques here. +{ + 'product_name': 'ui_unittests Framework', + 'variables': { + 'grit_out_dir': '<(SHARED_INTERMEDIATE_DIR)/ui', + }, + 'mac_bundle': 1, + 'xcode_settings': { + 'CHROMIUM_BUNDLE_ID': 'com.google.ChromiumUITests', + 'DYLIB_COMPATIBILITY_VERSION': '1.0.0', + 'DYLIB_CURRENT_VERSION': '1.0.0', + 'DYLIB_INSTALL_NAME_BASE': '@executable_path/../Versions/1.0.0.0', + 'LD_DYLIB_INSTALL_NAME': + '$(DYLIB_INSTALL_NAME_BASE:standardizepath)/$(WRAPPER_NAME)/$(PRODUCT_NAME)', + 'INFOPLIST_FILE': 'base/test/framework-Info.plist', + }, + 'mac_bundle_resources': [ + 'base/test/framework-Info.plist', + '<(PRODUCT_DIR)/ui_test.pak', + '<!@pymod_do_main(repack_locales -o -p <(OS) -g <(grit_out_dir) -s <(SHARED_INTERMEDIATE_DIR) -x <(SHARED_INTERMEDIATE_DIR) <(locales))', + ], + 'mac_bundle_resources!': [ + 'base/test/framework-Info.plist', + ], + 'postbuilds': [ + { + 'postbuild_name': 'Symlink Resources', + 'action': [ + 'ln', + '-fns', + 'Versions/A/Resources', + '${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/Resources' + ], + }, + { + # Resource bundle pak names are hardcoded. This allows ui_test.pak to be + # found while running the ResourceBundle tests. + 'postbuild_name': 'Symlink chrome_100_percent for test', + 'action': [ + 'ln', + '-fns', + 'ui_test.pak', + '${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/Versions/A/Resources/chrome_100_percent.pak' + ], + }, + ], +} |