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/interfaces/test/unittest/device_usage_statistics_jsunittest/device_usage_statistics_jsunit.test.js b/interfaces/test/unittest/device_usage_statistics_jsunittest/device_usage_statistics_jsunit.test.js index cb8ec0523579377c9940e36b9958a15fee3659d9..680656f3adc6d0003c80a78d4f1bfb68fd7445f8 100644 --- a/interfaces/test/unittest/device_usage_statistics_jsunittest/device_usage_statistics_jsunit.test.js +++ b/interfaces/test/unittest/device_usage_statistics_jsunittest/device_usage_statistics_jsunit.test.js @@ -392,42 +392,54 @@ describe("DeviceUsageStatisticsJsTest", function () { /* * @tc.name: DeviceUsageStatisticsJsTest017 - * @tc.desc: test setBundleGroup promise. + * @tc.desc: test registerGroupCallBack promise. * @tc.type: FUNC * @tc.require: SR000H0HAQ AR000H0ROE */ it("DeviceUsageStatisticsJsTest017", 0, async function (done) { console.info('----------------------DeviceUsageStatisticsJsTest017---------------------------'); - let bundleName = 'com.example.deviceUsageStatistics'; - let newGroup = 30; - bundleState.setBundleGroup(bundleName, newGroup).then( res => { - console.info('BUNDLE_ACTIVE setBundleGroup promise success.'); - expect(false).assertEqual(true); + let onBundleGroupChanged = (err,res) =>{ + console.log('BUNDLE_ACTIVE RegisterGroupCallBack callback success.'); + console.log('BUNDLE_ACTIVE RegisterGroupCallBack appUsageOldGroup is : ' + res.appUsageOldGroup); + console.log('BUNDLE_ACTIVE RegisterGroupCallBack appUsageNewGroup is : ' + res.appUsageNewGroup); + console.log('BUNDLE_ACTIVE RegisterGroupCallBack changeReason is : ' + res.changeReason); + console.log('BUNDLE_ACTIVE RegisterGroupCallBack userId is : ' + res.userId); + console.log('BUNDLE_ACTIVE RegisterGroupCallBack bundleName is : ' + res.bundleName); + }; + bundleState.registerGroupCallBack(onBundleGroupChanged).then( res => { + console.info('BUNDLE_ACTIVE RegisterGroupCallBack promise success.'); + expect(true).assertEqual(true); done(); }).catch( err => { - console.info('BUNDLE_ACTIVE setBundleGroup promise failure.'); - expect(true).assertEqual(true); + console.info('BUNDLE_ACTIVE RegisterGroupCallBack promise failure.'); + expect(false).assertEqual(true); done(); }); }) /* * @tc.name: DeviceUsageStatisticsJsTest018 - * @tc.desc: test setBundleGroup callback. + * @tc.desc: test registerGroupCallBack callback. * @tc.type: FUNC * @tc.require: SR000H0HAQ AR000H0ROE */ it("DeviceUsageStatisticsJsTest018", 0, async function (done) { console.info('----------------------DeviceUsageStatisticsJsTest018---------------------------'); - let bundleName = 'com.example.deviceUsageStatistics'; - let newGroup = 30; - bundleState.setBundleGroup(bundleName, newGroup, (err, res) => { + let onBundleGroupChanged = (err,res) =>{ + console.log('BUNDLE_ACTIVE onBundleGroupChanged RegisterGroupCallBack callback success.'); + console.log('BUNDLE_ACTIVE RegisterGroupCallBack appUsageOldGroup is : ' + res.appUsageOldGroup); + console.log('BUNDLE_ACTIVE RegisterGroupCallBack appUsageNewGroup is : ' + res.appUsageNewGroup); + console.log('BUNDLE_ACTIVE RegisterGroupCallBack changeReason is : ' + res.changeReason); + console.log('BUNDLE_ACTIVE RegisterGroupCallBack userId is : ' + res.userId); + console.log('BUNDLE_ACTIVE RegisterGroupCallBack bundleName is : ' + res.bundleName); + }; + bundleState.registerGroupCallBack(onBundleGroupChanged, (err, res) => { if (err) { - console.info('BUNDLE_ACTIVE setBundleGroup callback failure.'); + console.info('BUNDLE_ACTIVE registerGroupCallBack callback failure.'); expect(true).assertEqual(true); done(); } else { - console.info('BUNDLE_ACTIVE setBundleGroup callback success.'); + console.info('BUNDLE_ACTIVE registerGroupCallBack callback success.'); expect(false).assertEqual(true); done(); } @@ -436,26 +448,18 @@ describe("DeviceUsageStatisticsJsTest", function () { /* * @tc.name: DeviceUsageStatisticsJsTest019 - * @tc.desc: test registerGroupCallBack promise. + * @tc.desc: test unRegisterGroupCallBack promise. * @tc.type: FUNC * @tc.require: SR000H0HAQ AR000H0ROE */ it("DeviceUsageStatisticsJsTest019", 0, async function (done) { console.info('----------------------DeviceUsageStatisticsJsTest019---------------------------'); - let onBundleGroupChanged = (err,res) =>{ - console.log('BUNDLE_ACTIVE RegisterGroupCallBack callback success.'); - console.log('BUNDLE_ACTIVE RegisterGroupCallBack appUsageOldGroup is : ' + res.appUsageOldGroup); - console.log('BUNDLE_ACTIVE RegisterGroupCallBack appUsageNewGroup is : ' + res.appUsageNewGroup); - console.log('BUNDLE_ACTIVE RegisterGroupCallBack changeReason is : ' + res.changeReason); - console.log('BUNDLE_ACTIVE RegisterGroupCallBack userId is : ' + res.userId); - console.log('BUNDLE_ACTIVE RegisterGroupCallBack bundleName is : ' + res.bundleName); - }; - bundleState.registerGroupCallBack(onBundleGroupChanged).then( res => { - console.info('BUNDLE_ACTIVE RegisterGroupCallBack promise success.'); + bundleState.unRegisterGroupCallBack().then( res => { + console.info('BUNDLE_ACTIVE unRegisterGroupCallBack promise success.'); expect(true).assertEqual(true); done(); }).catch( err => { - console.info('BUNDLE_ACTIVE RegisterGroupCallBack promise failure.'); + console.info('BUNDLE_ACTIVE unRegisterGroupCallBack promise failure.'); expect(false).assertEqual(true); done(); }); @@ -463,27 +467,19 @@ describe("DeviceUsageStatisticsJsTest", function () { /* * @tc.name: DeviceUsageStatisticsJsTest020 - * @tc.desc: test registerGroupCallBack callback. + * @tc.desc: test unRegisterGroupCallBack callback. * @tc.type: FUNC * @tc.require: SR000H0HAQ AR000H0ROE */ it("DeviceUsageStatisticsJsTest020", 0, async function (done) { console.info('----------------------DeviceUsageStatisticsJsTest020---------------------------'); - let onBundleGroupChanged = (err,res) =>{ - console.log('BUNDLE_ACTIVE onBundleGroupChanged RegisterGroupCallBack callback success.'); - console.log('BUNDLE_ACTIVE RegisterGroupCallBack appUsageOldGroup is : ' + res.appUsageOldGroup); - console.log('BUNDLE_ACTIVE RegisterGroupCallBack appUsageNewGroup is : ' + res.appUsageNewGroup); - console.log('BUNDLE_ACTIVE RegisterGroupCallBack changeReason is : ' + res.changeReason); - console.log('BUNDLE_ACTIVE RegisterGroupCallBack userId is : ' + res.userId); - console.log('BUNDLE_ACTIVE RegisterGroupCallBack bundleName is : ' + res.bundleName); - }; - bundleState.registerGroupCallBack(onBundleGroupChanged, (err, res) => { + bundleState.unRegisterGroupCallBack((err, res) => { if (err) { - console.info('BUNDLE_ACTIVE registerGroupCallBack callback failure.'); + console.info('BUNDLE_ACTIVE unRegisterGroupCallBack callback failure.'); expect(true).assertEqual(true); done(); } else { - console.info('BUNDLE_ACTIVE registerGroupCallBack callback success.'); + console.info('BUNDLE_ACTIVE unRegisterGroupCallBack callback success.'); expect(false).assertEqual(true); done(); } @@ -492,18 +488,20 @@ describe("DeviceUsageStatisticsJsTest", function () { /* * @tc.name: DeviceUsageStatisticsJsTest021 - * @tc.desc: test unRegisterGroupCallBack promise. + * @tc.desc: test setBundleGroup promise. * @tc.type: FUNC * @tc.require: SR000H0HAQ AR000H0ROE */ it("DeviceUsageStatisticsJsTest021", 0, async function (done) { console.info('----------------------DeviceUsageStatisticsJsTest021---------------------------'); - bundleState.unRegisterGroupCallBack().then( res => { - console.info('BUNDLE_ACTIVE unRegisterGroupCallBack promise success.'); + let bundleName = 'com.ohos.camera'; + let newGroup = 20; + bundleState.setBundleGroup(bundleName, newGroup).then( res => { + console.info('BUNDLE_ACTIVE setBundleGroup promise success.'); expect(true).assertEqual(true); done(); }).catch( err => { - console.info('BUNDLE_ACTIVE unRegisterGroupCallBack promise failure.'); + console.info('BUNDLE_ACTIVE setBundleGroup promise failure.'); expect(false).assertEqual(true); done(); }); @@ -511,20 +509,22 @@ describe("DeviceUsageStatisticsJsTest", function () { /* * @tc.name: DeviceUsageStatisticsJsTest022 - * @tc.desc: test unRegisterGroupCallBack callback. + * @tc.desc: test setBundleGroup callback. * @tc.type: FUNC * @tc.require: SR000H0HAQ AR000H0ROE */ it("DeviceUsageStatisticsJsTest022", 0, async function (done) { console.info('----------------------DeviceUsageStatisticsJsTest022---------------------------'); - bundleState.unRegisterGroupCallBack((err, res) => { + let bundleName = 'com.ohos.camera'; + let newGroup = 30; + bundleState.setBundleGroup(bundleName, newGroup, (err, res) => { if (err) { - console.info('BUNDLE_ACTIVE unRegisterGroupCallBack callback failure.'); - expect(true).assertEqual(true); + console.info('BUNDLE_ACTIVE setBundleGroup callback failure.'); + expect(false).assertEqual(true); done(); } else { - console.info('BUNDLE_ACTIVE unRegisterGroupCallBack callback success.'); - expect(false).assertEqual(true); + console.info('BUNDLE_ACTIVE setBundleGroup callback success.'); + expect(true).assertEqual(true); done(); } }); 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..c7a9ca02e6e3d29eadfb230a4feff2449ac607cf 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; @@ -175,42 +187,6 @@ HWTEST_F(DeviceUsageStatisticsTest, DeviceUsageStatisticsTest_QueryFormStatistic EXPECT_EQ(results.size(), 0); } -/* - * @tc.name: DeviceUsageStatisticsTest_SetBundleGroup_001 - * @tc.desc: setbundlename - * @tc.type: FUNC - * @tc.require: SR000H0HAQ AR000H0ROE - */ -HWTEST_F(DeviceUsageStatisticsTest, DeviceUsageStatisticsTest_SetBundleGroup_001, Function | MediumTest | Level0) -{ - int32_t result = BundleActiveClient::GetInstance().QueryPackageGroup(DEFAULT_BUNDLENAME, COMMON_USERID); - DEFAULT_GROUP = (result == DEFAULT_GROUP) ? (result + 10) : DEFAULT_GROUP; - result = BundleActiveClient::GetInstance().SetBundleGroup(DEFAULT_BUNDLENAME, DEFAULT_GROUP, - DEFAULT_ERRCODE, COMMON_USERID); - EXPECT_EQ(result, DEFAULT_ERRCODE); -} - -/* - * @tc.name: DeviceUsageStatisticsTest_QueryPackageGroup_001 - * @tc.desc: querypackagegroup, no bundleName - * @tc.type: FUNC - * @tc.require: SR000H0HAQ AR000H0ROE - */ -HWTEST_F(DeviceUsageStatisticsTest, DeviceUsageStatisticsTest_QueryPackageGroup_001, Function | MediumTest | Level0) -{ - BundleActiveClient::GetInstance().SetBundleGroup(DEFAULT_BUNDLENAME, DEFAULT_GROUP, - DEFAULT_ERRCODE, COMMON_USERID); - int32_t result = BundleActiveClient::GetInstance().QueryPackageGroup(DEFAULT_BUNDLENAME, COMMON_USERID); - bool flag = false; - for (auto item = GROUP_TYPE.begin(); item != GROUP_TYPE.end(); item++) { - if (*item == result) { - flag = true; - break; - } - } - EXPECT_EQ(flag, true); -} - /* * @tc.name: DeviceUsageStatisticsTest_RegisterGroupCallBack_001 * @tc.desc: registercallback @@ -219,10 +195,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,11 +216,48 @@ 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); } +/* + * @tc.name: DeviceUsageStatisticsTest_SetBundleGroup_001 + * @tc.desc: setbundlename + * @tc.type: FUNC + * @tc.require: SR000H0HAQ AR000H0ROE + */ +HWTEST_F(DeviceUsageStatisticsTest, DeviceUsageStatisticsTest_SetBundleGroup_001, Function | MediumTest | Level0) +{ + int32_t result = BundleActiveClient::GetInstance().QueryPackageGroup(g_defaultBundleName, COMMON_USERID); + DEFAULT_GROUP = (result == DEFAULT_GROUP) ? (result + 10) : DEFAULT_GROUP; + result = BundleActiveClient::GetInstance().SetBundleGroup(g_defaultBundleName, DEFAULT_GROUP, + DEFAULT_ERRCODE, COMMON_USERID); + EXPECT_EQ(result, DEFAULT_ERRCODE); +} + +/* + * @tc.name: DeviceUsageStatisticsTest_QueryPackageGroup_001 + * @tc.desc: querypackagegroup, no bundleName + * @tc.type: FUNC + * @tc.require: SR000H0HAQ AR000H0ROE + */ +HWTEST_F(DeviceUsageStatisticsTest, DeviceUsageStatisticsTest_QueryPackageGroup_001, Function | MediumTest | Level0) +{ + BundleActiveClient::GetInstance().SetBundleGroup(g_defaultBundleName, DEFAULT_GROUP, + DEFAULT_ERRCODE, 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) { + flag = true; + break; + } + } + EXPECT_EQ(flag, true); +} + /* * @tc.name: DeviceUsageStatisticsTest_QueryEventStats_001 * @tc.desc: QueryEventStats