1 /*
2 * Copyright (c) 2022 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 * http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, Hardware
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15
16 #include <gtest/gtest.h>
17 #include <test_header.h>
18
19 #include "frame_collector.h"
20 #include "frame_painter.h"
21 #include "include/core/SkBitmap.h"
22 #include "include/core/SkCanvas.h"
23
24 using namespace testing;
25 using namespace testing::ext;
26
27 namespace OHOS {
28 namespace Rosen {
29 class FramePainterTest : public testing::Test {
30 public:
31 static void SetUpTestCase();
32 static void TearDownTestCase();
33 void SetUp() override;
34 void TearDown() override;
35 };
36
SetUpTestCase()37 void FramePainterTest::SetUpTestCase() {}
TearDownTestCase()38 void FramePainterTest::TearDownTestCase() {}
SetUp()39 void FramePainterTest::SetUp() {}
TearDown()40 void FramePainterTest::TearDown() {}
41
42 /**
43 * @tc.name: Create001
44 * @tc.desc: test
45 * @tc.type:FUNC
46 * @tc.require:
47 */
48 HWTEST_F(FramePainterTest, Create001, TestSize.Level1)
49 {
50 FramePainter* painter_ptr = new FramePainter(FrameCollector::GetInstance());
51 ASSERT_TRUE(painter_ptr != nullptr);
52 }
53
54 /**
55 * @tc.name: FramePainterTest
56 * @tc.desc: Test RsNodeCostManagerTest.SwitchFunction2
57 * @tc.type: FUNC
58 * @tc.require: I6R1BQ
59 */
60 HWTEST_F(FramePainterTest, DrawTest1, TestSize.Level1)
61 {
62 FrameCollector& controller = FrameCollector::GetInstance();
63 controller.SetEnabled(true);
64 auto framePainter = std::make_shared<FramePainter>(controller);
65 SkBitmap bitmap;
66 SkCanvas canvas(bitmap);
67 framePainter->Draw(canvas);
68 ASSERT_TRUE(controller.IsEnabled());
69 }
70
71 /**
72 * @tc.name: FramePainterTest
73 * @tc.desc: Test RsNodeCostManagerTest.SwitchFunction2
74 * @tc.type: FUNC
75 * @tc.require: I6R1BQ
76 */
77 HWTEST_F(FramePainterTest, DrawTest2, TestSize.Level1)
78 {
79 FrameCollector& controller = FrameCollector::GetInstance();
80 controller.SetEnabled(false);
81 auto framePainter = std::make_shared<FramePainter>(controller);
82 SkBitmap bitmap;
83 SkCanvas canvas(bitmap);
84 framePainter->Draw(canvas);
85 ASSERT_FALSE(controller.IsEnabled());
86 }
87
88 /**
89 * @tc.name: FramePainterTest
90 * @tc.desc: Test RsNodeCostManagerTest.DrawFPSLine
91 * @tc.type: FUNC
92 * @tc.require: I6R1BQ
93 */
94 HWTEST_F(FramePainterTest, DrawFPSLine1, TestSize.Level1)
95 {
96 FrameCollector& controller = FrameCollector::GetInstance();
97 controller.SetEnabled(false);
98 auto framePainter = std::make_shared<FramePainter>(controller);
99 SkBitmap bitmap;
100 SkCanvas canvas(bitmap);
101 framePainter->DrawFPSLine(canvas, 0, 2.0f, 0xbf00ff00);
102 ASSERT_FALSE(controller.IsEnabled());
103 }
104
105 /**
106 * @tc.name: FramePainterTest
107 * @tc.desc: Test RsNodeCostManagerTest.DrawFPSLine
108 * @tc.type: FUNC
109 * @tc.require: I6R1BQ
110 */
111 HWTEST_F(FramePainterTest, DrawFPSLine2, TestSize.Level1)
112 {
113 FrameCollector& controller = FrameCollector::GetInstance();
114 controller.SetEnabled(false);
115 auto framePainter = std::make_shared<FramePainter>(controller);
116 SkBitmap bitmap;
117 SkCanvas canvas(bitmap);
118 framePainter->DrawFPSLine(canvas, 1, 2.0f, 0xbf00ff00);
119 ASSERT_FALSE(controller.IsEnabled());
120 }
121
122 /**
123 * @tc.name: FramePainterTest
124 * @tc.desc: Test RsNodeCostManagerTest.GenerateTimeBars
125 * @tc.type: FUNC
126 * @tc.require: I6R1BQ
127 */
128 HWTEST_F(FramePainterTest, GenerateTimeBars, TestSize.Level1)
129 {
130 FrameCollector& controller = FrameCollector::GetInstance();
131 controller.SetEnabled(false);
132 auto framePainter = std::make_shared<FramePainter>(controller);
133 framePainter->GenerateTimeBars(1600, 800, 1);
134 ASSERT_FALSE(controller.IsEnabled());
135 }
136
137 /**
138 * @tc.name: FramePainterTest
139 * @tc.desc: Test RsNodeCostManagerTest.GenerateTimeBars
140 * @tc.type: FUNC
141 * @tc.require: I6R1BQ
142 */
143 HWTEST_F(FramePainterTest, SumTimesInMs, TestSize.Level1)
144 {
145 FrameCollector& controller = FrameCollector::GetInstance();
146 controller.SetEnabled(false);
147 auto framePainter = std::make_shared<FramePainter>(controller);
148 FrameInfo info;
149 double result = framePainter->SumTimesInMs(info);
150 ASSERT_FALSE(controller.IsEnabled());
151 ASSERT_EQ(result, 0);
152 }
153
154 } // namespace Rosen
155 } // namespace OHOS
156