• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2023 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, software
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 <cstring>
17 #include <gmock/gmock.h>
18 #include <gtest/gtest.h>
19 
20 #define private public
21 #include "enterprise_device_management_adapter_impl.h"
22 #if defined(NWEB_ENTERPRISE_DEVICE_MANAGER_ENABLE)
23 #include "browser_proxy.h"
24 #endif
25 #include "common_event_data.h"
26 
27 using namespace testing;
28 using namespace testing::ext;
29 #if defined(NWEB_ENTERPRISE_DEVICE_MANAGER_ENABLE)
30 using namespace OHOS::EDM;
31 #endif
32 using namespace OHOS::EventFwk;
33 
34 namespace OHOS {
35 namespace {
36 bool g_subscribeCommonEventRet = true;
37 bool g_unSubscribeCommonEventRet = true;
38 using Want = OHOS::AAFwk::Want;
39 } //namespace
40 namespace EventFwk {
SubscribeCommonEvent(const std::shared_ptr<CommonEventSubscriber> & subscriber)41 bool CommonEventManager::SubscribeCommonEvent(const std::shared_ptr<CommonEventSubscriber> &subscriber)
42 {
43     return g_subscribeCommonEventRet;
44 }
UnSubscribeCommonEvent(const std::shared_ptr<CommonEventSubscriber> & subscriber)45 bool CommonEventManager::UnSubscribeCommonEvent(const std::shared_ptr<CommonEventSubscriber> &subscriber)
46 {
47     return g_unSubscribeCommonEventRet;
48 }
49 }
50 
51 #if defined(NWEB_ENTERPRISE_DEVICE_MANAGER_ENABLE)
52 namespace EDM {
53 namespace {
54 std::shared_ptr<BrowserProxy> g_browserProxy = nullptr;
55 } // namespace
GetBrowserProxy()56 std::shared_ptr<BrowserProxy> BrowserProxy::GetBrowserProxy()
57 {
58     return g_browserProxy;
59 }
60 }
61 #endif
62 
63 namespace NWeb {
64 class EnterpriseDeviceImplTest : public testing::Test {
65 public:
66     static void SetUpTestCase(void);
67     static void TearDownTestCase(void);
68     void SetUp();
69     void TearDown();
70 };
71 
SetUpTestCase(void)72 void EnterpriseDeviceImplTest::SetUpTestCase(void)
73 {}
74 
TearDownTestCase(void)75 void EnterpriseDeviceImplTest::TearDownTestCase(void)
76 {}
77 
SetUp(void)78 void EnterpriseDeviceImplTest::SetUp(void)
79 {}
80 
TearDown(void)81 void EnterpriseDeviceImplTest::TearDown(void)
82 {}
83 
84 class MockEdmPolicyChangedEventCallbackAdapter : public EdmPolicyChangedEventCallbackAdapter {
85 public:
86     MockEdmPolicyChangedEventCallbackAdapter() = default;
Changed()87     void Changed() {}
88 };
89 
90 /**
91  * @tc.name: EnterpriseDeviceImplTest_BackgroundTaskAdapter_001
92  * @tc.desc: BackgroundTaskAdapter.
93  * @tc.type: FUNC
94  * @tc.require:
95  */
96 HWTEST_F(EnterpriseDeviceImplTest, EnterpriseDeviceImplTest_BackgroundTaskAdapter_001, TestSize.Level1)
97 {
98 #if defined(NWEB_ENTERPRISE_DEVICE_MANAGER_ENABLE)
99     std::string policies = "web_test";
100     int32_t result = EnterpriseDeviceManagementAdapterImpl::GetInstance().GetPolicies(policies);
101     EXPECT_EQ(result, -1);
102     g_browserProxy = std::make_shared<BrowserProxy>();
103     result = EnterpriseDeviceManagementAdapterImpl::GetInstance().GetPolicies(policies);
104     EXPECT_EQ(result, 0);
105 
106     bool start = EnterpriseDeviceManagementAdapterImpl::GetInstance().StartObservePolicyChange();
107     EXPECT_TRUE(start);
108     g_subscribeCommonEventRet = false;
109     start = EnterpriseDeviceManagementAdapterImpl::GetInstance().StartObservePolicyChange();
110     EXPECT_FALSE(start);
111 
112     bool stop = EnterpriseDeviceManagementAdapterImpl::GetInstance().StopObservePolicyChange();
113     EXPECT_TRUE(stop);
114     g_unSubscribeCommonEventRet = false;
115     stop = EnterpriseDeviceManagementAdapterImpl::GetInstance().StopObservePolicyChange();
116     EXPECT_FALSE(stop);
117     EnterpriseDeviceManagementAdapterImpl::GetInstance().commonEventSubscriber_ = nullptr;
118     stop = EnterpriseDeviceManagementAdapterImpl::GetInstance().StopObservePolicyChange();
119     EXPECT_TRUE(stop);
120 #else
121     std::string policies = "web_test";
122     int32_t result = EnterpriseDeviceManagementAdapterImpl::GetInstance().GetPolicies(policies);
123     EXPECT_EQ(result, -1);
124 #endif
125 }
126 
127 /**
128  * @tc.name: EnterpriseDeviceImplTest_OnReceiveEvent_002
129  * @tc.desc: OnReceiveEvent.
130  * @tc.type: FUNC
131  * @tc.require:
132  */
133 #if defined(NWEB_ENTERPRISE_DEVICE_MANAGER_ENABLE)
134 HWTEST_F(EnterpriseDeviceImplTest, EnterpriseDeviceImplTest_OnReceiveEvent_002, TestSize.Level2)
135 {
136     Want want;
137     want.SetAction("web_test");
138     OHOS::EventFwk::CommonEventData data(want);
139     OHOS::EventFwk::CommonEventSubscribeInfo in;
140     std::shared_ptr<EdmPolicyChangedEventCallbackAdapter> cb =
141         std::make_shared<MockEdmPolicyChangedEventCallbackAdapter>();
142     std::shared_ptr<NWebEdmEventSubscriber> result = std::make_shared<NWebEdmEventSubscriber>(in, cb);
143     EXPECT_NE(result, nullptr);
144     result->OnReceiveEvent(data);
145     Want setwant;
146     setwant.SetAction("com.ohos.edm.browserpolicychanged");
147     OHOS::EventFwk::CommonEventData test(setwant);
148     result->OnReceiveEvent(test);
149 }
150 #endif
151 }
152 } // namespace OHOS
153