Description: support ohos module import

IssueNo: I4I0BX
Feature or Bugfix: Feature
Binary Source:No

Signed-off-by: jiadexiang <jiadexiang@huawei.com>
This commit is contained in:
jiadexiang
2021-11-13 09:52:41 +08:00
parent 4d810a948a
commit a4376e2162
4 changed files with 33 additions and 5 deletions
+3 -4
View File
@@ -36,7 +36,7 @@ JSIValue ModuleManager::RequireModule(const char * const moduleName)
}
JSIValue moduleObj;
if (!strcmp(category, CATEGORY_SYSTEM)) {
if (!strcmp(category, CATEGORY_SYSTEM) || !strcmp(category, CATEGORY_OHOS)) {
uint16_t moduleCount = sizeof(OHOS_MODULES) / sizeof(Module);
moduleObj = GetModuleObject(name, OHOS_MODULES, moduleCount, requiredSystemModules);
#ifdef FEATURE_PRODUCT_MODULE
@@ -93,9 +93,8 @@ bool ModuleManager::ParseModuleName(const char * const moduleName, char** catego
return false;
}
// Get name
tokenStr = strtok_s(nullptr, ".", &next);
if (!CreateString(tokenStr, name)) {
// Get the rest as name
if (!CreateString(next, name)) {
ace_free(str);
str = nullptr;
ace_free(*category);
@@ -157,6 +157,7 @@ private:
// For different native module type
const char* CATEGORY_SYSTEM = "system";
const char* CATEGORY_OHOS = "ohos";
// JS object for caching modules
static JSIValue requiredSystemModules;
@@ -202,6 +202,22 @@ void RequireModuleTddTest::RequireModuleTest007()
TDD_CASE_END();
}
void RequireModuleTddTest::RequireModuleTest008()
{
TDD_CASE_BEGIN();
/**
* @tc.steps: step1. require a module with module name registered which is ohos
*/
constexpr char *moduleName = "ohos.app";
JSIValue module = moduleManager_->RequireModule(moduleName);
/**
* @tc.expected: step1. module is not undefined
*/
EXPECT_FALSE(JSI::ValueIsUndefined(module));
JSI::ReleaseValue(module);
TDD_CASE_END();
}
void RequireModuleTddTest::RunTests()
{
RequireModuleTest001();
@@ -211,6 +227,7 @@ void RequireModuleTddTest::RunTests()
RequireModuleTest005();
RequireModuleTest006();
RequireModuleTest007();
RequireModuleTest008();
}
#ifdef TDD_ASSERTIONS
@@ -283,6 +300,16 @@ HWTEST_F(RequireModuleTddTest, test007, TestSize.Level1)
{
RequireModuleTddTest::RequireModuleTest007();
}
/**
* @tc.name: RequireModuleTest008
* @tc.desc: Verify the ohos module importing process.
* @tc.require: AR000DSEHC
*/
HWTEST_F(RequireModuleTddTest, test008, TestSize.Level1)
{
RequireModuleTddTest::RequireModuleTest008();
}
#endif
} // namespace ACELite
} // namespace OHOS
} // namespace OHOS
@@ -46,6 +46,7 @@ public:
void RequireModuleTest005();
void RequireModuleTest006();
void RequireModuleTest007();
void RequireModuleTest008();
void RunTests();
private: