diff --git a/interfaces/innerkits/wm/wm_common.h b/interfaces/innerkits/wm/wm_common.h index 6f4f10c7ed2edd082a37b3000be77f0626ba0859..a925c611db1cd3dc159e81b727e855544ba30066 100644 --- a/interfaces/innerkits/wm/wm_common.h +++ b/interfaces/innerkits/wm/wm_common.h @@ -129,6 +129,7 @@ enum class WindowType : uint32_t { WINDOW_TYPE_WALLET_SWIPE_CARD, WINDOW_TYPE_SCREEN_CONTROL, WINDOW_TYPE_FLOAT_NAVIGATION, + WINDOW_TYPE_MUTISCREEN_COLLABORATION, ABOVE_APP_SYSTEM_WINDOW_END, SYSTEM_SUB_WINDOW_BASE = 2500, diff --git a/interfaces/kits/napi/window_runtime/window_napi/js_window_utils.cpp b/interfaces/kits/napi/window_runtime/window_napi/js_window_utils.cpp index e08d5bc8cc84595d863ceaf92293bd1fa118ed5b..dc9df0f1650af25e3337fb7b10b39b0c8d3e1ea9 100644 --- a/interfaces/kits/napi/window_runtime/window_napi/js_window_utils.cpp +++ b/interfaces/kits/napi/window_runtime/window_napi/js_window_utils.cpp @@ -101,6 +101,8 @@ napi_value WindowTypeInit(napi_env env) static_cast(ApiWindowType::TYPE_SCREEN_CONTROL))); napi_set_named_property(env, objValue, "TYPE_FLOAT_NAVIGATION", CreateJsValue(env, static_cast(ApiWindowType::TYPE_FLOAT_NAVIGATION))); + napi_set_named_property(env, objValue, "TYPE_MUTISCREEN_COLLABORATION", CreateJsValue(env, + static_cast(ApiWindowType::TYPE_MUTISCREEN_COLLABORATION))); napi_set_named_property(env, objValue, "TYPE_MAIN", CreateJsValue(env, static_cast(ApiWindowType::TYPE_MAIN))); diff --git a/interfaces/kits/napi/window_runtime/window_napi/js_window_utils.h b/interfaces/kits/napi/window_runtime/window_napi/js_window_utils.h index b5de36d02b5458327a19019ea04a0bee95e4582b..2f9fdbe358ec1f358672a60d28f04e43fb3a9658 100644 --- a/interfaces/kits/napi/window_runtime/window_napi/js_window_utils.h +++ b/interfaces/kits/napi/window_runtime/window_napi/js_window_utils.h @@ -89,6 +89,7 @@ enum class ApiWindowType : uint32_t { TYPE_WALLET_SWIPE_CARD, TYPE_SCREEN_CONTROL, TYPE_FLOAT_NAVIGATION, + TYPE_MUTISCREEN_COLLABORATION, TYPE_MAIN = 32, TYPE_END }; @@ -104,61 +105,63 @@ enum class LifeCycleEventType : uint32_t { }; const std::map NATIVE_JS_TO_WINDOW_TYPE_MAP { - { WindowType::WINDOW_TYPE_APP_SUB_WINDOW, ApiWindowType::TYPE_APP }, - { WindowType::WINDOW_TYPE_DIALOG, ApiWindowType::TYPE_DIALOG }, - { WindowType::WINDOW_TYPE_SYSTEM_ALARM_WINDOW, ApiWindowType::TYPE_SYSTEM_ALERT }, - { WindowType::WINDOW_TYPE_INPUT_METHOD_FLOAT, ApiWindowType::TYPE_INPUT_METHOD }, - { WindowType::WINDOW_TYPE_STATUS_BAR, ApiWindowType::TYPE_STATUS_BAR }, - { WindowType::WINDOW_TYPE_PANEL, ApiWindowType::TYPE_PANEL }, - { WindowType::WINDOW_TYPE_KEYGUARD, ApiWindowType::TYPE_KEYGUARD }, - { WindowType::WINDOW_TYPE_VOLUME_OVERLAY, ApiWindowType::TYPE_VOLUME_OVERLAY }, - { WindowType::WINDOW_TYPE_NAVIGATION_BAR, ApiWindowType::TYPE_NAVIGATION_BAR }, - { WindowType::WINDOW_TYPE_FLOAT, ApiWindowType::TYPE_FLOAT }, - { WindowType::WINDOW_TYPE_FLOAT_CAMERA, ApiWindowType::TYPE_FLOAT_CAMERA }, - { WindowType::WINDOW_TYPE_WALLPAPER, ApiWindowType::TYPE_WALLPAPER }, - { WindowType::WINDOW_TYPE_DESKTOP, ApiWindowType::TYPE_DESKTOP }, - { WindowType::WINDOW_TYPE_LAUNCHER_RECENT, ApiWindowType::TYPE_LAUNCHER_RECENT }, - { WindowType::WINDOW_TYPE_LAUNCHER_DOCK, ApiWindowType::TYPE_LAUNCHER_DOCK }, - { WindowType::WINDOW_TYPE_VOICE_INTERACTION, ApiWindowType::TYPE_VOICE_INTERACTION }, - { WindowType::WINDOW_TYPE_POINTER, ApiWindowType::TYPE_POINTER }, - { WindowType::WINDOW_TYPE_SCREENSHOT, ApiWindowType::TYPE_SCREENSHOT }, - { WindowType::WINDOW_TYPE_SYSTEM_TOAST, ApiWindowType::TYPE_SYSTEM_TOAST }, - { WindowType::WINDOW_TYPE_DOCK_SLICE, ApiWindowType::TYPE_DIVIDER }, - { WindowType::WINDOW_TYPE_GLOBAL_SEARCH, ApiWindowType::TYPE_GLOBAL_SEARCH }, - { WindowType::WINDOW_TYPE_HANDWRITE, ApiWindowType::TYPE_HANDWRITE }, - { WindowType::WINDOW_TYPE_WALLET_SWIPE_CARD, ApiWindowType::TYPE_WALLET_SWIPE_CARD }, - { WindowType::WINDOW_TYPE_SCREEN_CONTROL, ApiWindowType::TYPE_SCREEN_CONTROL }, - { WindowType::WINDOW_TYPE_FLOAT_NAVIGATION, ApiWindowType::TYPE_FLOAT_NAVIGATION }, - { WindowType::WINDOW_TYPE_APP_MAIN_WINDOW, ApiWindowType::TYPE_MAIN }, + { WindowType::WINDOW_TYPE_APP_SUB_WINDOW, ApiWindowType::TYPE_APP }, + { WindowType::WINDOW_TYPE_DIALOG, ApiWindowType::TYPE_DIALOG }, + { WindowType::WINDOW_TYPE_SYSTEM_ALARM_WINDOW, ApiWindowType::TYPE_SYSTEM_ALERT }, + { WindowType::WINDOW_TYPE_INPUT_METHOD_FLOAT, ApiWindowType::TYPE_INPUT_METHOD }, + { WindowType::WINDOW_TYPE_STATUS_BAR, ApiWindowType::TYPE_STATUS_BAR }, + { WindowType::WINDOW_TYPE_PANEL, ApiWindowType::TYPE_PANEL }, + { WindowType::WINDOW_TYPE_KEYGUARD, ApiWindowType::TYPE_KEYGUARD }, + { WindowType::WINDOW_TYPE_VOLUME_OVERLAY, ApiWindowType::TYPE_VOLUME_OVERLAY }, + { WindowType::WINDOW_TYPE_NAVIGATION_BAR, ApiWindowType::TYPE_NAVIGATION_BAR }, + { WindowType::WINDOW_TYPE_FLOAT, ApiWindowType::TYPE_FLOAT }, + { WindowType::WINDOW_TYPE_FLOAT_CAMERA, ApiWindowType::TYPE_FLOAT_CAMERA }, + { WindowType::WINDOW_TYPE_WALLPAPER, ApiWindowType::TYPE_WALLPAPER }, + { WindowType::WINDOW_TYPE_DESKTOP, ApiWindowType::TYPE_DESKTOP }, + { WindowType::WINDOW_TYPE_LAUNCHER_RECENT, ApiWindowType::TYPE_LAUNCHER_RECENT }, + { WindowType::WINDOW_TYPE_LAUNCHER_DOCK, ApiWindowType::TYPE_LAUNCHER_DOCK }, + { WindowType::WINDOW_TYPE_VOICE_INTERACTION, ApiWindowType::TYPE_VOICE_INTERACTION }, + { WindowType::WINDOW_TYPE_POINTER, ApiWindowType::TYPE_POINTER }, + { WindowType::WINDOW_TYPE_SCREENSHOT, ApiWindowType::TYPE_SCREENSHOT }, + { WindowType::WINDOW_TYPE_SYSTEM_TOAST, ApiWindowType::TYPE_SYSTEM_TOAST }, + { WindowType::WINDOW_TYPE_DOCK_SLICE, ApiWindowType::TYPE_DIVIDER }, + { WindowType::WINDOW_TYPE_GLOBAL_SEARCH, ApiWindowType::TYPE_GLOBAL_SEARCH }, + { WindowType::WINDOW_TYPE_HANDWRITE, ApiWindowType::TYPE_HANDWRITE }, + { WindowType::WINDOW_TYPE_WALLET_SWIPE_CARD, ApiWindowType::TYPE_WALLET_SWIPE_CARD }, + { WindowType::WINDOW_TYPE_SCREEN_CONTROL, ApiWindowType::TYPE_SCREEN_CONTROL }, + { WindowType::WINDOW_TYPE_FLOAT_NAVIGATION, ApiWindowType::TYPE_FLOAT_NAVIGATION }, + { WindowType::WINDOW_TYPE_MUTISCREEN_COLLABORATION, ApiWindowType::TYPE_MUTISCREEN_COLLABORATION }, + { WindowType::WINDOW_TYPE_APP_MAIN_WINDOW, ApiWindowType::TYPE_MAIN }, }; const std::map JS_TO_NATIVE_WINDOW_TYPE_MAP { - { ApiWindowType::TYPE_APP, WindowType::WINDOW_TYPE_APP_SUB_WINDOW }, - { ApiWindowType::TYPE_DIALOG, WindowType::WINDOW_TYPE_DIALOG }, - { ApiWindowType::TYPE_SYSTEM_ALERT, WindowType::WINDOW_TYPE_SYSTEM_ALARM_WINDOW }, - { ApiWindowType::TYPE_INPUT_METHOD, WindowType::WINDOW_TYPE_INPUT_METHOD_FLOAT }, - { ApiWindowType::TYPE_STATUS_BAR, WindowType::WINDOW_TYPE_STATUS_BAR }, - { ApiWindowType::TYPE_PANEL, WindowType::WINDOW_TYPE_PANEL }, - { ApiWindowType::TYPE_KEYGUARD, WindowType::WINDOW_TYPE_KEYGUARD }, - { ApiWindowType::TYPE_VOLUME_OVERLAY, WindowType::WINDOW_TYPE_VOLUME_OVERLAY }, - { ApiWindowType::TYPE_NAVIGATION_BAR, WindowType::WINDOW_TYPE_NAVIGATION_BAR }, - { ApiWindowType::TYPE_FLOAT, WindowType::WINDOW_TYPE_FLOAT }, - { ApiWindowType::TYPE_FLOAT_CAMERA, WindowType::WINDOW_TYPE_FLOAT_CAMERA }, - { ApiWindowType::TYPE_WALLPAPER, WindowType::WINDOW_TYPE_WALLPAPER }, - { ApiWindowType::TYPE_DESKTOP, WindowType::WINDOW_TYPE_DESKTOP }, - { ApiWindowType::TYPE_LAUNCHER_RECENT, WindowType::WINDOW_TYPE_LAUNCHER_RECENT }, - { ApiWindowType::TYPE_LAUNCHER_DOCK, WindowType::WINDOW_TYPE_LAUNCHER_DOCK }, - { ApiWindowType::TYPE_VOICE_INTERACTION, WindowType::WINDOW_TYPE_VOICE_INTERACTION }, - { ApiWindowType::TYPE_POINTER, WindowType::WINDOW_TYPE_POINTER }, - { ApiWindowType::TYPE_SCREENSHOT, WindowType::WINDOW_TYPE_SCREENSHOT }, - { ApiWindowType::TYPE_SYSTEM_TOAST, WindowType::WINDOW_TYPE_SYSTEM_TOAST }, - { ApiWindowType::TYPE_DIVIDER, WindowType::WINDOW_TYPE_DOCK_SLICE }, - { ApiWindowType::TYPE_GLOBAL_SEARCH, WindowType::WINDOW_TYPE_GLOBAL_SEARCH }, - { ApiWindowType::TYPE_HANDWRITE, WindowType::WINDOW_TYPE_HANDWRITE }, - { ApiWindowType::TYPE_WALLET_SWIPE_CARD, WindowType::WINDOW_TYPE_WALLET_SWIPE_CARD }, - { ApiWindowType::TYPE_SCREEN_CONTROL, WindowType::WINDOW_TYPE_SCREEN_CONTROL }, - { ApiWindowType::TYPE_FLOAT_NAVIGATION, WindowType::WINDOW_TYPE_FLOAT_NAVIGATION }, - { ApiWindowType::TYPE_MAIN, WindowType::WINDOW_TYPE_APP_MAIN_WINDOW }, + { ApiWindowType::TYPE_APP, WindowType::WINDOW_TYPE_APP_SUB_WINDOW }, + { ApiWindowType::TYPE_DIALOG, WindowType::WINDOW_TYPE_DIALOG }, + { ApiWindowType::TYPE_SYSTEM_ALERT, WindowType::WINDOW_TYPE_SYSTEM_ALARM_WINDOW }, + { ApiWindowType::TYPE_INPUT_METHOD, WindowType::WINDOW_TYPE_INPUT_METHOD_FLOAT }, + { ApiWindowType::TYPE_STATUS_BAR, WindowType::WINDOW_TYPE_STATUS_BAR }, + { ApiWindowType::TYPE_PANEL, WindowType::WINDOW_TYPE_PANEL }, + { ApiWindowType::TYPE_KEYGUARD, WindowType::WINDOW_TYPE_KEYGUARD }, + { ApiWindowType::TYPE_VOLUME_OVERLAY, WindowType::WINDOW_TYPE_VOLUME_OVERLAY }, + { ApiWindowType::TYPE_NAVIGATION_BAR, WindowType::WINDOW_TYPE_NAVIGATION_BAR }, + { ApiWindowType::TYPE_FLOAT, WindowType::WINDOW_TYPE_FLOAT }, + { ApiWindowType::TYPE_FLOAT_CAMERA, WindowType::WINDOW_TYPE_FLOAT_CAMERA }, + { ApiWindowType::TYPE_WALLPAPER, WindowType::WINDOW_TYPE_WALLPAPER }, + { ApiWindowType::TYPE_DESKTOP, WindowType::WINDOW_TYPE_DESKTOP }, + { ApiWindowType::TYPE_LAUNCHER_RECENT, WindowType::WINDOW_TYPE_LAUNCHER_RECENT }, + { ApiWindowType::TYPE_LAUNCHER_DOCK, WindowType::WINDOW_TYPE_LAUNCHER_DOCK }, + { ApiWindowType::TYPE_VOICE_INTERACTION, WindowType::WINDOW_TYPE_VOICE_INTERACTION }, + { ApiWindowType::TYPE_POINTER, WindowType::WINDOW_TYPE_POINTER }, + { ApiWindowType::TYPE_SCREENSHOT, WindowType::WINDOW_TYPE_SCREENSHOT }, + { ApiWindowType::TYPE_SYSTEM_TOAST, WindowType::WINDOW_TYPE_SYSTEM_TOAST }, + { ApiWindowType::TYPE_DIVIDER, WindowType::WINDOW_TYPE_DOCK_SLICE }, + { ApiWindowType::TYPE_GLOBAL_SEARCH, WindowType::WINDOW_TYPE_GLOBAL_SEARCH }, + { ApiWindowType::TYPE_HANDWRITE, WindowType::WINDOW_TYPE_HANDWRITE }, + { ApiWindowType::TYPE_WALLET_SWIPE_CARD, WindowType::WINDOW_TYPE_WALLET_SWIPE_CARD }, + { ApiWindowType::TYPE_SCREEN_CONTROL, WindowType::WINDOW_TYPE_SCREEN_CONTROL }, + { ApiWindowType::TYPE_FLOAT_NAVIGATION, WindowType::WINDOW_TYPE_FLOAT_NAVIGATION }, + { ApiWindowType::TYPE_MUTISCREEN_COLLABORATION, WindowType::WINDOW_TYPE_MUTISCREEN_COLLABORATION }, + { ApiWindowType::TYPE_MAIN, WindowType::WINDOW_TYPE_APP_MAIN_WINDOW }, }; enum class ApiWindowMode : uint32_t { diff --git a/previewer/include/wm_common.h b/previewer/include/wm_common.h index ebaa4156550f7886c5c49793a1d1f2bd520c991e..4f64f720e496a6510203de56ba9c3cd526ea1722 100644 --- a/previewer/include/wm_common.h +++ b/previewer/include/wm_common.h @@ -110,6 +110,7 @@ enum class WindowType : uint32_t { WINDOW_TYPE_WALLET_SWIPE_CARD, WINDOW_TYPE_SCREEN_CONTROL, WINDOW_TYPE_FLOAT_NAVIGATION, + WINDOW_TYPE_MUTISCREEN_COLLABORATION, ABOVE_APP_SYSTEM_WINDOW_END, SYSTEM_SUB_WINDOW_BASE = 2500, diff --git a/utils/test/unittest/window_helper_test.cpp b/utils/test/unittest/window_helper_test.cpp index 3d8e29e8ac5737bb25ae23c87938e7a8911518d4..c103aabbfc57a88c81500d83e825dd117176c54f 100644 --- a/utils/test/unittest/window_helper_test.cpp +++ b/utils/test/unittest/window_helper_test.cpp @@ -226,6 +226,8 @@ HWTEST_F(WindowHelperTest, WindowType, TestSize.Level1) ASSERT_EQ(true, WindowHelper::IsSystemWindow(WindowType::WINDOW_TYPE_WALLET_SWIPE_CARD)); ASSERT_EQ(false, WindowHelper::IsSystemSubWindow(WindowType::WINDOW_TYPE_FLOAT_NAVIGATION)); ASSERT_EQ(true, WindowHelper::IsSystemWindow(WindowType::WINDOW_TYPE_FLOAT_NAVIGATION)); + ASSERT_EQ(false, WindowHelper::IsSystemSubWindow(WindowType::WINDOW_TYPE_MUTISCREEN_COLLABORATION)); + ASSERT_EQ(true, WindowHelper::IsSystemWindow(WindowType::WINDOW_TYPE_MUTISCREEN_COLLABORATION)); } /** diff --git a/window_scene/interfaces/kits/napi/scene_session_manager/js_scene_utils.cpp b/window_scene/interfaces/kits/napi/scene_session_manager/js_scene_utils.cpp index f3c0411d91098a6cdd2fb9ed6d01e1818deada58..08c4bbfe940c6134fa04e2e35ca818ffe977ed69 100644 --- a/window_scene/interfaces/kits/napi/scene_session_manager/js_scene_utils.cpp +++ b/window_scene/interfaces/kits/napi/scene_session_manager/js_scene_utils.cpp @@ -1946,6 +1946,7 @@ napi_value SessionTypeInit(napi_env env) SetTypeProperty(objValue, env, "TYPE_WALLET_SWIPE_CARD", JsSessionType::TYPE_WALLET_SWIPE_CARD); SetTypeProperty(objValue, env, "TYPE_SCREEN_CONTROL", JsSessionType::TYPE_SCREEN_CONTROL); SetTypeProperty(objValue, env, "TYPE_FLOAT_NAVIGATION", JsSessionType::TYPE_FLOAT_NAVIGATION); + SetTypeProperty(objValue, env, "TYPE_MUTISCREEN_COLLABORATION", JsSessionType::TYPE_MUTISCREEN_COLLABORATION); return objValue; } diff --git a/window_scene/interfaces/kits/napi/scene_session_manager/js_scene_utils.h b/window_scene/interfaces/kits/napi/scene_session_manager/js_scene_utils.h index 9e0d3bbf52a363e2bcda05ece84b45a23cb2a3eb..b591cf3db2754b4c0e791b734875c55504250432 100644 --- a/window_scene/interfaces/kits/napi/scene_session_manager/js_scene_utils.h +++ b/window_scene/interfaces/kits/napi/scene_session_manager/js_scene_utils.h @@ -68,7 +68,8 @@ enum class JsSessionType : uint32_t { TYPE_TRANSPARENT_VIEW, TYPE_WALLET_SWIPE_CARD, TYPE_SCREEN_CONTROL, - TYPE_FLOAT_NAVIGATION + TYPE_FLOAT_NAVIGATION, + TYPE_MUTISCREEN_COLLABORATION }; const std::map WINDOW_TO_JS_SESSION_TYPE_MAP { @@ -111,6 +112,7 @@ const std::map WINDOW_TO_JS_SESSION_TYPE_MAP { { WindowType::WINDOW_TYPE_WALLET_SWIPE_CARD, JsSessionType::TYPE_WALLET_SWIPE_CARD }, { WindowType::WINDOW_TYPE_SCREEN_CONTROL, JsSessionType::TYPE_SCREEN_CONTROL }, { WindowType::WINDOW_TYPE_FLOAT_NAVIGATION, JsSessionType::TYPE_FLOAT_NAVIGATION }, + { WindowType::WINDOW_TYPE_MUTISCREEN_COLLABORATION, JsSessionType::TYPE_MUTISCREEN_COLLABORATION}, }; const std::map JS_SESSION_TO_WINDOW_TYPE_MAP { @@ -153,6 +155,7 @@ const std::map JS_SESSION_TO_WINDOW_TYPE_MAP { { JsSessionType::TYPE_WALLET_SWIPE_CARD, WindowType::WINDOW_TYPE_WALLET_SWIPE_CARD }, { JsSessionType::TYPE_SCREEN_CONTROL, WindowType::WINDOW_TYPE_SCREEN_CONTROL }, { JsSessionType::TYPE_FLOAT_NAVIGATION, WindowType::WINDOW_TYPE_FLOAT_NAVIGATION }, + { JsSessionType::TYPE_MUTISCREEN_COLLABORATION, WindowType::WINDOW_TYPE_MUTISCREEN_COLLABORATION}, }; enum class ThrowSlipMode; diff --git a/wm/src/window_scene_session_impl.cpp b/wm/src/window_scene_session_impl.cpp index 74ff8bed166561354786ff807e410b74740ed648..e6da53683a4e73e9bcf515301f6ac0a80c48a408 100644 --- a/wm/src/window_scene_session_impl.cpp +++ b/wm/src/window_scene_session_impl.cpp @@ -1565,7 +1565,8 @@ void WindowSceneSessionImpl::SetDefaultProperty() case WindowType::WINDOW_TYPE_SYSTEM_ALARM_WINDOW: case WindowType::WINDOW_TYPE_PANEL: case WindowType::WINDOW_TYPE_LAUNCHER_DOCK: - case WindowType::WINDOW_TYPE_WALLET_SWIPE_CARD: { + case WindowType::WINDOW_TYPE_WALLET_SWIPE_CARD: + case WindowType::WINDOW_TYPE_MUTISCREEN_COLLABORATION: { property_->SetWindowMode(WindowMode::WINDOW_MODE_FLOATING); break; } diff --git a/wm/src/window_session_impl.cpp b/wm/src/window_session_impl.cpp index 2037b336894e1fd1253f18cbb0d757fc1f539a78..0a64873de48be11d1ab1e01bdedb5b07579604bb 100644 --- a/wm/src/window_session_impl.cpp +++ b/wm/src/window_session_impl.cpp @@ -468,6 +468,12 @@ WMError WindowSessionImpl::WindowSessionCreateCheck() return WMError::WM_ERROR_REPEAT_OPERATION; } + bool isPhoneOrPad = windowSystemConfig_.IsPhoneWindow() || windowSystemConfig_.IsPadWindow(); + if (!isPhoneOrPad && property_->GetWindowType() == WindowType::WINDOW_TYPE_MUTISCREEN_COLLABORATION) { + TLOGE(WmsLogTag::WMS_LIFE, "only phone or pad can create mutiScreen collaboration window"); + return WMError::WM_ERROR_DEVICE_NOT_SUPPORT; + } + // check if camera floating window is already exists if (property_->GetWindowType() == WindowType::WINDOW_TYPE_FLOAT_CAMERA || property_->GetWindowType() == WindowType::WINDOW_TYPE_PIP) { diff --git a/wm/test/unittest/window_scene_session_impl_test.cpp b/wm/test/unittest/window_scene_session_impl_test.cpp index ddd3e9e9bc946fb1d0b938c7902d870f7be31865..567d1e642bb8f2d0e1094a1ac75f300dadce296e 100644 --- a/wm/test/unittest/window_scene_session_impl_test.cpp +++ b/wm/test/unittest/window_scene_session_impl_test.cpp @@ -478,6 +478,32 @@ HWTEST_F(WindowSceneSessionImplTest, CreateAndConnectSpecificSession11, TestSize ASSERT_EQ(WMError::WM_OK, windowSceneSession->Destroy(true)); } +/** + * @tc.name: CreateAndConnectSpecificSession13 + * @tc.desc: CreateAndConnectSpecificSession + * @tc.type: FUNC + */ +HWTEST_F(WindowSceneSessionImplTest, CreateAndConnectSpecificSession13, TestSize.Level1) +{ + if (!SceneBoardJudgement::IsSceneBoardEnabled()) { + GTEST_SKIP() << "SceneBoard is not enabled, skipping test."; + } + sptr option = sptr::MakeSptr(); + option->SetWindowName("CreateAndConnectSpecificSession13"); + sptr windowSceneSession = sptr::MakeSptr(option); + + windowSceneSession->SetWindowType(WindowType::WINDOW_TYPE_MUTISCREEN_COLLABORATION); + ASSERT_EQ(WMError::WM_ERROR_NULLPTR, windowSceneSession->CreateAndConnectSpecificSession()); + windowSceneSession->property_->SetPersistentId(102); + windowSceneSession->property_->SetParentPersistentId(100); + windowSceneSession->property_->SetParentId(100); + SessionInfo sessionInfo = { "CreateTestBundle", "CreateTestModule", "CreateTestAbility" }; + sptr session = sptr::MakeSptr(sessionInfo); + + ASSERT_EQ(WMError::WM_OK, windowSceneSession->Create(abilityContext_, session)); + ASSERT_EQ(WMError::WM_OK, windowSceneSession->Destroy(true)); +} + /** * @tc.name: RecoverAndReconnectSceneSession * @tc.desc: RecoverAndReconnectSceneSession diff --git a/wm/test/unittest/window_session_impl_test.cpp b/wm/test/unittest/window_session_impl_test.cpp index 30feff8966461f5dad23e01f303d3bd842f75f6d..7f9c972e3cce33e0480678c4adcc7961ac3786dc 100644 --- a/wm/test/unittest/window_session_impl_test.cpp +++ b/wm/test/unittest/window_session_impl_test.cpp @@ -386,6 +386,26 @@ HWTEST_F(WindowSessionImplTest, WindowSessionCreateCheck03, TestSize.Level1) GTEST_LOG_(INFO) << "WindowSessionImplTest: WindowSessionCreateCheck03 end"; } +/** + * @tc.name: WindowSessionCreateCheck + * @tc.desc: WindowSessionCreateCheck04 + * @tc.type: FUNC + */ +HWTEST_F(WindowSessionImplTest, WindowSessionCreateCheck04, TestSize.Level1) +{ + GTEST_LOG_(INFO) << "WindowSessionImplTest: WindowSessionCreateCheck04 start"; + sptr option = sptr::MakeSptr(); + std::string name = "WindowSessionCreateCheck04"; + option->SetWindowName(name); + sptr window = new (std::nothrow) WindowSessionImpl(option); + ASSERT_NE(window, nullptr); + window->windowSystemConfig_.windowUIType_ = WindowUIType::PC_WINDOW; + window->property_->SetWindowType(WindowType::WINDOW_TYPE_MUTISCREEN_COLLABORATION); + WMError res = window->WindowSessionCreateCheck(); + ASSERT_EQ(res, WMError::WM_ERROR_DEVICE_NOT_SUPPORT); + GTEST_LOG_(INFO) << "WindowSessionImplTest: WindowSessionCreateCheck04 end"; +} + /** * @tc.name: SetActive * @tc.desc: SetActive