diff options
author | Seigo Nonaka <nona@google.com> | 2016-04-19 18:38:59 +0000 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2016-04-19 18:38:59 +0000 |
commit | 3bee494eead989500c38d98f7f863986e95e25e0 (patch) | |
tree | b6ddec308ee5b78a70ce99b77af907d9f983e92a /tests | |
parent | 994aa84f7b18466806fe552ea57da1852b909f24 (diff) | |
parent | 77f488345316fba46c271fc04bea470819ae1712 (diff) | |
download | android_frameworks_minikin-3bee494eead989500c38d98f7f863986e95e25e0.tar.gz android_frameworks_minikin-3bee494eead989500c38d98f7f863986e95e25e0.tar.bz2 android_frameworks_minikin-3bee494eead989500c38d98f7f863986e95e25e0.zip |
Do not break before and after ZWJ.
am: 77f4883
* commit '77f488345316fba46c271fc04bea470819ae1712':
Do not break before and after ZWJ.
Change-Id: I00a0e31c19dd5b2fbe2ffb389bec4001dec5d6c1
Diffstat (limited to 'tests')
-rw-r--r-- | tests/Android.mk | 1 | ||||
-rw-r--r-- | tests/GraphemeBreakTests.cpp | 4 | ||||
-rw-r--r-- | tests/MinikinInternalTest.cpp | 34 | ||||
-rw-r--r-- | tests/WordBreakerTests.cpp | 7 |
4 files changed, 45 insertions, 1 deletions
diff --git a/tests/Android.mk b/tests/Android.mk index e6586d7..b33631e 100644 --- a/tests/Android.mk +++ b/tests/Android.mk @@ -77,6 +77,7 @@ LOCAL_SRC_FILES += \ FontTestUtils.cpp \ HbFontCacheTest.cpp \ MinikinFontForTest.cpp \ + MinikinInternalTest.cpp \ GraphemeBreakTests.cpp \ LayoutUtilsTest.cpp \ UnicodeUtils.cpp \ diff --git a/tests/GraphemeBreakTests.cpp b/tests/GraphemeBreakTests.cpp index 3bfa5ec..cec5308 100644 --- a/tests/GraphemeBreakTests.cpp +++ b/tests/GraphemeBreakTests.cpp @@ -148,6 +148,10 @@ TEST(GraphemeBreak, tailoring) { EXPECT_FALSE(IsBreak("U+1F469 U+200D U+1F469 U+200D U+1F467 U+200D | U+1F466")); EXPECT_FALSE(IsBreak("U+1F441 U+200D | U+1F5E8")); + // Do not break before and after zwj with all kind of emoji characters. + EXPECT_FALSE(IsBreak("U+1F431 | U+200D U+1F464")); + EXPECT_FALSE(IsBreak("U+1F431 U+200D | U+1F464")); + // ARABIC LETTER BEH + ZWJ + heart, not a zwj emoji sequence, so we preserve the break EXPECT_TRUE(IsBreak("U+0628 U+200D | U+2764")); } diff --git a/tests/MinikinInternalTest.cpp b/tests/MinikinInternalTest.cpp new file mode 100644 index 0000000..9c1a1e5 --- /dev/null +++ b/tests/MinikinInternalTest.cpp @@ -0,0 +1,34 @@ +/* + * Copyright (C) 2016 The Android Open Source Project + * + * 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. + */ + +#include <gtest/gtest.h> + +#include "MinikinInternal.h" + +namespace android { + +TEST(MinikinInternalTest, isEmojiTest) { + EXPECT_TRUE(isEmoji(0x0023)); // NUMBER SIGN + EXPECT_TRUE(isEmoji(0x0035)); // DIGIT FIVE + EXPECT_TRUE(isEmoji(0x1F0CF)); // PLAYING CARD BLACK JOKER + EXPECT_TRUE(isEmoji(0x1F1E9)); // REGIONAL INDICATOR SYMBOL LETTER D + + EXPECT_FALSE(isEmoji(0x0000)); // <control> + EXPECT_FALSE(isEmoji(0x0061)); // LATIN SMALL LETTER A + EXPECT_FALSE(isEmoji(0x29E3D)); // A han character. +} + +} // namespace android diff --git a/tests/WordBreakerTests.cpp b/tests/WordBreakerTests.cpp index 480c57d..9fa9da3 100644 --- a/tests/WordBreakerTests.cpp +++ b/tests/WordBreakerTests.cpp @@ -93,6 +93,8 @@ TEST_F(WordBreakerTest, zwjEmojiSequences) { UTF16(0x1F469), 0x200D, 0x2764, 0x200D, UTF16(0x1F48B), 0x200D, UTF16(0x1F469), // eye + zwj + left speech bubble UTF16(0x1F441), 0x200D, UTF16(0x1F5E8), + // CAT FACE + zwj + BUST IN SILHOUETTE + UTF16(0x1F431), 0x200D, UTF16(0x1F464), }; WordBreaker breaker; breaker.setLocale(icu::Locale::getEnglish()); @@ -104,9 +106,12 @@ TEST_F(WordBreakerTest, zwjEmojiSequences) { EXPECT_EQ(17, breaker.next()); // after woman + zwj + heart + zwj + woman EXPECT_EQ(7, breaker.wordStart()); EXPECT_EQ(17, breaker.wordEnd()); - EXPECT_EQ((ssize_t)NELEM(buf), breaker.next()); // end + EXPECT_EQ(22, breaker.next()); // after eye + zwj + left speech bubble EXPECT_EQ(17, breaker.wordStart()); EXPECT_EQ(22, breaker.wordEnd()); + EXPECT_EQ((ssize_t)NELEM(buf), breaker.next()); // end + EXPECT_EQ(22, breaker.wordStart()); + EXPECT_EQ(27, breaker.wordEnd()); } TEST_F(WordBreakerTest, emojiWithModifier) { |