13af6ab5fSopenharmony_ci/* 23af6ab5fSopenharmony_ci * Copyright (c) 2024 Huawei Device Co., Ltd. 33af6ab5fSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 43af6ab5fSopenharmony_ci * you may not use this file except in compliance with the License. 53af6ab5fSopenharmony_ci * You may obtain a copy of the License at 63af6ab5fSopenharmony_ci * 73af6ab5fSopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 83af6ab5fSopenharmony_ci * 93af6ab5fSopenharmony_ci * Unless required by applicable law or agreed to in writing, software 103af6ab5fSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 113af6ab5fSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 123af6ab5fSopenharmony_ci * See the License for the specific language governing permissions and 133af6ab5fSopenharmony_ci * limitations under the License. 143af6ab5fSopenharmony_ci */ 153af6ab5fSopenharmony_ci 163af6ab5fSopenharmony_ciimport { readProjectPropertiesByCollectedPaths, ReseverdSetForArkguard } from '../../../src/common/ApiReader'; 173af6ab5fSopenharmony_ciimport { assert } from 'chai'; 183af6ab5fSopenharmony_ciimport { NameGeneratorType } from '../../../src/generator/NameFactory'; 193af6ab5fSopenharmony_ci 203af6ab5fSopenharmony_cidescribe('test for ApiReader', function () { 213af6ab5fSopenharmony_ci describe('test for readProjectPropertiesByCollectedPaths', function () { 223af6ab5fSopenharmony_ci const fileList: Set<string> = new Set([ 233af6ab5fSopenharmony_ci "test/ut/utils/apiTest_readProjectPropertiesByCollectedPaths/block_enum_test.ts", 243af6ab5fSopenharmony_ci "test/ut/utils/apiTest_readProjectPropertiesByCollectedPaths/enum_test.ts", 253af6ab5fSopenharmony_ci "test/ut/utils/apiTest_readProjectPropertiesByCollectedPaths/export_enum_test.ts", 263af6ab5fSopenharmony_ci "test/ut/utils/apiTest_readProjectPropertiesByCollectedPaths/namespace_enum_test.ts" 273af6ab5fSopenharmony_ci ]); 283af6ab5fSopenharmony_ci 293af6ab5fSopenharmony_ci it('-enable-export-obfuscation + -enable-property-obfuscation', function () { 303af6ab5fSopenharmony_ci let projectAndLibs: ReseverdSetForArkguard = 313af6ab5fSopenharmony_ci readProjectPropertiesByCollectedPaths(fileList, 323af6ab5fSopenharmony_ci { 333af6ab5fSopenharmony_ci mNameObfuscation: { 343af6ab5fSopenharmony_ci mEnable: true, 353af6ab5fSopenharmony_ci mReservedProperties: [], 363af6ab5fSopenharmony_ci mRenameProperties: true, 373af6ab5fSopenharmony_ci mKeepStringProperty: false, 383af6ab5fSopenharmony_ci mNameGeneratorType: NameGeneratorType.ORDERED, 393af6ab5fSopenharmony_ci mReservedNames: [], 403af6ab5fSopenharmony_ci mReservedToplevelNames: [] 413af6ab5fSopenharmony_ci }, 423af6ab5fSopenharmony_ci mExportObfuscation: true, 433af6ab5fSopenharmony_ci mKeepFileSourceCode: { 443af6ab5fSopenharmony_ci mKeepSourceOfPaths: new Set(), 453af6ab5fSopenharmony_ci mkeepFilesAndDependencies: new Set(), 463af6ab5fSopenharmony_ci }, 473af6ab5fSopenharmony_ci 483af6ab5fSopenharmony_ci }, true); 493af6ab5fSopenharmony_ci let enumPropertySet = projectAndLibs.enumPropertySet; 503af6ab5fSopenharmony_ci assert.strictEqual(enumPropertySet.has('BLOCK_PARAM1'), true); 513af6ab5fSopenharmony_ci assert.strictEqual(enumPropertySet.has('BLOCK_PARAM2'), true); 523af6ab5fSopenharmony_ci assert.strictEqual(enumPropertySet.has('ENUM_PARAM1'), true); 533af6ab5fSopenharmony_ci assert.strictEqual(enumPropertySet.has('ENUM_PARAM2'), true); 543af6ab5fSopenharmony_ci assert.strictEqual(enumPropertySet.has('NS_PARAM1'), true); 553af6ab5fSopenharmony_ci assert.strictEqual(enumPropertySet.has('NS_PARAM2'), true); 563af6ab5fSopenharmony_ci assert.strictEqual(enumPropertySet.has('EXPORT_PARAM1'), true); 573af6ab5fSopenharmony_ci assert.strictEqual(enumPropertySet.has('EXPORT_PARAM2'), true); 583af6ab5fSopenharmony_ci }); 593af6ab5fSopenharmony_ci 603af6ab5fSopenharmony_ci it('-enable-property-obfuscation', function () { 613af6ab5fSopenharmony_ci let projectAndLibs: ReseverdSetForArkguard = 623af6ab5fSopenharmony_ci readProjectPropertiesByCollectedPaths(fileList, 633af6ab5fSopenharmony_ci { 643af6ab5fSopenharmony_ci mNameObfuscation: { 653af6ab5fSopenharmony_ci mEnable: true, 663af6ab5fSopenharmony_ci mReservedProperties: [], 673af6ab5fSopenharmony_ci mRenameProperties: true, 683af6ab5fSopenharmony_ci mKeepStringProperty: false, 693af6ab5fSopenharmony_ci mNameGeneratorType: NameGeneratorType.ORDERED, 703af6ab5fSopenharmony_ci mReservedNames: [], 713af6ab5fSopenharmony_ci mReservedToplevelNames: [] 723af6ab5fSopenharmony_ci }, 733af6ab5fSopenharmony_ci mExportObfuscation: false, 743af6ab5fSopenharmony_ci mKeepFileSourceCode: { 753af6ab5fSopenharmony_ci mKeepSourceOfPaths: new Set(), 763af6ab5fSopenharmony_ci mkeepFilesAndDependencies: new Set(), 773af6ab5fSopenharmony_ci } 783af6ab5fSopenharmony_ci }, true); 793af6ab5fSopenharmony_ci let enumPropertySet = projectAndLibs.enumPropertySet; 803af6ab5fSopenharmony_ci let exportNameAndPropSet = projectAndLibs.exportNameAndPropSet; 813af6ab5fSopenharmony_ci assert.strictEqual(enumPropertySet.has('BLOCK_PARAM1'), true); 823af6ab5fSopenharmony_ci assert.strictEqual(enumPropertySet.has('BLOCK_PARAM2'), true); 833af6ab5fSopenharmony_ci assert.strictEqual(enumPropertySet.has('ENUM_PARAM1'), true); 843af6ab5fSopenharmony_ci assert.strictEqual(enumPropertySet.has('ENUM_PARAM2'), true); 853af6ab5fSopenharmony_ci assert.strictEqual(enumPropertySet.has('NS_PARAM1'), true); 863af6ab5fSopenharmony_ci assert.strictEqual(enumPropertySet.has('NS_PARAM2'), true); 873af6ab5fSopenharmony_ci assert.strictEqual(enumPropertySet.has('EXPORT_PARAM1'), true); 883af6ab5fSopenharmony_ci assert.strictEqual(enumPropertySet.has('EXPORT_PARAM2'), true); 893af6ab5fSopenharmony_ci assert.strictEqual(exportNameAndPropSet.has('ExportEnum'), true); 903af6ab5fSopenharmony_ci assert.strictEqual(exportNameAndPropSet.has('EXPORT_PARAM1'), true); 913af6ab5fSopenharmony_ci assert.strictEqual(exportNameAndPropSet.has('EXPORT_PARAM2'), true); 923af6ab5fSopenharmony_ci }); 933af6ab5fSopenharmony_ci 943af6ab5fSopenharmony_ci it('-enable-export-obfuscation', function () { 953af6ab5fSopenharmony_ci let projectAndLibs: ReseverdSetForArkguard = 963af6ab5fSopenharmony_ci readProjectPropertiesByCollectedPaths(fileList, 973af6ab5fSopenharmony_ci { 983af6ab5fSopenharmony_ci mNameObfuscation: { 993af6ab5fSopenharmony_ci mEnable: true, 1003af6ab5fSopenharmony_ci mReservedProperties: [], 1013af6ab5fSopenharmony_ci mRenameProperties: false, 1023af6ab5fSopenharmony_ci mKeepStringProperty: false, 1033af6ab5fSopenharmony_ci mNameGeneratorType: NameGeneratorType.ORDERED, 1043af6ab5fSopenharmony_ci mReservedNames: [], 1053af6ab5fSopenharmony_ci mReservedToplevelNames: [] 1063af6ab5fSopenharmony_ci }, 1073af6ab5fSopenharmony_ci mExportObfuscation: true, 1083af6ab5fSopenharmony_ci mKeepFileSourceCode: { 1093af6ab5fSopenharmony_ci mKeepSourceOfPaths: new Set(), 1103af6ab5fSopenharmony_ci mkeepFilesAndDependencies: new Set(), 1113af6ab5fSopenharmony_ci } 1123af6ab5fSopenharmony_ci }, true); 1133af6ab5fSopenharmony_ci let exportNameAndPropSet = projectAndLibs.exportNameAndPropSet; 1143af6ab5fSopenharmony_ci let exportNameSet = projectAndLibs.exportNameSet; 1153af6ab5fSopenharmony_ci assert.strictEqual(exportNameAndPropSet, undefined); 1163af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('ExportEnum'), false); 1173af6ab5fSopenharmony_ci }); 1183af6ab5fSopenharmony_ci }); 1193af6ab5fSopenharmony_ci 1203af6ab5fSopenharmony_ci describe('test for -keep and export obfuscation', function () { 1213af6ab5fSopenharmony_ci const fileList: Set<string> = new Set([ 1223af6ab5fSopenharmony_ci "test/ut/utils/keep_export/exportFile1.ts" 1233af6ab5fSopenharmony_ci ]); 1243af6ab5fSopenharmony_ci 1253af6ab5fSopenharmony_ci it('-enable-export-obfuscation', function () { 1263af6ab5fSopenharmony_ci let projectAndLibs: ReseverdSetForArkguard = 1273af6ab5fSopenharmony_ci readProjectPropertiesByCollectedPaths(fileList, 1283af6ab5fSopenharmony_ci { 1293af6ab5fSopenharmony_ci mNameObfuscation: { 1303af6ab5fSopenharmony_ci mEnable: true, 1313af6ab5fSopenharmony_ci mReservedProperties: [], 1323af6ab5fSopenharmony_ci mRenameProperties: false, 1333af6ab5fSopenharmony_ci mKeepStringProperty: false, 1343af6ab5fSopenharmony_ci mNameGeneratorType: NameGeneratorType.ORDERED, 1353af6ab5fSopenharmony_ci mReservedNames: [], 1363af6ab5fSopenharmony_ci mReservedToplevelNames: [] 1373af6ab5fSopenharmony_ci }, 1383af6ab5fSopenharmony_ci mExportObfuscation: true, 1393af6ab5fSopenharmony_ci mKeepFileSourceCode: { 1403af6ab5fSopenharmony_ci mKeepSourceOfPaths: new Set(), 1413af6ab5fSopenharmony_ci mkeepFilesAndDependencies: new Set([ 1423af6ab5fSopenharmony_ci "test/ut/utils/keep_export/exportFile1.ts" 1433af6ab5fSopenharmony_ci ]), 1443af6ab5fSopenharmony_ci } 1453af6ab5fSopenharmony_ci }, true); 1463af6ab5fSopenharmony_ci let exportNameSet = projectAndLibs.exportNameSet; 1473af6ab5fSopenharmony_ci let exportNameAndPropSet = projectAndLibs.exportNameAndPropSet; 1483af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('TestClass'), true); 1493af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('prop1'), false); 1503af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('prop2'), false); 1513af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('objProp'), false); 1523af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('innerProp2'), false); 1533af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('var1'), true); 1543af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('var2'), false); 1553af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('foo'), true); 1563af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('ns'), false); 1573af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('var3'), true); 1583af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('nsFunction'), true); 1593af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('TestInterface'), true); 1603af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('feature1'), false); 1613af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('feature2'), false); 1623af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('TestClass2'), false); 1633af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('prop4'), false); 1643af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('propObj'), false); 1653af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('innerProp'), false); 1663af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('TestClass3'), false); 1673af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('exportProp1'), false); 1683af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('exportPropObj'), false); 1693af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('exportInnerProp'), false); 1703af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('v2'), true); 1713af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('default'), true); 1723af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('t3'), true); 1733af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('outterElement1'), true); 1743af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('outterElement2'), true); 1753af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('o2'), true); 1763af6ab5fSopenharmony_ci assert.strictEqual(exportNameAndPropSet, undefined); 1773af6ab5fSopenharmony_ci }); 1783af6ab5fSopenharmony_ci 1793af6ab5fSopenharmony_ci it('-enable-property-obfuscation', function () { 1803af6ab5fSopenharmony_ci let projectAndLibs: ReseverdSetForArkguard = 1813af6ab5fSopenharmony_ci readProjectPropertiesByCollectedPaths(fileList, 1823af6ab5fSopenharmony_ci { 1833af6ab5fSopenharmony_ci mNameObfuscation: { 1843af6ab5fSopenharmony_ci mEnable: true, 1853af6ab5fSopenharmony_ci mReservedProperties: [], 1863af6ab5fSopenharmony_ci mRenameProperties: true, 1873af6ab5fSopenharmony_ci mKeepStringProperty: false, 1883af6ab5fSopenharmony_ci mNameGeneratorType: NameGeneratorType.ORDERED, 1893af6ab5fSopenharmony_ci mReservedNames: [], 1903af6ab5fSopenharmony_ci mReservedToplevelNames: [] 1913af6ab5fSopenharmony_ci }, 1923af6ab5fSopenharmony_ci mExportObfuscation: false, 1933af6ab5fSopenharmony_ci mKeepFileSourceCode: { 1943af6ab5fSopenharmony_ci mKeepSourceOfPaths: new Set(), 1953af6ab5fSopenharmony_ci mkeepFilesAndDependencies: new Set([ 1963af6ab5fSopenharmony_ci "test/ut/utils/keep_export/exportFile1.ts" 1973af6ab5fSopenharmony_ci ]), 1983af6ab5fSopenharmony_ci } 1993af6ab5fSopenharmony_ci }, true); 2003af6ab5fSopenharmony_ci let exportNameAndPropSet = projectAndLibs.exportNameAndPropSet; 2013af6ab5fSopenharmony_ci let exportNameSet = projectAndLibs.exportNameSet; 2023af6ab5fSopenharmony_ci assert.strictEqual(exportNameAndPropSet.has('TestClass'), true); 2033af6ab5fSopenharmony_ci assert.strictEqual(exportNameAndPropSet.has('prop1'), true); 2043af6ab5fSopenharmony_ci assert.strictEqual(exportNameAndPropSet.has('prop2'), true); 2053af6ab5fSopenharmony_ci assert.strictEqual(exportNameAndPropSet.has('objProp'), true); 2063af6ab5fSopenharmony_ci assert.strictEqual(exportNameAndPropSet.has('innerProp2'), true); 2073af6ab5fSopenharmony_ci assert.strictEqual(exportNameAndPropSet.has('var1'), true); 2083af6ab5fSopenharmony_ci assert.strictEqual(exportNameAndPropSet.has('var2'), false); 2093af6ab5fSopenharmony_ci assert.strictEqual(exportNameAndPropSet.has('foo'), true); 2103af6ab5fSopenharmony_ci assert.strictEqual(exportNameAndPropSet.has('ns'), false); 2113af6ab5fSopenharmony_ci assert.strictEqual(exportNameAndPropSet.has('var3'), true); 2123af6ab5fSopenharmony_ci assert.strictEqual(exportNameAndPropSet.has('nsFunction'), true); 2133af6ab5fSopenharmony_ci assert.strictEqual(exportNameAndPropSet.has('TestInterface'), true); 2143af6ab5fSopenharmony_ci assert.strictEqual(exportNameAndPropSet.has('feature1'), true); 2153af6ab5fSopenharmony_ci assert.strictEqual(exportNameAndPropSet.has('feature2'), true); 2163af6ab5fSopenharmony_ci assert.strictEqual(exportNameAndPropSet.has('TestClass2'), false); 2173af6ab5fSopenharmony_ci assert.strictEqual(exportNameAndPropSet.has('prop4'), false); 2183af6ab5fSopenharmony_ci assert.strictEqual(exportNameAndPropSet.has('propObj'), false); 2193af6ab5fSopenharmony_ci assert.strictEqual(exportNameAndPropSet.has('innerProp'), false); 2203af6ab5fSopenharmony_ci assert.strictEqual(exportNameAndPropSet.has('TestClass3'), false); 2213af6ab5fSopenharmony_ci assert.strictEqual(exportNameAndPropSet.has('exportProp1'), true); 2223af6ab5fSopenharmony_ci assert.strictEqual(exportNameAndPropSet.has('exportPropObj'), true); 2233af6ab5fSopenharmony_ci assert.strictEqual(exportNameAndPropSet.has('exportInnerProp'), true); 2243af6ab5fSopenharmony_ci assert.strictEqual(exportNameAndPropSet.has('v2'), true); 2253af6ab5fSopenharmony_ci assert.strictEqual(exportNameAndPropSet.has('default'), true); 2263af6ab5fSopenharmony_ci assert.strictEqual(exportNameAndPropSet.has('t3'), true); 2273af6ab5fSopenharmony_ci assert.strictEqual(exportNameAndPropSet.has('outterElement1'), true); 2283af6ab5fSopenharmony_ci assert.strictEqual(exportNameAndPropSet.has('outterElement2'), false); 2293af6ab5fSopenharmony_ci assert.strictEqual(exportNameAndPropSet.has('o2'), true); 2303af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet, undefined); 2313af6ab5fSopenharmony_ci }); 2323af6ab5fSopenharmony_ci 2333af6ab5fSopenharmony_ci it('-enable-toplevel-obfuscation', function () { 2343af6ab5fSopenharmony_ci let projectAndLibs: ReseverdSetForArkguard = 2353af6ab5fSopenharmony_ci readProjectPropertiesByCollectedPaths(fileList, 2363af6ab5fSopenharmony_ci { 2373af6ab5fSopenharmony_ci mNameObfuscation: { 2383af6ab5fSopenharmony_ci mEnable: true, 2393af6ab5fSopenharmony_ci mReservedProperties: [], 2403af6ab5fSopenharmony_ci mRenameProperties: false, 2413af6ab5fSopenharmony_ci mKeepStringProperty: false, 2423af6ab5fSopenharmony_ci mTopLevel: true, 2433af6ab5fSopenharmony_ci mNameGeneratorType: NameGeneratorType.ORDERED, 2443af6ab5fSopenharmony_ci mReservedNames: [], 2453af6ab5fSopenharmony_ci mReservedToplevelNames: [] 2463af6ab5fSopenharmony_ci }, 2473af6ab5fSopenharmony_ci mExportObfuscation: false, 2483af6ab5fSopenharmony_ci mKeepFileSourceCode: { 2493af6ab5fSopenharmony_ci mKeepSourceOfPaths: new Set(), 2503af6ab5fSopenharmony_ci mkeepFilesAndDependencies: new Set([ 2513af6ab5fSopenharmony_ci "test/ut/utils/keep_export/exportFile1.ts" 2523af6ab5fSopenharmony_ci ]), 2533af6ab5fSopenharmony_ci } 2543af6ab5fSopenharmony_ci }, true); 2553af6ab5fSopenharmony_ci let exportNameAndPropSet = projectAndLibs.exportNameAndPropSet; 2563af6ab5fSopenharmony_ci let exportNameSet = projectAndLibs.exportNameSet; 2573af6ab5fSopenharmony_ci assert.strictEqual(exportNameAndPropSet, undefined); 2583af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet, undefined); 2593af6ab5fSopenharmony_ci }); 2603af6ab5fSopenharmony_ci 2613af6ab5fSopenharmony_ci it('-enable-toplevel-obfuscation -enable-export-obfuscation', function () { 2623af6ab5fSopenharmony_ci let projectAndLibs: ReseverdSetForArkguard = 2633af6ab5fSopenharmony_ci readProjectPropertiesByCollectedPaths(fileList, 2643af6ab5fSopenharmony_ci { 2653af6ab5fSopenharmony_ci mNameObfuscation: { 2663af6ab5fSopenharmony_ci mEnable: true, 2673af6ab5fSopenharmony_ci mReservedProperties: [], 2683af6ab5fSopenharmony_ci mRenameProperties: false, 2693af6ab5fSopenharmony_ci mKeepStringProperty: false, 2703af6ab5fSopenharmony_ci mTopLevel: true, 2713af6ab5fSopenharmony_ci mNameGeneratorType: NameGeneratorType.ORDERED, 2723af6ab5fSopenharmony_ci mReservedNames: [], 2733af6ab5fSopenharmony_ci mReservedToplevelNames: [] 2743af6ab5fSopenharmony_ci }, 2753af6ab5fSopenharmony_ci mExportObfuscation: true, 2763af6ab5fSopenharmony_ci mKeepFileSourceCode: { 2773af6ab5fSopenharmony_ci mKeepSourceOfPaths: new Set(), 2783af6ab5fSopenharmony_ci mkeepFilesAndDependencies: new Set([ 2793af6ab5fSopenharmony_ci "test/ut/utils/keep_export/exportFile1.ts" 2803af6ab5fSopenharmony_ci ]), 2813af6ab5fSopenharmony_ci } 2823af6ab5fSopenharmony_ci }, true); 2833af6ab5fSopenharmony_ci let exportNameAndPropSet = projectAndLibs.exportNameAndPropSet; 2843af6ab5fSopenharmony_ci let exportNameSet = projectAndLibs.exportNameSet; 2853af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('TestClass'), true); 2863af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('prop1'), false); 2873af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('prop2'), false); 2883af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('objProp'), false); 2893af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('innerProp2'), false); 2903af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('var1'), true); 2913af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('var2'), false); 2923af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('foo'), true); 2933af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('ns'), false); 2943af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('var3'), true); 2953af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('nsFunction'), true); 2963af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('TestInterface'), true); 2973af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('feature1'), false); 2983af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('feature2'), false); 2993af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('TestClass2'), false); 3003af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('prop4'), false); 3013af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('propObj'), false); 3023af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('innerProp'), false); 3033af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('TestClass3'), false); 3043af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('exportProp1'), false); 3053af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('exportPropObj'), false); 3063af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('exportInnerProp'), false); 3073af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('v2'), true); 3083af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('default'), true); 3093af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('t3'), true); 3103af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('outterElement1'), true); 3113af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('outterElement2'), true); 3123af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('o2'), true); 3133af6ab5fSopenharmony_ci assert.strictEqual(exportNameAndPropSet, undefined); 3143af6ab5fSopenharmony_ci }); 3153af6ab5fSopenharmony_ci 3163af6ab5fSopenharmony_ci it('-enable-property-obfuscation -enable-export-obfuscation', function () { 3173af6ab5fSopenharmony_ci let projectAndLibs: ReseverdSetForArkguard = 3183af6ab5fSopenharmony_ci readProjectPropertiesByCollectedPaths(fileList, 3193af6ab5fSopenharmony_ci { 3203af6ab5fSopenharmony_ci mNameObfuscation: { 3213af6ab5fSopenharmony_ci mEnable: true, 3223af6ab5fSopenharmony_ci mReservedProperties: [], 3233af6ab5fSopenharmony_ci mRenameProperties: true, 3243af6ab5fSopenharmony_ci mKeepStringProperty: false, 3253af6ab5fSopenharmony_ci mTopLevel: false, 3263af6ab5fSopenharmony_ci mNameGeneratorType: NameGeneratorType.ORDERED, 3273af6ab5fSopenharmony_ci mReservedNames: [], 3283af6ab5fSopenharmony_ci mReservedToplevelNames: [] 3293af6ab5fSopenharmony_ci }, 3303af6ab5fSopenharmony_ci mExportObfuscation: true, 3313af6ab5fSopenharmony_ci mKeepFileSourceCode: { 3323af6ab5fSopenharmony_ci mKeepSourceOfPaths: new Set(), 3333af6ab5fSopenharmony_ci mkeepFilesAndDependencies: new Set([ 3343af6ab5fSopenharmony_ci "test/ut/utils/keep_export/exportFile1.ts" 3353af6ab5fSopenharmony_ci ]), 3363af6ab5fSopenharmony_ci } 3373af6ab5fSopenharmony_ci }, true); 3383af6ab5fSopenharmony_ci let exportNameAndPropSet = projectAndLibs.exportNameAndPropSet; 3393af6ab5fSopenharmony_ci let exportNameSet = projectAndLibs.exportNameSet; 3403af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('TestClass'), true); 3413af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('prop1'), false); 3423af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('prop2'), false); 3433af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('objProp'), false); 3443af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('innerProp2'), false); 3453af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('var1'), true); 3463af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('var2'), false); 3473af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('foo'), true); 3483af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('ns'), false); 3493af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('var3'), true); 3503af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('nsFunction'), true); 3513af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('TestInterface'), true); 3523af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('feature1'), false); 3533af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('feature2'), false); 3543af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('TestClass2'), false); 3553af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('prop4'), false); 3563af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('propObj'), false); 3573af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('innerProp'), false); 3583af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('TestClass3'), false); 3593af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('exportProp1'), false); 3603af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('exportPropObj'), false); 3613af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('exportInnerProp'), false); 3623af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('v2'), true); 3633af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('default'), true); 3643af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('t3'), true); 3653af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('outterElement1'), true); 3663af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('outterElement2'), true); 3673af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('o2'), true); 3683af6ab5fSopenharmony_ci assert.strictEqual(exportNameAndPropSet.has('TestClass'), true); 3693af6ab5fSopenharmony_ci assert.strictEqual(exportNameAndPropSet.has('prop1'), true); 3703af6ab5fSopenharmony_ci assert.strictEqual(exportNameAndPropSet.has('prop2'), true); 3713af6ab5fSopenharmony_ci assert.strictEqual(exportNameAndPropSet.has('objProp'), true); 3723af6ab5fSopenharmony_ci assert.strictEqual(exportNameAndPropSet.has('innerProp2'), true); 3733af6ab5fSopenharmony_ci assert.strictEqual(exportNameAndPropSet.has('var1'), true); 3743af6ab5fSopenharmony_ci assert.strictEqual(exportNameAndPropSet.has('var2'), false); 3753af6ab5fSopenharmony_ci assert.strictEqual(exportNameAndPropSet.has('foo'), true); 3763af6ab5fSopenharmony_ci assert.strictEqual(exportNameAndPropSet.has('ns'), false); 3773af6ab5fSopenharmony_ci assert.strictEqual(exportNameAndPropSet.has('var3'), true); 3783af6ab5fSopenharmony_ci assert.strictEqual(exportNameAndPropSet.has('nsFunction'), true); 3793af6ab5fSopenharmony_ci assert.strictEqual(exportNameAndPropSet.has('TestInterface'), true); 3803af6ab5fSopenharmony_ci assert.strictEqual(exportNameAndPropSet.has('feature1'), true); 3813af6ab5fSopenharmony_ci assert.strictEqual(exportNameAndPropSet.has('feature2'), true); 3823af6ab5fSopenharmony_ci assert.strictEqual(exportNameAndPropSet.has('TestClass2'), false); 3833af6ab5fSopenharmony_ci assert.strictEqual(exportNameAndPropSet.has('prop4'), false); 3843af6ab5fSopenharmony_ci assert.strictEqual(exportNameAndPropSet.has('propObj'), false); 3853af6ab5fSopenharmony_ci assert.strictEqual(exportNameAndPropSet.has('innerProp'), false); 3863af6ab5fSopenharmony_ci assert.strictEqual(exportNameAndPropSet.has('TestClass3'), false); 3873af6ab5fSopenharmony_ci assert.strictEqual(exportNameAndPropSet.has('exportProp1'), true); 3883af6ab5fSopenharmony_ci assert.strictEqual(exportNameAndPropSet.has('exportPropObj'), true); 3893af6ab5fSopenharmony_ci assert.strictEqual(exportNameAndPropSet.has('exportInnerProp'), true); 3903af6ab5fSopenharmony_ci assert.strictEqual(exportNameAndPropSet.has('v2'), true); 3913af6ab5fSopenharmony_ci assert.strictEqual(exportNameAndPropSet.has('default'), true); 3923af6ab5fSopenharmony_ci assert.strictEqual(exportNameAndPropSet.has('t3'), true); 3933af6ab5fSopenharmony_ci assert.strictEqual(exportNameAndPropSet.has('outterElement1'), true); 3943af6ab5fSopenharmony_ci assert.strictEqual(exportNameAndPropSet.has('outterElement2'), false); 3953af6ab5fSopenharmony_ci assert.strictEqual(exportNameAndPropSet.has('o2'), true); 3963af6ab5fSopenharmony_ci }); 3973af6ab5fSopenharmony_ci 3983af6ab5fSopenharmony_ci it('-enable-property-obfuscation -enable-export-obfuscation -enable-toplevel-obfuscation', function () { 3993af6ab5fSopenharmony_ci let projectAndLibs: ReseverdSetForArkguard = 4003af6ab5fSopenharmony_ci readProjectPropertiesByCollectedPaths(fileList, 4013af6ab5fSopenharmony_ci { 4023af6ab5fSopenharmony_ci mNameObfuscation: { 4033af6ab5fSopenharmony_ci mEnable: true, 4043af6ab5fSopenharmony_ci mReservedProperties: [], 4053af6ab5fSopenharmony_ci mRenameProperties: true, 4063af6ab5fSopenharmony_ci mKeepStringProperty: false, 4073af6ab5fSopenharmony_ci mTopLevel: true, 4083af6ab5fSopenharmony_ci mNameGeneratorType: NameGeneratorType.ORDERED, 4093af6ab5fSopenharmony_ci mReservedNames: [], 4103af6ab5fSopenharmony_ci mReservedToplevelNames: [] 4113af6ab5fSopenharmony_ci }, 4123af6ab5fSopenharmony_ci mExportObfuscation: true, 4133af6ab5fSopenharmony_ci mKeepFileSourceCode: { 4143af6ab5fSopenharmony_ci mKeepSourceOfPaths: new Set(), 4153af6ab5fSopenharmony_ci mkeepFilesAndDependencies: new Set([ 4163af6ab5fSopenharmony_ci "test/ut/utils/keep_export/exportFile1.ts" 4173af6ab5fSopenharmony_ci ]), 4183af6ab5fSopenharmony_ci } 4193af6ab5fSopenharmony_ci }, true); 4203af6ab5fSopenharmony_ci let exportNameAndPropSet = projectAndLibs.exportNameAndPropSet; 4213af6ab5fSopenharmony_ci let exportNameSet = projectAndLibs.exportNameSet; 4223af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('TestClass'), true); 4233af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('prop1'), false); 4243af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('prop2'), false); 4253af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('objProp'), false); 4263af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('innerProp2'), false); 4273af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('var1'), true); 4283af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('var2'), false); 4293af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('foo'), true); 4303af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('ns'), false); 4313af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('var3'), true); 4323af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('nsFunction'), true); 4333af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('TestInterface'), true); 4343af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('feature1'), false); 4353af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('feature2'), false); 4363af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('TestClass2'), false); 4373af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('prop4'), false); 4383af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('propObj'), false); 4393af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('innerProp'), false); 4403af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('TestClass3'), false); 4413af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('exportProp1'), false); 4423af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('exportPropObj'), false); 4433af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('exportInnerProp'), false); 4443af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('v2'), true); 4453af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('default'), true); 4463af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('t3'), true); 4473af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('outterElement1'), true); 4483af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('outterElement2'), true); 4493af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('o2'), true); 4503af6ab5fSopenharmony_ci assert.strictEqual(exportNameAndPropSet.has('TestClass'), true); 4513af6ab5fSopenharmony_ci assert.strictEqual(exportNameAndPropSet.has('prop1'), true); 4523af6ab5fSopenharmony_ci assert.strictEqual(exportNameAndPropSet.has('prop2'), true); 4533af6ab5fSopenharmony_ci assert.strictEqual(exportNameAndPropSet.has('objProp'), true); 4543af6ab5fSopenharmony_ci assert.strictEqual(exportNameAndPropSet.has('innerProp2'), true); 4553af6ab5fSopenharmony_ci assert.strictEqual(exportNameAndPropSet.has('var1'), true); 4563af6ab5fSopenharmony_ci assert.strictEqual(exportNameAndPropSet.has('var2'), false); 4573af6ab5fSopenharmony_ci assert.strictEqual(exportNameAndPropSet.has('foo'), true); 4583af6ab5fSopenharmony_ci assert.strictEqual(exportNameAndPropSet.has('ns'), false); 4593af6ab5fSopenharmony_ci assert.strictEqual(exportNameAndPropSet.has('var3'), true); 4603af6ab5fSopenharmony_ci assert.strictEqual(exportNameAndPropSet.has('nsFunction'), true); 4613af6ab5fSopenharmony_ci assert.strictEqual(exportNameAndPropSet.has('TestInterface'), true); 4623af6ab5fSopenharmony_ci assert.strictEqual(exportNameAndPropSet.has('feature1'), true); 4633af6ab5fSopenharmony_ci assert.strictEqual(exportNameAndPropSet.has('feature2'), true); 4643af6ab5fSopenharmony_ci assert.strictEqual(exportNameAndPropSet.has('TestClass2'), false); 4653af6ab5fSopenharmony_ci assert.strictEqual(exportNameAndPropSet.has('prop4'), false); 4663af6ab5fSopenharmony_ci assert.strictEqual(exportNameAndPropSet.has('propObj'), false); 4673af6ab5fSopenharmony_ci assert.strictEqual(exportNameAndPropSet.has('innerProp'), false); 4683af6ab5fSopenharmony_ci assert.strictEqual(exportNameAndPropSet.has('TestClass3'), false); 4693af6ab5fSopenharmony_ci assert.strictEqual(exportNameAndPropSet.has('exportProp1'), true); 4703af6ab5fSopenharmony_ci assert.strictEqual(exportNameAndPropSet.has('exportPropObj'), true); 4713af6ab5fSopenharmony_ci assert.strictEqual(exportNameAndPropSet.has('exportInnerProp'), true); 4723af6ab5fSopenharmony_ci assert.strictEqual(exportNameAndPropSet.has('v2'), true); 4733af6ab5fSopenharmony_ci assert.strictEqual(exportNameAndPropSet.has('default'), true); 4743af6ab5fSopenharmony_ci assert.strictEqual(exportNameAndPropSet.has('t3'), true); 4753af6ab5fSopenharmony_ci assert.strictEqual(exportNameAndPropSet.has('outterElement1'), true); 4763af6ab5fSopenharmony_ci assert.strictEqual(exportNameAndPropSet.has('outterElement2'), false); 4773af6ab5fSopenharmony_ci assert.strictEqual(exportNameAndPropSet.has('o2'), true); 4783af6ab5fSopenharmony_ci }); 4793af6ab5fSopenharmony_ci 4803af6ab5fSopenharmony_ci it('oh_modules test', function () { 4813af6ab5fSopenharmony_ci const ohModulesFileList: Set<string> = new Set([ 4823af6ab5fSopenharmony_ci "test/ut/utils/oh_modules/exportFile1.ts" 4833af6ab5fSopenharmony_ci ]); 4843af6ab5fSopenharmony_ci let projectAndLibs: ReseverdSetForArkguard = 4853af6ab5fSopenharmony_ci readProjectPropertiesByCollectedPaths(ohModulesFileList, 4863af6ab5fSopenharmony_ci { 4873af6ab5fSopenharmony_ci mNameObfuscation: { 4883af6ab5fSopenharmony_ci mEnable: true, 4893af6ab5fSopenharmony_ci mReservedProperties: [], 4903af6ab5fSopenharmony_ci mRenameProperties: true, 4913af6ab5fSopenharmony_ci mKeepStringProperty: false, 4923af6ab5fSopenharmony_ci mTopLevel: true, 4933af6ab5fSopenharmony_ci mNameGeneratorType: NameGeneratorType.ORDERED, 4943af6ab5fSopenharmony_ci mReservedNames: [], 4953af6ab5fSopenharmony_ci mReservedToplevelNames: [] 4963af6ab5fSopenharmony_ci }, 4973af6ab5fSopenharmony_ci mExportObfuscation: true, 4983af6ab5fSopenharmony_ci mKeepFileSourceCode: { 4993af6ab5fSopenharmony_ci mKeepSourceOfPaths: new Set(), 5003af6ab5fSopenharmony_ci mkeepFilesAndDependencies: new Set(), 5013af6ab5fSopenharmony_ci } 5023af6ab5fSopenharmony_ci }, true); 5033af6ab5fSopenharmony_ci let exportNameAndPropSet = projectAndLibs.exportNameAndPropSet; 5043af6ab5fSopenharmony_ci let exportNameSet = projectAndLibs.exportNameSet; 5053af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('ModuleNs'), true); 5063af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('nsProp1'), true); 5073af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('nsFunc'), true); 5083af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('ModuleClass'), true); 5093af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('classProp1'), false); 5103af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('objProp'), false); 5113af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('innerProp'), false); 5123af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('TestClass'), false); 5133af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('prop4'), false); 5143af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('propObj'), false); 5153af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('innerProp1'), false); 5163af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('TestClass2'), true); 5173af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('prop1'), false); 5183af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('objProp1'), false); 5193af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('innerProp2'), false); 5203af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('default'), true); 5213af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('mc'), true); 5223af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('otherElement1'), true); 5233af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('otherElement2'), true); 5243af6ab5fSopenharmony_ci assert.strictEqual(exportNameSet.has('o2'), true); 5253af6ab5fSopenharmony_ci assert.strictEqual(exportNameAndPropSet.has('ModuleNs'), false); 5263af6ab5fSopenharmony_ci assert.strictEqual(exportNameAndPropSet.has('nsProp1'), true); 5273af6ab5fSopenharmony_ci assert.strictEqual(exportNameAndPropSet.has('nsFunc'), true); 5283af6ab5fSopenharmony_ci assert.strictEqual(exportNameAndPropSet.has('ModuleClass'), false); 5293af6ab5fSopenharmony_ci assert.strictEqual(exportNameAndPropSet.has('classProp1'), true); 5303af6ab5fSopenharmony_ci assert.strictEqual(exportNameAndPropSet.has('objProp'), true); 5313af6ab5fSopenharmony_ci assert.strictEqual(exportNameAndPropSet.has('innerProp'), true); 5323af6ab5fSopenharmony_ci assert.strictEqual(exportNameAndPropSet.has('TestClass'), false); 5333af6ab5fSopenharmony_ci assert.strictEqual(exportNameAndPropSet.has('prop4'), false); 5343af6ab5fSopenharmony_ci assert.strictEqual(exportNameAndPropSet.has('propObj'), false); 5353af6ab5fSopenharmony_ci assert.strictEqual(exportNameAndPropSet.has('innerProp1'), false); 5363af6ab5fSopenharmony_ci assert.strictEqual(exportNameAndPropSet.has('TestClass2'), true); 5373af6ab5fSopenharmony_ci assert.strictEqual(exportNameAndPropSet.has('prop1'), true); 5383af6ab5fSopenharmony_ci assert.strictEqual(exportNameAndPropSet.has('objProp1'), true); 5393af6ab5fSopenharmony_ci assert.strictEqual(exportNameAndPropSet.has('innerProp2'), true); 5403af6ab5fSopenharmony_ci assert.strictEqual(exportNameAndPropSet.has('default'), true); 5413af6ab5fSopenharmony_ci assert.strictEqual(exportNameAndPropSet.has('mc'), true); 5423af6ab5fSopenharmony_ci assert.strictEqual(exportNameAndPropSet.has('otherElement1'), true); 5433af6ab5fSopenharmony_ci assert.strictEqual(exportNameAndPropSet.has('otherElement2'), false); 5443af6ab5fSopenharmony_ci assert.strictEqual(exportNameAndPropSet.has('o2'), true); 5453af6ab5fSopenharmony_ci }); 5463af6ab5fSopenharmony_ci }); 5473af6ab5fSopenharmony_ci});