diff --git a/frameworks/module_manager/module_manager.cpp b/frameworks/module_manager/module_manager.cpp index 1b28051..4a76f5a 100644 --- a/frameworks/module_manager/module_manager.cpp +++ b/frameworks/module_manager/module_manager.cpp @@ -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); diff --git a/frameworks/module_manager/module_manager.h b/frameworks/module_manager/module_manager.h index 0950a5f..821a8d9 100644 --- a/frameworks/module_manager/module_manager.h +++ b/frameworks/module_manager/module_manager.h @@ -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; diff --git a/frameworks/module_manager/test/unittest/common/require_module_tdd_test.cpp b/frameworks/module_manager/test/unittest/common/require_module_tdd_test.cpp index 4826aa5..f173e11 100644 --- a/frameworks/module_manager/test/unittest/common/require_module_tdd_test.cpp +++ b/frameworks/module_manager/test/unittest/common/require_module_tdd_test.cpp @@ -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 \ No newline at end of file +} // namespace OHOS diff --git a/frameworks/module_manager/test/unittest/common/require_module_tdd_test.h b/frameworks/module_manager/test/unittest/common/require_module_tdd_test.h index cd18918..077cc27 100644 --- a/frameworks/module_manager/test/unittest/common/require_module_tdd_test.h +++ b/frameworks/module_manager/test/unittest/common/require_module_tdd_test.h @@ -46,6 +46,7 @@ public: void RequireModuleTest005(); void RequireModuleTest006(); void RequireModuleTest007(); + void RequireModuleTest008(); void RunTests(); private: