* Copyright (c) 2024 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include "3d_widget_adapter_test.h"
#include "3d_widget_adapter_log.h"
#include "graphics_manager.h"
namespace OHOS::Render3D {
void WidgetAdapter3DTest::SetUpTestCase()
{}
void WidgetAdapter3DTest::TearDownTestCase()
{}
void WidgetAdapter3DTest::SetUp()
{}
void WidgetAdapter3DTest::TearDown()
{}
bool EngineTest::LoadEngineLib()
{
return true;
}
bool EngineTest::InitEngine(EGLContext eglContext, const PlatformData& data)
{
(void)(eglContext);
(void)(data);
return true;
}
void EngineTest::InitializeScene(uint32_t key)
{
(void)(key);
}
void EngineTest::SetupCameraViewPort(uint32_t width, uint32_t height)
{
(void)(width);
(void)(height);
}
void EngineTest::SetupCameraTransform(
const Position& position, const Vec3& lookAt, const Vec3& up, const Quaternion& rotation)
{
(void)(position);
(void)(lookAt);
(void)(up);
(void)(rotation);
}
void EngineTest::SetupCameraViewProjection(float zNear, float zFar, float fovDegrees)
{
(void)(zNear);
(void)(zFar);
(void)(fovDegrees);
}
void EngineTest::LoadSceneModel(const std::string& modelPath)
{
(void)(modelPath);
}
void EngineTest::LoadEnvModel(const std::string& modelPath, BackgroundType type)
{
(void)(modelPath);
(void)(type);
}
void EngineTest::OnTouchEvent(const PointerEvent& event)
{
(void)(event);
}
void EngineTest::OnWindowChange(const TextureInfo& textureInfo)
{
(void)(textureInfo);
}
void EngineTest::UpdateGeometries(const std::vector<std::shared_ptr<Geometry>>& shapes)
{
(void)(shapes);
}
void EngineTest::UpdateGLTFAnimations(const std::vector<std::shared_ptr<GLTFAnimation>>& animations)
{
(void)(animations);
}
void EngineTest::UpdateLights(const std::vector<std::shared_ptr<Light>>& lights)
{
(void)(lights);
}
void EngineTest::UpdateCustomRender(const std::shared_ptr<CustomRenderDescriptor>& customRender)
{
(void)(customRender);
}
void EngineTest::UpdateShaderPath(const std::string& shaderPath)
{
(void)(shaderPath);
}
void EngineTest::UpdateImageTexturePaths(const std::vector<std::string>& imageTextures)
{
(void)(imageTextures);
}
void EngineTest::UpdateShaderInputBuffer(const std::shared_ptr<ShaderInputBuffer>& shaderInputBuffer)
{
(void)(shaderInputBuffer);
}
bool EngineTest::NeedsRepaint()
{
return true;
}
namespace {
* @tc.name: Initialize1
* @tc.desc: Verify set valid engine
* @tc.type: FUNC
* @tc.require: SR000GUGO2
*/
HWTEST_F(WidgetAdapter3DTest, Initialize1, testing::ext::TestSize.Level1)
{
WidgetAdapter adapter(0U);
auto engine = std::make_unique<EngineTest>();
bool ret = adapter.Initialize(std::move(engine));
ASSERT_EQ(ret, true);
}
* @tc.name: Initialize2
* @tc.desc: Verify set null engine
* @tc.type: FUNC
* @tc.require: SR000GUGO2
*/
HWTEST_F(WidgetAdapter3DTest, Initialize2, testing::ext::TestSize.Level1)
{
WidgetAdapter adapter(0U);
bool ret = adapter.Initialize(nullptr);
ASSERT_EQ(ret, false);
}
* @tc.name: OnWindowChange1
* @tc.desc: Verify WidgetAdapter WindowChange
* @tc.type: FUNC
* @tc.require: SR000GUGO2
*/
HWTEST_F(WidgetAdapter3DTest, OnWindowChange1, testing::ext::TestSize.Level1)
{
WidgetAdapter adapter(0U);
auto engine = std::make_unique<EngineTest>();
adapter.Initialize(std::move(engine));
TextureInfo texture{};
bool ret = adapter.OnWindowChange(texture);
ASSERT_EQ(ret, true);
}
* @tc.name: SetupCameraTransform1
* @tc.desc: Verify WidgetAdapter setup Camera Transform
* @tc.type: FUNC
* @tc.require: SR000GUGO2
*/
HWTEST_F(WidgetAdapter3DTest, SetupCameraTransform1, testing::ext::TestSize.Level1)
{
WidgetAdapter adapter(0U);
Position position{};
Vec3 lookAt{};
Vec3 up{};
Quaternion rotation{};
auto engine = std::make_unique<EngineTest>();
adapter.Initialize(std::move(engine));
bool ret = adapter.SetupCameraTransform(position, lookAt, up, rotation);
ASSERT_EQ(ret, true);
}
* @tc.name: SetupCameraViewProjection1
* @tc.desc: Verify WidgetAdapter setup projection
* @tc.type: FUNC
* @tc.require: SR000GUGO2
*/
HWTEST_F(WidgetAdapter3DTest, SetupCameraViewProjection1, testing::ext::TestSize.Level1)
{
WidgetAdapter adapter(0U);
float near = 0.0f;
float far = 0.0f;
float degree = 0.0f;
auto engine = std::make_unique<EngineTest>();
adapter.Initialize(std::move(engine));
bool ret = adapter.SetupCameraViewProjection(near, far, degree);
ASSERT_EQ(ret, true);
}
* @tc.name: SetupCameraViewport1
* @tc.desc: Verify WidgetAdapter setup Viewport
* @tc.type: FUNC
* @tc.require: SR000GUGO2
*/
HWTEST_F(WidgetAdapter3DTest, SetupCameraViewport1, testing::ext::TestSize.Level1)
{
WidgetAdapter adapter(0U);
uint32_t width = 0;
uint32_t height = 0;
auto engine = std::make_unique<EngineTest>();
adapter.Initialize(std::move(engine));
bool ret = adapter.SetupCameraViewport(width, height);
ASSERT_EQ(ret, true);
}
* @tc.name: OnTouchEvent1
* @tc.desc: Verify WidgetAdapter handle touch event
* @tc.type: FUNC
* @tc.require: SR000GUGO2
*/
HWTEST_F(WidgetAdapter3DTest, OnTouchEvent1, testing::ext::TestSize.Level1)
{
WidgetAdapter adapter(0U);
PointerEvent event{};
auto engine = std::make_unique<EngineTest>();
adapter.Initialize(std::move(engine));
bool ret = adapter.OnTouchEvent(event);
ASSERT_EQ(ret, true);
}
* @tc.name: NeedsRepaint1
* @tc.desc: Verify WidgetAdapter handle Repaint
* @tc.type: FUNC
* @tc.require: SR000GUGO2
*/
HWTEST_F(WidgetAdapter3DTest, NeedsRepaint1, testing::ext::TestSize.Level1)
{
WidgetAdapter adapter(0U);
auto engine = std::make_unique<EngineTest>();
adapter.Initialize(std::move(engine));
bool ret = adapter.NeedsRepaint();
ASSERT_EQ(ret, true);
}
* @tc.name: DrawFrame1
* @tc.desc: Verify WidgetAdapter render frame
* @tc.type: FUNC
* @tc.require: SR000GUI0P
*/
HWTEST_F(WidgetAdapter3DTest, DrawFrame1, testing::ext::TestSize.Level1)
{
WidgetAdapter adapter(0U);
auto engine = std::make_unique<EngineTest>();
adapter.Initialize(std::move(engine));
bool ret = adapter.DrawFrame();
ASSERT_EQ(ret, true);
}
* @tc.name: UpdateGeometries1
* @tc.desc: Verify WidgetAdapter Update geometries
* @tc.type: FUNC
* @tc.require: SR000GUGO2
*/
HWTEST_F(WidgetAdapter3DTest, UpdateGeometries1, testing::ext::TestSize.Level1)
{
WidgetAdapter adapter(0U);
auto engine = std::make_unique<EngineTest>();
adapter.Initialize(std::move(engine));
bool ret = adapter.UpdateGeometries({});
ASSERT_EQ(ret, true);
}
* @tc.name: UpdateGLTFAnimations1
* @tc.desc: Verify update gltf animation
* @tc.type: FUNC
* @tc.require: SR000GUGO2
*/
HWTEST_F(WidgetAdapter3DTest, UpdateGLTFAnimations1, testing::ext::TestSize.Level1)
{
WidgetAdapter adapter(0U);
auto engine = std::make_unique<EngineTest>();
adapter.Initialize(std::move(engine));
bool ret = adapter.UpdateGLTFAnimations({});
ASSERT_EQ(ret, true);
}
* @tc.name: UpdateLights1
* @tc.desc: Verify update lights
* @tc.type: FUNC
* @tc.require: SR000GUGO2
*/
HWTEST_F(WidgetAdapter3DTest, UpdateLights1, testing::ext::TestSize.Level1)
{
WidgetAdapter adapter(0U);
auto engine = std::make_unique<EngineTest>();
adapter.Initialize(std::move(engine));
bool ret = adapter.UpdateLights({});
ASSERT_EQ(ret, true);
}
* @tc.name: UpdateCustomRender1
* @tc.desc: Verify update CustomRender
* @tc.type: FUNC
* @tc.require: SR000GUGO2
*/
HWTEST_F(WidgetAdapter3DTest, UpdateCustomRender1, testing::ext::TestSize.Level1)
{
WidgetAdapter adapter(0U);
auto engine = std::make_unique<EngineTest>();
adapter.Initialize(std::move(engine));
bool ret = adapter.UpdateCustomRender(nullptr);
ASSERT_EQ(ret, true);
}
* @tc.name: UpdateShaderPath1
* @tc.desc: Verify update ShaderPath
* @tc.type: FUNC
* @tc.require: SR000GUGO2
*/
HWTEST_F(WidgetAdapter3DTest, UpdateShaderPath1, testing::ext::TestSize.Level1)
{
WidgetAdapter adapter(0U);
std::string shaderPath = "path";
auto engine = std::make_unique<EngineTest>();
adapter.Initialize(std::move(engine));
bool ret = adapter.UpdateShaderPath(shaderPath);
ASSERT_EQ(ret, true);
}
* @tc.name: UpdateImageTexturePaths1
* @tc.desc: Verify update ImageTexturePaths
* @tc.type: FUNC
* @tc.require: SR000GUGO2
*/
HWTEST_F(WidgetAdapter3DTest, UpdateImageTexturePaths1, testing::ext::TestSize.Level1)
{
WidgetAdapter adapter(0U);
auto engine = std::make_unique<EngineTest>();
adapter.Initialize(std::move(engine));
bool ret = adapter.UpdateImageTexturePaths({});
ASSERT_EQ(ret, true);
}
* @tc.name: UpdateShaderInputBuffer1
* @tc.desc: Verify update ImageTexturePaths
* @tc.type: FUNC
* @tc.require: SR000GUGO2
*/
HWTEST_F(WidgetAdapter3DTest, UpdateShaderInputBuffer1, testing::ext::TestSize.Level1)
{
WidgetAdapter adapter(0U);
auto engine = std::make_unique<EngineTest>();
adapter.Initialize(std::move(engine));
bool ret = adapter.UpdateShaderInputBuffer(nullptr);
ASSERT_EQ(ret, true);
}
* @tc.name: LoadSceneModel1
* @tc.desc: Verify Load SceneModel
* @tc.type: FUNC
* @tc.require: SR000GUGO2
*/
HWTEST_F(WidgetAdapter3DTest, LoadSceneModel1, testing::ext::TestSize.Level1)
{
WidgetAdapter adapter(0U);
std::string scene = "scene";
auto engine = std::make_unique<EngineTest>();
adapter.Initialize(std::move(engine));
bool ret = adapter.LoadSceneModel(scene);
ASSERT_EQ(ret, true);
}
* @tc.name: LoadEnvModel1
* @tc.desc: Verify Load EnvModel
* @tc.type: FUNC
* @tc.require: SR000GUGO2
*/
HWTEST_F(WidgetAdapter3DTest, LoadEnvModel1, testing::ext::TestSize.Level1)
{
WidgetAdapter adapter(0U);
std::string enviroment = "enviroment";
BackgroundType type{};
auto engine = std::make_unique<EngineTest>();
adapter.Initialize(std::move(engine));
bool ret = adapter.LoadEnvModel(enviroment, type);
ASSERT_EQ(ret, true);
}
* @tc.name: UnloadSceneModel1
* @tc.desc: Verify UnLoad SceneModel
* @tc.type: FUNC
* @tc.require: SR000GUGO2
*/
HWTEST_F(WidgetAdapter3DTest, UnloadSceneModel1, testing::ext::TestSize.Level1)
{
WidgetAdapter adapter(0U);
auto engine = std::make_unique<EngineTest>();
adapter.Initialize(std::move(engine));
bool ret = adapter.UnloadSceneModel();
ASSERT_EQ(ret, true);
}
* @tc.name: UnloadEnvModel1
* @tc.desc: Verify UnLoad EnvModel
* @tc.type: FUNC
* @tc.require: SR000GUGO2
*/
HWTEST_F(WidgetAdapter3DTest, UnloadEnvModel1, testing::ext::TestSize.Level1)
{
WidgetAdapter adapter(0U);
auto engine = std::make_unique<EngineTest>();
adapter.Initialize(std::move(engine));
bool ret = adapter.UnloadEnvModel();
ASSERT_EQ(ret, true);
}
* @tc.name: DrawFrame2
* @tc.desc: Verify DrawFrame with firstFrame is false
* @tc.type: FUNC
*/
HWTEST_F(WidgetAdapter3DTest, DrawFrame2, testing::ext::TestSize.Level1)
{
WidgetAdapter adapter(0U);
auto engine = std::make_unique<EngineTest>();
adapter.Initialize(std::move(engine));
bool ret1 = adapter.DrawFrame();
ASSERT_EQ(ret1, true);
bool ret2 = adapter.DrawFrame();
ASSERT_EQ(ret2, true);
bool ret3 = adapter.DrawFrame();
ASSERT_EQ(ret3, true);
}
* @tc.name: DeInitEngine1
* @tc.desc: Verify DeInitEngine with valid engine
* @tc.type: FUNC
*/
HWTEST_F(WidgetAdapter3DTest, DeInitEngine1, testing::ext::TestSize.Level1)
{
WidgetAdapter adapter(0U);
auto engine = std::make_unique<EngineTest>();
adapter.Initialize(std::move(engine));
bool beforeDeinit = adapter.SetupCameraViewport(800, 600);
ASSERT_EQ(beforeDeinit, true);
adapter.DeInitEngine();
bool afterDeinit = adapter.SetupCameraViewport(800, 600);
ASSERT_EQ(afterDeinit, false);
}
* @tc.name: DeInitEngine2
* @tc.desc: Verify DeInitEngine with null engine
* @tc.type: FUNC
*/
HWTEST_F(WidgetAdapter3DTest, DeInitEngine2, testing::ext::TestSize.Level1)
{
WidgetAdapter adapter(0U);
adapter.DeInitEngine();
auto engine = std::make_unique<EngineTest>();
bool ret = adapter.Initialize(std::move(engine));
ASSERT_EQ(ret, true);
}
}
}