support change path to el3, el4

Signed-off-by: hupeixi <hupeixi1@huawei.com>
This commit is contained in:
hupeixi
2023-11-13 09:04:27 +00:00
parent 1f9f37fb65
commit 58994e8f51
4 changed files with 55 additions and 4 deletions
@@ -39,6 +39,8 @@ static napi_value InitAreaModeObject(napi_env env)
NAPI_CALL(env, SetEnumItem(env, object, "EL1", 0));
NAPI_CALL(env, SetEnumItem(env, object, "EL2", 1));
NAPI_CALL(env, SetEnumItem(env, object, "EL3", 2));
NAPI_CALL(env, SetEnumItem(env, object, "EL4", 3));
return object;
}
@@ -65,7 +65,7 @@ const std::string ContextImpl::CONTEXT_DATABASE("database");
const std::string ContextImpl::CONTEXT_TEMP("/temp");
const std::string ContextImpl::CONTEXT_FILES("/files");
const std::string ContextImpl::CONTEXT_HAPS("/haps");
const std::string ContextImpl::CONTEXT_ELS[] = {"el1", "el2"};
const std::string ContextImpl::CONTEXT_ELS[] = {"el1", "el2", "el3", "el4"};
Global::Resource::DeviceType ContextImpl::deviceType_ = Global::Resource::DeviceType::DEVICE_NOT_SET;
const std::string OVERLAY_STATE_CHANGED = "usual.event.OVERLAY_STATE_CHANGED";
const int32_t TYPE_RESERVE = 1;
@@ -219,7 +219,7 @@ std::string ContextImpl::GetPreferencesDir()
int32_t ContextImpl::GetGroupDirWithCheck(const std::string &groupId, bool checkExist, std::string &groupDir)
{
if (currArea_ == CONTEXT_ELS[0]) {
HILOG_ERROR("GroupDir currently only supports the el2 level");
HILOG_ERROR("GroupDir currently can't supports the el1 level");
return ERR_INVALID_VALUE;
}
int errCode = GetBundleManager();
@@ -32,7 +32,7 @@ constexpr const char *CONTEXT_TEMP("temp");
constexpr const char *CONTEXT_FILES("files");
constexpr const char *CONTEXT_HAPS("haps");
constexpr const char *CONTEXT_ASSET("asset");
constexpr const char *CONTEXT_ELS[] = {"el1", "el2"};
constexpr const char *CONTEXT_ELS[] = {"el1", "el2", "el3", "el4"};
constexpr int DIR_DEFAULT_PERM = 0770;
}
std::shared_ptr<AppExecFwk::Configuration> AbilityStageContext::GetConfiguration()
@@ -239,6 +239,47 @@ HWTEST_F(ContextImplTest, GetDatabaseDir_0100, TestSize.Level1)
HILOG_INFO("%{public}s end.", __func__);
}
/**
* @tc.name: GetDatabaseDir_0200
* @tc.desc: Get base directory basic test.
* @tc.type: FUNC
* @tc.require: issueI8G3YE
*/
HWTEST_F(ContextImplTest, GetDatabaseDir_0200, TestSize.Level1)
{
HILOG_INFO("%{public}s start.", __func__);
auto contextImpl = std::make_shared<AbilityRuntime::ContextImpl>();
EXPECT_NE(contextImpl, nullptr);
// not create by system app and parent context is nullptr
contextImpl->SwitchArea(2);
auto databaseDir = contextImpl->GetDatabaseDir();
EXPECT_EQ(databaseDir, "/data/storage/el3/database");
// create by system app and parent context is not nullptr
contextImpl->SetFlags(CONTEXT_CREATE_BY_SYSTEM_APP);
auto parentContext = std::make_shared<AbilityRuntime::ContextImpl>();
EXPECT_NE(parentContext, nullptr);
auto applicationInfo = std::make_shared<AppExecFwk::ApplicationInfo>();
EXPECT_NE(applicationInfo, nullptr);
applicationInfo->bundleName = "com.test.database";
parentContext->SetApplicationInfo(applicationInfo);
contextImpl->SetParentContext(parentContext);
contextImpl->SwitchArea(2);
databaseDir = contextImpl->GetDatabaseDir();
EXPECT_EQ(databaseDir, "/data/app/el3/0/database/com.test.database/");
// create by system app and hap module info of parent context is not nullptr
AppExecFwk::HapModuleInfo hapModuleInfo;
hapModuleInfo.moduleName = "test_moduleName";
contextImpl->InitHapModuleInfo(hapModuleInfo);
contextImpl->SwitchArea(2);
databaseDir = contextImpl->GetDatabaseDir();
EXPECT_EQ(databaseDir, "/data/app/el3/0/database/com.test.database/test_moduleName");
HILOG_INFO("%{public}s end.", __func__);
}
/**
* @tc.name: GetPreferencesDir_0100
* @tc.desc: Get preference directory basic test.
@@ -369,7 +410,7 @@ HWTEST_F(ContextImplTest, SwitchArea_0100, TestSize.Level1)
// invalid mode
contextImpl->SwitchArea(-1);
contextImpl->SwitchArea(2);
contextImpl->SwitchArea(4);
// valid mode
contextImpl->SwitchArea(0);
@@ -398,6 +439,14 @@ HWTEST_F(ContextImplTest, GetAreaArea_0100, TestSize.Level1)
mode = contextImpl->GetArea();
EXPECT_EQ(mode, 1);
contextImpl->SwitchArea(2);
mode = contextImpl->GetArea();
EXPECT_EQ(mode, 2);
contextImpl->SwitchArea(3);
mode = contextImpl->GetArea();
EXPECT_EQ(mode, 3);
// invalid area_
contextImpl->currArea_ = "invalid";
mode = contextImpl->GetArea();