Signed-off-by: qpzeng <zengqingpeng6@huawei.com>
Change-Id: Icc9ec9edbde64ed80faae914e6c048c9553d2bdb
This commit is contained in:
qpzeng 2023-06-01 17:13:52 +08:00
parent d1d389f2ff
commit 477aa6c2d6
5 changed files with 41 additions and 27 deletions

View File

@ -20,22 +20,6 @@
#include "core/components_ng/render/adapter/rosen_render_context.h"
namespace OHOS::Ace::NG {
SystemWindowScene::SystemWindowScene(const sptr<Rosen::SceneSession>& session) : session_(session)
{
CHECK_NULL_VOID(session_);
auto sessionInfo = session_->GetSessionInfo();
LOGD("SystemWindowScene: bundleName: %{public}s, abilityName: %{public}s",
sessionInfo.bundleName_.c_str(), sessionInfo.abilityName_.c_str());
}
SystemWindowScene::~SystemWindowScene()
{
CHECK_NULL_VOID(session_);
auto sessionInfo = session_->GetSessionInfo();
LOGD("~SystemWindowScene: bundleName: %{public}s, abilityName: %{public}s",
sessionInfo.bundleName_.c_str(), sessionInfo.abilityName_.c_str());
}
void SystemWindowScene::OnAttachToFrameNode()
{
CHECK_NULL_VOID(session_);

View File

@ -25,8 +25,8 @@ class SystemWindowScene : public StackPattern {
DECLARE_ACE_TYPE(SystemWindowScene, StackPattern);
public:
SystemWindowScene(const sptr<Rosen::SceneSession>& session);
~SystemWindowScene() override;
explicit SystemWindowScene(const sptr<Rosen::SceneSession>& session) : session_(session) {}
~SystemWindowScene() override = default;
bool UseExternalRSNode() const override
{

View File

@ -23,7 +23,7 @@ class WindowScene : public WindowPattern {
DECLARE_ACE_TYPE(WindowScene, WindowPattern);
public:
WindowScene(const sptr<Rosen::Session>& session);
explicit WindowScene(const sptr<Rosen::Session>& session);
~WindowScene() override;
private:

View File

@ -36,7 +36,7 @@ void WindowSceneModel::Create(uint64_t persistentId)
auto stack = ViewStackProcessor::GetInstance();
auto nodeId = stack->ClaimNodeId();
auto node = FrameNode::GetOrCreateFrameNode(V2::WINDOW_SCENE_ETS_TAG, nodeId,
[&sceneSession]() { return AceType::MakeRefPtr<SystemWindowScene>(sceneSession); });
[sceneSession]() { return AceType::MakeRefPtr<SystemWindowScene>(sceneSession); });
stack->Push(node);
return;
}
@ -44,7 +44,7 @@ void WindowSceneModel::Create(uint64_t persistentId)
auto stack = ViewStackProcessor::GetInstance();
auto nodeId = stack->ClaimNodeId();
auto windowNode = WindowNode::GetOrCreateWindowNode(V2::WINDOW_SCENE_ETS_TAG, nodeId,
[&sceneSession]() { return AceType::MakeRefPtr<WindowScene>(sceneSession); });
[sceneSession]() { return AceType::MakeRefPtr<WindowScene>(sceneSession); });
stack->Push(windowNode);
auto windowScene = windowNode->GetPattern<WindowScene>();

View File

@ -24,6 +24,7 @@
#include "ui/rs_surface_node.h"
#include "core/components_ng/base/view_stack_processor.h"
#include "core/components_ng/pattern/window_scene/scene/system_window_scene.h"
#include "core/components_ng/pattern/window_scene/scene/window_extension.h"
#include "core/components_ng/pattern/window_scene/scene/window_node.h"
#include "core/components_ng/pattern/window_scene/scene/window_pattern.h"
@ -60,7 +61,7 @@ public:
HWTEST_F(WindowPatternTest, WindowPatternTest001, TestSize.Level1)
{
/**
* @tc.steps: step1. Create WindowPatternModel.
* @tc.steps: step1. Create WindowSceneModel.
*/
auto model = WindowSceneModel();
uint64_t persistentId = 0;
@ -79,7 +80,7 @@ HWTEST_F(WindowPatternTest, WindowPatternTest001, TestSize.Level1)
HWTEST_F(WindowPatternTest, WindowPatternTest002, TestSize.Level1)
{
/**
* @tc.steps: step1. Create WindowPatternModel.
* @tc.steps: step1. Create WindowSceneModel.
*/
auto model = WindowSceneModel();
@ -104,7 +105,7 @@ HWTEST_F(WindowPatternTest, WindowPatternTest002, TestSize.Level1)
HWTEST_F(WindowPatternTest, WindowPatternTest003, TestSize.Level1)
{
/**
* @tc.steps: step1. Create WindowPatternModel.
* @tc.steps: step1. Create WindowSceneModel.
*/
MockPipelineBase::SetUp();
MockContainer::SetUp();
@ -148,7 +149,7 @@ HWTEST_F(WindowPatternTest, WindowPatternTest003, TestSize.Level1)
HWTEST_F(WindowPatternTest, WindowPatternTest004, TestSize.Level1)
{
/**
* @tc.steps: step1. Create WindowPatternModel.
* @tc.steps: step1. Create WindowSceneModel.
*/
MockPipelineBase::SetUp();
MockContainer::SetUp();
@ -207,7 +208,7 @@ HWTEST_F(WindowPatternTest, WindowPatternTest004, TestSize.Level1)
HWTEST_F(WindowPatternTest, WindowPatternTest005, TestSize.Level1)
{
/**
* @tc.steps: step1. Create WindowPatternModel.
* @tc.steps: step1. Create WindowSceneModel.
*/
MockPipelineBase::SetUp();
MockContainer::SetUp();
@ -250,7 +251,7 @@ HWTEST_F(WindowPatternTest, WindowPatternTest005, TestSize.Level1)
HWTEST_F(WindowPatternTest, WindowPatternTest006, TestSize.Level1)
{
/**
* @tc.steps: step1. Create WindowPatternModel.
* @tc.steps: step1. Create WindowSceneModel.
*/
MockPipelineBase::SetUp();
MockContainer::SetUp();
@ -374,4 +375,33 @@ HWTEST_F(WindowPatternTest, WindowPatternTest009, TestSize.Level1)
[]() { return AceType::MakeRefPtr<WindowExtension>(BUNDLE_NAME, ABILITY_NAME); });
EXPECT_NE(frameNode2, frameNode3);
}
/**
* @tc.name: WindowPatternTest010
* @tc.desc: WindowPattern test
* @tc.type: FUNC
*/
HWTEST_F(WindowPatternTest, WindowPatternTest010, TestSize.Level1)
{
/**
* @tc.steps: step1. Create WindowSceneModel.
*/
auto model = WindowSceneModel();
Rosen::SessionInfo sessionInfo = {
.bundleName_ = BUNDLE_NAME,
.abilityName_ = ABILITY_NAME,
.isSystem_ = true
};
auto session = Rosen::SceneSessionManager::GetInstance().RequestSceneSession(sessionInfo);
uint64_t persistentId = session->GetPersistentId();
model.Create(persistentId);
auto frameNode =
AceType::DynamicCast<FrameNode>(ViewStackProcessor::GetInstance()->GetMainElementNode());
EXPECT_NE(frameNode, nullptr);
auto pattern = frameNode->GetPattern<SystemWindowScene>();
ASSERT_NE(pattern, nullptr);
}
} // namespace OHOS::Ace::NG