diff options
Diffstat (limited to 'chromium/base/i18n/icu_util_unittest.cc')
-rw-r--r-- | chromium/base/i18n/icu_util_unittest.cc | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/chromium/base/i18n/icu_util_unittest.cc b/chromium/base/i18n/icu_util_unittest.cc new file mode 100644 index 00000000000..75b6c4aab2e --- /dev/null +++ b/chromium/base/i18n/icu_util_unittest.cc @@ -0,0 +1,82 @@ +// Copyright (c) 2019 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. + +#include "base/i18n/icu_util.h" + +#include "build/build_config.h" +#include "testing/gtest/include/gtest/gtest.h" + +#if !defined(OS_NACL) +#if ICU_UTIL_DATA_IMPL == ICU_UTIL_DATA_FILE + +namespace base { +namespace i18n { + +class IcuUtilTest : public testing::Test { + protected: + void SetUp() override { ResetGlobalsForTesting(); } +}; + +#if defined(OS_ANDROID) + +TEST_F(IcuUtilTest, InitializeIcuSucceeds) { + bool success = InitializeICU(); + + ASSERT_TRUE(success); +} + +TEST_F(IcuUtilTest, ExtraFileNotInitializedAtStart) { + MemoryMappedFile::Region region; + PlatformFile file = GetIcuExtraDataFileHandle(®ion); + + ASSERT_EQ(file, kInvalidPlatformFile); +} + +TEST_F(IcuUtilTest, InitializeExtraIcuSucceeds) { + bool success = InitializeExtraICU(); + + ASSERT_TRUE(success); +} + +TEST_F(IcuUtilTest, CannotInitializeExtraIcuAfterIcu) { + InitializeICU(); + bool success = InitializeExtraICU(); + + ASSERT_FALSE(success); +} + +TEST_F(IcuUtilTest, ExtraFileInitializedAfterInit) { + InitializeExtraICU(); + MemoryMappedFile::Region region; + PlatformFile file = GetIcuExtraDataFileHandle(®ion); + + ASSERT_NE(file, kInvalidPlatformFile); +} + +TEST_F(IcuUtilTest, InitializeExtraIcuFromFdSucceeds) { + InitializeExtraICU(); + MemoryMappedFile::Region region; + PlatformFile pf = GetIcuExtraDataFileHandle(®ion); + bool success = InitializeExtraICUWithFileDescriptor(pf, region); + + ASSERT_TRUE(success); +} + +TEST_F(IcuUtilTest, CannotInitializeExtraIcuFromFdAfterIcu) { + InitializeExtraICU(); + InitializeICU(); + MemoryMappedFile::Region region; + PlatformFile pf = GetIcuExtraDataFileHandle(®ion); + bool success = InitializeExtraICUWithFileDescriptor(pf, region); + + ASSERT_FALSE(success); +} + +#endif // defined(OS_ANDROID) + +} // namespace i18n +} // namespace base + +#endif // ICU_UTIL_DATA_IMPL == ICU_UTIL_DATA_FILE +#endif // !defined(OS_NACL) |