* 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/DrawingNativeCanvasCommonTest.h"
#include "include/OhosCommonTest.h"
#define DRAWING_NUMBER_1 1
#define DRAWING_NUMBER_2 2
#define DRAWING_NUMBER_10 10
#define DRAWING_NUMBER_100 100
#define DRAWING_NUMBER_180 180
#define DRAWING_NUMBER_200 200
#define DRAWING_NUMBER_300 300
#define DRAWING_NUMBER_360 360
#define DRAWING_NUMBER_370 370
#define DRAWING_NUMBER_123456 123456
namespace OHOS {
namespace Rosen {
namespace Drawing {
void DrawingNativeCanvasPart3TestSetUp()
{
std::cout << "DrawingNativeCanvasPart3Test Setup code called before each test case." << std::endl;
OH_Drawing_ErrorCodeReset();
std::cout << "DrawingNativeCanvasPart3Test errorCodeReset before each test case." << std::endl;
}
void DrawingNativeCanvasPart3TestTearDown()
{
std::cout << "DrawingNativeCanvasPart3Test Setup code called after each test case." << std::endl;
OH_Drawing_ErrorCodeReset();
std::cout << "DrawingNativeCanvasPart3Test errorCodeReset after each test case." << std::endl;
}
int TestCanvasDrawOvalNormal()
{
DrawingNativeCanvasPart3TestSetUp();
OH_Drawing_Canvas *canvas = OH_Drawing_CanvasCreate();
EXPECT_NE(canvas, nullptr);
OH_Drawing_Rect *rect = OH_Drawing_RectCreate(0, 0, DRAWING_NUMBER_100, DRAWING_NUMBER_100);
EXPECT_NE(rect, nullptr);
OH_Drawing_CanvasDrawOval(canvas, rect);
EXPECT_EQ(OH_Drawing_ErrorCodeGet(), OH_Drawing_ErrorCode::OH_DRAWING_SUCCESS);
OH_Drawing_CanvasDestroy(canvas);
OH_Drawing_RectDestroy(rect);
DrawingNativeCanvasPart3TestTearDown();
return OH_DRAWING_SUCCESS;
}
int TestCanvasDrawOvalNull()
{
DrawingNativeCanvasPart3TestSetUp();
OH_Drawing_Canvas *canvas = OH_Drawing_CanvasCreate();
EXPECT_NE(canvas, nullptr);
OH_Drawing_Rect *rect = OH_Drawing_RectCreate(0, 0, DRAWING_NUMBER_200, DRAWING_NUMBER_200);
EXPECT_NE(rect, nullptr);
OH_Drawing_CanvasDrawOval(nullptr, rect);
EXPECT_EQ(OH_Drawing_ErrorCodeGet(), OH_Drawing_ErrorCode::OH_DRAWING_ERROR_INVALID_PARAMETER);
OH_Drawing_ErrorCodeReset();
OH_Drawing_Rect *rect2 = OH_Drawing_RectCreate(0, DRAWING_NUMBER_200, DRAWING_NUMBER_200, DRAWING_NUMBER_200);
EXPECT_NE(rect2, nullptr);
OH_Drawing_CanvasDrawOval(canvas, rect2);
rect2 = OH_Drawing_RectCreate(DRAWING_NUMBER_200, 0, DRAWING_NUMBER_200, DRAWING_NUMBER_200);
EXPECT_NE(rect2, nullptr);
OH_Drawing_CanvasDrawOval(canvas, rect2);
rect2 = OH_Drawing_RectCreate(DRAWING_NUMBER_200, DRAWING_NUMBER_200, 0, DRAWING_NUMBER_200);
EXPECT_NE(rect2, nullptr);
OH_Drawing_CanvasDrawOval(canvas, rect2);
rect2 = OH_Drawing_RectCreate(DRAWING_NUMBER_200, DRAWING_NUMBER_200, DRAWING_NUMBER_200, 0);
EXPECT_NE(rect2, nullptr);
OH_Drawing_CanvasDrawOval(canvas, rect2);
OH_Drawing_Rect *rect3 = OH_Drawing_RectCreate(0, 0, 0, 0);
EXPECT_NE(rect3, nullptr);
OH_Drawing_CanvasDrawOval(canvas, rect3);
OH_Drawing_CanvasDrawOval(canvas, nullptr);
EXPECT_EQ(OH_Drawing_ErrorCodeGet(), OH_Drawing_ErrorCode::OH_DRAWING_ERROR_INVALID_PARAMETER);
OH_Drawing_CanvasDestroy(canvas);
OH_Drawing_RectDestroy(rect);
OH_Drawing_RectDestroy(rect2);
OH_Drawing_RectDestroy(rect3);
DrawingNativeCanvasPart3TestTearDown();
return OH_DRAWING_SUCCESS;
}
int TestCanvasDrawOvalAbnormal()
{
DrawingNativeCanvasPart3TestSetUp();
OH_Drawing_Canvas *canvas = OH_Drawing_CanvasCreate();
EXPECT_NE(canvas, 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_CanvasDrawOval(canvas, rect);
rect = OH_Drawing_RectCreate(DRAWING_NUMBER_100, -DRAWING_NUMBER_100, DRAWING_NUMBER_200, DRAWING_NUMBER_200);
EXPECT_NE(rect, nullptr);
OH_Drawing_CanvasDrawOval(canvas, rect);
rect = OH_Drawing_RectCreate(DRAWING_NUMBER_100, DRAWING_NUMBER_100, -DRAWING_NUMBER_200, DRAWING_NUMBER_200);
EXPECT_NE(rect, nullptr);
OH_Drawing_CanvasDrawOval(canvas, rect);
rect = OH_Drawing_RectCreate(DRAWING_NUMBER_100, DRAWING_NUMBER_100, DRAWING_NUMBER_200, -DRAWING_NUMBER_200);
EXPECT_NE(rect, nullptr);
OH_Drawing_CanvasDrawOval(canvas, rect);
OH_Drawing_Rect *rect2 = OH_Drawing_RectCreate(DRAWING_NUMBER_100, 0, DRAWING_NUMBER_100, DRAWING_NUMBER_100);
EXPECT_NE(rect2, nullptr);
OH_Drawing_CanvasDrawOval(canvas, rect2);
OH_Drawing_Rect *rect3 = OH_Drawing_RectCreate(0, DRAWING_NUMBER_100, DRAWING_NUMBER_100, DRAWING_NUMBER_100);
EXPECT_NE(rect3, nullptr);
OH_Drawing_CanvasDrawOval(canvas, rect3);
OH_Drawing_Rect *rect4 =
OH_Drawing_RectCreate(DRAWING_NUMBER_100, DRAWING_NUMBER_100, DRAWING_NUMBER_100, DRAWING_NUMBER_100);
EXPECT_NE(rect4, nullptr);
OH_Drawing_CanvasDrawOval(canvas, rect4);
OH_Drawing_Rect *rect5 =
OH_Drawing_RectCreate(DRAWING_NUMBER_200, DRAWING_NUMBER_200, DRAWING_NUMBER_100, DRAWING_NUMBER_100);
EXPECT_NE(rect5, nullptr);
OH_Drawing_CanvasDrawOval(canvas, rect5);
OH_Drawing_CanvasDestroy(canvas);
OH_Drawing_RectDestroy(rect);
OH_Drawing_RectDestroy(rect2);
OH_Drawing_RectDestroy(rect3);
OH_Drawing_RectDestroy(rect4);
OH_Drawing_RectDestroy(rect5);
DrawingNativeCanvasPart3TestTearDown();
return OH_DRAWING_SUCCESS;
}
int TestCanvasDrawOvalMaximum()
{
DrawingNativeCanvasPart3TestSetUp();
OH_Drawing_Canvas *canvas = OH_Drawing_CanvasCreate();
EXPECT_NE(canvas, nullptr);
OH_Drawing_Rect *rect = OH_Drawing_RectCreate(FLT_MAX, 0, 0, 0);
EXPECT_NE(rect, nullptr);
OH_Drawing_CanvasDrawOval(canvas, rect);
rect = OH_Drawing_RectCreate(0, FLT_MAX, 0, 0);
EXPECT_NE(rect, nullptr);
OH_Drawing_CanvasDrawOval(canvas, rect);
rect = OH_Drawing_RectCreate(0, 0, FLT_MAX, 0);
EXPECT_NE(rect, nullptr);
OH_Drawing_CanvasDrawOval(canvas, rect);
rect = OH_Drawing_RectCreate(0, 0, 0, FLT_MAX);
EXPECT_NE(rect, nullptr);
OH_Drawing_CanvasDrawOval(canvas, rect);
OH_Drawing_CanvasDestroy(canvas);
OH_Drawing_RectDestroy(rect);
DrawingNativeCanvasPart3TestTearDown();
return OH_DRAWING_SUCCESS;
}
int TestCanvasDrawOvalInputDestroyed()
{
DrawingNativeCanvasPart3TestSetUp();
DrawingNativeCanvasPart3TestTearDown();
return OH_DRAWING_SUCCESS;
}
int TestCanvasDrawArcNormal()
{
DrawingNativeCanvasPart3TestSetUp();
OH_Drawing_Canvas *canvas = OH_Drawing_CanvasCreate();
EXPECT_NE(canvas, nullptr);
OH_Drawing_Rect *rect = OH_Drawing_RectCreate(0, 0, DRAWING_NUMBER_100, DRAWING_NUMBER_100);
EXPECT_NE(rect, nullptr);
float startAngles[] = {0.0f, 180.0f, 360.0f};
for (float startAngle : startAngles) {
OH_Drawing_ErrorCodeReset();
OH_Drawing_CanvasDrawArc(canvas, rect, startAngle, 90.0f);
EXPECT_EQ(OH_Drawing_ErrorCodeGet(), OH_Drawing_ErrorCode::OH_DRAWING_SUCCESS);
}
float sweepAngles[] = {0.0f, 180.0f, 360.0f};
for (float sweepAngle : sweepAngles) {
OH_Drawing_ErrorCodeReset();
OH_Drawing_CanvasDrawArc(canvas, rect, 0.0f, sweepAngle);
EXPECT_EQ(OH_Drawing_ErrorCodeGet(), OH_Drawing_ErrorCode::OH_DRAWING_SUCCESS);
}
OH_Drawing_CanvasDestroy(canvas);
OH_Drawing_RectDestroy(rect);
DrawingNativeCanvasPart3TestTearDown();
return OH_DRAWING_SUCCESS;
}
int TestCanvasDrawArcNull()
{
DrawingNativeCanvasPart3TestSetUp();
OH_Drawing_Canvas *canvas = OH_Drawing_CanvasCreate();
EXPECT_NE(canvas, nullptr);
OH_Drawing_Rect *rect = OH_Drawing_RectCreate(0, 0, DRAWING_NUMBER_100, DRAWING_NUMBER_100);
EXPECT_NE(rect, nullptr);
OH_Drawing_CanvasDrawArc(nullptr, rect, 0.0f, 90.0f);
EXPECT_EQ(OH_Drawing_ErrorCodeGet(), OH_Drawing_ErrorCode::OH_DRAWING_ERROR_INVALID_PARAMETER);
OH_Drawing_ErrorCodeReset();
OH_Drawing_Rect *rect2 = OH_Drawing_RectCreate(0, DRAWING_NUMBER_100, DRAWING_NUMBER_200, DRAWING_NUMBER_200);
OH_Drawing_CanvasDrawArc(canvas, rect2, 0.0f, 90.0f);
rect2 = OH_Drawing_RectCreate(DRAWING_NUMBER_100, 0, DRAWING_NUMBER_200, DRAWING_NUMBER_200);
OH_Drawing_CanvasDrawArc(canvas, rect2, 0.0f, 90.0f);
rect2 = OH_Drawing_RectCreate(DRAWING_NUMBER_100, DRAWING_NUMBER_100, 0, DRAWING_NUMBER_200);
OH_Drawing_CanvasDrawArc(canvas, rect2, 0.0f, 90.0f);
rect2 = OH_Drawing_RectCreate(DRAWING_NUMBER_100, DRAWING_NUMBER_100, DRAWING_NUMBER_200, 0);
OH_Drawing_CanvasDrawArc(canvas, rect2, 0.0f, 90.0f);
OH_Drawing_Rect *rect3 = OH_Drawing_RectCreate(0, 0, 0, 0);
OH_Drawing_CanvasDrawArc(canvas, rect3, 0.0f, 90.0f);
OH_Drawing_CanvasDrawArc(canvas, nullptr, 0.0f, 90.0f);
EXPECT_EQ(OH_Drawing_ErrorCodeGet(), OH_Drawing_ErrorCode::OH_DRAWING_ERROR_INVALID_PARAMETER);
OH_Drawing_CanvasDestroy(canvas);
OH_Drawing_RectDestroy(rect);
OH_Drawing_RectDestroy(rect2);
OH_Drawing_RectDestroy(rect3);
DrawingNativeCanvasPart3TestTearDown();
return OH_DRAWING_SUCCESS;
}
int TestCanvasDrawArcAbnormal()
{
DrawingNativeCanvasPart3TestSetUp();
OH_Drawing_Canvas *canvas = OH_Drawing_CanvasCreate();
EXPECT_NE(canvas, 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_CanvasDrawArc(canvas, rect, 0.0f, 90.0f);
rect = OH_Drawing_RectCreate(-DRAWING_NUMBER_100, DRAWING_NUMBER_100, DRAWING_NUMBER_200, DRAWING_NUMBER_200);
EXPECT_NE(rect, nullptr);
OH_Drawing_CanvasDrawArc(canvas, rect, 0.0f, 90.0f);
rect = OH_Drawing_RectCreate(DRAWING_NUMBER_100, -DRAWING_NUMBER_100, DRAWING_NUMBER_200, DRAWING_NUMBER_200);
EXPECT_NE(rect, nullptr);
OH_Drawing_CanvasDrawArc(canvas, rect, 0.0f, 90.0f);
rect = OH_Drawing_RectCreate(DRAWING_NUMBER_100, DRAWING_NUMBER_100, -DRAWING_NUMBER_200, DRAWING_NUMBER_200);
EXPECT_NE(rect, nullptr);
OH_Drawing_CanvasDrawArc(canvas, rect, 0.0f, 90.0f);
rect = OH_Drawing_RectCreate(DRAWING_NUMBER_100, DRAWING_NUMBER_100, DRAWING_NUMBER_200, -DRAWING_NUMBER_200);
EXPECT_NE(rect, nullptr);
OH_Drawing_CanvasDrawArc(canvas, rect, 0.0f, 90.0f);
OH_Drawing_Rect *rect2 = OH_Drawing_RectCreate(DRAWING_NUMBER_100, 0, DRAWING_NUMBER_100, DRAWING_NUMBER_100);
EXPECT_NE(rect2, nullptr);
OH_Drawing_CanvasDrawArc(canvas, rect2, 0.0f, 90.0f);
OH_Drawing_Rect *rect3 = OH_Drawing_RectCreate(0, DRAWING_NUMBER_100, DRAWING_NUMBER_100, DRAWING_NUMBER_100);
EXPECT_NE(rect3, nullptr);
OH_Drawing_CanvasDrawArc(canvas, rect3, 0.0f, 90.0f);
OH_Drawing_Rect *rect4 =
OH_Drawing_RectCreate(DRAWING_NUMBER_100, DRAWING_NUMBER_100, DRAWING_NUMBER_100, DRAWING_NUMBER_100);
EXPECT_NE(rect4, nullptr);
OH_Drawing_CanvasDrawArc(canvas, rect4, 0.0f, 90.0f);
OH_Drawing_Rect *rect5 =
OH_Drawing_RectCreate(DRAWING_NUMBER_200, DRAWING_NUMBER_200, DRAWING_NUMBER_100, DRAWING_NUMBER_100);
EXPECT_NE(rect5, nullptr);
OH_Drawing_CanvasDrawArc(canvas, rect5, 0.0f, 90.0f);
OH_Drawing_CanvasDrawArc(canvas, rect, -90.0f, 90.0f);
OH_Drawing_CanvasDrawArc(canvas, rect, 400.0f, 90.0f);
OH_Drawing_CanvasDrawArc(canvas, rect, 0.0f, -90.0f);
OH_Drawing_CanvasDrawArc(canvas, rect, 0.0f, 400.0f);
OH_Drawing_CanvasDestroy(canvas);
OH_Drawing_RectDestroy(rect);
OH_Drawing_RectDestroy(rect2);
OH_Drawing_RectDestroy(rect3);
OH_Drawing_RectDestroy(rect4);
OH_Drawing_RectDestroy(rect5);
DrawingNativeCanvasPart3TestTearDown();
return OH_DRAWING_SUCCESS;
}
int TestCanvasDrawArcMaximum()
{
DrawingNativeCanvasPart3TestSetUp();
OH_Drawing_Canvas *canvas = OH_Drawing_CanvasCreate();
EXPECT_NE(canvas, nullptr);
OH_Drawing_Rect *rect = OH_Drawing_RectCreate(FLT_MAX, 0, 0, 0);
EXPECT_NE(rect, nullptr);
OH_Drawing_CanvasDrawArc(canvas, rect, 0.0f, 90.0f);
OH_Drawing_RectDestroy(rect);
rect = OH_Drawing_RectCreate(0, FLT_MAX, 0, 0);
EXPECT_NE(rect, nullptr);
OH_Drawing_CanvasDrawArc(canvas, rect, 0.0f, 90.0f);
OH_Drawing_RectDestroy(rect);
rect = OH_Drawing_RectCreate(0, 0, FLT_MAX, 0);
EXPECT_NE(rect, nullptr);
OH_Drawing_CanvasDrawArc(canvas, rect, 0.0f, 90.0f);
OH_Drawing_RectDestroy(rect);
rect = OH_Drawing_RectCreate(0, 0, 0, FLT_MAX);
EXPECT_NE(rect, nullptr);
OH_Drawing_CanvasDrawArc(canvas, rect, 0.0f, 90.0f);
OH_Drawing_RectDestroy(rect);
rect = OH_Drawing_RectCreate(0, 0, DRAWING_NUMBER_100, DRAWING_NUMBER_100);
EXPECT_NE(rect, nullptr);
OH_Drawing_CanvasDrawArc(canvas, rect, FLT_MAX, 90.0f);
OH_Drawing_RectDestroy(rect);
rect = OH_Drawing_RectCreate(0, 0, DRAWING_NUMBER_100, DRAWING_NUMBER_100);
EXPECT_NE(rect, nullptr);
OH_Drawing_CanvasDrawArc(canvas, rect, 0.0f, FLT_MAX);
OH_Drawing_RectDestroy(rect);
OH_Drawing_CanvasDestroy(canvas);
DrawingNativeCanvasPart3TestTearDown();
return OH_DRAWING_SUCCESS;
}
int TestCanvasDrawArcInputDestroyed()
{
DrawingNativeCanvasPart3TestSetUp();
DrawingNativeCanvasPart3TestTearDown();
return OH_DRAWING_SUCCESS;
}
int TestCanvasDrawRoundRectNormal()
{
DrawingNativeCanvasPart3TestSetUp();
OH_Drawing_Canvas *canvas = OH_Drawing_CanvasCreate();
EXPECT_NE(canvas, nullptr);
OH_Drawing_Rect *rect =
OH_Drawing_RectCreate(DRAWING_NUMBER_10, DRAWING_NUMBER_100, DRAWING_NUMBER_200, DRAWING_NUMBER_300);
EXPECT_NE(rect, nullptr);
OH_Drawing_RoundRect *roundRect = OH_Drawing_RoundRectCreate(rect, 1.0f, 1.0f);
EXPECT_NE(roundRect, nullptr);
OH_Drawing_CanvasDrawRoundRect(canvas, roundRect);
EXPECT_EQ(OH_Drawing_ErrorCodeGet(), OH_Drawing_ErrorCode::OH_DRAWING_SUCCESS);
OH_Drawing_CanvasDestroy(canvas);
OH_Drawing_RectDestroy(rect);
OH_Drawing_RoundRectDestroy(roundRect);
DrawingNativeCanvasPart3TestTearDown();
return OH_DRAWING_SUCCESS;
}
void CanvasDrawRoundRectNull(OH_Drawing_Canvas *canvas, OH_Drawing_Rect *rect, OH_Drawing_RoundRect *roundRect)
{
rect = OH_Drawing_RectCreate(DRAWING_NUMBER_10, DRAWING_NUMBER_100, DRAWING_NUMBER_200, DRAWING_NUMBER_300);
EXPECT_NE(rect, nullptr);
roundRect = OH_Drawing_RoundRectCreate(rect, 1.0f, 1.0f);
EXPECT_NE(roundRect, nullptr);
OH_Drawing_CanvasDrawRoundRect(nullptr, roundRect);
EXPECT_EQ(OH_Drawing_ErrorCodeGet(), OH_Drawing_ErrorCode::OH_DRAWING_ERROR_INVALID_PARAMETER);
OH_Drawing_ErrorCodeReset();
OH_Drawing_CanvasDrawRoundRect(canvas, nullptr);
EXPECT_EQ(OH_Drawing_ErrorCodeGet(), OH_Drawing_ErrorCode::OH_DRAWING_ERROR_INVALID_PARAMETER);
rect = OH_Drawing_RectCreate(0, DRAWING_NUMBER_100, DRAWING_NUMBER_200, DRAWING_NUMBER_300);
EXPECT_NE(rect, nullptr);
roundRect = OH_Drawing_RoundRectCreate(rect, 1.0f, 1.0f);
EXPECT_NE(roundRect, nullptr);
OH_Drawing_CanvasDrawRoundRect(canvas, roundRect);
rect = OH_Drawing_RectCreate(DRAWING_NUMBER_10, 0, DRAWING_NUMBER_200, DRAWING_NUMBER_300);
EXPECT_NE(rect, nullptr);
roundRect = OH_Drawing_RoundRectCreate(rect, 1.0f, 1.0f);
EXPECT_NE(roundRect, nullptr);
OH_Drawing_CanvasDrawRoundRect(canvas, roundRect);
rect = OH_Drawing_RectCreate(DRAWING_NUMBER_10, DRAWING_NUMBER_100, 0, DRAWING_NUMBER_300);
EXPECT_NE(rect, nullptr);
roundRect = OH_Drawing_RoundRectCreate(rect, 1.0f, 1.0f);
EXPECT_NE(roundRect, nullptr);
OH_Drawing_CanvasDrawRoundRect(canvas, roundRect);
rect = OH_Drawing_RectCreate(DRAWING_NUMBER_10, DRAWING_NUMBER_100, DRAWING_NUMBER_200, 0);
EXPECT_NE(rect, nullptr);
roundRect = OH_Drawing_RoundRectCreate(rect, 1.0f, 1.0f);
EXPECT_NE(roundRect, nullptr);
OH_Drawing_CanvasDrawRoundRect(canvas, roundRect);
rect = OH_Drawing_RectCreate(0, 0, 0, 0);
EXPECT_NE(rect, nullptr);
roundRect = OH_Drawing_RoundRectCreate(rect, 1.0f, 1.0f);
EXPECT_NE(roundRect, nullptr);
OH_Drawing_CanvasDrawRoundRect(canvas, roundRect);
rect = OH_Drawing_RectCreate(DRAWING_NUMBER_10, DRAWING_NUMBER_100, DRAWING_NUMBER_200, DRAWING_NUMBER_300);
EXPECT_NE(rect, nullptr);
roundRect = OH_Drawing_RoundRectCreate(rect, 0.0f, 1.0f);
EXPECT_NE(roundRect, nullptr);
OH_Drawing_CanvasDrawRoundRect(canvas, roundRect);
rect = OH_Drawing_RectCreate(DRAWING_NUMBER_10, DRAWING_NUMBER_100, DRAWING_NUMBER_200, DRAWING_NUMBER_300);
EXPECT_NE(rect, nullptr);
roundRect = OH_Drawing_RoundRectCreate(rect, 1.0f, 0.0f);
EXPECT_NE(roundRect, nullptr);
OH_Drawing_CanvasDrawRoundRect(canvas, roundRect);
}
int TestCanvasDrawRoundRectNull()
{
DrawingNativeCanvasPart3TestSetUp();
OH_Drawing_Canvas *canvas = OH_Drawing_CanvasCreate();
EXPECT_NE(canvas, nullptr);
OH_Drawing_Rect *rect = nullptr;
OH_Drawing_RoundRect *roundRect = nullptr;
CanvasDrawRoundRectNull(canvas, rect, roundRect);
OH_Drawing_CanvasDestroy(canvas);
OH_Drawing_RectDestroy(rect);
OH_Drawing_RoundRectDestroy(roundRect);
DrawingNativeCanvasPart3TestTearDown();
return OH_DRAWING_SUCCESS;
}
int TestCanvasDrawRoundRectAbnormal()
{
DrawingNativeCanvasPart3TestSetUp();
OH_Drawing_Canvas *canvas = OH_Drawing_CanvasCreate();
EXPECT_NE(canvas, nullptr);
OH_Drawing_Rect *rect = OH_Drawing_RectCreate(-10, DRAWING_NUMBER_100, DRAWING_NUMBER_200, DRAWING_NUMBER_300);
EXPECT_NE(rect, nullptr);
OH_Drawing_RoundRect *roundRect = OH_Drawing_RoundRectCreate(rect, 0.0f, 1.0f);
OH_Drawing_CanvasDrawRoundRect(canvas, roundRect);
rect = OH_Drawing_RectCreate(DRAWING_NUMBER_10, -DRAWING_NUMBER_100, DRAWING_NUMBER_200, DRAWING_NUMBER_300);
EXPECT_NE(rect, nullptr);
roundRect = OH_Drawing_RoundRectCreate(rect, 0.0f, 1.0f);
OH_Drawing_CanvasDrawRoundRect(canvas, roundRect);
rect = OH_Drawing_RectCreate(DRAWING_NUMBER_10, DRAWING_NUMBER_100, -DRAWING_NUMBER_200, DRAWING_NUMBER_300);
EXPECT_NE(rect, nullptr);
roundRect = OH_Drawing_RoundRectCreate(rect, 0.0f, 1.0f);
OH_Drawing_CanvasDrawRoundRect(canvas, roundRect);
rect = OH_Drawing_RectCreate(DRAWING_NUMBER_10, DRAWING_NUMBER_100, DRAWING_NUMBER_200, -DRAWING_NUMBER_300);
EXPECT_NE(rect, nullptr);
roundRect = OH_Drawing_RoundRectCreate(rect, 0.0f, 1.0f);
OH_Drawing_CanvasDrawRoundRect(canvas, roundRect);
rect = OH_Drawing_RectCreate(DRAWING_NUMBER_100, 0, DRAWING_NUMBER_100, DRAWING_NUMBER_100);
EXPECT_NE(rect, nullptr);
roundRect = OH_Drawing_RoundRectCreate(rect, 0.0f, 1.0f);
OH_Drawing_CanvasDrawRoundRect(canvas, roundRect);
rect = OH_Drawing_RectCreate(0, DRAWING_NUMBER_100, DRAWING_NUMBER_100, DRAWING_NUMBER_100);
EXPECT_NE(rect, nullptr);
roundRect = OH_Drawing_RoundRectCreate(rect, 0.0f, 1.0f);
OH_Drawing_CanvasDrawRoundRect(canvas, roundRect);
rect = OH_Drawing_RectCreate(DRAWING_NUMBER_100, DRAWING_NUMBER_100, DRAWING_NUMBER_100, DRAWING_NUMBER_100);
EXPECT_NE(rect, nullptr);
roundRect = OH_Drawing_RoundRectCreate(rect, 0.0f, 1.0f);
OH_Drawing_CanvasDrawRoundRect(canvas, roundRect);
rect = OH_Drawing_RectCreate(DRAWING_NUMBER_200, DRAWING_NUMBER_200, DRAWING_NUMBER_100, DRAWING_NUMBER_100);
EXPECT_NE(rect, nullptr);
roundRect = OH_Drawing_RoundRectCreate(rect, 0.0f, 1.0f);
OH_Drawing_CanvasDrawRoundRect(canvas, roundRect);
rect = OH_Drawing_RectCreate(DRAWING_NUMBER_10, DRAWING_NUMBER_100, DRAWING_NUMBER_200, DRAWING_NUMBER_300);
EXPECT_NE(rect, nullptr);
roundRect = OH_Drawing_RoundRectCreate(rect, -1.0f, 1.0f);
OH_Drawing_CanvasDrawRoundRect(canvas, roundRect);
rect = OH_Drawing_RectCreate(DRAWING_NUMBER_10, DRAWING_NUMBER_100, DRAWING_NUMBER_200, DRAWING_NUMBER_300);
EXPECT_NE(rect, nullptr);
roundRect = OH_Drawing_RoundRectCreate(rect, 0.0f, -1.0f);
OH_Drawing_CanvasDrawRoundRect(canvas, roundRect);
OH_Drawing_CanvasDestroy(canvas);
OH_Drawing_RectDestroy(rect);
OH_Drawing_RoundRectDestroy(roundRect);
DrawingNativeCanvasPart3TestTearDown();
return OH_DRAWING_SUCCESS;
}
int TestCanvasDrawRoundRectMaximum()
{
DrawingNativeCanvasPart3TestSetUp();
OH_Drawing_Canvas *canvas = OH_Drawing_CanvasCreate();
EXPECT_NE(canvas, nullptr);
OH_Drawing_Rect *rect = OH_Drawing_RectCreate(FLT_MAX, DRAWING_NUMBER_100, DRAWING_NUMBER_200, DRAWING_NUMBER_300);
EXPECT_NE(rect, nullptr);
OH_Drawing_RoundRect *roundRect = OH_Drawing_RoundRectCreate(rect, 1.0f, 1.0f);
EXPECT_NE(roundRect, nullptr);
OH_Drawing_CanvasDrawRoundRect(canvas, roundRect);
rect = OH_Drawing_RectCreate(DRAWING_NUMBER_10, FLT_MAX, DRAWING_NUMBER_200, DRAWING_NUMBER_300);
EXPECT_NE(rect, nullptr);
roundRect = OH_Drawing_RoundRectCreate(rect, 1.0f, 1.0f);
OH_Drawing_CanvasDrawRoundRect(canvas, roundRect);
rect = OH_Drawing_RectCreate(DRAWING_NUMBER_10, DRAWING_NUMBER_100, FLT_MAX, DRAWING_NUMBER_300);
EXPECT_NE(rect, nullptr);
roundRect = OH_Drawing_RoundRectCreate(rect, 1.0f, 1.0f);
OH_Drawing_CanvasDrawRoundRect(canvas, roundRect);
rect = OH_Drawing_RectCreate(DRAWING_NUMBER_10, DRAWING_NUMBER_100, DRAWING_NUMBER_200, FLT_MAX);
EXPECT_NE(rect, nullptr);
roundRect = OH_Drawing_RoundRectCreate(rect, 1.0f, 1.0f);
OH_Drawing_CanvasDrawRoundRect(canvas, roundRect);
rect = OH_Drawing_RectCreate(DRAWING_NUMBER_10, DRAWING_NUMBER_100, DRAWING_NUMBER_200, DRAWING_NUMBER_300);
EXPECT_NE(rect, nullptr);
roundRect = OH_Drawing_RoundRectCreate(rect, FLT_MAX, 1.0f);
OH_Drawing_CanvasDrawRoundRect(canvas, roundRect);
rect = OH_Drawing_RectCreate(DRAWING_NUMBER_10, DRAWING_NUMBER_100, DRAWING_NUMBER_200, DRAWING_NUMBER_300);
EXPECT_NE(rect, nullptr);
roundRect = OH_Drawing_RoundRectCreate(rect, 1.0f, FLT_MAX);
OH_Drawing_CanvasDrawRoundRect(canvas, roundRect);
OH_Drawing_CanvasDestroy(canvas);
OH_Drawing_RectDestroy(rect);
OH_Drawing_RoundRectDestroy(roundRect);
DrawingNativeCanvasPart3TestTearDown();
return OH_DRAWING_SUCCESS;
}
int TestCanvasDrawRoundRectInputDestroyed()
{
DrawingNativeCanvasPart3TestSetUp();
DrawingNativeCanvasPart3TestTearDown();
return OH_DRAWING_SUCCESS;
}
int TestCanvasDrawTextBlobNormal()
{
DrawingNativeCanvasPart3TestSetUp();
OH_Drawing_Canvas *canvas = OH_Drawing_CanvasCreate();
EXPECT_NE(canvas, nullptr);
const char *str = "123456";
OH_Drawing_Font *font = OH_Drawing_FontCreate();
EXPECT_NE(font, nullptr);
OH_Drawing_TextBlob *textBlob =
OH_Drawing_TextBlobCreateFromText(str, strlen(str), font, OH_Drawing_TextEncoding::TEXT_ENCODING_UTF8);
EXPECT_NE(textBlob, nullptr);
OH_Drawing_CanvasDrawTextBlob(canvas, textBlob, DRAWING_NUMBER_10, DRAWING_NUMBER_10);
OH_Drawing_TextBlobDestroy(textBlob);
OH_Drawing_CanvasDestroy(canvas);
DrawingNativeCanvasPart3TestTearDown();
return OH_DRAWING_SUCCESS;
}
int TestCanvasDrawTextBlobNull()
{
DrawingNativeCanvasPart3TestSetUp();
OH_Drawing_Canvas *canvas = OH_Drawing_CanvasCreate();
EXPECT_NE(canvas, nullptr);
const char *str = "123456";
OH_Drawing_Font *font = OH_Drawing_FontCreate();
EXPECT_NE(font, nullptr);
OH_Drawing_TextBlob *textBlob =
OH_Drawing_TextBlobCreateFromText(str, strlen(str), font, OH_Drawing_TextEncoding::TEXT_ENCODING_UTF8);
EXPECT_NE(textBlob, nullptr);
OH_Drawing_CanvasDrawTextBlob(nullptr, textBlob, DRAWING_NUMBER_10, DRAWING_NUMBER_10);
EXPECT_EQ(OH_Drawing_ErrorCodeGet(), OH_Drawing_ErrorCode::OH_DRAWING_ERROR_INVALID_PARAMETER);
OH_Drawing_ErrorCodeReset();
OH_Drawing_CanvasDrawTextBlob(canvas, nullptr, DRAWING_NUMBER_10, DRAWING_NUMBER_10);
EXPECT_EQ(OH_Drawing_ErrorCodeGet(), OH_Drawing_ErrorCode::OH_DRAWING_ERROR_INVALID_PARAMETER);
OH_Drawing_CanvasDrawTextBlob(canvas, textBlob, 0, DRAWING_NUMBER_10);
OH_Drawing_CanvasDrawTextBlob(canvas, textBlob, DRAWING_NUMBER_10, 0);
OH_Drawing_TextBlobDestroy(textBlob);
OH_Drawing_CanvasDestroy(canvas);
DrawingNativeCanvasPart3TestTearDown();
return OH_DRAWING_SUCCESS;
}
int TestCanvasDrawTextBlobAbnormal()
{
DrawingNativeCanvasPart3TestSetUp();
OH_Drawing_Canvas *canvas = OH_Drawing_CanvasCreate();
EXPECT_NE(canvas, nullptr);
const char *str = "123456";
OH_Drawing_Font *font = OH_Drawing_FontCreate();
EXPECT_NE(font, nullptr);
OH_Drawing_TextBlob *textBlob =
OH_Drawing_TextBlobCreateFromText(str, strlen(str), font, OH_Drawing_TextEncoding::TEXT_ENCODING_UTF8);
EXPECT_NE(textBlob, nullptr);
OH_Drawing_CanvasDrawTextBlob(canvas, textBlob, -DRAWING_NUMBER_10, DRAWING_NUMBER_10);
OH_Drawing_CanvasDrawTextBlob(canvas, textBlob, DRAWING_NUMBER_10, -DRAWING_NUMBER_10);
OH_Drawing_TextBlobDestroy(textBlob);
OH_Drawing_CanvasDestroy(canvas);
DrawingNativeCanvasPart3TestTearDown();
return OH_DRAWING_SUCCESS;
}
int TestCanvasDrawTextBlobMaximum()
{
DrawingNativeCanvasPart3TestSetUp();
OH_Drawing_Canvas *canvas = OH_Drawing_CanvasCreate();
EXPECT_NE(canvas, nullptr);
const char *str = "123456";
OH_Drawing_Font *font = OH_Drawing_FontCreate();
EXPECT_NE(font, nullptr);
OH_Drawing_TextBlob *textBlob =
OH_Drawing_TextBlobCreateFromText(str, strlen(str), font, OH_Drawing_TextEncoding::TEXT_ENCODING_UTF8);
EXPECT_NE(textBlob, nullptr);
OH_Drawing_CanvasDrawTextBlob(canvas, textBlob, FLT_MAX, DRAWING_NUMBER_10);
OH_Drawing_CanvasDrawTextBlob(canvas, textBlob, DRAWING_NUMBER_10, FLT_MAX);
OH_Drawing_TextBlobDestroy(textBlob);
OH_Drawing_CanvasDestroy(canvas);
DrawingNativeCanvasPart3TestTearDown();
return OH_DRAWING_SUCCESS;
}
int TestCanvasDrawTextBlobInputDestroyed()
{
DrawingNativeCanvasPart3TestSetUp();
DrawingNativeCanvasPart3TestTearDown();
return OH_DRAWING_SUCCESS;
}
int TestCanvasClipRectNormal()
{
DrawingNativeCanvasPart3TestSetUp();
OH_Drawing_Canvas *canvas = OH_Drawing_CanvasCreate();
EXPECT_NE(canvas, nullptr);
OH_Drawing_Rect *rect =
OH_Drawing_RectCreate(DRAWING_NUMBER_10, DRAWING_NUMBER_10, DRAWING_NUMBER_100, DRAWING_NUMBER_100);
EXPECT_NE(rect, nullptr);
OH_Drawing_CanvasClipOp clipOp[] = {OH_Drawing_CanvasClipOp::DIFFERENCE, OH_Drawing_CanvasClipOp::INTERSECT};
bool doAntiAlias[] = {true, false};
for (int i = 0; i < sizeof(clipOp) / sizeof(clipOp[0]); i++) {
for (int j = 0; j < sizeof(clipOp) / sizeof(clipOp[0]); j++) {
OH_Drawing_ErrorCodeReset();
OH_Drawing_CanvasClipRect(canvas, rect, clipOp[i], doAntiAlias[j]);
EXPECT_EQ(OH_Drawing_ErrorCodeGet(), OH_Drawing_ErrorCode::OH_DRAWING_SUCCESS);
}
}
OH_Drawing_CanvasDestroy(canvas);
DrawingNativeCanvasPart3TestTearDown();
return OH_DRAWING_SUCCESS;
}
int TestCanvasClipRectNull()
{
DrawingNativeCanvasPart3TestSetUp();
OH_Drawing_Canvas *canvas = OH_Drawing_CanvasCreate();
EXPECT_NE(canvas, nullptr);
OH_Drawing_Rect *rect =
OH_Drawing_RectCreate(DRAWING_NUMBER_10, DRAWING_NUMBER_10, DRAWING_NUMBER_100, DRAWING_NUMBER_100);
EXPECT_NE(rect, nullptr);
OH_Drawing_CanvasClipRect(nullptr, rect, OH_Drawing_CanvasClipOp::DIFFERENCE, true);
EXPECT_EQ(OH_Drawing_ErrorCodeGet(), OH_Drawing_ErrorCode::OH_DRAWING_ERROR_INVALID_PARAMETER);
OH_Drawing_ErrorCodeReset();
OH_Drawing_Rect *rect2 = OH_Drawing_RectCreate(0, DRAWING_NUMBER_10, DRAWING_NUMBER_100, DRAWING_NUMBER_100);
EXPECT_NE(rect2, nullptr);
OH_Drawing_CanvasClipRect(canvas, rect2, OH_Drawing_CanvasClipOp::DIFFERENCE, true);
rect2 = OH_Drawing_RectCreate(DRAWING_NUMBER_10, 0, DRAWING_NUMBER_100, DRAWING_NUMBER_100);
EXPECT_NE(rect2, nullptr);
OH_Drawing_CanvasClipRect(canvas, rect2, OH_Drawing_CanvasClipOp::DIFFERENCE, true);
rect2 = OH_Drawing_RectCreate(DRAWING_NUMBER_10, DRAWING_NUMBER_10, 0, DRAWING_NUMBER_100);
EXPECT_NE(rect2, nullptr);
OH_Drawing_CanvasClipRect(canvas, rect2, OH_Drawing_CanvasClipOp::DIFFERENCE, true);
rect2 = OH_Drawing_RectCreate(DRAWING_NUMBER_10, DRAWING_NUMBER_10, DRAWING_NUMBER_100, 0);
EXPECT_NE(rect2, nullptr);
OH_Drawing_CanvasClipRect(canvas, rect2, OH_Drawing_CanvasClipOp::DIFFERENCE, true);
OH_Drawing_Rect *rect3 = OH_Drawing_RectCreate(0, 0, 0, 0);
EXPECT_NE(rect3, nullptr);
OH_Drawing_CanvasClipRect(canvas, rect3, OH_Drawing_CanvasClipOp::DIFFERENCE, true);
OH_Drawing_CanvasClipRect(canvas, nullptr, OH_Drawing_CanvasClipOp::DIFFERENCE, true);
EXPECT_EQ(OH_Drawing_ErrorCodeGet(), OH_Drawing_ErrorCode::OH_DRAWING_ERROR_INVALID_PARAMETER);
OH_Drawing_CanvasDestroy(canvas);
OH_Drawing_RectDestroy(rect);
OH_Drawing_RectDestroy(rect2);
OH_Drawing_RectDestroy(rect3);
DrawingNativeCanvasPart3TestTearDown();
return OH_DRAWING_SUCCESS;
}
int TestCanvasClipRectAbnormal()
{
DrawingNativeCanvasPart3TestSetUp();
OH_Drawing_Canvas *canvas = OH_Drawing_CanvasCreate();
EXPECT_NE(canvas, nullptr);
OH_Drawing_Rect *rect =
OH_Drawing_RectCreate(-DRAWING_NUMBER_10, DRAWING_NUMBER_10, DRAWING_NUMBER_100, DRAWING_NUMBER_100);
EXPECT_NE(rect, nullptr);
OH_Drawing_CanvasClipRect(canvas, rect, OH_Drawing_CanvasClipOp::DIFFERENCE, true);
rect = OH_Drawing_RectCreate(DRAWING_NUMBER_10, -DRAWING_NUMBER_10, DRAWING_NUMBER_100, DRAWING_NUMBER_100);
EXPECT_NE(rect, nullptr);
OH_Drawing_CanvasClipRect(canvas, rect, OH_Drawing_CanvasClipOp::DIFFERENCE, true);
rect = OH_Drawing_RectCreate(DRAWING_NUMBER_10, DRAWING_NUMBER_10, -DRAWING_NUMBER_100, DRAWING_NUMBER_100);
EXPECT_NE(rect, nullptr);
OH_Drawing_CanvasClipRect(canvas, rect, OH_Drawing_CanvasClipOp::DIFFERENCE, true);
rect = OH_Drawing_RectCreate(DRAWING_NUMBER_10, DRAWING_NUMBER_10, DRAWING_NUMBER_100, -DRAWING_NUMBER_100);
EXPECT_NE(rect, nullptr);
OH_Drawing_CanvasClipRect(canvas, rect, OH_Drawing_CanvasClipOp::DIFFERENCE, true);
rect = OH_Drawing_RectCreate(DRAWING_NUMBER_100, DRAWING_NUMBER_10, DRAWING_NUMBER_100, DRAWING_NUMBER_100);
EXPECT_NE(rect, nullptr);
OH_Drawing_CanvasClipRect(canvas, rect, OH_Drawing_CanvasClipOp::DIFFERENCE, true);
rect = OH_Drawing_RectCreate(DRAWING_NUMBER_10, DRAWING_NUMBER_100, DRAWING_NUMBER_100, DRAWING_NUMBER_100);
EXPECT_NE(rect, nullptr);
OH_Drawing_CanvasClipRect(canvas, rect, OH_Drawing_CanvasClipOp::DIFFERENCE, true);
rect = OH_Drawing_RectCreate(DRAWING_NUMBER_100, DRAWING_NUMBER_100, DRAWING_NUMBER_100, DRAWING_NUMBER_100);
EXPECT_NE(rect, nullptr);
OH_Drawing_CanvasClipRect(canvas, rect, OH_Drawing_CanvasClipOp::DIFFERENCE, true);
rect = OH_Drawing_RectCreate(DRAWING_NUMBER_200, DRAWING_NUMBER_200, DRAWING_NUMBER_100, DRAWING_NUMBER_100);
EXPECT_NE(rect, nullptr);
OH_Drawing_CanvasClipRect(canvas, rect, OH_Drawing_CanvasClipOp::DIFFERENCE, true);
OH_Drawing_CanvasDestroy(canvas);
OH_Drawing_RectDestroy(rect);
DrawingNativeCanvasPart3TestTearDown();
return OH_DRAWING_SUCCESS;
}
int TestCanvasClipRectMaximum()
{
DrawingNativeCanvasPart3TestSetUp();
OH_Drawing_Canvas *canvas = OH_Drawing_CanvasCreate();
EXPECT_NE(canvas, nullptr);
OH_Drawing_Rect *rect = OH_Drawing_RectCreate(FLT_MAX, DRAWING_NUMBER_10, DRAWING_NUMBER_100, DRAWING_NUMBER_100);
EXPECT_NE(rect, nullptr);
OH_Drawing_CanvasClipRect(canvas, rect, OH_Drawing_CanvasClipOp::DIFFERENCE, true);
rect = OH_Drawing_RectCreate(DRAWING_NUMBER_10, FLT_MAX, DRAWING_NUMBER_100, DRAWING_NUMBER_100);
EXPECT_NE(rect, nullptr);
OH_Drawing_CanvasClipRect(canvas, rect, OH_Drawing_CanvasClipOp::DIFFERENCE, true);
rect = OH_Drawing_RectCreate(DRAWING_NUMBER_10, DRAWING_NUMBER_10, FLT_MAX, DRAWING_NUMBER_100);
EXPECT_NE(rect, nullptr);
OH_Drawing_CanvasClipRect(canvas, rect, OH_Drawing_CanvasClipOp::DIFFERENCE, true);
rect = OH_Drawing_RectCreate(DRAWING_NUMBER_10, DRAWING_NUMBER_10, DRAWING_NUMBER_100, FLT_MAX);
EXPECT_NE(rect, nullptr);
OH_Drawing_CanvasClipRect(canvas, rect, OH_Drawing_CanvasClipOp::DIFFERENCE, true);
OH_Drawing_CanvasDestroy(canvas);
OH_Drawing_RectDestroy(rect);
DrawingNativeCanvasPart3TestTearDown();
return OH_DRAWING_SUCCESS;
}
int TestCanvasClipRectInputDestroyed()
{
DrawingNativeCanvasPart3TestSetUp();
DrawingNativeCanvasPart3TestTearDown();
return OH_DRAWING_SUCCESS;
}
int TestCanvasClipRoundRectNormal()
{
DrawingNativeCanvasPart3TestSetUp();
OH_Drawing_Canvas *canvas = OH_Drawing_CanvasCreate();
EXPECT_NE(canvas, nullptr);
OH_Drawing_Rect *rect =
OH_Drawing_RectCreate(DRAWING_NUMBER_10, DRAWING_NUMBER_10, DRAWING_NUMBER_100, DRAWING_NUMBER_100);
EXPECT_NE(rect, nullptr);
OH_Drawing_RoundRect *roundRect = OH_Drawing_RoundRectCreate(rect, DRAWING_NUMBER_10, DRAWING_NUMBER_10);
EXPECT_NE(roundRect, nullptr);
OH_Drawing_CanvasClipOp clipOp[] = {OH_Drawing_CanvasClipOp::DIFFERENCE, OH_Drawing_CanvasClipOp::INTERSECT};
bool doAntiAlias[] = {true, false};
for (int i = 0; i < sizeof(clipOp) / sizeof(clipOp[0]); i++) {
for (int j = 0; j < sizeof(clipOp) / sizeof(clipOp[0]); j++) {
OH_Drawing_ErrorCodeReset();
OH_Drawing_CanvasClipRoundRect(canvas, roundRect, clipOp[i], doAntiAlias[j]);
EXPECT_EQ(OH_Drawing_ErrorCodeGet(), OH_Drawing_ErrorCode::OH_DRAWING_SUCCESS);
}
}
OH_Drawing_CanvasDestroy(canvas);
OH_Drawing_RectDestroy(rect);
DrawingNativeCanvasPart3TestTearDown();
return OH_DRAWING_SUCCESS;
}
void CanvasClipRoundRectNull(OH_Drawing_Canvas *canvas)
{
OH_Drawing_Rect *rect2 = OH_Drawing_RectCreate(0, DRAWING_NUMBER_10, DRAWING_NUMBER_100, DRAWING_NUMBER_100);
EXPECT_NE(rect2, nullptr);
OH_Drawing_RoundRect *roundRect2 = OH_Drawing_RoundRectCreate(rect2, DRAWING_NUMBER_10, DRAWING_NUMBER_10);
EXPECT_NE(roundRect2, nullptr);
OH_Drawing_CanvasClipRoundRect(canvas, roundRect2, OH_Drawing_CanvasClipOp::DIFFERENCE, true);
rect2 = OH_Drawing_RectCreate(DRAWING_NUMBER_10, 0, DRAWING_NUMBER_100, DRAWING_NUMBER_100);
EXPECT_NE(rect2, nullptr);
roundRect2 = OH_Drawing_RoundRectCreate(rect2, DRAWING_NUMBER_10, DRAWING_NUMBER_10);
EXPECT_NE(roundRect2, nullptr);
OH_Drawing_CanvasClipRoundRect(canvas, roundRect2, OH_Drawing_CanvasClipOp::DIFFERENCE, true);
rect2 = OH_Drawing_RectCreate(DRAWING_NUMBER_10, DRAWING_NUMBER_10, 0, DRAWING_NUMBER_100);
EXPECT_NE(rect2, nullptr);
roundRect2 = OH_Drawing_RoundRectCreate(rect2, DRAWING_NUMBER_10, DRAWING_NUMBER_10);
EXPECT_NE(roundRect2, nullptr);
OH_Drawing_CanvasClipRoundRect(canvas, roundRect2, OH_Drawing_CanvasClipOp::DIFFERENCE, true);
rect2 = OH_Drawing_RectCreate(DRAWING_NUMBER_10, DRAWING_NUMBER_10, DRAWING_NUMBER_100, 0);
EXPECT_NE(rect2, nullptr);
roundRect2 = OH_Drawing_RoundRectCreate(rect2, DRAWING_NUMBER_10, DRAWING_NUMBER_10);
EXPECT_NE(roundRect2, nullptr);
OH_Drawing_CanvasClipRoundRect(canvas, roundRect2, OH_Drawing_CanvasClipOp::DIFFERENCE, true);
rect2 = OH_Drawing_RectCreate(0, 0, 0, 0);
EXPECT_NE(rect2, nullptr);
roundRect2 = OH_Drawing_RoundRectCreate(rect2, DRAWING_NUMBER_10, DRAWING_NUMBER_10);
EXPECT_NE(roundRect2, nullptr);
OH_Drawing_CanvasClipRoundRect(canvas, roundRect2, OH_Drawing_CanvasClipOp::DIFFERENCE, true);
rect2 = OH_Drawing_RectCreate(DRAWING_NUMBER_10, DRAWING_NUMBER_10, DRAWING_NUMBER_100, DRAWING_NUMBER_100);
EXPECT_NE(rect2, nullptr);
roundRect2 = OH_Drawing_RoundRectCreate(rect2, 0, DRAWING_NUMBER_10);
EXPECT_NE(roundRect2, nullptr);
OH_Drawing_CanvasClipRoundRect(canvas, roundRect2, OH_Drawing_CanvasClipOp::DIFFERENCE, true);
rect2 = OH_Drawing_RectCreate(DRAWING_NUMBER_10, DRAWING_NUMBER_10, DRAWING_NUMBER_100, DRAWING_NUMBER_100);
EXPECT_NE(rect2, nullptr);
roundRect2 = OH_Drawing_RoundRectCreate(rect2, DRAWING_NUMBER_10, 0);
EXPECT_NE(roundRect2, nullptr);
OH_Drawing_CanvasClipRoundRect(canvas, roundRect2, OH_Drawing_CanvasClipOp::DIFFERENCE, true);
OH_Drawing_RectDestroy(rect2);
OH_Drawing_RoundRectDestroy(roundRect2);
}
int TestCanvasClipRoundRectNull()
{
DrawingNativeCanvasPart3TestSetUp();
OH_Drawing_Canvas *canvas = OH_Drawing_CanvasCreate();
EXPECT_NE(canvas, nullptr);
OH_Drawing_Rect *rect =
OH_Drawing_RectCreate(DRAWING_NUMBER_10, DRAWING_NUMBER_10, DRAWING_NUMBER_100, DRAWING_NUMBER_100);
EXPECT_NE(rect, nullptr);
OH_Drawing_RoundRect *roundRect = OH_Drawing_RoundRectCreate(rect, DRAWING_NUMBER_10, DRAWING_NUMBER_10);
EXPECT_NE(roundRect, nullptr);
OH_Drawing_CanvasClipRoundRect(nullptr, roundRect, OH_Drawing_CanvasClipOp::DIFFERENCE, true);
EXPECT_EQ(OH_Drawing_ErrorCodeGet(), OH_Drawing_ErrorCode::OH_DRAWING_ERROR_INVALID_PARAMETER);
OH_Drawing_ErrorCodeReset();
OH_Drawing_CanvasClipRoundRect(canvas, nullptr, OH_Drawing_CanvasClipOp::DIFFERENCE, true);
EXPECT_EQ(OH_Drawing_ErrorCodeGet(), OH_Drawing_ErrorCode::OH_DRAWING_ERROR_INVALID_PARAMETER);
CanvasClipRoundRectNull(canvas);
OH_Drawing_CanvasDestroy(canvas);
OH_Drawing_RectDestroy(rect);
OH_Drawing_RoundRectDestroy(roundRect);
DrawingNativeCanvasPart3TestTearDown();
return OH_DRAWING_SUCCESS;
}
void CanvasClipRoundRectAbnormal(OH_Drawing_Canvas *canvas, OH_Drawing_Rect *rect, OH_Drawing_RoundRect *roundRect)
{
rect = OH_Drawing_RectCreate(-DRAWING_NUMBER_10, DRAWING_NUMBER_10, DRAWING_NUMBER_100, DRAWING_NUMBER_100);
EXPECT_NE(rect, nullptr);
roundRect = OH_Drawing_RoundRectCreate(rect, DRAWING_NUMBER_10, DRAWING_NUMBER_10);
EXPECT_NE(roundRect, nullptr);
OH_Drawing_CanvasClipRoundRect(canvas, roundRect, OH_Drawing_CanvasClipOp::DIFFERENCE, true);
rect = OH_Drawing_RectCreate(DRAWING_NUMBER_10, -DRAWING_NUMBER_10, DRAWING_NUMBER_100, DRAWING_NUMBER_100);
EXPECT_NE(rect, nullptr);
roundRect = OH_Drawing_RoundRectCreate(rect, DRAWING_NUMBER_10, DRAWING_NUMBER_10);
EXPECT_NE(roundRect, nullptr);
OH_Drawing_CanvasClipRoundRect(canvas, roundRect, OH_Drawing_CanvasClipOp::DIFFERENCE, true);
rect = OH_Drawing_RectCreate(DRAWING_NUMBER_10, DRAWING_NUMBER_10, -DRAWING_NUMBER_100, DRAWING_NUMBER_100);
EXPECT_NE(rect, nullptr);
roundRect = OH_Drawing_RoundRectCreate(rect, DRAWING_NUMBER_10, DRAWING_NUMBER_10);
EXPECT_NE(roundRect, nullptr);
OH_Drawing_CanvasClipRoundRect(canvas, roundRect, OH_Drawing_CanvasClipOp::DIFFERENCE, true);
rect = OH_Drawing_RectCreate(DRAWING_NUMBER_10, DRAWING_NUMBER_10, DRAWING_NUMBER_100, -DRAWING_NUMBER_100);
EXPECT_NE(rect, nullptr);
roundRect = OH_Drawing_RoundRectCreate(rect, DRAWING_NUMBER_10, DRAWING_NUMBER_10);
EXPECT_NE(roundRect, nullptr);
OH_Drawing_CanvasClipRoundRect(canvas, roundRect, OH_Drawing_CanvasClipOp::DIFFERENCE, true);
rect = OH_Drawing_RectCreate(DRAWING_NUMBER_100, DRAWING_NUMBER_10, DRAWING_NUMBER_100, DRAWING_NUMBER_100);
EXPECT_NE(rect, nullptr);
roundRect = OH_Drawing_RoundRectCreate(rect, DRAWING_NUMBER_10, DRAWING_NUMBER_10);
EXPECT_NE(roundRect, nullptr);
OH_Drawing_CanvasClipRoundRect(canvas, roundRect, OH_Drawing_CanvasClipOp::DIFFERENCE, true);
rect = OH_Drawing_RectCreate(DRAWING_NUMBER_10, DRAWING_NUMBER_100, DRAWING_NUMBER_100, DRAWING_NUMBER_100);
EXPECT_NE(rect, nullptr);
roundRect = OH_Drawing_RoundRectCreate(rect, DRAWING_NUMBER_10, DRAWING_NUMBER_10);
EXPECT_NE(roundRect, nullptr);
OH_Drawing_CanvasClipRoundRect(canvas, roundRect, OH_Drawing_CanvasClipOp::DIFFERENCE, true);
}
int TestCanvasClipRoundRectAbnormal()
{
DrawingNativeCanvasPart3TestSetUp();
OH_Drawing_Canvas *canvas = OH_Drawing_CanvasCreate();
EXPECT_NE(canvas, nullptr);
OH_Drawing_Rect *rect = nullptr;
OH_Drawing_RoundRect *roundRect = nullptr;
CanvasClipRoundRectAbnormal(canvas, rect, roundRect);
rect = OH_Drawing_RectCreate(DRAWING_NUMBER_100, DRAWING_NUMBER_100, DRAWING_NUMBER_100, DRAWING_NUMBER_100);
EXPECT_NE(rect, nullptr);
roundRect = OH_Drawing_RoundRectCreate(rect, DRAWING_NUMBER_10, DRAWING_NUMBER_10);
EXPECT_NE(roundRect, nullptr);
OH_Drawing_CanvasClipRoundRect(canvas, roundRect, OH_Drawing_CanvasClipOp::DIFFERENCE, true);
rect = OH_Drawing_RectCreate(DRAWING_NUMBER_200, DRAWING_NUMBER_200, DRAWING_NUMBER_100, DRAWING_NUMBER_100);
EXPECT_NE(rect, nullptr);
roundRect = OH_Drawing_RoundRectCreate(rect, DRAWING_NUMBER_10, DRAWING_NUMBER_10);
EXPECT_NE(roundRect, nullptr);
OH_Drawing_CanvasClipRoundRect(canvas, roundRect, OH_Drawing_CanvasClipOp::DIFFERENCE, true);
rect = OH_Drawing_RectCreate(DRAWING_NUMBER_10, DRAWING_NUMBER_10, DRAWING_NUMBER_100, DRAWING_NUMBER_100);
EXPECT_NE(rect, nullptr);
roundRect = OH_Drawing_RoundRectCreate(rect, -DRAWING_NUMBER_10, DRAWING_NUMBER_10);
EXPECT_NE(roundRect, nullptr);
OH_Drawing_CanvasClipRoundRect(canvas, roundRect, OH_Drawing_CanvasClipOp::DIFFERENCE, true);
rect = OH_Drawing_RectCreate(DRAWING_NUMBER_10, DRAWING_NUMBER_10, DRAWING_NUMBER_100, DRAWING_NUMBER_100);
EXPECT_NE(rect, nullptr);
roundRect = OH_Drawing_RoundRectCreate(rect, DRAWING_NUMBER_10, -DRAWING_NUMBER_10);
EXPECT_NE(roundRect, nullptr);
OH_Drawing_CanvasClipRoundRect(canvas, roundRect, OH_Drawing_CanvasClipOp::DIFFERENCE, true);
OH_Drawing_CanvasDestroy(canvas);
OH_Drawing_RectDestroy(rect);
OH_Drawing_RoundRectDestroy(roundRect);
DrawingNativeCanvasPart3TestTearDown();
return OH_DRAWING_SUCCESS;
}
int TestCanvasClipRoundRectMaximum()
{
DrawingNativeCanvasPart3TestSetUp();
OH_Drawing_Canvas *canvas = OH_Drawing_CanvasCreate();
EXPECT_NE(canvas, nullptr);
OH_Drawing_Rect *rect = OH_Drawing_RectCreate(FLT_MAX, DRAWING_NUMBER_10, DRAWING_NUMBER_100, DRAWING_NUMBER_100);
EXPECT_NE(rect, nullptr);
OH_Drawing_RoundRect *roundRect = OH_Drawing_RoundRectCreate(rect, DRAWING_NUMBER_10, DRAWING_NUMBER_10);
EXPECT_NE(roundRect, nullptr);
OH_Drawing_CanvasClipRoundRect(canvas, roundRect, OH_Drawing_CanvasClipOp::DIFFERENCE, true);
rect = OH_Drawing_RectCreate(DRAWING_NUMBER_10, FLT_MAX, DRAWING_NUMBER_100, DRAWING_NUMBER_100);
EXPECT_NE(rect, nullptr);
roundRect = OH_Drawing_RoundRectCreate(rect, DRAWING_NUMBER_10, DRAWING_NUMBER_10);
EXPECT_NE(roundRect, nullptr);
OH_Drawing_CanvasClipRoundRect(canvas, roundRect, OH_Drawing_CanvasClipOp::DIFFERENCE, true);
rect = OH_Drawing_RectCreate(DRAWING_NUMBER_10, DRAWING_NUMBER_10, FLT_MAX, DRAWING_NUMBER_100);
EXPECT_NE(rect, nullptr);
roundRect = OH_Drawing_RoundRectCreate(rect, DRAWING_NUMBER_10, DRAWING_NUMBER_10);
EXPECT_NE(roundRect, nullptr);
OH_Drawing_CanvasClipRoundRect(canvas, roundRect, OH_Drawing_CanvasClipOp::DIFFERENCE, true);
rect = OH_Drawing_RectCreate(DRAWING_NUMBER_10, DRAWING_NUMBER_10, DRAWING_NUMBER_100, FLT_MAX);
EXPECT_NE(rect, nullptr);
roundRect = OH_Drawing_RoundRectCreate(rect, DRAWING_NUMBER_10, DRAWING_NUMBER_10);
EXPECT_NE(roundRect, nullptr);
OH_Drawing_CanvasClipRoundRect(canvas, roundRect, OH_Drawing_CanvasClipOp::DIFFERENCE, true);
rect = OH_Drawing_RectCreate(DRAWING_NUMBER_10, DRAWING_NUMBER_10, DRAWING_NUMBER_100, DRAWING_NUMBER_100);
EXPECT_NE(rect, nullptr);
roundRect = OH_Drawing_RoundRectCreate(rect, FLT_MAX, DRAWING_NUMBER_10);
EXPECT_NE(roundRect, nullptr);
OH_Drawing_CanvasClipRoundRect(canvas, roundRect, OH_Drawing_CanvasClipOp::DIFFERENCE, true);
rect = OH_Drawing_RectCreate(DRAWING_NUMBER_10, DRAWING_NUMBER_10, DRAWING_NUMBER_100, DRAWING_NUMBER_100);
EXPECT_NE(rect, nullptr);
roundRect = OH_Drawing_RoundRectCreate(rect, DRAWING_NUMBER_10, FLT_MAX);
EXPECT_NE(roundRect, nullptr);
OH_Drawing_CanvasClipRoundRect(canvas, roundRect, OH_Drawing_CanvasClipOp::DIFFERENCE, true);
OH_Drawing_CanvasDestroy(canvas);
OH_Drawing_RectDestroy(rect);
OH_Drawing_RoundRectDestroy(roundRect);
DrawingNativeCanvasPart3TestTearDown();
return OH_DRAWING_SUCCESS;
}
int TestCanvasClipRoundRectInputDestroyed()
{
DrawingNativeCanvasPart3TestSetUp();
DrawingNativeCanvasPart3TestTearDown();
return OH_DRAWING_SUCCESS;
}
int TestCanvasClipPathNormal()
{
DrawingNativeCanvasPart3TestSetUp();
OH_Drawing_Canvas *canvas = OH_Drawing_CanvasCreate();
EXPECT_NE(canvas, nullptr);
OH_Drawing_Path *path = OH_Drawing_PathCreate();
EXPECT_NE(path, nullptr);
OH_Drawing_PathMoveTo(path, 0, 0);
OH_Drawing_PathLineTo(path, DRAWING_NUMBER_100, 0);
OH_Drawing_PathLineTo(path, DRAWING_NUMBER_100, DRAWING_NUMBER_100);
OH_Drawing_PathLineTo(path, 0, DRAWING_NUMBER_100);
OH_Drawing_PathClose(path);
OH_Drawing_PathAddRect(path, DRAWING_NUMBER_10, DRAWING_NUMBER_10, DRAWING_NUMBER_100, DRAWING_NUMBER_100,
OH_Drawing_PathDirection::PATH_DIRECTION_CW);
OH_Drawing_CanvasClipOp clipOp[] = {OH_Drawing_CanvasClipOp::DIFFERENCE, OH_Drawing_CanvasClipOp::INTERSECT};
bool doAntiAlias[] = {true, false};
for (int i = 0; i < sizeof(clipOp) / sizeof(clipOp[0]); i++) {
for (int j = 0; j < sizeof(clipOp) / sizeof(clipOp[0]); j++) {
OH_Drawing_ErrorCodeReset();
OH_Drawing_CanvasClipPath(canvas, path, clipOp[i], doAntiAlias[j]);
EXPECT_EQ(OH_Drawing_ErrorCodeGet(), OH_Drawing_ErrorCode::OH_DRAWING_SUCCESS);
}
}
OH_Drawing_PathDestroy(path);
OH_Drawing_CanvasDestroy(canvas);
DrawingNativeCanvasPart3TestTearDown();
return OH_DRAWING_SUCCESS;
}
int TestCanvasClipPathNull()
{
DrawingNativeCanvasPart3TestSetUp();
OH_Drawing_Canvas *canvas = OH_Drawing_CanvasCreate();
EXPECT_NE(canvas, nullptr);
OH_Drawing_Path *path = OH_Drawing_PathCreate();
EXPECT_NE(path, nullptr);
OH_Drawing_PathMoveTo(path, 0, 0);
OH_Drawing_PathLineTo(path, DRAWING_NUMBER_100, 0);
OH_Drawing_PathLineTo(path, DRAWING_NUMBER_100, DRAWING_NUMBER_100);
OH_Drawing_PathLineTo(path, 0, DRAWING_NUMBER_100);
OH_Drawing_PathClose(path);
OH_Drawing_PathAddRect(path, DRAWING_NUMBER_10, DRAWING_NUMBER_10, DRAWING_NUMBER_100, DRAWING_NUMBER_100,
OH_Drawing_PathDirection::PATH_DIRECTION_CW);
OH_Drawing_CanvasClipPath(nullptr, path, OH_Drawing_CanvasClipOp::DIFFERENCE, true);
EXPECT_EQ(OH_Drawing_ErrorCodeGet(), OH_Drawing_ErrorCode::OH_DRAWING_ERROR_INVALID_PARAMETER);
OH_Drawing_ErrorCodeReset();
OH_Drawing_CanvasClipPath(canvas, nullptr, OH_Drawing_CanvasClipOp::DIFFERENCE, true);
EXPECT_EQ(OH_Drawing_ErrorCodeGet(), OH_Drawing_ErrorCode::OH_DRAWING_ERROR_INVALID_PARAMETER);
OH_Drawing_Path *path2 = OH_Drawing_PathCreate();
EXPECT_NE(path2, nullptr);
OH_Drawing_CanvasClipPath(canvas, path2, OH_Drawing_CanvasClipOp::DIFFERENCE, true);
OH_Drawing_PathDestroy(path);
OH_Drawing_PathDestroy(path2);
OH_Drawing_CanvasDestroy(canvas);
DrawingNativeCanvasPart3TestTearDown();
return OH_DRAWING_SUCCESS;
}
int TestCanvasClipPathInputDestroyed()
{
DrawingNativeCanvasPart3TestSetUp();
DrawingNativeCanvasPart3TestTearDown();
return OH_DRAWING_SUCCESS;
}
int TestCanvasRotateNormal()
{
DrawingNativeCanvasPart3TestSetUp();
OH_Drawing_Canvas *canvas = OH_Drawing_CanvasCreate();
EXPECT_NE(canvas, nullptr);
float degrees[] = {0, DRAWING_NUMBER_180, 360};
for (int i = 0; i < sizeof(degrees) / sizeof(degrees[0]); i++) {
OH_Drawing_ErrorCodeReset();
OH_Drawing_CanvasRotate(canvas, degrees[i], DRAWING_NUMBER_10, DRAWING_NUMBER_10);
EXPECT_EQ(OH_Drawing_ErrorCodeGet(), OH_Drawing_ErrorCode::OH_DRAWING_SUCCESS);
}
OH_Drawing_Rect *rect =
OH_Drawing_RectCreate(DRAWING_NUMBER_10, DRAWING_NUMBER_10, DRAWING_NUMBER_100, DRAWING_NUMBER_100);
EXPECT_NE(rect, nullptr);
OH_Drawing_CanvasDrawRect(canvas, rect);
OH_Drawing_CanvasDestroy(canvas);
DrawingNativeCanvasPart3TestTearDown();
return OH_DRAWING_SUCCESS;
}
int TestCanvasRotateNull()
{
DrawingNativeCanvasPart3TestSetUp();
OH_Drawing_Canvas *canvas = OH_Drawing_CanvasCreate();
EXPECT_NE(canvas, nullptr);
OH_Drawing_CanvasRotate(nullptr, 0, DRAWING_NUMBER_10, DRAWING_NUMBER_10);
EXPECT_EQ(OH_Drawing_ErrorCodeGet(), OH_Drawing_ErrorCode::OH_DRAWING_ERROR_INVALID_PARAMETER);
OH_Drawing_CanvasRotate(canvas, 0, 0, DRAWING_NUMBER_10);
OH_Drawing_CanvasRotate(canvas, 0, DRAWING_NUMBER_10, 0);
OH_Drawing_CanvasDestroy(canvas);
DrawingNativeCanvasPart3TestTearDown();
return OH_DRAWING_SUCCESS;
}
int TestCanvasRotateAbnormal()
{
DrawingNativeCanvasPart3TestSetUp();
OH_Drawing_Canvas *canvas = OH_Drawing_CanvasCreate();
EXPECT_NE(canvas, nullptr);
OH_Drawing_CanvasRotate(canvas, -DRAWING_NUMBER_180, DRAWING_NUMBER_10, DRAWING_NUMBER_10);
OH_Drawing_CanvasRotate(canvas, DRAWING_NUMBER_370, DRAWING_NUMBER_10, DRAWING_NUMBER_10);
OH_Drawing_CanvasRotate(canvas, DRAWING_NUMBER_180, -DRAWING_NUMBER_10, DRAWING_NUMBER_10);
OH_Drawing_CanvasRotate(canvas, DRAWING_NUMBER_180, DRAWING_NUMBER_10, -DRAWING_NUMBER_10);
OH_Drawing_CanvasDestroy(canvas);
DrawingNativeCanvasPart3TestTearDown();
return OH_DRAWING_SUCCESS;
}
int TestCanvasRotateMaximum()
{
DrawingNativeCanvasPart3TestSetUp();
OH_Drawing_Canvas *canvas = OH_Drawing_CanvasCreate();
EXPECT_NE(canvas, nullptr);
OH_Drawing_CanvasRotate(canvas, FLT_MAX, DRAWING_NUMBER_10, DRAWING_NUMBER_10);
OH_Drawing_CanvasRotate(canvas, DRAWING_NUMBER_180, FLT_MAX, DRAWING_NUMBER_10);
OH_Drawing_CanvasRotate(canvas, DRAWING_NUMBER_180, DRAWING_NUMBER_10, FLT_MAX);
OH_Drawing_CanvasDestroy(canvas);
DrawingNativeCanvasPart3TestTearDown();
return OH_DRAWING_SUCCESS;
}
int TestCanvasRotateInputDestroyed()
{
DrawingNativeCanvasPart3TestSetUp();
DrawingNativeCanvasPart3TestTearDown();
return OH_DRAWING_SUCCESS;
}
int TestCanvasRotateMultipleCalls()
{
DrawingNativeCanvasPart3TestSetUp();
OH_Drawing_Canvas *canvas = OH_Drawing_CanvasCreate();
EXPECT_NE(canvas, nullptr);
for (int i = 0; i < DRAWING_NUMBER_10; i++) {
OH_Drawing_CanvasRotate(canvas, i * DRAWING_NUMBER_10, i * DRAWING_NUMBER_10, i * DRAWING_NUMBER_10);
OH_Drawing_Rect *rect =
OH_Drawing_RectCreate(DRAWING_NUMBER_10, DRAWING_NUMBER_10, DRAWING_NUMBER_100, DRAWING_NUMBER_100);
EXPECT_NE(rect, nullptr);
OH_Drawing_CanvasDrawRect(canvas, rect);
OH_Drawing_RectDestroy(rect);
}
OH_Drawing_CanvasDestroy(canvas);
DrawingNativeCanvasPart3TestTearDown();
return OH_DRAWING_SUCCESS;
}
int TestCanvasTranslateNormal()
{
DrawingNativeCanvasPart3TestSetUp();
OH_Drawing_Canvas *canvas = OH_Drawing_CanvasCreate();
EXPECT_NE(canvas, nullptr);
OH_Drawing_CanvasTranslate(canvas, DRAWING_NUMBER_10, DRAWING_NUMBER_10);
EXPECT_EQ(OH_Drawing_ErrorCodeGet(), OH_Drawing_ErrorCode::OH_DRAWING_SUCCESS);
OH_Drawing_Rect *rect =
OH_Drawing_RectCreate(DRAWING_NUMBER_10, DRAWING_NUMBER_10, DRAWING_NUMBER_100, DRAWING_NUMBER_100);
EXPECT_NE(rect, nullptr);
OH_Drawing_CanvasDrawRect(canvas, rect);
OH_Drawing_RectDestroy(rect);
OH_Drawing_CanvasDestroy(canvas);
DrawingNativeCanvasPart3TestTearDown();
return OH_DRAWING_SUCCESS;
}
int TestCanvasTranslateNull()
{
DrawingNativeCanvasPart3TestSetUp();
OH_Drawing_Canvas *canvas = OH_Drawing_CanvasCreate();
EXPECT_NE(canvas, nullptr);
OH_Drawing_CanvasTranslate(nullptr, DRAWING_NUMBER_10, DRAWING_NUMBER_10);
EXPECT_EQ(OH_Drawing_ErrorCodeGet(), OH_Drawing_ErrorCode::OH_DRAWING_ERROR_INVALID_PARAMETER);
OH_Drawing_CanvasTranslate(canvas, 0, DRAWING_NUMBER_10);
OH_Drawing_CanvasTranslate(canvas, DRAWING_NUMBER_10, 0);
OH_Drawing_CanvasDestroy(canvas);
DrawingNativeCanvasPart3TestTearDown();
return OH_DRAWING_SUCCESS;
}
int TestCanvasTranslateAbnormal()
{
DrawingNativeCanvasPart3TestSetUp();
OH_Drawing_Canvas *canvas = OH_Drawing_CanvasCreate();
EXPECT_NE(canvas, nullptr);
OH_Drawing_CanvasTranslate(canvas, -DRAWING_NUMBER_10, DRAWING_NUMBER_10);
OH_Drawing_CanvasTranslate(canvas, DRAWING_NUMBER_10, -DRAWING_NUMBER_10);
OH_Drawing_CanvasDestroy(canvas);
DrawingNativeCanvasPart3TestTearDown();
return OH_DRAWING_SUCCESS;
}
int TestCanvasTranslateMaximum()
{
DrawingNativeCanvasPart3TestSetUp();
OH_Drawing_Canvas *canvas = OH_Drawing_CanvasCreate();
EXPECT_NE(canvas, nullptr);
OH_Drawing_CanvasTranslate(canvas, FLT_MAX, DRAWING_NUMBER_10);
OH_Drawing_CanvasTranslate(canvas, DRAWING_NUMBER_10, FLT_MAX);
OH_Drawing_CanvasDestroy(canvas);
DrawingNativeCanvasPart3TestTearDown();
return OH_DRAWING_SUCCESS;
}
int TestCanvasTranslateInputDestroyed()
{
DrawingNativeCanvasPart3TestSetUp();
DrawingNativeCanvasPart3TestTearDown();
return OH_DRAWING_SUCCESS;
}
int TestCanvasTranslateMultipleCalls()
{
DrawingNativeCanvasPart3TestSetUp();
OH_Drawing_Canvas *canvas = OH_Drawing_CanvasCreate();
EXPECT_NE(canvas, nullptr);
for (int i = 0; i < DRAWING_NUMBER_10; i++) {
OH_Drawing_CanvasTranslate(canvas, i * DRAWING_NUMBER_10, i * DRAWING_NUMBER_10);
OH_Drawing_Rect *rect =
OH_Drawing_RectCreate(DRAWING_NUMBER_10, DRAWING_NUMBER_10, DRAWING_NUMBER_100, DRAWING_NUMBER_100);
EXPECT_NE(rect, nullptr);
OH_Drawing_CanvasDrawRect(canvas, rect);
OH_Drawing_RectDestroy(rect);
}
OH_Drawing_CanvasDestroy(canvas);
DrawingNativeCanvasPart3TestTearDown();
return OH_DRAWING_SUCCESS;
}
int TestCanvasScaleNormal()
{
DrawingNativeCanvasPart3TestSetUp();
OH_Drawing_Canvas *canvas = OH_Drawing_CanvasCreate();
EXPECT_NE(canvas, nullptr);
OH_Drawing_CanvasScale(canvas, 2.0f, 2.0f);
OH_Drawing_Rect *rect =
OH_Drawing_RectCreate(DRAWING_NUMBER_10, DRAWING_NUMBER_10, DRAWING_NUMBER_100, DRAWING_NUMBER_100);
EXPECT_NE(rect, nullptr);
OH_Drawing_CanvasDrawRect(canvas, rect);
OH_Drawing_RectDestroy(rect);
OH_Drawing_CanvasDestroy(canvas);
DrawingNativeCanvasPart3TestTearDown();
return OH_DRAWING_SUCCESS;
}
int TestCanvasScaleNull()
{
DrawingNativeCanvasPart3TestSetUp();
OH_Drawing_Canvas *canvas = OH_Drawing_CanvasCreate();
EXPECT_NE(canvas, nullptr);
OH_Drawing_CanvasScale(nullptr, 2.0f, 2.0f);
EXPECT_EQ(OH_Drawing_ErrorCodeGet(), OH_Drawing_ErrorCode::OH_DRAWING_ERROR_INVALID_PARAMETER);
OH_Drawing_CanvasScale(canvas, 0, 2.0f);
OH_Drawing_CanvasScale(canvas, 2.0f, 0);
OH_Drawing_CanvasDestroy(canvas);
DrawingNativeCanvasPart3TestTearDown();
return OH_DRAWING_SUCCESS;
}
int TestCanvasScaleAbnormal()
{
DrawingNativeCanvasPart3TestSetUp();
OH_Drawing_Canvas *canvas = OH_Drawing_CanvasCreate();
EXPECT_NE(canvas, nullptr);
OH_Drawing_CanvasScale(canvas, -2.0f, 2.0f);
OH_Drawing_CanvasScale(canvas, 2.0f, -2.0f);
OH_Drawing_CanvasDestroy(canvas);
DrawingNativeCanvasPart3TestTearDown();
return OH_DRAWING_SUCCESS;
}
int TestCanvasScaleMaximum()
{
DrawingNativeCanvasPart3TestSetUp();
OH_Drawing_Canvas *canvas = OH_Drawing_CanvasCreate();
EXPECT_NE(canvas, nullptr);
OH_Drawing_CanvasScale(canvas, DBL_MAX, 2.0f);
OH_Drawing_CanvasScale(canvas, 2.0f, DBL_MAX);
OH_Drawing_CanvasDestroy(canvas);
DrawingNativeCanvasPart3TestTearDown();
return OH_DRAWING_SUCCESS;
}
int TestCanvasScaleInputDestroyed()
{
DrawingNativeCanvasPart3TestSetUp();
DrawingNativeCanvasPart3TestTearDown();
return OH_DRAWING_SUCCESS;
}
int TestCanvasScaleMultipleCalls()
{
DrawingNativeCanvasPart3TestSetUp();
OH_Drawing_Canvas *canvas = OH_Drawing_CanvasCreate();
EXPECT_NE(canvas, nullptr);
for (int i = DRAWING_NUMBER_1; i <= DRAWING_NUMBER_10; i++) {
OH_Drawing_CanvasScale(canvas, i * 1.0f, i * 1.0f);
}
OH_Drawing_Rect *rect =
OH_Drawing_RectCreate(DRAWING_NUMBER_10, DRAWING_NUMBER_10, DRAWING_NUMBER_100, DRAWING_NUMBER_100);
EXPECT_NE(rect, nullptr);
OH_Drawing_CanvasDrawRect(canvas, rect);
OH_Drawing_RectDestroy(rect);
OH_Drawing_CanvasDestroy(canvas);
DrawingNativeCanvasPart3TestTearDown();
return OH_DRAWING_SUCCESS;
}
}
}
}