* Copyright (c) 2024 Shenzhen Kaihong Digital Industry Development 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 "include/DrawingNativePenTest.h"
#include "include/OhosCommonTest.h"
#define DRAWING_NUMBER_1 1
#define DRAWING_NUMBER_2 2
#define DRAWING_NUMBER_3 3
#define DRAWING_NUMBER_10 10
#define DRAWING_NUMBER_50 50
#define DRAWING_NUMBER_100 100
#define DRAWING_NUMBER_200 200
#define DRAWING_NUMBER_400 400
#define DRAWING_NUMBER_500 500
#define DRAWING_NUMBER_4096 4096
#define DRAWING_NUMBER_0XFF 0xFF
namespace OHOS {
namespace Rosen {
namespace Drawing {
void DrawingNativePenTestSetUp()
{
std::cout << "DrawingNativePenTest Setup code called before each test case." << std::endl;
OH_Drawing_ErrorCodeReset();
std::cout << "DrawingNativePenTest errorCodeReset before each test case." << std::endl;
}
void DrawingNativePenTestTearDown()
{
std::cout << "DrawingNativePenTest Setup code called after each test case." << std::endl;
OH_Drawing_ErrorCodeReset();
std::cout << "DrawingNativePenTest errorCodeReset after each test case." << std::endl;
}
int TestPenCreateNormal()
{
DrawingNativePenTestSetUp();
OH_Drawing_Pen *pen = OH_Drawing_PenCreate();
EXPECT_NE(pen, nullptr);
OH_Drawing_PenDestroy(pen);
DrawingNativePenTestTearDown();
return OH_DRAWING_SUCCESS;
}
int TestPenCopyNormal()
{
DrawingNativePenTestSetUp();
OH_Drawing_Pen *pen1 = OH_Drawing_PenCreate();
EXPECT_NE(pen1, nullptr);
OH_Drawing_PenSetColor(pen1, 0x00000000);
OH_Drawing_Pen *pen2 = OH_Drawing_PenCopy(pen1);
EXPECT_NE(pen2, nullptr);
EXPECT_EQ(OH_Drawing_ErrorCodeGet(), OH_Drawing_ErrorCode::OH_DRAWING_SUCCESS);
uint32_t color = OH_Drawing_PenGetColor(pen2);
EXPECT_EQ(color, 0x00000000);
OH_Drawing_PenSetColor(pen1, 0x00FF0000);
uint32_t color2 = OH_Drawing_PenGetColor(pen2);
EXPECT_EQ(color2, 0x00000000);
OH_Drawing_PenDestroy(pen1);
OH_Drawing_PenDestroy(pen2);
DrawingNativePenTestTearDown();
return OH_DRAWING_SUCCESS;
}
int TestPenCopyNull()
{
DrawingNativePenTestSetUp();
OH_Drawing_Pen *pen = OH_Drawing_PenCreate();
EXPECT_NE(pen, nullptr);
OH_Drawing_Pen *pen2 = OH_Drawing_PenCopy(nullptr);
EXPECT_EQ(OH_Drawing_ErrorCodeGet(), OH_Drawing_ErrorCode::OH_DRAWING_ERROR_INVALID_PARAMETER);
OH_Drawing_PenDestroy(pen);
OH_Drawing_PenDestroy(pen2);
DrawingNativePenTestTearDown();
return OH_DRAWING_SUCCESS;
}
int TestPenCopyInputDestroyed()
{
DrawingNativePenTestSetUp();
OH_Drawing_Pen *pen1 = OH_Drawing_PenCreate();
EXPECT_NE(pen1, nullptr);
OH_Drawing_Pen *pen2 = OH_Drawing_PenCopy(pen1);
EXPECT_NE(pen2, nullptr);
EXPECT_EQ(OH_Drawing_ErrorCodeGet(), OH_Drawing_ErrorCode::OH_DRAWING_SUCCESS);
OH_Drawing_PenDestroy(pen1);
OH_Drawing_PenSetColor(pen2, 0x00000000);
uint32_t color = OH_Drawing_PenGetColor(pen2);
EXPECT_EQ(color, 0x00000000);
OH_Drawing_PenDestroy(pen2);
DrawingNativePenTestTearDown();
return OH_DRAWING_SUCCESS;
}
int TestPenDestroyNormal()
{
DrawingNativePenTestSetUp();
OH_Drawing_Pen *pen = OH_Drawing_PenCreate();
EXPECT_NE(pen, nullptr);
OH_Drawing_PenDestroy(pen);
DrawingNativePenTestTearDown();
return OH_DRAWING_SUCCESS;
}
int TestPenDestroyNull()
{
DrawingNativePenTestSetUp();
OH_Drawing_Pen *pen = OH_Drawing_PenCreate();
EXPECT_NE(pen, nullptr);
OH_Drawing_PenDestroy(nullptr);
OH_Drawing_PenDestroy(pen);
DrawingNativePenTestTearDown();
return OH_DRAWING_SUCCESS;
}
int TestPenIsAntiAliasNormal()
{
DrawingNativePenTestSetUp();
OH_Drawing_Pen *pen = OH_Drawing_PenCreate();
EXPECT_NE(pen, nullptr);
OH_Drawing_PenSetAntiAlias(pen, true);
bool isAntiAlias = OH_Drawing_PenIsAntiAlias(pen);
EXPECT_EQ(isAntiAlias, true);
OH_Drawing_PenDestroy(pen);
DrawingNativePenTestTearDown();
return OH_DRAWING_SUCCESS;
}
int TestPenIsAntiAliasNull()
{
DrawingNativePenTestSetUp();
OH_Drawing_Pen *pen = OH_Drawing_PenCreate();
EXPECT_NE(pen, nullptr);
bool isAntiAlias = OH_Drawing_PenIsAntiAlias(nullptr);
EXPECT_EQ(isAntiAlias, false);
OH_Drawing_PenDestroy(pen);
DrawingNativePenTestTearDown();
return OH_DRAWING_SUCCESS;
}
int TestPenSetAntiAliasNormal()
{
DrawingNativePenTestSetUp();
OH_Drawing_Pen *pen = OH_Drawing_PenCreate();
EXPECT_NE(pen, nullptr);
OH_Drawing_PenSetAntiAlias(pen, true);
bool isAntiAlias = OH_Drawing_PenIsAntiAlias(pen);
EXPECT_EQ(isAntiAlias, true);
OH_Drawing_PenDestroy(pen);
DrawingNativePenTestTearDown();
return OH_DRAWING_SUCCESS;
}
int TestPenSetAntiAliasNull()
{
DrawingNativePenTestSetUp();
OH_Drawing_Pen *pen = OH_Drawing_PenCreate();
EXPECT_NE(pen, nullptr);
OH_Drawing_PenSetAntiAlias(nullptr, true);
EXPECT_EQ(OH_Drawing_ErrorCodeGet(), OH_Drawing_ErrorCode::OH_DRAWING_ERROR_INVALID_PARAMETER);
OH_Drawing_PenDestroy(pen);
DrawingNativePenTestTearDown();
return OH_DRAWING_SUCCESS;
}
int TestPenGetColorNormal()
{
DrawingNativePenTestSetUp();
OH_Drawing_Pen *pen = OH_Drawing_PenCreate();
EXPECT_NE(pen, nullptr);
OH_Drawing_PenSetColor(pen, 0x00000000);
uint32_t color = OH_Drawing_PenGetColor(pen);
EXPECT_EQ(color, 0x00000000);
OH_Drawing_PenDestroy(pen);
DrawingNativePenTestTearDown();
return OH_DRAWING_SUCCESS;
}
int TestPenGetColorNull()
{
DrawingNativePenTestSetUp();
OH_Drawing_Pen *pen = OH_Drawing_PenCreate();
EXPECT_NE(pen, nullptr);
OH_Drawing_PenGetColor(nullptr);
EXPECT_EQ(OH_Drawing_ErrorCodeGet(), OH_Drawing_ErrorCode::OH_DRAWING_ERROR_INVALID_PARAMETER);
OH_Drawing_PenDestroy(pen);
DrawingNativePenTestTearDown();
return OH_DRAWING_SUCCESS;
}
int TestPenSetColorNormal()
{
DrawingNativePenTestSetUp();
OH_Drawing_Pen *pen = OH_Drawing_PenCreate();
EXPECT_NE(pen, nullptr);
OH_Drawing_PenSetColor(pen, 0x00000000);
uint32_t color = OH_Drawing_PenGetColor(pen);
EXPECT_EQ(color, 0x00000000);
OH_Drawing_PenDestroy(pen);
DrawingNativePenTestTearDown();
return OH_DRAWING_SUCCESS;
}
int TestPenSetColorNull()
{
DrawingNativePenTestSetUp();
OH_Drawing_Pen *pen = OH_Drawing_PenCreate();
EXPECT_NE(pen, nullptr);
OH_Drawing_PenSetColor(nullptr, 0x00000000);
EXPECT_EQ(OH_Drawing_ErrorCodeGet(), OH_Drawing_ErrorCode::OH_DRAWING_ERROR_INVALID_PARAMETER);
OH_Drawing_PenSetColor(pen, 0x00000000);
OH_Drawing_PenDestroy(pen);
DrawingNativePenTestTearDown();
return OH_DRAWING_SUCCESS;
}
int TestPenSetColorAbnormal()
{
DrawingNativePenTestSetUp();
OH_Drawing_Pen *pen = OH_Drawing_PenCreate();
EXPECT_NE(pen, nullptr);
OH_Drawing_PenSetColor(pen, -1);
uint32_t color = OH_Drawing_PenGetColor(pen);
EXPECT_EQ(static_cast<uint32_t>(-1), color);
OH_Drawing_PenDestroy(pen);
DrawingNativePenTestTearDown();
return OH_DRAWING_SUCCESS;
}
int TestPenSetColorMaximum()
{
DrawingNativePenTestSetUp();
OH_Drawing_Pen *pen = OH_Drawing_PenCreate();
EXPECT_NE(pen, nullptr);
OH_Drawing_PenSetColor(pen, 0xFFFFFFFF + 1);
uint32_t color = OH_Drawing_PenGetColor(pen);
EXPECT_EQ(0xFFFFFFFF + 1, color);
OH_Drawing_PenDestroy(pen);
DrawingNativePenTestTearDown();
return OH_DRAWING_SUCCESS;
}
int TestPenGetAlphaNormal()
{
DrawingNativePenTestSetUp();
OH_Drawing_Pen *pen = OH_Drawing_PenCreate();
EXPECT_NE(pen, nullptr);
OH_Drawing_PenSetAlpha(pen, 0x00);
uint8_t alpha = OH_Drawing_PenGetAlpha(pen);
EXPECT_EQ(alpha, 0x00);
OH_Drawing_PenDestroy(pen);
DrawingNativePenTestTearDown();
return OH_DRAWING_SUCCESS;
}
int TestPenGetAlphaNull()
{
DrawingNativePenTestSetUp();
OH_Drawing_Pen *pen = OH_Drawing_PenCreate();
EXPECT_NE(pen, nullptr);
OH_Drawing_PenGetAlpha(nullptr);
EXPECT_EQ(OH_Drawing_ErrorCodeGet(), OH_Drawing_ErrorCode::OH_DRAWING_ERROR_INVALID_PARAMETER);
OH_Drawing_PenDestroy(pen);
DrawingNativePenTestTearDown();
return OH_DRAWING_SUCCESS;
}
int TestPenSetAlphaNormal()
{
DrawingNativePenTestSetUp();
OH_Drawing_Pen *pen = OH_Drawing_PenCreate();
EXPECT_NE(pen, nullptr);
OH_Drawing_PenSetAlpha(pen, 0x00);
uint8_t alpha = OH_Drawing_PenGetAlpha(pen);
EXPECT_EQ(alpha, 0x00);
OH_Drawing_PenDestroy(pen);
DrawingNativePenTestTearDown();
return OH_DRAWING_SUCCESS;
}
int TestPenSetAlphaNull()
{
DrawingNativePenTestSetUp();
OH_Drawing_Pen *pen = OH_Drawing_PenCreate();
EXPECT_NE(pen, nullptr);
OH_Drawing_PenSetAlpha(nullptr, 0xff);
EXPECT_EQ(OH_Drawing_ErrorCodeGet(), OH_Drawing_ErrorCode::OH_DRAWING_ERROR_INVALID_PARAMETER);
OH_Drawing_PenSetAlpha(pen, 0x00);
OH_Drawing_PenDestroy(pen);
DrawingNativePenTestTearDown();
return OH_DRAWING_SUCCESS;
}
int TestPenSetAlphaAbnormal()
{
DrawingNativePenTestSetUp();
OH_Drawing_Pen *pen = OH_Drawing_PenCreate();
EXPECT_NE(pen, nullptr);
OH_Drawing_PenSetAlpha(pen, -1);
uint8_t alpha = OH_Drawing_PenGetAlpha(pen);
EXPECT_EQ(static_cast<uint8_t>(-1), alpha);
OH_Drawing_PenDestroy(pen);
DrawingNativePenTestTearDown();
return OH_DRAWING_SUCCESS;
}
int TestPenSetAlphaMaximum()
{
DrawingNativePenTestSetUp();
OH_Drawing_Pen *pen = OH_Drawing_PenCreate();
EXPECT_NE(pen, nullptr);
uint8_t alpha1 = 0xFF;
OH_Drawing_PenSetAlpha(pen, alpha1 + 1);
uint8_t alpha2 = OH_Drawing_PenGetAlpha(pen);
EXPECT_EQ(alpha2, 0);
OH_Drawing_PenDestroy(pen);
DrawingNativePenTestTearDown();
return OH_DRAWING_SUCCESS;
}
int TestPenGetWidthNormal()
{
DrawingNativePenTestSetUp();
OH_Drawing_Pen *pen = OH_Drawing_PenCreate();
EXPECT_NE(pen, nullptr);
OH_Drawing_PenSetWidth(pen, 1.0f);
float width = OH_Drawing_PenGetWidth(pen);
EXPECT_EQ(width, 1.0f);
OH_Drawing_PenDestroy(pen);
DrawingNativePenTestTearDown();
return OH_DRAWING_SUCCESS;
}
int TestPenGetWidthNull()
{
DrawingNativePenTestSetUp();
OH_Drawing_Pen *pen = OH_Drawing_PenCreate();
EXPECT_NE(pen, nullptr);
OH_Drawing_PenGetWidth(nullptr);
EXPECT_EQ(OH_Drawing_ErrorCodeGet(), OH_Drawing_ErrorCode::OH_DRAWING_ERROR_INVALID_PARAMETER);
OH_Drawing_PenDestroy(pen);
DrawingNativePenTestTearDown();
return OH_DRAWING_SUCCESS;
}
int TestPenGetWidthBoundary()
{
DrawingNativePenTestSetUp();
OH_Drawing_Pen *pen = OH_Drawing_PenCreate();
EXPECT_NE(pen, nullptr);
float width = DRAWING_NUMBER_4096;
OH_Drawing_PenSetWidth(pen, width);
float getWidth = OH_Drawing_PenGetWidth(pen);
EXPECT_EQ(width, getWidth);
OH_Drawing_PenDestroy(pen);
DrawingNativePenTestTearDown();
return OH_DRAWING_SUCCESS;
}
int TestPenSetWidthNormal()
{
DrawingNativePenTestSetUp();
OH_Drawing_Pen *pen = OH_Drawing_PenCreate();
EXPECT_NE(pen, nullptr);
OH_Drawing_PenSetWidth(pen, 1.0f);
float width = OH_Drawing_PenGetWidth(pen);
EXPECT_EQ(width, 1.0f);
OH_Drawing_PenDestroy(pen);
DrawingNativePenTestTearDown();
return OH_DRAWING_SUCCESS;
}
int TestPenSetWidthNull()
{
DrawingNativePenTestSetUp();
OH_Drawing_Pen *pen = OH_Drawing_PenCreate();
EXPECT_NE(pen, nullptr);
OH_Drawing_PenSetWidth(nullptr, 1.00f);
EXPECT_EQ(OH_Drawing_ErrorCodeGet(), OH_Drawing_ErrorCode::OH_DRAWING_ERROR_INVALID_PARAMETER);
OH_Drawing_PenSetWidth(pen, 0.00f);
OH_Drawing_PenDestroy(pen);
DrawingNativePenTestTearDown();
return OH_DRAWING_SUCCESS;
}
int TestPenSetWidthAbnormal()
{
DrawingNativePenTestSetUp();
OH_Drawing_Pen *pen = OH_Drawing_PenCreate();
EXPECT_NE(pen, nullptr);
int width = DRAWING_NUMBER_1;
OH_Drawing_PenSetWidth(pen, width);
float width2 = OH_Drawing_PenGetWidth(pen);
EXPECT_EQ(static_cast<float>(1), width2);
OH_Drawing_PenDestroy(pen);
DrawingNativePenTestTearDown();
return OH_DRAWING_SUCCESS;
}
int TestPenSetWidthMultipleCalls()
{
DrawingNativePenTestSetUp();
OH_Drawing_Pen *pen = OH_Drawing_PenCreate();
EXPECT_NE(pen, nullptr);
for (int i = 0; i < 10; i++) {
OH_Drawing_PenSetWidth(pen, 1.0f);
}
for (int i = 0; i < 10; i++) {
float width = OH_Drawing_PenGetWidth(pen);
EXPECT_EQ(width, 1.0f);
}
OH_Drawing_PenDestroy(pen);
DrawingNativePenTestTearDown();
return OH_DRAWING_SUCCESS;
}
int TestPenSetWidthMultipleCallsBoundary()
{
DrawingNativePenTestSetUp();
OH_Drawing_Pen *pen = OH_Drawing_PenCreate();
EXPECT_NE(pen, nullptr);
for (int i = 0; i < 10; i++) {
OH_Drawing_PenSetWidth(pen, 4096.0f);
}
for (int i = 0; i < 10; i++) {
float width = OH_Drawing_PenGetWidth(pen);
EXPECT_EQ(width, 4096.0f);
}
OH_Drawing_PenDestroy(pen);
DrawingNativePenTestTearDown();
return OH_DRAWING_SUCCESS;
}
int TestPenGetMiterLimitNormal()
{
DrawingNativePenTestSetUp();
OH_Drawing_Pen *pen = OH_Drawing_PenCreate();
EXPECT_NE(pen, nullptr);
OH_Drawing_PenSetMiterLimit(pen, 1.0f);
float miterLimit = OH_Drawing_PenGetMiterLimit(pen);
EXPECT_EQ(miterLimit, 1.0f);
OH_Drawing_PenDestroy(pen);
DrawingNativePenTestTearDown();
return OH_DRAWING_SUCCESS;
}
int TestPenGetMiterLimitNull()
{
DrawingNativePenTestSetUp();
OH_Drawing_Pen *pen = OH_Drawing_PenCreate();
EXPECT_NE(pen, nullptr);
OH_Drawing_PenGetMiterLimit(nullptr);
EXPECT_EQ(OH_Drawing_ErrorCodeGet(), OH_Drawing_ErrorCode::OH_DRAWING_ERROR_INVALID_PARAMETER);
OH_Drawing_PenDestroy(pen);
DrawingNativePenTestTearDown();
return OH_DRAWING_SUCCESS;
}
int TestPenSetMiterLimitNormal()
{
DrawingNativePenTestSetUp();
OH_Drawing_Pen *pen = OH_Drawing_PenCreate();
EXPECT_NE(pen, nullptr);
OH_Drawing_PenSetMiterLimit(pen, 1.0f);
float miterLimit = OH_Drawing_PenGetMiterLimit(pen);
EXPECT_EQ(miterLimit, 1.0f);
OH_Drawing_PenDestroy(pen);
DrawingNativePenTestTearDown();
return OH_DRAWING_SUCCESS;
}
int TestPenSetMiterLimitNull()
{
DrawingNativePenTestSetUp();
OH_Drawing_Pen *pen = OH_Drawing_PenCreate();
EXPECT_NE(pen, nullptr);
OH_Drawing_PenSetMiterLimit(nullptr, 1.0f);
EXPECT_EQ(OH_Drawing_ErrorCodeGet(), OH_Drawing_ErrorCode::OH_DRAWING_ERROR_INVALID_PARAMETER);
OH_Drawing_PenSetMiterLimit(pen, 0.0f);
OH_Drawing_PenDestroy(pen);
DrawingNativePenTestTearDown();
return OH_DRAWING_SUCCESS;
}
int TestPenSetMiterLimitAbnormal()
{
DrawingNativePenTestSetUp();
OH_Drawing_Pen *pen = OH_Drawing_PenCreate();
EXPECT_NE(pen, nullptr);
int miterLimit = DRAWING_NUMBER_1;
OH_Drawing_PenSetMiterLimit(pen, miterLimit);
float miterLimit2 = OH_Drawing_PenGetMiterLimit(pen);
EXPECT_EQ(static_cast<float>(1), miterLimit2);
OH_Drawing_PenDestroy(pen);
DrawingNativePenTestTearDown();
return OH_DRAWING_SUCCESS;
}
int TestPenSetMiterLimitMultipleCalls()
{
DrawingNativePenTestSetUp();
OH_Drawing_Pen *pen = OH_Drawing_PenCreate();
EXPECT_NE(pen, nullptr);
for (int i = 0; i < 10; i++) {
OH_Drawing_PenSetMiterLimit(pen, 1.0f);
}
for (int i = 0; i < 10; i++) {
OH_Drawing_PenGetMiterLimit(pen);
}
OH_Drawing_PenDestroy(pen);
DrawingNativePenTestTearDown();
return OH_DRAWING_SUCCESS;
}
int TestPenGetCapNormal()
{
DrawingNativePenTestSetUp();
OH_Drawing_Pen *pen = OH_Drawing_PenCreate();
EXPECT_NE(pen, nullptr);
OH_Drawing_PenSetCap(pen, LINE_FLAT_CAP);
OH_Drawing_PenLineCapStyle cap = OH_Drawing_PenGetCap(pen);
EXPECT_EQ(cap, LINE_FLAT_CAP);
OH_Drawing_PenSetCap(pen, LINE_SQUARE_CAP);
cap = OH_Drawing_PenGetCap(pen);
EXPECT_EQ(cap, LINE_SQUARE_CAP);
OH_Drawing_PenSetCap(pen, LINE_ROUND_CAP);
cap = OH_Drawing_PenGetCap(pen);
EXPECT_EQ(cap, LINE_ROUND_CAP);
OH_Drawing_PenDestroy(pen);
DrawingNativePenTestTearDown();
return OH_DRAWING_SUCCESS;
}
int TestPenGetCapNull()
{
DrawingNativePenTestSetUp();
OH_Drawing_Pen *pen = OH_Drawing_PenCreate();
EXPECT_NE(pen, nullptr);
OH_Drawing_PenGetCap(nullptr);
EXPECT_EQ(OH_Drawing_ErrorCodeGet(), OH_Drawing_ErrorCode::OH_DRAWING_ERROR_INVALID_PARAMETER);
OH_Drawing_PenDestroy(pen);
DrawingNativePenTestTearDown();
return OH_DRAWING_SUCCESS;
}
int TestPenSetCapNormal()
{
DrawingNativePenTestSetUp();
OH_Drawing_Pen *pen = OH_Drawing_PenCreate();
EXPECT_NE(pen, nullptr);
OH_Drawing_PenLineCapStyle styles[] = {LINE_FLAT_CAP, LINE_SQUARE_CAP, LINE_ROUND_CAP};
for (int i = 0; i < DRAWING_NUMBER_3; i++) {
OH_Drawing_PenSetCap(pen, styles[i]);
OH_Drawing_PenLineCapStyle cap = OH_Drawing_PenGetCap(pen);
EXPECT_EQ(cap, styles[i]);
}
OH_Drawing_PenDestroy(pen);
DrawingNativePenTestTearDown();
return OH_DRAWING_SUCCESS;
}
int TestPenSetCapNull()
{
DrawingNativePenTestSetUp();
OH_Drawing_Pen *pen = OH_Drawing_PenCreate();
EXPECT_NE(pen, nullptr);
OH_Drawing_PenSetCap(nullptr, LINE_FLAT_CAP);
EXPECT_EQ(OH_Drawing_ErrorCodeGet(), OH_Drawing_ErrorCode::OH_DRAWING_ERROR_INVALID_PARAMETER);
OH_Drawing_PenDestroy(pen);
DrawingNativePenTestTearDown();
return OH_DRAWING_SUCCESS;
}
int TestPenSetCapMultipleCalls()
{
DrawingNativePenTestSetUp();
OH_Drawing_Pen *pen = OH_Drawing_PenCreate();
EXPECT_NE(pen, nullptr);
for (int i = 0; i < 10; i++) {
OH_Drawing_PenSetCap(pen, LINE_FLAT_CAP);
}
for (int i = 0; i < 10; i++) {
OH_Drawing_PenGetCap(pen);
}
OH_Drawing_PenDestroy(pen);
DrawingNativePenTestTearDown();
return OH_DRAWING_SUCCESS;
}
int TestPenGetJoinNormal()
{
DrawingNativePenTestSetUp();
OH_Drawing_Pen *pen = OH_Drawing_PenCreate();
EXPECT_NE(pen, nullptr);
OH_Drawing_PenSetJoin(pen, LINE_MITER_JOIN);
OH_Drawing_PenLineJoinStyle join = OH_Drawing_PenGetJoin(pen);
EXPECT_EQ(join, LINE_MITER_JOIN);
OH_Drawing_PenSetJoin(pen, LINE_ROUND_JOIN);
join = OH_Drawing_PenGetJoin(pen);
EXPECT_EQ(join, LINE_ROUND_JOIN);
OH_Drawing_PenSetJoin(pen, LINE_BEVEL_JOIN);
join = OH_Drawing_PenGetJoin(pen);
EXPECT_EQ(join, LINE_BEVEL_JOIN);
OH_Drawing_PenDestroy(pen);
DrawingNativePenTestTearDown();
return OH_DRAWING_SUCCESS;
}
int TestPenGetJoinNull()
{
DrawingNativePenTestSetUp();
OH_Drawing_Pen *pen = OH_Drawing_PenCreate();
EXPECT_NE(pen, nullptr);
OH_Drawing_PenGetJoin(nullptr);
EXPECT_EQ(OH_Drawing_ErrorCodeGet(), OH_Drawing_ErrorCode::OH_DRAWING_ERROR_INVALID_PARAMETER);
OH_Drawing_PenDestroy(pen);
DrawingNativePenTestTearDown();
return OH_DRAWING_SUCCESS;
}
int TestPenSetJoinNormal()
{
DrawingNativePenTestSetUp();
OH_Drawing_Pen *pen = OH_Drawing_PenCreate();
EXPECT_NE(pen, nullptr);
OH_Drawing_PenLineJoinStyle styles[] = {LINE_MITER_JOIN, LINE_ROUND_JOIN, LINE_BEVEL_JOIN};
for (int i = 0; i < DRAWING_NUMBER_3; i++) {
OH_Drawing_PenSetJoin(pen, styles[i]);
OH_Drawing_PenLineJoinStyle join = OH_Drawing_PenGetJoin(pen);
EXPECT_EQ(join, styles[i]);
}
OH_Drawing_PenDestroy(pen);
DrawingNativePenTestTearDown();
return OH_DRAWING_SUCCESS;
}
int TestPenSetJoinNull()
{
DrawingNativePenTestSetUp();
OH_Drawing_Pen *pen = OH_Drawing_PenCreate();
EXPECT_NE(pen, nullptr);
OH_Drawing_PenSetJoin(nullptr, LINE_MITER_JOIN);
EXPECT_EQ(OH_Drawing_ErrorCodeGet(), OH_Drawing_ErrorCode::OH_DRAWING_ERROR_INVALID_PARAMETER);
OH_Drawing_PenDestroy(pen);
DrawingNativePenTestTearDown();
return OH_DRAWING_SUCCESS;
}
int TestPenSetJoinMultipleCalls()
{
DrawingNativePenTestSetUp();
OH_Drawing_Pen *pen = OH_Drawing_PenCreate();
EXPECT_NE(pen, nullptr);
for (int i = 0; i < 10; i++) {
OH_Drawing_PenSetJoin(pen, LINE_MITER_JOIN);
}
for (int i = 0; i < 10; i++) {
OH_Drawing_PenGetJoin(pen);
}
OH_Drawing_PenDestroy(pen);
DrawingNativePenTestTearDown();
return OH_DRAWING_SUCCESS;
}
int TestPenSetShaderEffectNormal()
{
DrawingNativePenTestSetUp();
OH_Drawing_Pen *pen = OH_Drawing_PenCreate();
EXPECT_NE(pen, nullptr);
OH_Drawing_Point *startPt = OH_Drawing_PointCreate(DRAWING_NUMBER_100, DRAWING_NUMBER_400);
EXPECT_NE(startPt, nullptr);
OH_Drawing_Point *endPt = OH_Drawing_PointCreate(DRAWING_NUMBER_200, DRAWING_NUMBER_500);
EXPECT_NE(endPt, nullptr);
uint32_t color[] = {0xffff0000, 0xff00ff00};
float pos[] = {0., 1.0f};
OH_Drawing_ShaderEffect *linearGradient =
OH_Drawing_ShaderEffectCreateLinearGradient(startPt, endPt, color, pos, DRAWING_NUMBER_2,
OH_Drawing_TileMode::CLAMP);
EXPECT_NE(linearGradient, nullptr);
OH_Drawing_PenSetShaderEffect(pen, linearGradient);
EXPECT_EQ(OH_Drawing_ErrorCodeGet(), OH_Drawing_ErrorCode::OH_DRAWING_SUCCESS);
OH_Drawing_PointDestroy(startPt);
OH_Drawing_PointDestroy(endPt);
OH_Drawing_ShaderEffectDestroy(linearGradient);
OH_Drawing_PenDestroy(pen);
DrawingNativePenTestTearDown();
return OH_DRAWING_SUCCESS;
}
int TestPenSetShaderEffectNull()
{
DrawingNativePenTestSetUp();
OH_Drawing_Pen *pen = OH_Drawing_PenCreate();
EXPECT_NE(pen, nullptr);
OH_Drawing_Point *startPt = OH_Drawing_PointCreate(DRAWING_NUMBER_100, DRAWING_NUMBER_400);
EXPECT_NE(startPt, nullptr);
OH_Drawing_Point *endPt = OH_Drawing_PointCreate(DRAWING_NUMBER_200, DRAWING_NUMBER_500);
EXPECT_NE(endPt, nullptr);
uint32_t color[] = {0xffff0000, 0xff00ff00};
float pos[] = {0., 1.0f};
OH_Drawing_ShaderEffect *linearGradient =
OH_Drawing_ShaderEffectCreateLinearGradient(startPt, endPt, color, pos, DRAWING_NUMBER_2,
OH_Drawing_TileMode::CLAMP);
EXPECT_NE(linearGradient, nullptr);
OH_Drawing_PenSetShaderEffect(nullptr, linearGradient);
EXPECT_EQ(OH_Drawing_ErrorCodeGet(), OH_Drawing_ErrorCode::OH_DRAWING_ERROR_INVALID_PARAMETER);
OH_Drawing_PenSetShaderEffect(pen, nullptr);
OH_Drawing_PointDestroy(startPt);
OH_Drawing_PointDestroy(endPt);
OH_Drawing_ShaderEffectDestroy(linearGradient);
OH_Drawing_PenDestroy(pen);
DrawingNativePenTestTearDown();
return OH_DRAWING_SUCCESS;
}
int TestPenSetShadowLayerNormal()
{
DrawingNativePenTestSetUp();
OH_Drawing_Pen *pen = OH_Drawing_PenCreate();
EXPECT_NE(pen, nullptr);
OH_Drawing_ShadowLayer *shadowLayer = OH_Drawing_ShadowLayerCreate(10, 10, 10, 0xff000000);
EXPECT_NE(shadowLayer, nullptr);
OH_Drawing_PenSetShadowLayer(pen, shadowLayer);
EXPECT_EQ(OH_Drawing_ErrorCodeGet(), OH_Drawing_ErrorCode::OH_DRAWING_SUCCESS);
OH_Drawing_ShadowLayerDestroy(shadowLayer);
OH_Drawing_PenDestroy(pen);
DrawingNativePenTestTearDown();
return OH_DRAWING_SUCCESS;
}
int TestPenSetShadowLayerNull()
{
DrawingNativePenTestSetUp();
OH_Drawing_Pen *pen = OH_Drawing_PenCreate();
EXPECT_NE(pen, nullptr);
OH_Drawing_ShadowLayer *shadowLayer = OH_Drawing_ShadowLayerCreate(10, 10, 10, 0xff000000);
EXPECT_NE(shadowLayer, nullptr);
OH_Drawing_PenSetShadowLayer(nullptr, shadowLayer);
EXPECT_EQ(OH_Drawing_ErrorCodeGet(), OH_Drawing_ErrorCode::OH_DRAWING_ERROR_INVALID_PARAMETER);
OH_Drawing_PenSetShadowLayer(pen, nullptr);
OH_Drawing_ShadowLayerDestroy(shadowLayer);
OH_Drawing_PenDestroy(pen);
DrawingNativePenTestTearDown();
return OH_DRAWING_SUCCESS;
}
int TestPenSetPathEffectNormal()
{
DrawingNativePenTestSetUp();
OH_Drawing_Pen *pen = OH_Drawing_PenCreate();
EXPECT_NE(pen, nullptr);
float intervals[] = {1, 1, 1};
OH_Drawing_PathEffect *pathEffect = OH_Drawing_CreateDashPathEffect(intervals, DRAWING_NUMBER_3, 0.0f);
EXPECT_NE(pathEffect, nullptr);
OH_Drawing_PenSetPathEffect(pen, pathEffect);
EXPECT_EQ(OH_Drawing_ErrorCodeGet(), OH_Drawing_ErrorCode::OH_DRAWING_SUCCESS);
OH_Drawing_PathEffectDestroy(pathEffect);
OH_Drawing_PenDestroy(pen);
DrawingNativePenTestTearDown();
return OH_DRAWING_SUCCESS;
}
int TestPenSetPathEffectNull()
{
DrawingNativePenTestSetUp();
OH_Drawing_Pen *pen = OH_Drawing_PenCreate();
EXPECT_NE(pen, nullptr);
float intervals[] = {1, 1, 1};
OH_Drawing_PathEffect *pathEffect = OH_Drawing_CreateDashPathEffect(intervals, DRAWING_NUMBER_3, 0.0f);
EXPECT_NE(pathEffect, nullptr);
OH_Drawing_PenSetPathEffect(nullptr, pathEffect);
EXPECT_EQ(OH_Drawing_ErrorCodeGet(), OH_Drawing_ErrorCode::OH_DRAWING_ERROR_INVALID_PARAMETER);
OH_Drawing_PenSetPathEffect(pen, nullptr);
OH_Drawing_PathEffectDestroy(pathEffect);
OH_Drawing_PenDestroy(pen);
DrawingNativePenTestTearDown();
return OH_DRAWING_SUCCESS;
}
int TestPenSetFilterNormal()
{
DrawingNativePenTestSetUp();
OH_Drawing_Pen *pen = OH_Drawing_PenCreate();
EXPECT_NE(pen, nullptr);
OH_Drawing_Filter *filter = OH_Drawing_FilterCreate();
EXPECT_NE(filter, nullptr);
OH_Drawing_PenSetFilter(pen, filter);
EXPECT_EQ(OH_Drawing_ErrorCodeGet(), OH_Drawing_ErrorCode::OH_DRAWING_SUCCESS);
OH_Drawing_Filter *filter2 = OH_Drawing_FilterCreate();
EXPECT_NE(filter2, nullptr);
OH_Drawing_PenGetFilter(pen, filter2);
EXPECT_EQ(OH_Drawing_ErrorCodeGet(), OH_Drawing_ErrorCode::OH_DRAWING_SUCCESS);
OH_Drawing_FilterDestroy(filter);
OH_Drawing_FilterDestroy(filter2);
OH_Drawing_PenDestroy(pen);
DrawingNativePenTestTearDown();
return OH_DRAWING_SUCCESS;
}
int TestPenSetFilterNull()
{
DrawingNativePenTestSetUp();
OH_Drawing_Pen *pen = OH_Drawing_PenCreate();
EXPECT_NE(pen, nullptr);
OH_Drawing_Filter *filter = OH_Drawing_FilterCreate();
EXPECT_NE(filter, nullptr);
OH_Drawing_PenSetFilter(nullptr, filter);
EXPECT_EQ(OH_Drawing_ErrorCodeGet(), OH_Drawing_ErrorCode::OH_DRAWING_ERROR_INVALID_PARAMETER);
OH_Drawing_PenSetFilter(pen, nullptr);
OH_Drawing_FilterDestroy(filter);
OH_Drawing_PenDestroy(pen);
DrawingNativePenTestTearDown();
return OH_DRAWING_SUCCESS;
}
int TestPenGetFilterNormal()
{
DrawingNativePenTestSetUp();
OH_Drawing_Pen *pen = OH_Drawing_PenCreate();
EXPECT_NE(pen, nullptr);
OH_Drawing_Filter *filter = OH_Drawing_FilterCreate();
EXPECT_NE(filter, nullptr);
OH_Drawing_PenSetFilter(pen, filter);
OH_Drawing_Filter *filter2 = OH_Drawing_FilterCreate();
EXPECT_NE(filter2, nullptr);
OH_Drawing_PenGetFilter(pen, filter2);
OH_Drawing_FilterDestroy(filter);
OH_Drawing_FilterDestroy(filter2);
OH_Drawing_PenDestroy(pen);
DrawingNativePenTestTearDown();
return OH_DRAWING_SUCCESS;
}
int TestPenGetFilterNull()
{
DrawingNativePenTestSetUp();
OH_Drawing_Pen *pen = OH_Drawing_PenCreate();
EXPECT_NE(pen, nullptr);
OH_Drawing_Filter *filter = OH_Drawing_FilterCreate();
EXPECT_NE(filter, nullptr);
OH_Drawing_PenGetFilter(nullptr, filter);
EXPECT_EQ(OH_Drawing_ErrorCodeGet(), OH_Drawing_ErrorCode::OH_DRAWING_ERROR_INVALID_PARAMETER);
OH_Drawing_ErrorCodeReset();
OH_Drawing_PenGetFilter(pen, nullptr);
EXPECT_EQ(OH_Drawing_ErrorCodeGet(), OH_Drawing_ErrorCode::OH_DRAWING_ERROR_INVALID_PARAMETER);
OH_Drawing_FilterDestroy(filter);
OH_Drawing_PenDestroy(pen);
DrawingNativePenTestTearDown();
return OH_DRAWING_SUCCESS;
}
int TestPenSetBlendModeNormal()
{
DrawingNativePenTestSetUp();
OH_Drawing_Pen *pen = OH_Drawing_PenCreate();
EXPECT_NE(pen, nullptr);
OH_Drawing_BlendMode modes[] = {BLEND_MODE_CLEAR, BLEND_MODE_SRC, BLEND_MODE_DST};
for (int i = 0; i < DRAWING_NUMBER_3; i++) {
OH_Drawing_ErrorCodeReset();
OH_Drawing_PenSetBlendMode(pen, modes[i]);
EXPECT_EQ(OH_Drawing_ErrorCodeGet(), OH_Drawing_ErrorCode::OH_DRAWING_SUCCESS);
}
OH_Drawing_PenDestroy(pen);
DrawingNativePenTestTearDown();
return OH_DRAWING_SUCCESS;
}
int TestPenSetBlendModeNull()
{
DrawingNativePenTestSetUp();
OH_Drawing_Pen *pen = OH_Drawing_PenCreate();
EXPECT_NE(pen, nullptr);
OH_Drawing_PenSetBlendMode(nullptr, BLEND_MODE_CLEAR);
EXPECT_EQ(OH_Drawing_ErrorCodeGet(), OH_Drawing_ErrorCode::OH_DRAWING_ERROR_INVALID_PARAMETER);
OH_Drawing_PenDestroy(pen);
DrawingNativePenTestTearDown();
return OH_DRAWING_SUCCESS;
}
int TestPenGetFillPathNormal()
{
DrawingNativePenTestSetUp();
OH_Drawing_Pen *pen = OH_Drawing_PenCreate();
EXPECT_NE(pen, nullptr);
float penWidth = DRAWING_NUMBER_10;
OH_Drawing_PenSetWidth(pen, penWidth);
OH_Drawing_Path *srcPath = OH_Drawing_PathCreate();
EXPECT_NE(srcPath, nullptr);
OH_Drawing_PathMoveTo(srcPath, DRAWING_NUMBER_50, DRAWING_NUMBER_50);
OH_Drawing_PathLineTo(srcPath, DRAWING_NUMBER_100, DRAWING_NUMBER_50);
OH_Drawing_PathLineTo(srcPath, DRAWING_NUMBER_100, DRAWING_NUMBER_100);
OH_Drawing_PathClose(srcPath);
OH_Drawing_Path *dstPath = OH_Drawing_PathCreate();
EXPECT_NE(dstPath, nullptr);
OH_Drawing_Rect *rect = OH_Drawing_RectCreate(DRAWING_NUMBER_100, DRAWING_NUMBER_100, DRAWING_NUMBER_200,
DRAWING_NUMBER_200);
EXPECT_NE(rect, nullptr);
OH_Drawing_Matrix *matrix = OH_Drawing_MatrixCreate();
EXPECT_NE(matrix, nullptr);
bool isSuccess = OH_Drawing_PenGetFillPath(pen, srcPath, dstPath, rect, matrix);
EXPECT_EQ(isSuccess, true);
EXPECT_EQ(OH_Drawing_ErrorCodeGet(), OH_Drawing_ErrorCode::OH_DRAWING_SUCCESS);
OH_Drawing_PathDestroy(srcPath);
OH_Drawing_PathDestroy(dstPath);
OH_Drawing_RectDestroy(rect);
OH_Drawing_MatrixDestroy(matrix);
OH_Drawing_PenDestroy(pen);
DrawingNativePenTestTearDown();
return OH_DRAWING_SUCCESS;
}
int TestPenGetFillPathNull()
{
DrawingNativePenTestSetUp();
OH_Drawing_Pen *pen = OH_Drawing_PenCreate();
EXPECT_NE(pen, nullptr);
OH_Drawing_Path *srcPath = OH_Drawing_PathCreate();
EXPECT_NE(srcPath, nullptr);
OH_Drawing_Path *dstPath = OH_Drawing_PathCreate();
EXPECT_NE(dstPath, nullptr);
OH_Drawing_Rect *rect = OH_Drawing_RectCreate(DRAWING_NUMBER_100, DRAWING_NUMBER_100, DRAWING_NUMBER_200,
DRAWING_NUMBER_200);
EXPECT_NE(rect, nullptr);
OH_Drawing_Matrix *matrix = OH_Drawing_MatrixCreate();
EXPECT_NE(matrix, nullptr);
bool isSuccess = OH_Drawing_PenGetFillPath(nullptr, srcPath, dstPath, rect, matrix);
EXPECT_EQ(OH_Drawing_ErrorCodeGet(), OH_Drawing_ErrorCode::OH_DRAWING_ERROR_INVALID_PARAMETER);
EXPECT_EQ(isSuccess, false);
OH_Drawing_ErrorCodeReset();
isSuccess = OH_Drawing_PenGetFillPath(pen, nullptr, dstPath, rect, matrix);
EXPECT_EQ(OH_Drawing_ErrorCodeGet(), OH_Drawing_ErrorCode::OH_DRAWING_ERROR_INVALID_PARAMETER);
EXPECT_EQ(isSuccess, false);
OH_Drawing_ErrorCodeReset();
isSuccess = OH_Drawing_PenGetFillPath(pen, srcPath, nullptr, rect, matrix);
EXPECT_EQ(OH_Drawing_ErrorCodeGet(), OH_Drawing_ErrorCode::OH_DRAWING_ERROR_INVALID_PARAMETER);
EXPECT_EQ(isSuccess, false);
isSuccess = OH_Drawing_PenGetFillPath(pen, srcPath, dstPath, nullptr, matrix);
EXPECT_EQ(isSuccess, false);
isSuccess = OH_Drawing_PenGetFillPath(pen, srcPath, dstPath, rect, nullptr);
EXPECT_EQ(isSuccess, false);
OH_Drawing_PathDestroy(srcPath);
OH_Drawing_PathDestroy(dstPath);
OH_Drawing_RectDestroy(rect);
OH_Drawing_MatrixDestroy(matrix);
OH_Drawing_PenDestroy(pen);
DrawingNativePenTestTearDown();
return OH_DRAWING_SUCCESS;
}
int TestPenResetNormal()
{
DrawingNativePenTestSetUp();
OH_Drawing_Pen *pen = OH_Drawing_PenCreate();
EXPECT_NE(pen, nullptr);
OH_Drawing_PenSetColor(pen, 0xff0000ff);
uint32_t color = OH_Drawing_PenGetColor(pen);
EXPECT_EQ(0xff0000ff, color);
OH_Drawing_PenReset(pen);
EXPECT_EQ(OH_Drawing_ErrorCodeGet(), OH_Drawing_ErrorCode::OH_DRAWING_SUCCESS);
color = OH_Drawing_PenGetColor(pen);
OH_Drawing_Pen *pen2 = OH_Drawing_PenCreate();
EXPECT_NE(pen2, nullptr);
uint32_t color2 = OH_Drawing_PenGetColor(pen2);
EXPECT_EQ(color2, color);
OH_Drawing_PenDestroy(pen);
DrawingNativePenTestTearDown();
return OH_DRAWING_SUCCESS;
}
int TestPenResetNull()
{
DrawingNativePenTestSetUp();
OH_Drawing_Pen *pen = OH_Drawing_PenCreate();
EXPECT_NE(pen, nullptr);
OH_Drawing_PenReset(nullptr);
EXPECT_EQ(OH_Drawing_ErrorCodeGet(), OH_Drawing_ErrorCode::OH_DRAWING_ERROR_INVALID_PARAMETER);
OH_Drawing_PenDestroy(pen);
DrawingNativePenTestTearDown();
return OH_DRAWING_SUCCESS;
}
int TestPenResetMultipleCalls()
{
DrawingNativePenTestSetUp();
OH_Drawing_Pen *pen = OH_Drawing_PenCreate();
EXPECT_NE(pen, nullptr);
for (int i = 0; i < 10; i++) {
OH_Drawing_PenSetColor(pen, 0xff0000ff);
}
for (int i = 0; i < 10; i++) {
OH_Drawing_PenGetColor(pen);
}
for (int i = 0; i < 10; i++) {
OH_Drawing_PenReset(pen);
}
for (int i = 0; i < 10; i++) {
OH_Drawing_PenGetColor(pen);
}
OH_Drawing_PenDestroy(pen);
DrawingNativePenTestTearDown();
return OH_DRAWING_SUCCESS;
}
int TestPenGetAlphaFloatNormal()
{
DrawingNativePenTestSetUp();
OH_Drawing_Pen *pen = OH_Drawing_PenCreate();
float a = 0.0f;
OH_Drawing_PenSetWidth(pen, DRAWING_NUMBER_10);
OH_Drawing_PenSetColor4f(pen, 1.0f, 0.4f, 1.0f, 0.2f, nullptr);
EXPECT_EQ(OH_Drawing_PenGetAlphaFloat(pen, &a), OH_DRAWING_SUCCESS);
EXPECT_EQ(a, 1.0f);
OH_Drawing_PenDestroy(pen);
DrawingNativePenTestTearDown();
return OH_DRAWING_SUCCESS;
}
int TestPenGetAlphaFloatAbnormal()
{
DrawingNativePenTestSetUp();
OH_Drawing_Pen *pen = OH_Drawing_PenCreate();
float a = 0.0f;
OH_Drawing_PenSetWidth(pen, DRAWING_NUMBER_10);
OH_Drawing_PenSetColor4f(pen, 1.0f, 0.4f, 1.0f, 0.2f, nullptr);
EXPECT_EQ(OH_Drawing_PenGetAlphaFloat(nullptr, &a), OH_DRAWING_ERROR_INVALID_PARAMETER);
EXPECT_EQ(OH_Drawing_PenGetAlphaFloat(pen, 0), OH_DRAWING_ERROR_INVALID_PARAMETER);
EXPECT_EQ(OH_Drawing_PenGetAlphaFloat(pen, NULL), OH_DRAWING_ERROR_INVALID_PARAMETER);
EXPECT_EQ(a, 0.0f);
OH_Drawing_PenDestroy(pen);
DrawingNativePenTestTearDown();
return OH_DRAWING_SUCCESS;
}
int TestPenGetRedFloatNormal()
{
DrawingNativePenTestSetUp();
OH_Drawing_Pen *pen = OH_Drawing_PenCreate();
float r = 0.0f;
OH_Drawing_PenSetWidth(pen, DRAWING_NUMBER_10);
OH_Drawing_PenSetColor4f(pen, 1.0f, 0.4f, 1.0f, 0.2f, nullptr);
EXPECT_EQ(OH_Drawing_PenGetRedFloat(pen, &r), OH_DRAWING_SUCCESS);
EXPECT_EQ(r, 0.4f);
OH_Drawing_PenDestroy(pen);
DrawingNativePenTestTearDown();
return OH_DRAWING_SUCCESS;
}
int TestPenGetRedFloatAbnormal()
{
DrawingNativePenTestSetUp();
OH_Drawing_Pen *pen = OH_Drawing_PenCreate();
float r = 0.0f;
OH_Drawing_PenSetWidth(pen, DRAWING_NUMBER_10);
OH_Drawing_PenSetColor4f(pen, 1.0f, 0.4f, 1.0f, 0.2f, nullptr);
EXPECT_EQ(OH_Drawing_PenGetRedFloat(nullptr, &r), OH_DRAWING_ERROR_INVALID_PARAMETER);
EXPECT_EQ(OH_Drawing_PenGetRedFloat(pen, 0), OH_DRAWING_ERROR_INVALID_PARAMETER);
EXPECT_EQ(OH_Drawing_PenGetRedFloat(pen, NULL), OH_DRAWING_ERROR_INVALID_PARAMETER);
EXPECT_EQ(r, 0.0f);
OH_Drawing_PenDestroy(pen);
DrawingNativePenTestTearDown();
return OH_DRAWING_SUCCESS;
}
int TestPenGetGreenFloatNormal()
{
DrawingNativePenTestSetUp();
OH_Drawing_Pen *pen = OH_Drawing_PenCreate();
float g = 0.0f;
OH_Drawing_PenSetWidth(pen, DRAWING_NUMBER_10);
OH_Drawing_PenSetColor4f(pen, 1.0f, 0.4f, 1.0f, 0.2f, nullptr);
EXPECT_EQ(OH_Drawing_PenGetGreenFloat(pen, &g), OH_DRAWING_SUCCESS);
EXPECT_EQ(g, 1.0f);
OH_Drawing_PenDestroy(pen);
DrawingNativePenTestTearDown();
return OH_DRAWING_SUCCESS;
}
int TestPenGetGreenFloatAbnormal()
{
DrawingNativePenTestSetUp();
OH_Drawing_Pen *pen = OH_Drawing_PenCreate();
float g = 0.0f;
OH_Drawing_PenSetWidth(pen, DRAWING_NUMBER_10);
OH_Drawing_PenSetColor4f(pen, 1.0f, 0.4f, 1.0f, 0.2f, nullptr);
EXPECT_EQ(OH_Drawing_PenGetGreenFloat(nullptr, &g), OH_DRAWING_ERROR_INVALID_PARAMETER);
EXPECT_EQ(OH_Drawing_PenGetGreenFloat(pen, 0), OH_DRAWING_ERROR_INVALID_PARAMETER);
EXPECT_EQ(OH_Drawing_PenGetGreenFloat(pen, NULL), OH_DRAWING_ERROR_INVALID_PARAMETER);
EXPECT_EQ(g, 0.0f);
OH_Drawing_PenDestroy(pen);
DrawingNativePenTestTearDown();
return OH_DRAWING_SUCCESS;
}
int TestPenGetBlueFloatNormal()
{
DrawingNativePenTestSetUp();
OH_Drawing_Pen *pen = OH_Drawing_PenCreate();
float b = 0.0f;
OH_Drawing_PenSetWidth(pen, DRAWING_NUMBER_10);
OH_Drawing_PenSetColor4f(pen, 1.0f, 0.4f, 1.0f, 0.2f, nullptr);
EXPECT_EQ(OH_Drawing_PenGetBlueFloat(pen, &b), OH_DRAWING_SUCCESS);
EXPECT_EQ(b, 0.2f);
OH_Drawing_PenDestroy(pen);
DrawingNativePenTestTearDown();
return OH_DRAWING_SUCCESS;
}
int TestPenGetBlueFloatAbnormal()
{
DrawingNativePenTestSetUp();
OH_Drawing_Pen *pen = OH_Drawing_PenCreate();
float b = 0.0f;
OH_Drawing_PenSetWidth(pen, DRAWING_NUMBER_10);
OH_Drawing_PenSetColor4f(pen, 1.0f, 0.4f, 1.0f, 0.2f, nullptr);
EXPECT_EQ(OH_Drawing_PenGetBlueFloat(nullptr, &b), OH_DRAWING_ERROR_INVALID_PARAMETER);
EXPECT_EQ(OH_Drawing_PenGetBlueFloat(pen, 0), OH_DRAWING_ERROR_INVALID_PARAMETER);
EXPECT_EQ(OH_Drawing_PenGetBlueFloat(pen, NULL), OH_DRAWING_ERROR_INVALID_PARAMETER);
EXPECT_EQ(b, 0.0f);
OH_Drawing_PenDestroy(pen);
DrawingNativePenTestTearDown();
return OH_DRAWING_SUCCESS;
}
int TestPenSetColor4FNormal()
{
DrawingNativePenTestSetUp();
OH_Drawing_Pen *pen = OH_Drawing_PenCreate();
float a = 0.0f;
float r = 0.0f;
float g = 0.0f;
float b = 0.0f;
OH_Drawing_PenSetWidth(pen, DRAWING_NUMBER_10);
OH_Drawing_ErrorCode errorCode = OH_Drawing_PenSetColor4f(pen, 1.0f, 0.4f, 1.0f, 0.2f, nullptr);
OH_Drawing_PenGetAlphaFloat(pen, &a);
OH_Drawing_PenGetRedFloat(pen, &r);
OH_Drawing_PenGetGreenFloat(pen, &g);
OH_Drawing_PenGetBlueFloat(pen, &b);
EXPECT_EQ(a, 1.0f);
EXPECT_EQ(r, 0.4f);
EXPECT_EQ(g, 1.0f);
EXPECT_EQ(b, 0.2f);
EXPECT_EQ(errorCode, OH_DRAWING_SUCCESS);
OH_Drawing_PenDestroy(pen);
DrawingNativePenTestTearDown();
return OH_DRAWING_SUCCESS;
}
int TestPenSetColor4FNull()
{
DrawingNativePenTestSetUp();
OH_Drawing_Pen *pen = OH_Drawing_PenCreate();
float a = 0.0f;
float r = 0.0f;
float g = 0.0f;
float b = 0.0f;
OH_Drawing_PenSetWidth(pen, DRAWING_NUMBER_10);
OH_Drawing_ErrorCode errorCode = OH_Drawing_PenSetColor4f(nullptr, 1.0f, 0.4f, 1.0f, 0.2f, nullptr);
EXPECT_EQ(errorCode, OH_DRAWING_ERROR_INVALID_PARAMETER);
errorCode = OH_Drawing_PenSetColor4f(pen, 0.0f, 0.4f, 1.0f, 0.2f, nullptr);
OH_Drawing_PenGetAlphaFloat(pen, &a);
EXPECT_EQ(errorCode, OH_DRAWING_SUCCESS);
EXPECT_EQ(a, 0.0f);
errorCode = OH_Drawing_PenSetColor4f(pen, 1.0f, 0.0f, 1.0f, 0.2f, nullptr);
OH_Drawing_PenGetRedFloat(pen, &r);
EXPECT_EQ(errorCode, OH_DRAWING_SUCCESS);
EXPECT_EQ(r, 0.0f);
errorCode = OH_Drawing_PenSetColor4f(pen, 1.0f, 1.0f, 0.0f, 1.0f, nullptr);
OH_Drawing_PenGetGreenFloat(pen, &g);
EXPECT_EQ(errorCode, OH_DRAWING_SUCCESS);
EXPECT_EQ(g, 0.0f);
errorCode = OH_Drawing_PenSetColor4f(pen, 1.0f, 0.4f, 1.0f, 0.0f, nullptr);
OH_Drawing_PenGetBlueFloat(pen, &b);
EXPECT_EQ(errorCode, OH_DRAWING_SUCCESS);
EXPECT_EQ(b, 0.0f);
OH_Drawing_PenDestroy(pen);
DrawingNativePenTestTearDown();
return OH_DRAWING_SUCCESS;
}
int TestPenSetColor4FAbnormal()
{
DrawingNativePenTestSetUp();
OH_Drawing_Pen *pen = OH_Drawing_PenCreate();
float a = 0.0f;
float r = 0.0f;
float g = 0.0f;
float b = 0.0f;
OH_Drawing_PenSetWidth(pen, DRAWING_NUMBER_10);
OH_Drawing_ErrorCode errorCode1 = OH_Drawing_PenSetColor4f(pen, 2.0f, 0.4f, 1.0f, 0.2f, nullptr);
OH_Drawing_PenGetAlphaFloat(pen, &a);
EXPECT_EQ(a, 1.0f);
OH_Drawing_ErrorCode errorCode2 = OH_Drawing_PenSetColor4f(pen, -1.0f, 0.4f, 1.0f, 0.2f, nullptr);
OH_Drawing_PenGetAlphaFloat(pen, &a);
EXPECT_EQ(a, 0.0f);
OH_Drawing_ErrorCode errorCode3 = OH_Drawing_PenSetColor4f(pen, 1.0f, 2.0f, 1.0f, 0.2f, nullptr);
OH_Drawing_PenGetRedFloat(pen, &r);
EXPECT_EQ(r, 1.0f);
OH_Drawing_ErrorCode errorCode4 = OH_Drawing_PenSetColor4f(pen, 1.0f, -1.0f, 1.0f, 0.2f, nullptr);
OH_Drawing_PenGetRedFloat(pen, &r);
EXPECT_EQ(r, 0.0f);
OH_Drawing_ErrorCode errorCode5 = OH_Drawing_PenSetColor4f(pen, 1.0f, 0.4f, 2.0f, 0.2f, nullptr);
OH_Drawing_PenGetGreenFloat(pen, &g);
EXPECT_EQ(g, 1.0f);
OH_Drawing_ErrorCode errorCode6 = OH_Drawing_PenSetColor4f(pen, 1.0f, 0.4f, -1.0f, 0.2f, nullptr);
OH_Drawing_PenGetGreenFloat(pen, &g);
EXPECT_EQ(g, 0.0f);
OH_Drawing_ErrorCode errorCode7 = OH_Drawing_PenSetColor4f(pen, 1.0f, 0.4f, 1.0f, 2.0f, nullptr);
OH_Drawing_PenGetBlueFloat(pen, &b);
EXPECT_EQ(b, 1.0f);
OH_Drawing_ErrorCode errorCode8 = OH_Drawing_PenSetColor4f(pen, 1.0f, 0.4f, 1.0f, -1.0f, nullptr);
OH_Drawing_PenGetBlueFloat(pen, &b);
EXPECT_EQ(b, 0.0f);
EXPECT_EQ(errorCode1, OH_DRAWING_SUCCESS);
EXPECT_EQ(errorCode2, OH_DRAWING_SUCCESS);
EXPECT_EQ(errorCode3, OH_DRAWING_SUCCESS);
EXPECT_EQ(errorCode4, OH_DRAWING_SUCCESS);
EXPECT_EQ(errorCode5, OH_DRAWING_SUCCESS);
EXPECT_EQ(errorCode6, OH_DRAWING_SUCCESS);
EXPECT_EQ(errorCode7, OH_DRAWING_SUCCESS);
EXPECT_EQ(errorCode8, OH_DRAWING_SUCCESS);
OH_Drawing_PenDestroy(pen);
DrawingNativePenTestTearDown();
return OH_DRAWING_SUCCESS;
}
}
}
}