/* * Copyright (c) 2020-2021 Huawei Device Co., Ltd. * 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 "components/ui_label.h" #include #include #include "font/ui_font.h" using namespace testing::ext; namespace OHOS { namespace { const int16_t INIT_WIDTH = 100; const int16_t INIT_HEIGHT = 150; } class UILabelTest : public testing::Test { public: static void SetUpTestCase(void); static void TearDownTestCase(void); static UILabel* label_; }; UILabel* UILabelTest::label_ = nullptr; void UILabelTest::SetUpTestCase(void) { if (label_ == nullptr) { label_ = new UILabel(); } } void UILabelTest::TearDownTestCase(void) { if (label_ != nullptr) { delete label_; label_ = nullptr; } } /** * @tc.name: UILabelGetViewType_001 * @tc.desc: Verify GetViewType and GetHeight function. * @tc.type: FUNC * @tc.require: AR000DSMQ1 */ HWTEST_F(UILabelTest, UILabelGetViewType_001, TestSize.Level1) { if (label_ == nullptr) { EXPECT_EQ(1, 0); return; } EXPECT_EQ(label_->GetViewType(), UI_LABEL); } /** * @tc.name: UILabelResize_001 * @tc.desc: Verify Resize function. * @tc.type: FUNC * @tc.require: AR000DSMQ1 */ HWTEST_F(UILabelTest, UILabelResize_001, TestSize.Level1) { if (label_ == nullptr) { EXPECT_EQ(1, 0); return; } label_->Resize(INIT_WIDTH, INIT_HEIGHT); EXPECT_EQ(label_->GetWidth(), INIT_WIDTH); EXPECT_EQ(label_->GetHeight(), INIT_HEIGHT); } /** * @tc.name: UILabelSetText_001 * @tc.desc: Verify SetText function. * @tc.type: FUNC * @tc.require: AR000DSMQ1 */ HWTEST_F(UILabelTest, UILabelSetText_001, TestSize.Level1) { if (label_ == nullptr) { EXPECT_EQ(1, 0); return; } const char* text = "abc"; label_->Resize(INIT_WIDTH, INIT_HEIGHT); label_->SetText(text); const char* text0 = label_->GetText(); ASSERT_TRUE(text0); EXPECT_EQ(strcmp(text0, text), 0); } /** * @tc.name: UILabelSetLineBreakMode_001 * @tc.desc: Verify SetLineBreakMode function. * @tc.type: FUNC * @tc.require: AR000DSMQ1 */ HWTEST_F(UILabelTest, UILabelSetLineBreakMode_001, TestSize.Level0) { if (label_ == nullptr) { EXPECT_EQ(1, 0); return; } const uint8_t lineBreakMode = UILabel::LINE_BREAK_ELLIPSIS; label_->SetLineBreakMode(lineBreakMode); EXPECT_EQ(label_->GetLineBreakMode(), lineBreakMode); } /** * @tc.name: UILabelSetTextColor_001 * @tc.desc: Verify SetTextColor function. * @tc.type: FUNC * @tc.require: AR000DSMQ1 */ HWTEST_F(UILabelTest, UILabelSetTextColor_001, TestSize.Level1) { if (label_ == nullptr) { EXPECT_EQ(1, 0); return; } ColorType color = Color::White(); label_->SetTextColor(color); EXPECT_EQ(label_->GetTextColor().full, color.full); } /** * @tc.name: UILabelSetLongMode_001 * @tc.desc: Verify SetLongMode function. * @tc.type: FUNC * @tc.require: AR000DSMQ1 */ HWTEST_F(UILabelTest, UILabelSetLongMode_001, TestSize.Level0) { if (label_ == nullptr) { EXPECT_EQ(1, 0); return; } label_->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT); EXPECT_EQ(label_->GetLineBreakMode(), UILabel::LINE_BREAK_ADAPT); } /** * @tc.name: UILabelSetAlign_001 * @tc.desc: Verify SetAlign function. * @tc.type: FUNC * @tc.require: AR000DSMQ1 */ HWTEST_F(UILabelTest, UILabelSetAlign_001, TestSize.Level0) { if (label_ == nullptr) { EXPECT_EQ(1, 0); return; } label_->SetAlign(UITextLanguageAlignment::TEXT_ALIGNMENT_RIGHT, UITextLanguageAlignment::TEXT_ALIGNMENT_BOTTOM); EXPECT_EQ(label_->GetHorAlign(), UITextLanguageAlignment::TEXT_ALIGNMENT_RIGHT); EXPECT_EQ(label_->GetVerAlign(), UITextLanguageAlignment::TEXT_ALIGNMENT_BOTTOM); } /** * @tc.name: UILabelSetDirect_001 * @tc.desc: Verify SetDirect function. * @tc.type: FUNC * @tc.require: AR000DSMQ1 */ HWTEST_F(UILabelTest, UILabelSetDirect_001, TestSize.Level1) { if (label_ == nullptr) { EXPECT_EQ(1, 0); return; } label_->SetDirect(UITextLanguageDirect::TEXT_DIRECT_RTL); EXPECT_EQ(label_->GetDirect(), UITextLanguageDirect::TEXT_DIRECT_RTL); } /** * @tc.name: UILabelSetRollStartPos_001 * @tc.desc: Verify SetRollStartPos function. * @tc.type: FUNC * @tc.require: AR000DSMQ1 */ HWTEST_F(UILabelTest, UILabelSetRollStartPos_001, TestSize.Level0) { if (label_ == nullptr) { EXPECT_EQ(1, 0); return; } const int16_t rollStartPos = 50; label_->SetRollStartPos(rollStartPos); EXPECT_EQ(label_->GetRollStartPos(), rollStartPos); } /** * @tc.name: UILabelSetFont_001 * @tc.desc: Verify SetFont function. * @tc.type: FUNC * @tc.require: AR000DSMQ1 */ HWTEST_F(UILabelTest, UILabelSetFont_001, TestSize.Level1) { if (label_ == nullptr) { EXPECT_EQ(1, 0); return; } uint16_t fontId = label_->GetFontId(); const uint8_t fontSize = 20; // 20: font size for test label_->SetFont("error_font_name", fontSize); EXPECT_EQ(label_->GetFontId(), fontId); } /** * @tc.name: UILabelSetStyle_001 * @tc.desc: Verify SetStyle function, equal. */ HWTEST_F(UILabelTest, UILabelSetStyle_001, TestSize.Level1) { if (label_ == nullptr) { EXPECT_NE(0, 0); return; } UIView* view = new UIView(); Style style; style.borderOpa_ = OPA_OPAQUE; label_->SetStyle(style); EXPECT_EQ(view->GetStyleConst().borderOpa_, OPA_OPAQUE); label_->SetStyle(STYLE_LINE_OPA, OPA_OPAQUE); EXPECT_EQ(view->GetStyle(STYLE_LINE_OPA), OPA_OPAQUE); delete view; view = nullptr; } /** * @tc.name: UILabelOnPreDraw_001 * @tc.desc: Verify OnPreDraw function, equal. */ HWTEST_F(UILabelTest, UILabelOnPreDraw_001, TestSize.Level1) { if (label_ == nullptr) { EXPECT_NE(0, 0); return; } Rect* invalidatedArea = new Rect(); EXPECT_EQ(label_->OnPreDraw(*invalidatedArea), false); delete invalidatedArea; invalidatedArea = nullptr; } #if defined(ENABLE_SPANNABLE_STRING) && ENABLE_SPANNABLE_STRING /** * @tc.name: UILabelSetText_002 * @tc.desc: Verify SetText function. */ HWTEST_F(UILabelTest, UILabelSetText_002, TestSize.Level1) { if (label_ == nullptr) { EXPECT_EQ(1, 0); return; } SpannableString spannableString("图形子系统测试正常粗体斜体粗斜体"); spannableString.SetTextStyle(TEXT_STYLE_ITALIC, 11, 13); spannableString.SetTextStyle(TEXT_STYLE_BOLD, 9, 11); spannableString.SetTextStyle(TEXT_STYLE_BOLD_ITALIC, 13, 16); label_->SetText(&spannableString); EXPECT_EQ(spannableString.spanList_.Size(), 3); } #endif /** * @tc.name: UILabelSetFontId_001 * @tc.desc: Verify SetFontId function. */ HWTEST_F(UILabelTest, UILabelSetFontId_001, TestSize.Level0) { if (label_ == nullptr) { EXPECT_NE(0, 0); return; } const uint16_t fontId = 16; label_->SetFontId(fontId); if (!UIFont::GetInstance()->IsVectorFont()) { EXPECT_EQ(label_->GetFontId(), fontId); } else { EXPECT_EQ(label_->GetFontId(), 0); } } /** * @tc.name: UILabelSetRollSpeed_001 * @tc.desc: Verify SetRollSpeed function. */ HWTEST_F(UILabelTest, UILabelSetRollSpeed_001, TestSize.Level0) { if (label_ == nullptr) { EXPECT_EQ(1, 0); return; } const uint16_t RollSpeed = 50; label_->SetRollSpeed(RollSpeed); EXPECT_EQ(label_->GetRollSpeed(), RollSpeed); } /** * @tc.name: UILabelGetTextSize_001 * @tc.desc: Verify GetTextSize function. */ HWTEST_F(UILabelTest, UILabelGetTextSize_001, TestSize.Level0) { if (label_ == nullptr) { EXPECT_EQ(1, 0); return; } Text* labelText = new Text(); EXPECT_EQ(labelText->GetTextSize().x, label_->GetTextWidth()); EXPECT_EQ(labelText->GetTextSize().y, label_->GetTextHeight()); delete labelText; labelText = nullptr; } /** * @tc.name: UILabelSetSize_001 * @tc.desc: Verify SetSize function. */ HWTEST_F(UILabelTest, UILabelSetSize_001, TestSize.Level0) { if (label_ == nullptr) { EXPECT_EQ(1, 0); return; } label_->SetWidth(0); EXPECT_EQ(label_->GetWidth(), 0); label_->SetHeight(0); EXPECT_EQ(label_->GetHeight(), 0); } } // namespace OHOS