diff --git a/frameworks/src/bundle_state_query.cpp b/frameworks/src/bundle_state_query.cpp index ab28cbc76e3133436726fa3ab2dd741ce5b902b7..e4984e5bf6fcba3a122a813ea387bb28bd505cc3 100644 --- a/frameworks/src/bundle_state_query.cpp +++ b/frameworks/src/bundle_state_query.cpp @@ -297,7 +297,7 @@ napi_value QueryAppUsagePriorityGroup(napi_env env, napi_callback_info info) PriorityGroupParamsInfo params; AsyncCallbackInfoPriorityGroup *asyncCallbackInfo = nullptr; ParsePriorityGroupParameters(env, info, params, asyncCallbackInfo); - if (params.errorCode != ERR_OK) { + if (params.errorCode != ERR_OK && !asyncCallbackInfo) { return BundleStateCommon::JSParaError(env, params.callback, params.errorCode); } std::unique_ptr callbackPtr {asyncCallbackInfo}; @@ -814,7 +814,7 @@ napi_value SetBundleGroup(napi_env env, napi_callback_info info) ParamsBundleGroupInfo params; AsyncCallbackInfoSetBundleGroup *asyncCallbackInfo = nullptr; ParseAppUsageBundleGroupInfoParameters(env, info, params, asyncCallbackInfo); - if (params.errorCode != ERR_OK) { + if (params.errorCode != ERR_OK && !asyncCallbackInfo) { return BundleStateCommon::JSParaError(env, params.callback, params.errorCode); } std::unique_ptr callbackPtr {asyncCallbackInfo}; diff --git a/interfaces/innerkits/src/bundle_active_client.cpp b/interfaces/innerkits/src/bundle_active_client.cpp index 5ea22800b8ee263de76e3341d7c67f3419318e91..bc98d1d73b844e1b7df8bf169b491dd76165c9e9 100644 --- a/interfaces/innerkits/src/bundle_active_client.cpp +++ b/interfaces/innerkits/src/bundle_active_client.cpp @@ -21,6 +21,7 @@ namespace DeviceUsageStats { namespace { const std::string BUNDLE_ACTIVE_CLIENT_NAME = "bundleActiveName"; static const int32_t DELAY_TIME = 5000; + static const int32_t SLEEP_TIME = 1000; } BundleActiveClient& BundleActiveClient::GetInstance() { @@ -226,7 +227,7 @@ void BundleActiveClient::BundleActiveClientDeathRecipient::OnRemoteDied(const wp void BundleActiveClient::BundleActiveClientDeathRecipient::OnServiceDiedInner(const wptr &object) { while (!BundleActiveClient::GetInstance().GetBundleActiveProxy()) { - sleep(1000); + sleep(SLEEP_TIME); } if (observer_) { BundleActiveClient::GetInstance().RegisterGroupCallBack(observer_); diff --git a/services/common/src/bundle_active_service.cpp b/services/common/src/bundle_active_service.cpp index 28acc5335d9e2d7d564db173022dffac1ae95cb1..4d1b088cda602635868f6478b81d8b1f3c2f72e7 100644 --- a/services/common/src/bundle_active_service.cpp +++ b/services/common/src/bundle_active_service.cpp @@ -500,7 +500,8 @@ int32_t BundleActiveService::RegisterGroupCallBack(const sptrRegisterGroupCallBack(tokenId, observer); } return result; @@ -518,7 +519,8 @@ int32_t BundleActiveService::UnregisterGroupCallBack(const sptrUnregisterGroupCallBack(tokenId, observer); } return result; diff --git a/test/unittest/device_usage_statistics_test.cpp b/test/unittest/device_usage_statistics_test.cpp index c58abbdc1b50895cc0e20819142478735608f8ca..18faddf169d5712e41467972bb39ccda74b9c299 100644 --- a/test/unittest/device_usage_statistics_test.cpp +++ b/test/unittest/device_usage_statistics_test.cpp @@ -32,13 +32,11 @@ using namespace testing::ext; namespace OHOS { namespace DeviceUsageStats { -static std::string DEFAULT_BUNDLENAME = "com.ohos.camera"; -static std::string DEFAULT_MODULENAME = "defaultmodulename"; -static std::string DEFAULT_FORM_NAME = "defaultformname"; +static std::string g_defaultBundleName = "com.ohos.camera"; +static std::string g_defaultMoudleName = "defaultmodulename"; +static std::string g_defaultFormName = "defaultformname"; static int32_t DEFAULT_DIMENSION = 4; static int64_t DEFAULT_FORMID = 1; -static std::string DEFAULT_ABILITYID = "1234"; -static std::string DEFAULT_ABILITYNAME = "testability"; static int32_t DEFAULT_USERID = 0; static int32_t COMMON_USERID = 100; static int32_t DEFAULT_ERRCODE = 0; @@ -96,10 +94,10 @@ HWTEST_F(DeviceUsageStatisticsTest, DeviceUsageStatisticsTest_GetServiceObject_0 */ HWTEST_F(DeviceUsageStatisticsTest, DeviceUsageStatisticsTest_ReportEvent_001, Function | MediumTest | Level0) { - BundleActiveEvent eventA(DEFAULT_BUNDLENAME, DEFAULT_MODULENAME, DEFAULT_FORM_NAME, + BundleActiveEvent eventA(g_defaultBundleName, g_defaultMoudleName, g_defaultFormName, DEFAULT_DIMENSION, DEFAULT_FORMID, BundleActiveEvent::FORM_IS_CLICKED); BundleActiveClient::GetInstance().ReportEvent(eventA, DEFAULT_USERID); - BundleActiveEvent eventB(DEFAULT_BUNDLENAME, DEFAULT_MODULENAME, DEFAULT_FORM_NAME, + BundleActiveEvent eventB(g_defaultBundleName, g_defaultMoudleName, g_defaultFormName, DEFAULT_DIMENSION, DEFAULT_FORMID, BundleActiveEvent::FORM_IS_REMOVED); BundleActiveClient::GetInstance().ReportEvent(eventB, DEFAULT_USERID); } @@ -143,6 +141,20 @@ HWTEST_F(DeviceUsageStatisticsTest, DeviceUsageStatisticsTest_QueryPackagesStats EXPECT_EQ(result.size(), 0); } +/* + * @tc.name: DeviceUsageStatisticsTest_QueryCurrentPackageStats_001 + * @tc.desc: querycurrentpackagestats + * @tc.type: FUNC + * @tc.require: issuesI5QJD9 + */ +HWTEST_F(DeviceUsageStatisticsTest, DeviceUsageStatisticsTest_QueryCurrentPackageStats_001, + Function | MediumTest | Level0) +{ + std::vector result = + BundleActiveClient::GetInstance().QueryCurrentPackageStats(4, 0, LARGE_NUM); + EXPECT_EQ(result.size(), 0); +} + /* * @tc.name: DeviceUsageStatisticsTest_IsBundleIdle_001 * @tc.desc: isbundleidle @@ -152,7 +164,7 @@ HWTEST_F(DeviceUsageStatisticsTest, DeviceUsageStatisticsTest_QueryPackagesStats HWTEST_F(DeviceUsageStatisticsTest, DeviceUsageStatisticsTest_IsBundleIdle_001, Function | MediumTest | Level0) { int32_t errCode = 0; - bool result = BundleActiveClient::GetInstance().IsBundleIdle(DEFAULT_BUNDLENAME, errCode, DEFAULT_USERID); + bool result = BundleActiveClient::GetInstance().IsBundleIdle(g_defaultBundleName, errCode, DEFAULT_USERID); EXPECT_EQ(result, false); EXPECT_EQ(errCode, 0); } @@ -166,7 +178,7 @@ HWTEST_F(DeviceUsageStatisticsTest, DeviceUsageStatisticsTest_IsBundleIdle_001, HWTEST_F(DeviceUsageStatisticsTest, DeviceUsageStatisticsTest_QueryFormStatistics_001, Function | MediumTest | Level0) { int32_t maxNum = 1; - BundleActiveEvent eventA(DEFAULT_BUNDLENAME, DEFAULT_MODULENAME, DEFAULT_FORM_NAME, + BundleActiveEvent eventA(g_defaultBundleName, g_defaultMoudleName, g_defaultFormName, DEFAULT_DIMENSION, DEFAULT_FORMID, BundleActiveEvent::FORM_IS_CLICKED); BundleActiveClient::GetInstance().ReportEvent(eventA, DEFAULT_USERID); std::vector results; @@ -183,9 +195,9 @@ HWTEST_F(DeviceUsageStatisticsTest, DeviceUsageStatisticsTest_QueryFormStatistic */ HWTEST_F(DeviceUsageStatisticsTest, DeviceUsageStatisticsTest_SetBundleGroup_001, Function | MediumTest | Level0) { - int32_t result = BundleActiveClient::GetInstance().QueryPackageGroup(DEFAULT_BUNDLENAME, COMMON_USERID); + int32_t result = BundleActiveClient::GetInstance().QueryPackageGroup(g_defaultBundleName, COMMON_USERID); DEFAULT_GROUP = (result == DEFAULT_GROUP) ? (result + 10) : DEFAULT_GROUP; - result = BundleActiveClient::GetInstance().SetBundleGroup(DEFAULT_BUNDLENAME, DEFAULT_GROUP, + result = BundleActiveClient::GetInstance().SetBundleGroup(g_defaultBundleName, DEFAULT_GROUP, DEFAULT_ERRCODE, COMMON_USERID); EXPECT_EQ(result, DEFAULT_ERRCODE); } @@ -198,9 +210,9 @@ HWTEST_F(DeviceUsageStatisticsTest, DeviceUsageStatisticsTest_SetBundleGroup_001 */ HWTEST_F(DeviceUsageStatisticsTest, DeviceUsageStatisticsTest_QueryPackageGroup_001, Function | MediumTest | Level0) { - BundleActiveClient::GetInstance().SetBundleGroup(DEFAULT_BUNDLENAME, DEFAULT_GROUP, + BundleActiveClient::GetInstance().SetBundleGroup(g_defaultBundleName, DEFAULT_GROUP, DEFAULT_ERRCODE, COMMON_USERID); - int32_t result = BundleActiveClient::GetInstance().QueryPackageGroup(DEFAULT_BUNDLENAME, COMMON_USERID); + int32_t result = BundleActiveClient::GetInstance().QueryPackageGroup(g_defaultBundleName, COMMON_USERID); bool flag = false; for (auto item = GROUP_TYPE.begin(); item != GROUP_TYPE.end(); item++) { if (*item == result) { @@ -219,10 +231,11 @@ HWTEST_F(DeviceUsageStatisticsTest, DeviceUsageStatisticsTest_QueryPackageGroup_ */ HWTEST_F(DeviceUsageStatisticsTest, DeviceUsageStatisticsTest_RegisterGroupCallBack_001, Function | MediumTest | Level0) { - observer = std::make_unique().release(); if (!observer) { BUNDLE_ACTIVE_LOGI("RegisterGroupCallBack construct observer!"); + observer = std::make_unique().release(); } + ASSERT_NE(observer, nullptr); int32_t result = BundleActiveClient::GetInstance().RegisterGroupCallBack(observer); EXPECT_EQ(result, DEFAULT_ERRCODE); } @@ -239,6 +252,7 @@ HWTEST_F(DeviceUsageStatisticsTest, DeviceUsageStatisticsTest_UnRegisterGroupCal if (!observer) { BUNDLE_ACTIVE_LOGI("observer has been delete"); } + ASSERT_NE(observer, nullptr); int32_t result = BundleActiveClient::GetInstance().UnregisterGroupCallBack(observer); observer = nullptr; EXPECT_EQ(result, DEFAULT_ERRCODE);