* 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 <unicode/uchar.h>
#include <minikin/Emoji.h>
namespace minikin {
TEST(EmojiTest, isEmojiTest) {
EXPECT_TRUE(isEmoji(0x0023));
EXPECT_TRUE(isEmoji(0x0035));
EXPECT_TRUE(isEmoji(0x1F0CF));
EXPECT_TRUE(isEmoji(0x1F1E9));
EXPECT_TRUE(isEmoji(0x1F6F7));
EXPECT_TRUE(isEmoji(0x1F9E6));
EXPECT_FALSE(isEmoji(0x0000));
EXPECT_FALSE(isEmoji(0x0061));
EXPECT_FALSE(isEmoji(0x1F93B));
EXPECT_FALSE(isEmoji(0x1F946));
EXPECT_FALSE(isEmoji(0x29E3D));
}
TEST(EmojiTest, isEmojiModifierTest) {
EXPECT_TRUE(isEmojiModifier(0x1F3FB));
EXPECT_TRUE(isEmojiModifier(0x1F3FC));
EXPECT_TRUE(isEmojiModifier(0x1F3FD));
EXPECT_TRUE(isEmojiModifier(0x1F3FE));
EXPECT_TRUE(isEmojiModifier(0x1F3FF));
EXPECT_FALSE(isEmojiModifier(0x0000));
EXPECT_FALSE(isEmojiModifier(0x1F3FA));
EXPECT_FALSE(isEmojiModifier(0x1F400));
EXPECT_FALSE(isEmojiModifier(0x29E3D));
}
TEST(EmojiTest, isEmojiBaseTest) {
EXPECT_TRUE(isEmojiBase(0x261D));
EXPECT_TRUE(isEmojiBase(0x270D));
EXPECT_TRUE(isEmojiBase(0x1F385));
EXPECT_TRUE(isEmojiBase(
0x1F91D));
EXPECT_TRUE(isEmojiBase(0x1F91F));
EXPECT_TRUE(isEmojiBase(0x1F931));
EXPECT_TRUE(isEmojiBase(0x1F932));
EXPECT_TRUE(isEmojiBase(
0x1F93C));
EXPECT_TRUE(isEmojiBase(0x1F9D1));
EXPECT_TRUE(isEmojiBase(0x1F9DD));
EXPECT_FALSE(isEmojiBase(0x0000));
EXPECT_FALSE(isEmojiBase(0x261C));
EXPECT_FALSE(isEmojiBase(0x1F384));
EXPECT_FALSE(isEmojiBase(0x1F9DE));
EXPECT_FALSE(isEmojiBase(0x29E3D));
}
TEST(EmojiTest, emojiBidiOverrideTest) {
EXPECT_EQ(U_RIGHT_TO_LEFT,
emojiBidiOverride(nullptr, 0x05D0));
EXPECT_EQ(U_LEFT_TO_RIGHT,
emojiBidiOverride(
nullptr, 0x1F170));
EXPECT_EQ(U_OTHER_NEUTRAL, emojiBidiOverride(nullptr, 0x1F6F7));
EXPECT_EQ(U_OTHER_NEUTRAL, emojiBidiOverride(nullptr, 0x1F9E6));
}
}