diff --git a/test/unittest/@ohos.input_sample.d.ts b/test/unittest/@ohos.input_sample.d.ts index 1d55c305a547d2c09af94082d04823aed557af62..2af95661e1b3fae0e04207da55a54885b90590af 100755 --- a/test/unittest/@ohos.input_sample.d.ts +++ b/test/unittest/@ohos.input_sample.d.ts @@ -15,6 +15,18 @@ import { AsyncCallback, Callback } from './basic'; declare namespace napitest { + export enum GrantStatus { + PERMISSION_DEFAULT = "", + PERMISSION_DENIED = "-1", + PERMISSION_GRANTED = "2", + PERMISSION_PASS = "3", + } + + export enum HttpStatus { + STATUS0 = 0, + STATUS1 = 500, + STATUS2 = 503, + } interface Human { name: string; age: number; diff --git a/test/unittest/generate.test.js b/test/unittest/generate.test.js index 01810e3718b297a404fd1f9f3db7f2f629bdc1b8..8b46931cd71b92f548bb7e08ff13eb26874cc96f 100755 --- a/test/unittest/generate.test.js +++ b/test/unittest/generate.test.js @@ -24,6 +24,16 @@ const { generateFunctionAsync } = require(genDir + "generate/function_async"); const { generateFunctionDirect } = require(genDir + "generate/function_direct"); const { generateFunctionSync } = require(genDir + "generate/function_sync"); +let result = { + exportDefault: [], + exports: [], + declareType: [], + declareFunction: [], + declareNamespace: [], + declareInterface: [], + declareLicense: [], +} + function funcAsyncAssert() { let valueFi = { name: 'v1', type: 'string' }; let value1Se = { name: 'cb', type: 'AsyncCallback' }; @@ -92,7 +102,7 @@ function jsToCParamArray() { return value } -function paramGenerateAndAssert(dataType) { +function paramGenerateAndAssert(dataType, structOfTs) { param = { valueIn: "", valueOut: "", @@ -102,12 +112,16 @@ function paramGenerateAndAssert(dataType) { valuePackage: "", valueDefine: "" } - paramGenerate(0, "a", dataType, param) + if (null != structOfTs) { + paramGenerate(0, "a", dataType, param, structOfTs) + } else { + paramGenerate(0, "a", dataType, param) + } let result = JSON.stringify(param); return result } -function returnGenerateAndAssert(dataType) { +function returnGenerateAndAssert(dataType, structOfTs) { param = { valueIn: "", valueOut: "", @@ -117,7 +131,11 @@ function returnGenerateAndAssert(dataType) { valuePackage: "", valueDefine: "" } - returnGenerate(dataType, param) + if (null != structOfTs) { + returnGenerate(dataType, param, structOfTs) + } else { + returnGenerate(dataType, param) + } let result = JSON.stringify(param); return result } @@ -149,28 +167,58 @@ function partOfTest() { } function returnGenerateParam(correctResult) { - it('test gen/generate/return_generate returnGenerate', function () { - let retJson = returnGenerateAndAssert("string") - assert.strictEqual(retJson, correctResult['Generate']['returnGenerate']); + let retJson = returnGenerateAndAssert("string") + assert.strictEqual(retJson, correctResult['Generate']['returnGenerate']); - let retJson1 = returnGenerateAndAssert("NUMBER_TYPE_1") - assert.strictEqual(retJson1, correctResult['Generate1']['returnGenerate']); + let retJson1 = returnGenerateAndAssert("NUMBER_TYPE_1") + assert.strictEqual(retJson1, correctResult['Generate1']['returnGenerate']); - let retJson2 = returnGenerateAndAssert("Array") - assert.strictEqual(retJson2, correctResult['Generate2']['returnGenerate']); + let retJson2 = returnGenerateAndAssert("Array") + assert.strictEqual(retJson2, correctResult['Generate2']['returnGenerate']); - let retJson3 = returnGenerateAndAssert("Array") - assert.strictEqual(retJson3, correctResult['Generate3']['returnGenerate']); + let retJson3 = returnGenerateAndAssert("Array") + assert.strictEqual(retJson3, correctResult['Generate3']['returnGenerate']); - let retJson4 = returnGenerateAndAssert("[string]") - assert.strictEqual(retJson4, correctResult['Generate4']['returnGenerate']); + let retJson4 = returnGenerateAndAssert("[string]") + assert.strictEqual(retJson4, correctResult['Generate4']['returnGenerate']); - let retJson5 = returnGenerateAndAssert("[boolean]") - assert.strictEqual(retJson5, correctResult['Generate5']['returnGenerate']); + let retJson5 = returnGenerateAndAssert("[boolean]") + assert.strictEqual(retJson5, correctResult['Generate5']['returnGenerate']); - let retJson6 = returnGenerateAndAssert("[boolean]") - assert.strictEqual(retJson6, correctResult['Generate6']['returnGenerate']); - }); + let retJson6 = returnGenerateAndAssert("[boolean]") + assert.strictEqual(retJson6, correctResult['Generate6']['returnGenerate']); + + let retJson7 = returnGenerateAndAssert("GrantStatus", result.declareNamespace[0].body) + assert.strictEqual(retJson7, correctResult['Generate7']['returnGenerate']); + + let retJson8 = returnGenerateAndAssert("HttpStatus", result.declareNamespace[0].body) + assert.strictEqual(retJson8, correctResult['Generate8']['returnGenerate']); +} + +function paramGenerateResult(correctResult) { + let retJson = paramGenerateAndAssert("string") + assert.strictEqual(retJson, correctResult['Generate']['ParamGenerate']); + + let retJson1 = paramGenerateAndAssert("NUMBER_TYPE_1") + assert.strictEqual(retJson1, correctResult['Generate1']['ParamGenerate']); + + let retJson2 = paramGenerateAndAssert("Array") + assert.strictEqual(retJson2, correctResult['Generate2']['ParamGenerate']); + + let retJson3 = paramGenerateAndAssert("Array") + assert.strictEqual(retJson3, correctResult['Generate3']['ParamGenerate']); + + let retJson4 = paramGenerateAndAssert("[string]") + assert.strictEqual(retJson4, correctResult['Generate4']['ParamGenerate']); + + let retJson5 = paramGenerateAndAssert("[boolean]") + assert.strictEqual(retJson5, correctResult['Generate5']['ParamGenerate']); + + let retJson6 = paramGenerateAndAssert("GrantStatus", result.declareNamespace[0].body) + assert.strictEqual(retJson6, correctResult['Generate6']['ParamGenerate']); + + let retJson7 = paramGenerateAndAssert("HttpStatus", result.declareNamespace[0].body) + assert.strictEqual(retJson7, correctResult['Generate7']['ParamGenerate']); } describe('Generate', function () { @@ -183,6 +231,7 @@ describe('Generate', function () { correctResult = JSON.parse(data); } structOfTs = analyzeFile("test/unittest/@ohos.input_sample.d.ts"); + result = analyzeFile("test/unittest/@ohos.input_sample.d.ts"); testStr = readFile("test/unittest/test.txt"); }); @@ -213,26 +262,9 @@ describe('Generate', function () { partOfTest(); it('test gen/generate/param_generate ParamGenerate', function () { - let retJson = paramGenerateAndAssert("string") - assert.strictEqual(retJson, correctResult['Generate']['ParamGenerate']); - - let retJson1 = paramGenerateAndAssert("NUMBER_TYPE_1") - assert.strictEqual(retJson1, correctResult['Generate1']['ParamGenerate']); - - let retJson2 = paramGenerateAndAssert("Array") - assert.strictEqual(retJson2, correctResult['Generate2']['ParamGenerate']); - - let retJson3 = paramGenerateAndAssert("Array") - assert.strictEqual(retJson3, correctResult['Generate3']['ParamGenerate']); - - let retJson4 = paramGenerateAndAssert("[string]") - assert.strictEqual(retJson4, correctResult['Generate4']['ParamGenerate']); - - let retJson5 = paramGenerateAndAssert("[boolean]") - assert.strictEqual(retJson5, correctResult['Generate5']['ParamGenerate']); - + paramGenerateResult(correctResult); }); it('test gen/generate/return_generate returnGenerate', function () { returnGenerateParam(correctResult); }); -}); \ No newline at end of file +}); diff --git a/test/unittest/result.json b/test/unittest/result.json index 318c0406518596c47c910b9247c57fd4e2c52b15..5622e0e48704c810c3183934c7d8c28a58214ab3 100644 --- a/test/unittest/result.json +++ b/test/unittest/result.json @@ -53,9 +53,22 @@ "ParamGenerate": "{\"valueIn\":\"\\n std::vector in0;\",\"valueOut\":\"\",\"valueCheckout\":\" uint32_t len16=pxt->GetArrayLength(pxt->GetArgv(0));\\n for(uint32_t i16=0;i16SwapJs2CUtf8(pxt->GetArrayElement(pxt->GetArgv(0),i16), tt16);\\n vio->in0.push_back(tt16);\\n }\",\"valueFill\":\"vio->in0\",\"valuePackage\":\"\",\"valueDefine\":\"std::vector &a\"}" }, "Generate4": { - "ParamGenerate": "{\"valueIn\":\"\",\"valueOut\":\"\",\"valueCheckout\":\"\",\"valueFill\":\"\",\"valuePackage\":\"\",\"valueDefine\":\"\"}" + "ParamGenerate": "{\"valueIn\":\"\",\"valueOut\":\"\",\"valueCheckout\":\"\",\"valueFill\":\"\",\"valuePackage\":\"\",\"valueDefine\":\"\"}", + "returnGenerate": "{\"valueIn\":\"\",\"valueOut\":\"\",\"valueCheckout\":\"\",\"valueFill\":\"vio->out\",\"valuePackage\":\"napi_value result = nullptr;\\n undefined\",\"valueDefine\":\"\"}" }, "Generate5": { - "ParamGenerate": "{\"valueIn\":\"\",\"valueOut\":\"\",\"valueCheckout\":\"\",\"valueFill\":\"\",\"valuePackage\":\"\",\"valueDefine\":\"\"}" + "ParamGenerate": "{\"valueIn\":\"\",\"valueOut\":\"\",\"valueCheckout\":\"\",\"valueFill\":\"\",\"valuePackage\":\"\",\"valueDefine\":\"\"}", + "returnGenerate": "{\"valueIn\":\"\",\"valueOut\":\"\",\"valueCheckout\":\"\",\"valueFill\":\"vio->out\",\"valuePackage\":\"napi_value result = nullptr;\\n undefined\",\"valueDefine\":\"\"}" + }, + "Generate6": { + "ParamGenerate": "{\"valueIn\":\"\\n std::string in0;\",\"valueOut\":\"\",\"valueCheckout\":\"pxt->SwapJs2CUtf8(pxt->GetArgv(0), vio->in0);\",\"valueFill\":\"vio->in0\",\"valuePackage\":\"\",\"valueDefine\":\"std::string &a\"}", + "returnGenerate": "{\"valueIn\":\"\",\"valueOut\":\"\",\"valueCheckout\":\"\",\"valueFill\":\"vio->out\",\"valuePackage\":\"napi_value result = nullptr;\\n undefined\",\"valueDefine\":\"\"}" + }, + "Generate7": { + "ParamGenerate": "{\"valueIn\":\"\\n NUMBER_TYPE_9 in0;\",\"valueOut\":\"\",\"valueCheckout\":\"NUMBER_JS_2_C(pxt->GetArgv(0),NUMBER_TYPE_9,vio->in0);\",\"valueFill\":\"vio->in0\",\"valuePackage\":\"\",\"valueDefine\":\"NUMBER_TYPE_9 &a\"}", + "returnGenerate": "{\"valueIn\":\"\",\"valueOut\":\"std::string out;\",\"valueCheckout\":\"\",\"valueFill\":\"vio->out\",\"valuePackage\":\"napi_value result = nullptr;\\n result = pxt->SwapC2JsUtf8(vio->out.c_str());\",\"valueDefine\":\"std::string &out\"}" + }, + "Generate8": { + "returnGenerate": "{\"valueIn\":\"\",\"valueOut\":\"NUMBER_TYPE_10 out;\",\"valueCheckout\":\"\",\"valueFill\":\"vio->out\",\"valuePackage\":\"napi_value result = nullptr;\\n result = NUMBER_C_2_JS(pxt, vio->out);\",\"valueDefine\":\"NUMBER_TYPE_10 &out\"}" } } \ No newline at end of file