diff --git a/multimedia/BUILD.gn b/multimedia/BUILD.gn
index 7d9e43b55b92389e36fc137520e72c05ec2194d3..f4622faf4f86dfcd7fdd4003e4301e3788d334da 100644
--- a/multimedia/BUILD.gn
+++ b/multimedia/BUILD.gn
@@ -24,6 +24,7 @@ group("multimedia") {
"image/image_js_standard/imageDecodeOptions:image_DecodeOptions_js_hap",
"image/image_js_standard/imageExif:image_exif_js_hap",
"image/image_js_standard/imagePixelMapFramework:image_pixelmapframework_js_hap",
+ "image/image_js_standard/imageReceiver:image_receiver_js_hap",
"image/image_js_standard/imageWebp:image_webp_js_hap",
"media/media_js_standard/audioCodecFormat:audio_codec_format_js_hap",
"media/media_js_standard/audioDecoder:audio_decoder_js_hap",
diff --git a/multimedia/image/image_js_standard/imageReceiver/BUILD.gn b/multimedia/image/image_js_standard/imageReceiver/BUILD.gn
new file mode 100644
index 0000000000000000000000000000000000000000..70bcc01b038a2f5f50e0de4c3fc33c737b04cc7c
--- /dev/null
+++ b/multimedia/image/image_js_standard/imageReceiver/BUILD.gn
@@ -0,0 +1,31 @@
+# Copyright (C) 2021 Huawei Device Co., Ltd.
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import("//test/xts/tools/build/suite.gni")
+
+ohos_js_hap_suite("image_receiver_js_hap") {
+ hap_profile = "./src/main/config.json"
+ deps = [
+ ":image_receiver_js_assets",
+ ":image_receiver_resources",
+ ]
+ certificate_profile = "./signature/openharmony_sx.p7b"
+ hap_name = "ActsImageReceiverJsTest"
+}
+ohos_js_assets("image_receiver_js_assets") {
+ source_dir = "./src/main/js/default"
+}
+ohos_resources("image_receiver_resources") {
+ sources = [ "./src/main/resources" ]
+ hap_profile = "./src/main/config.json"
+}
diff --git a/multimedia/image/image_js_standard/imageReceiver/Test.json b/multimedia/image/image_js_standard/imageReceiver/Test.json
new file mode 100644
index 0000000000000000000000000000000000000000..24b652ffdc65d000d67de315020e3a13bab0380b
--- /dev/null
+++ b/multimedia/image/image_js_standard/imageReceiver/Test.json
@@ -0,0 +1,49 @@
+{
+ "description": "Configuration for Image Tests",
+ "driver": {
+ "type": "JSUnitTest",
+ "test-timeout": "1200000",
+ "package": "ohos.acts.multimedia.image.Receiver",
+ "shell-timeout": "120000"
+ },
+ "kits": [
+ {
+ "type": "ShellKit",
+ "run-command": [
+
+ ],
+ "teardown-command":[
+
+ ]
+ },
+ {
+ "type": "PushKit",
+ "pre-push": [
+ ],
+ "push": [
+ ]
+ },
+
+ {
+ "type": "ShellKit",
+ "run-command": [
+ "hilog -Q pidoff",
+ "hilog -b D",
+ "killall com.ohos.medialibrary.MediaScannerAbilityA",
+ "aa start -a MediaScannerAbility -b com.ohos.medialibrary.MediaScannerAbilityA"
+ ],
+ "teardown-command":[
+
+ ]
+ },
+
+ {
+ "test-file-name": [
+ "ActsImageReceiverJsTest.hap"
+ ],
+ "type": "AppInstallKit",
+ "cleanup-apps": true
+ }
+ ]
+
+}
\ No newline at end of file
diff --git a/multimedia/image/image_js_standard/imageReceiver/signature/openharmony_sx.p7b b/multimedia/image/image_js_standard/imageReceiver/signature/openharmony_sx.p7b
new file mode 100644
index 0000000000000000000000000000000000000000..d9fe0c1edd5ef09a357ed0bf05ed915a72278cca
Binary files /dev/null and b/multimedia/image/image_js_standard/imageReceiver/signature/openharmony_sx.p7b differ
diff --git a/multimedia/image/image_js_standard/imageReceiver/src/main/config.json b/multimedia/image/image_js_standard/imageReceiver/src/main/config.json
new file mode 100644
index 0000000000000000000000000000000000000000..a3f0c3626acabb7d56f23ff362036f906e9b3c0d
--- /dev/null
+++ b/multimedia/image/image_js_standard/imageReceiver/src/main/config.json
@@ -0,0 +1,104 @@
+{
+ "app": {
+ "apiVersion": {
+ "compatible": 6,
+ "releaseType": "Beta1",
+ "target": 7
+ },
+ "vendor": "acts",
+ "bundleName": "ohos.acts.multimedia.image.Receiver",
+ "version": {
+ "code": 1000000,
+ "name": "1.0.0"
+ }
+ },
+ "deviceConfig": {
+ "default": {
+ "debug": true
+ }
+ },
+ "module": {
+ "abilities": [
+ {
+ "iconId": 16777218,
+ "skills": [
+ {
+ "entities": [
+ "entity.system.home"
+ ],
+ "actions": [
+ "action.system.home"
+ ]
+ }
+ ],
+ "descriptionId": 16777217,
+ "visible": true,
+ "labelId": 16777216,
+ "icon": "$media:icon",
+ "name": "ohos.acts.multimedia.image.Receiver.MainAbility",
+ "description": "$string:mainability_description",
+ "label": "$string:entry_MainAbility",
+ "type": "page",
+ "homeAbility": true,
+ "launchType": "standard"
+ }
+ ],
+ "deviceType": [
+ "phone",
+ "tablet",
+ "tv",
+ "wearable"
+ ],
+ "mainAbility": "ohos.acts.multimedia.image.Receiver.MainAbility",
+ "distro": {
+ "moduleType": "entry",
+ "installationFree": false,
+ "deliveryWithInstall": true,
+ "moduleName": "entry"
+ },
+ "reqPermissions": [
+ {
+ "name": "ohos.permission.GET_BUNDLE_INFO",
+ "reason": "use ohos.permission.GET_BUNDLE_INFO"
+ },
+ {
+ "name": "ohos.permission.GET_BUNDLE_INFO_PRIVILEGED",
+ "reason":"use ohos.permission.GET_BUNDLE_INFO_PRIVILEGED"
+ },
+ {
+ "name" : "ohos.permission.GRANT_SENSITIVE_PERMISSIONS",
+ "reason" : "use ohos.permission.GRANT_SENSITIVE_PERMISSIONS"
+ },
+ {
+ "name" : "ohos.permission.REVOKE_SENSITIVE_PERMISSIONS",
+ "reason" : "use ohos.permission.REVOKE_SENSITIVE_PERMISSIONS"
+ },
+ {
+ "name": "ohos.permission.MEDIA_LOCATION",
+ "reason":"use ohos.permission.MEDIA_LOCATION"
+ },
+ {
+ "name": "ohos.permission.READ_MEDIA",
+ "reason":"use ohos.permission.READ_MEDIA"
+ },
+ {
+ "name": "ohos.permission.WRITE_MEDIA",
+ "reason":"use ohos.permission.WRITE_MEDIA"
+ }
+ ],
+ "package": "ohos.acts.multimedia.image.Receiver",
+ "name": ".MyApplication",
+ "js": [
+ {
+ "pages": [
+ "pages/index/index"
+ ],
+ "name": "default",
+ "window": {
+ "designWidth": 720,
+ "autoDesignWidth": true
+ }
+ }
+ ]
+ }
+ }
\ No newline at end of file
diff --git a/multimedia/image/image_js_standard/imageReceiver/src/main/java/ohos/acts/multimedia/image/MainAbility.java b/multimedia/image/image_js_standard/imageReceiver/src/main/java/ohos/acts/multimedia/image/MainAbility.java
new file mode 100644
index 0000000000000000000000000000000000000000..be9b714f020377be589af59b8e9b5d543a41711a
--- /dev/null
+++ b/multimedia/image/image_js_standard/imageReceiver/src/main/java/ohos/acts/multimedia/image/MainAbility.java
@@ -0,0 +1,34 @@
+/*
+ * Copyright (C) 2021 Huawei Device Co., Ltd.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package ohos.acts.multimedia.image;
+
+import ohos.ace.ability.AceAbility;
+import ohos.aafwk.content.Intent;
+
+/*
+ * java MainAbility
+ */
+public class MainAbility extends AceAbility {
+ @Override
+ public void onStart(Intent intent) {
+ super.onStart(intent);
+ }
+
+ @Override
+ public void onStop() {
+ super.onStop();
+ }
+}
\ No newline at end of file
diff --git a/multimedia/image/image_js_standard/imageReceiver/src/main/java/ohos/acts/multimedia/image/MyApplication.java b/multimedia/image/image_js_standard/imageReceiver/src/main/java/ohos/acts/multimedia/image/MyApplication.java
new file mode 100644
index 0000000000000000000000000000000000000000..96a8ec31bd498f2ec928a0c55b7dd1990ace3927
--- /dev/null
+++ b/multimedia/image/image_js_standard/imageReceiver/src/main/java/ohos/acts/multimedia/image/MyApplication.java
@@ -0,0 +1,28 @@
+/*
+ * Copyright (C) 2021 Huawei Device Co., Ltd.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package ohos.acts.multimedia.image;
+
+import ohos.aafwk.ability.AbilityPackage;
+
+/*
+ * java MyApplication
+ */
+public class MyApplication extends AbilityPackage {
+ @Override
+ public void onInitialize() {
+ super.onInitialize();
+ }
+}
\ No newline at end of file
diff --git a/multimedia/image/image_js_standard/imageReceiver/src/main/js/default/app.js b/multimedia/image/image_js_standard/imageReceiver/src/main/js/default/app.js
new file mode 100644
index 0000000000000000000000000000000000000000..8b3c3b3cb7930c465567b386bf230cb38a0d128e
--- /dev/null
+++ b/multimedia/image/image_js_standard/imageReceiver/src/main/js/default/app.js
@@ -0,0 +1,23 @@
+/*
+ * Copyright (C) 2021 Huawei Device Co., Ltd.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+export default {
+ onCreate() {
+ console.info('AceApplication onCreate');
+ },
+ onDestroy() {
+ console.info('AceApplication onDestroy');
+ }
+};
\ No newline at end of file
diff --git a/multimedia/image/image_js_standard/imageReceiver/src/main/js/default/i18n/en-US.json b/multimedia/image/image_js_standard/imageReceiver/src/main/js/default/i18n/en-US.json
new file mode 100644
index 0000000000000000000000000000000000000000..a4c13dcbdc39c537073f638393d7726ac9a5cdc4
--- /dev/null
+++ b/multimedia/image/image_js_standard/imageReceiver/src/main/js/default/i18n/en-US.json
@@ -0,0 +1,6 @@
+{
+ "strings": {
+ "hello": "Hello",
+ "world": "World"
+ }
+}
\ No newline at end of file
diff --git a/multimedia/image/image_js_standard/imageReceiver/src/main/js/default/i18n/zh-CN.json b/multimedia/image/image_js_standard/imageReceiver/src/main/js/default/i18n/zh-CN.json
new file mode 100644
index 0000000000000000000000000000000000000000..b1c02368f72f929e4375a43170444de95dcc5984
--- /dev/null
+++ b/multimedia/image/image_js_standard/imageReceiver/src/main/js/default/i18n/zh-CN.json
@@ -0,0 +1,6 @@
+{
+ "strings": {
+ "hello": "您好",
+ "world": "世界"
+ }
+}
\ No newline at end of file
diff --git a/multimedia/image/image_js_standard/imageReceiver/src/main/js/default/pages/index/index.css b/multimedia/image/image_js_standard/imageReceiver/src/main/js/default/pages/index/index.css
new file mode 100644
index 0000000000000000000000000000000000000000..53b12aeee6149cbc85a51a69bdadb6a06c635dd3
--- /dev/null
+++ b/multimedia/image/image_js_standard/imageReceiver/src/main/js/default/pages/index/index.css
@@ -0,0 +1,46 @@
+.container {
+ flex-direction: column;
+ justify-content: center;
+ align-items: center;
+ width: 100%;
+ height: 100%;
+}
+
+.title {
+ font-size: 40px;
+ color: #000000;
+ opacity: 0.9;
+}
+
+@media screen and (device-type: tablet) and (orientation: landscape) {
+ .title {
+ font-size: 100px;
+ }
+}
+
+@media screen and (device-type: wearable) {
+ .title {
+ font-size: 28px;
+ color: #FFFFFF;
+ }
+}
+
+@media screen and (device-type: tv) {
+ .container {
+ background-image: url("/common/images/Wallpaper.png");
+ background-size: cover;
+ background-repeat: no-repeat;
+ background-position: center;
+ }
+
+ .title {
+ font-size: 100px;
+ color: #FFFFFF;
+ }
+}
+
+@media screen and (device-type: phone) and (orientation: landscape) {
+ .title {
+ font-size: 60px;
+ }
+}
\ No newline at end of file
diff --git a/multimedia/image/image_js_standard/imageReceiver/src/main/js/default/pages/index/index.hml b/multimedia/image/image_js_standard/imageReceiver/src/main/js/default/pages/index/index.hml
new file mode 100644
index 0000000000000000000000000000000000000000..e7b706af9e044f0ef934e80c6c23ddabf25e2f7d
--- /dev/null
+++ b/multimedia/image/image_js_standard/imageReceiver/src/main/js/default/pages/index/index.hml
@@ -0,0 +1,5 @@
+
+
+ {{ $t('strings.hello') }} {{ title }}
+
+
\ No newline at end of file
diff --git a/multimedia/image/image_js_standard/imageReceiver/src/main/js/default/pages/index/index.js b/multimedia/image/image_js_standard/imageReceiver/src/main/js/default/pages/index/index.js
new file mode 100644
index 0000000000000000000000000000000000000000..a2a05dae07aa3d9a816c0729268ce2ab139cd50c
--- /dev/null
+++ b/multimedia/image/image_js_standard/imageReceiver/src/main/js/default/pages/index/index.js
@@ -0,0 +1,41 @@
+/*
+ * Copyright (C) 2021 Huawei Device Co., Ltd.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import {Core, ExpectExtend} from 'deccjsunit/index'
+
+export default {
+ data: {
+ title: ""
+ },
+ onInit() {
+ this.title = this.$t('strings.world');
+ },
+ onShow() {
+ console.info('onShow finish')
+ const core = Core.getInstance()
+ const expectExtend = new ExpectExtend({
+ 'id': 'extend'
+ })
+ core.addService('expect', expectExtend)
+ core.init()
+ const configService = core.getDefaultService('config')
+ this.timeout = 60000
+ configService.setConfig(this)
+ require('../../../test/List.test')
+ core.execute()
+ },
+ onReady() {
+ },
+}
\ No newline at end of file
diff --git a/multimedia/image/image_js_standard/imageReceiver/src/main/js/test/List.test.js b/multimedia/image/image_js_standard/imageReceiver/src/main/js/test/List.test.js
new file mode 100644
index 0000000000000000000000000000000000000000..b55a321b5ac715b8ffb0ab871c7ada022ff7a968
--- /dev/null
+++ b/multimedia/image/image_js_standard/imageReceiver/src/main/js/test/List.test.js
@@ -0,0 +1,17 @@
+/*
+ * Copyright (C) 2021 Huawei Device Co., Ltd.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+require('./receiver.test.js')
\ No newline at end of file
diff --git a/multimedia/image/image_js_standard/imageReceiver/src/main/js/test/receiver.test.js b/multimedia/image/image_js_standard/imageReceiver/src/main/js/test/receiver.test.js
new file mode 100644
index 0000000000000000000000000000000000000000..466f23151f27b0c22ed425eb507044f19f6c36d6
--- /dev/null
+++ b/multimedia/image/image_js_standard/imageReceiver/src/main/js/test/receiver.test.js
@@ -0,0 +1,1056 @@
+/*
+ * Copyright (C) 2021 Huawei Device Co., Ltd.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+import image from '@ohos.multimedia.image'
+import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from 'deccjsunit/index'
+
+describe('ImageReceiver', function () {
+
+ const YUV_Y = 1;
+ const YUV_U = 2;
+ const YUV_V = 3;
+ const JPEG = 4;
+ const WIDTH = 8192;
+ const HEIGHT = 8;
+ const FORMAT = 4;
+ const CAPACITY = 8;
+
+ beforeAll(function () {
+ console.info('beforeAll case');
+ })
+
+ beforeEach(function () {
+ isTimeOut = false;
+ console.info('beforeEach case');
+ })
+
+ afterEach(function () {
+ console.info('afterEach case');
+ })
+
+ afterAll(function () {
+ console.info('afterAll case');
+ })
+
+ async function sleep(times = 200) {
+ await new Promise(res => setTimeout(() => { res() }, times));
+ }
+
+ function createRecriver(done, testNum, wid, hei, fmt, cap) {
+ try {
+ image.createImageReceiver(wid, hei, fmt, cap);
+ expect(false).assertTrue();
+ done();
+ } catch (error) {
+ expect(error.code == 1).assertTrue();
+ console.info(`${testNum} err message` + error);
+ done();
+ }
+ }
+
+ async function getComponentProErr(done, testNum, param) {
+ var receiver = image.createImageReceiver(WIDTH, HEIGHT, FORMAT, CAPACITY)
+ if (receiver == undefined) {
+ expect(false).assertTrue();
+ done();
+ }else{
+ receiver.on('imageArrival', () => {
+ expect(true).assertTrue();
+ })
+
+ var dummy = receiver.test
+
+ receiver.readLatestImage(async (err,img) => {
+ if (img == undefined) {
+ expect(false).assertTrue();
+ done();
+ }else{
+ expect(img.size.width == WIDTH).assertTrue();
+ expect(img.size.height == HEIGHT).assertTrue();
+ expect(img.format == 12).assertTrue();
+ expect(img.clipRect.size.width == WIDTH).assertTrue();
+ expect(img.clipRect.size.height == HEIGHT).assertTrue();
+ expect(img.clipRect.x == 0).assertTrue();
+ expect(img.clipRect.y == 0).assertTrue();
+ try {
+ await img.getComponent(param);
+ expect(false).assertTrue();
+ } catch (error) {
+ expect(error.code == 1).assertTrue();
+ console.log(`${testNum} error msg: ` + error);
+ done();
+ }
+ }
+ })
+ }
+ }
+
+ async function getComponentCbErr(done, testNum, param) {
+ var receiver = image.createImageReceiver(WIDTH, HEIGHT, FORMAT, CAPACITY)
+ if (receiver == undefined) {
+ expect(false).assertTrue();
+ done();
+ }else{
+ receiver.on('imageArrival', () => {
+ expect(true).assertTrue();
+ })
+
+ var dummy = receiver.test
+
+ receiver.readLatestImage(async (err,img) => {
+ if (img == undefined) {
+ expect(false).assertTrue();
+ done();
+ }else{
+ expect(img.size.width == WIDTH).assertTrue();
+ expect(img.size.height == HEIGHT).assertTrue();
+ expect(img.format == 12).assertTrue();
+ expect(img.clipRect.size.width == WIDTH).assertTrue();
+ expect(img.clipRect.size.height == HEIGHT).assertTrue();
+ expect(img.clipRect.x == 0).assertTrue();
+ expect(img.clipRect.y == 0).assertTrue();
+
+ try {
+ img.getComponent(param, (err, component) => {
+ expect(false).assertTrue();
+ })
+ } catch (error) {
+ expect(error.code == 1).assertTrue();
+ console.log(`${testNum} error msg: ` + error);
+ done();
+ }
+ }
+ })
+ }
+ }
+ async function getComponentP(done, testNum, param) {
+ var receiver = image.createImageReceiver(WIDTH, HEIGHT, FORMAT, CAPACITY)
+ if (receiver == undefined) {
+ expect(false).assertTrue();
+ done();
+ }
+
+ receiver.on('imageArrival', () => {
+ expect(true).assertTrue();
+ })
+
+ var dummy = receiver.test
+
+ receiver.readLatestImage((err, img) => {
+ if (err) {
+ expect(false).assertTrue();
+ done();
+ }else{
+ expect(img.size.width == WIDTH).assertTrue();
+ expect(img.size.height == HEIGHT).assertTrue();
+ expect(img.format == 12).assertTrue();
+ expect(img.clipRect.size.width == WIDTH).assertTrue();
+ expect(img.clipRect.size.height == HEIGHT).assertTrue();
+ expect(img.clipRect.x == 0).assertTrue();
+ expect(img.clipRect.y == 0).assertTrue();
+
+ img.getComponent(param).then(component => {
+ if (component == undefined) {
+ expect(false).assertTrue();
+ done();
+ }else{
+ expect(component.componentType == param).assertTrue();
+ expect(component.byteBuffer != undefined).assertTrue();
+ done();
+ }
+ }).catch(error => {
+ console.log(`${testNum} error:` + error)
+ expect(false).assertTrue();
+ done();
+ })
+ }
+ })
+ }
+
+ async function getComponentCb(done, testNum, param) {
+ var receiver = image.createImageReceiver(WIDTH, HEIGHT, FORMAT, CAPACITY)
+ if (receiver == undefined) {
+ expect(false).assertTrue();
+ done();
+ }
+
+ receiver.on('imageArrival', () => {
+ expect(true).assertTrue();
+ })
+
+ var dummy = receiver.test
+
+ receiver.readLatestImage((err, img) => {
+ if (err) {
+ expect(false).assertTrue();
+ done();
+ }else{
+ expect(img.size.width == WIDTH).assertTrue();
+ expect(img.size.height == HEIGHT).assertTrue();
+ expect(img.format == 12).assertTrue();
+ expect(img.clipRect.size.width == WIDTH).assertTrue();
+ expect(img.clipRect.size.height == HEIGHT).assertTrue();
+ expect(img.clipRect.x == 0).assertTrue();
+ expect(img.clipRect.y == 0).assertTrue();
+
+ img.getComponent(param, (err, component) => {
+ if(err){
+ expect(false).assertTrue();
+ console.log(`${testNum} geterror: ` + err)
+ }else{
+ expect(component != undefined).assertTrue();
+ expect(component.componentType == param).assertTrue();
+ expect(component.byteBuffer != undefined).assertTrue();
+ done();
+ }
+ })
+ }
+ })
+ }
+
+ async function onErr(done, testNum, param) {
+ var receiver = image.createImageReceiver(WIDTH, HEIGHT, FORMAT, CAPACITY)
+ expect(receiver != undefined).assertTrue();
+ if (receiver == undefined) {
+ expect(false).assertTrue();
+ done();
+ }else{
+ try {
+ receiver.on(param, () => {
+ expect(false).assertTrue();
+ })
+ } catch (error) {
+ expect(error.code == 1).assertTrue();
+ console.log(`${testNum} error msg: ` + error);
+ done();
+ }
+ var dummy = receiver.test
+ }
+
+ }
+
+ function isString(value) {
+ return typeof value === 'string' ;
+ }
+
+ /**
+ * @tc.number : Receiver_001
+ * @tc.name : createImageReceiver
+ * @tc.desc : 1.set width,height,format,capacity
+ * 2.create ImageReceiver
+ * 3.return ImageReceiver not empty
+ * @tc.size : MEDIUM
+ * @tc.type : Functional
+ * @tc.level : Level 0
+ */
+ it('Receiver_001', 0, async function (done) {
+ var receiver = image.createImageReceiver(WIDTH, HEIGHT, FORMAT, CAPACITY)
+ if (receiver == undefined) {
+ expect(false).assertTrue();
+ console.info('receiver_001 undefined')
+ done();
+ } else {
+ expect(receiver.size.width == WIDTH).assertTrue();
+ expect(receiver.size.height == HEIGHT).assertTrue();
+ expect(receiver.capacity == CAPACITY).assertTrue();
+ expect(receiver.format == FORMAT).assertTrue();
+ done();
+ }
+ })
+
+ /**
+ * @tc.number : Receiver_001-1
+ * @tc.name : createImageReceiver
+ * @tc.desc : 1.set width,height,format,capacity
+ * 2.create ImageReceiver
+ * 3.return ImageReceiver empty
+ * @tc.size : MEDIUM
+ * @tc.type : Functional
+ * @tc.level : Level 0
+ */
+ it('Receiver_001-1', 0, async function (done) {
+ createRecriver(done, 'Receiver_001-1', WIDTH, HEIGHT, FORMAT, 'hd!')
+ })
+
+ /**
+ * @tc.number : Receiver_001-2
+ * @tc.name : createImageReceiver-wrong format
+ * @tc.desc : 1.set width,height,format,capacity
+ * 2.create ImageReceiver
+ * 3.return ImageReceiver empty
+ * @tc.size : MEDIUM
+ * @tc.type : Functional
+ * @tc.level : Level 0
+ */
+ it('Receiver_001-2', 0, async function (done) {
+ createRecriver(done, 'Receiver_001-2', WIDTH, HEIGHT, null, CAPACITY)
+ })
+
+ /**
+ * @tc.number : Receiver_001-3
+ * @tc.name : createImageReceiver-wrong height
+ * @tc.desc : 1.set width,height,format,capacity
+ * 2.create ImageReceiver
+ * 3.return ImageReceiver empty
+ * @tc.size : MEDIUM
+ * @tc.type : Functional
+ * @tc.level : Level 0
+ */
+ it('Receiver_001-3', 0, async function (done) {
+ createRecriver(done, 'Receiver_001-3', WIDTH, null, FORMAT, CAPACITY)
+ })
+
+ /**
+ * @tc.number : Receiver_001-4
+ * @tc.name : createImageReceiver-wrong width
+ * @tc.desc : 1.set width,height,format,capacity
+ * 2.create ImageReceiver
+ * 3.return ImageReceiver empty
+ * @tc.size : MEDIUM
+ * @tc.type : Functional
+ * @tc.level : Level 0
+ */
+ it('Receiver_001-4', 0, async function (done) {
+ createRecriver(done, 'Receiver_001-4', null, HEIGHT, FORMAT, CAPACITY)
+ })
+
+ /**
+ * @tc.number : Receiver_001-5
+ * @tc.name : createImageReceiver-wrong capacity
+ * @tc.desc : 1.set width,height,format,capacity
+ * 2.create ImageReceiver
+ * 3.return ImageReceiver empty
+ * @tc.size : MEDIUM
+ * @tc.type : Functional
+ * @tc.level : Level 0
+ */
+ it('Receiver_001-5', 0, async function (done) {
+ createRecriver(done, 'Receiver_001-5', WIDTH, HEIGHT, FORMAT, null)
+ })
+
+ /**
+ * @tc.number : Receiver_001-6
+ * @tc.name : createImageReceiver-wrong width
+ * @tc.desc : 1.set width,height,format,capacity
+ * 2.create ImageReceiver
+ * 3.return ImageReceiver empty
+ * @tc.size : MEDIUM
+ * @tc.type : Functional
+ * @tc.level : Level 0
+ */
+ it('Receiver_001-6', 0, async function (done) {
+ createRecriver(done, 'Receiver_001-6', false, HEIGHT, FORMAT, CAPACITY)
+ })
+
+ /**
+ * @tc.number : Receiver_001-7
+ * @tc.name : createImageReceiver- wrong width
+ * @tc.desc : 1.set width,height,format,capacity
+ * 2.create ImageReceiver
+ * 3.return ImageReceiver empty
+ * @tc.size : MEDIUM
+ * @tc.type : Functional
+ * @tc.level : Level 0
+ */
+ it('Receiver_001-7', 0, async function (done) {
+ createRecriver(done, 'Receiver_001-7', { a: 10 }, HEIGHT, FORMAT, CAPACITY)
+ })
+
+ /**
+ * @tc.number : Receiver_001-8
+ * @tc.name : createImageReceiver
+ * @tc.desc : 1.set width,height,format,capacity
+ * 2.create ImageReceiver
+ * 3.return ImageReceiver empty
+ * @tc.size : MEDIUM
+ * @tc.type : Functional
+ * @tc.level : Level 0
+ */
+ it('Receiver_001-8', 0, async function (done) {
+ createRecriver(done, 'Receiver_001-8', WIDTH, false, FORMAT, CAPACITY)
+ })
+
+ /**
+ * @tc.number : Receiver_001-9
+ * @tc.name : createImageReceiver- wrong format
+ * @tc.desc : 1.set width,height,format,capacity
+ * 2.create ImageReceiver
+ * 3.return ImageReceiver empty
+ * @tc.size : MEDIUM
+ * @tc.type : Functional
+ * @tc.level : Level 0
+ */
+ it('Receiver_001-9', 0, async function (done) {
+ createRecriver(done, 'Receiver_001-9', WIDTH, HEIGHT, 'form.', CAPACITY)
+ })
+
+ /**
+ * @tc.number : Receiver_002
+ * @tc.name : getReceivingSurfaceId-promise
+ * @tc.desc : 1.create ImageReceiver
+ * 2.call getReceivingSurfaceId
+ * 3.return SurfaceId
+ * @tc.size : MEDIUM
+ * @tc.type : Functional
+ * @tc.level : Level 0
+ */
+ it('Receiver_002', 0, async function (done) {
+ var receiver = image.createImageReceiver(WIDTH, HEIGHT, FORMAT, CAPACITY)
+ if (receiver != undefined) {
+ receiver.getReceivingSurfaceId().then(id => {
+ console.info('Receiver_002 getReceivingSurfaceId [' + id + "]");
+ expect(isString(id)).assertTrue();
+ done();
+ }).catch(error => {
+ console.log('Receiver_002 error: ' + error);
+ expect(false).assertTrue();
+ done();
+ })
+ } else {
+ expect(false).assertTrue();
+ done()
+ }
+ })
+
+ /**
+ * @tc.number : Receiver_003
+ * @tc.name : getReceivingSurfaceId-callback
+ * @tc.desc : 1.create ImageReceiver
+ * 2.call getReceivingSurfaceId
+ * 3.return SurfaceId
+ * @tc.size : MEDIUM
+ * @tc.type : Functional
+ * @tc.level : Level 0
+ */
+ it('Receiver_003', 0, async function (done) {
+ var receiver = image.createImageReceiver(WIDTH, HEIGHT, FORMAT, CAPACITY)
+ if (receiver != undefined) {
+ receiver.getReceivingSurfaceId((err, id) => {
+ console.info('Receiver_003 getReceivingSurfaceId call back [' + id + "]");
+ expect(isString(id)).assertTrue();
+ done();
+ });
+ } else {
+ expect(false).assertTrue();
+ console.info('Receiver_003 finished');
+ done()
+ }
+ })
+
+ /**
+ * @tc.number : Receiver_004
+ * @tc.name : release-promise
+ * @tc.desc : 1.create ImageReceiver
+ * 2.call release
+ * @tc.size : MEDIUM
+ * @tc.type : Functional
+ * @tc.level : Level 0
+ */
+ it('Receiver_004', 0, async function (done) {
+ var receiver = image.createImageReceiver(WIDTH, HEIGHT, FORMAT, CAPACITY)
+ if (receiver != undefined) {
+ receiver.release().then(() => {
+ console.info('Receiver_004 release ');
+ expect(true).assertTrue();
+ done();
+ }).catch(error => {
+ expect(false).assertTrue();
+ done();
+ })
+ } else {
+ expect(false).assertTrue();
+ console.info('Receiver_004 finished');
+ done()
+ }
+ })
+
+ /**
+ * @tc.number : Receiver_005
+ * @tc.name : release-callback
+ * @tc.desc : 1.create ImageReceiver
+ * 2.call release
+ * @tc.size : MEDIUM
+ * @tc.type : Functional
+ * @tc.level : Level 0
+ */
+ it('Receiver_005', 0, async function (done) {
+ var receiver = image.createImageReceiver(WIDTH, HEIGHT, FORMAT, CAPACITY)
+ if (receiver != undefined) {
+ receiver.release((err) => {
+ if (err) {
+ expect(false).assertTrue();
+ console.info('Receiver_005 release fail');
+ done();
+ } else {
+ console.info('Receiver_005 release call back');
+ expect(true).assertTrue();
+ done();
+ }
+ });
+ } else {
+ expect(false).assertTrue();
+ console.info('Receiver_005 finished');
+ done();
+ }
+ })
+
+ /**
+ * @tc.number : Receiver_006
+ * @tc.name : readLatestImage-promise
+ * @tc.desc : 1.create ImageReceiver
+ * 2.call readLatestImage
+ * 3.return image
+ * @tc.size : MEDIUM
+ * @tc.type : Functional
+ * @tc.level : Level 0
+ */
+ it('Receiver_006', 0, async function (done) {
+ var receiver = image.createImageReceiver(WIDTH, HEIGHT, FORMAT, CAPACITY)
+ var dummy = receiver.test;
+ if (receiver != undefined) {
+ receiver.readLatestImage().then(img => {
+ console.info('Receiver_006 readLatestImage Success');
+ expect(img != undefined).assertTrue();
+ done();
+ }).catch(error => {
+ console.log('Receiver_006 error: ' + error);
+ expect(false).assertTrue();
+ done();
+ })
+ } else {
+ expect(false).assertTrue();
+ console.info('Receiver_006 finished');
+ done();
+ }
+ })
+
+ /**
+ * @tc.number : Receiver_007
+ * @tc.name : readLatestImage-callback
+ * @tc.desc : 1.create ImageReceiver
+ * 2.call readLatestImage
+ * 3.return image
+ * @tc.size : MEDIUM
+ * @tc.type : Functional
+ * @tc.level : Level 0
+ */
+ it('Receiver_007', 0, async function (done) {
+ var receiver = image.createImageReceiver(WIDTH, HEIGHT, FORMAT, CAPACITY)
+ var dummy = receiver.test;
+ if (receiver != undefined) {
+ receiver.readLatestImage((err, img) => {
+ console.info('Receiver_007 readLatestImage call back Success');
+ expect(img != undefined).assertTrue();
+ done();
+ });
+ } else {
+ expect(false).assertTrue();
+ console.info('Receiver_007 finished');
+ done();
+ }
+ })
+
+ /**
+ * @tc.number : Receiver_008
+ * @tc.name : readNextImage-promise
+ * @tc.desc : 1.create ImageReceiver
+ * 2.call readNextImage
+ * 3.return image
+ * @tc.size : MEDIUM
+ * @tc.type : Functional
+ * @tc.level : Level 0
+ */
+ it('Receiver_008', 0, async function (done) {
+ var receiver = image.createImageReceiver(WIDTH, HEIGHT, FORMAT, CAPACITY)
+ var dummy = receiver.test;
+ expect(receiver != undefined).assertTrue();
+ if (receiver != undefined) {
+ receiver.readNextImage().then(img => {
+ console.info('Receiver_008 readNextImage Success');
+ expect(img != undefined).assertTrue();
+ done();
+ }).catch(error => {
+ console.log('Receiver_008 error: ' + error);
+ expect(false).assertTrue();
+ done();
+ })
+ } else {
+ expect(false).assertTrue();
+ console.info('Receiver_008 finished');
+ done();
+ }
+ })
+
+ /**
+ * @tc.number : Receiver_009
+ * @tc.name : readNextImage-callback
+ * @tc.desc : 1.create ImageReceiver
+ * 2.call readNextImage
+ * 3.return image
+ * @tc.size : MEDIUM
+ * @tc.type : Functional
+ * @tc.level : Level 0
+ */
+ it('Receiver_009', 0, async function (done) {
+ var receiver = image.createImageReceiver(WIDTH, HEIGHT, FORMAT, CAPACITY)
+ var dummy = receiver.test;
+ if (receiver != undefined) {
+ receiver.readNextImage((err, img) => {
+ if(err){
+ expect(false).assertTrue();
+ }else{
+ console.info('Receiver_009 readNextImage call back Success');
+ expect(img != undefined).assertTrue();
+ done();
+ }
+
+ })
+ } else {
+ expect(false).assertTrue();
+ console.info('Receiver_009 finished');
+ done();
+ }
+ })
+
+ /**
+ * @tc.number : Receiver_010
+ * @tc.name : getComponent-jpeg
+ * @tc.desc : 1.create ImageReceiver
+ * 2.call on
+ * 3.readLatestImage
+ * 4.call getComponent
+ * @tc.size : MEDIUM
+ * @tc.type : Functional
+ * @tc.level : Level 0
+ */
+ it('Receiver_010', 0, async function (done) {
+ getComponentP(done, 'Receiver_010', JPEG)
+ })
+
+ /**
+ * @tc.number : Receiver_010_1
+ * @tc.name : getComponent-YUV_U
+ * @tc.desc : 1.create ImageReceiver
+ * 2.call on
+ * 3.readLatestImage
+ * 4.call getComponent
+ * @tc.size : MEDIUM
+ * @tc.type : Functional
+ * @tc.level : Level 0
+ */
+ it('Receiver_010_1', 0, async function (done) {
+ getComponentP(done, 'Receiver_010_1', YUV_U)
+ })
+
+ /**
+ * @tc.number : Receiver_010_2
+ * @tc.name : getComponent-YUV_V
+ * @tc.desc : 1.create ImageReceiver
+ * 2.call on
+ * 3.readLatestImage
+ * 4.call getComponent
+ * @tc.size : MEDIUM
+ * @tc.type : Functional
+ * @tc.level : Level 0
+ */
+ it('Receiver_010_2', 0, async function (done) {
+ getComponentP(done, 'Receiver_010_2', YUV_V)
+ })
+
+ /**
+ * @tc.number : Receiver_010_3
+ * @tc.name : getComponent-YUV_Y
+ * @tc.desc : 1.create ImageReceiver
+ * 2.call on
+ * 3.readLatestImage
+ * 4.call getComponent
+ * @tc.size : MEDIUM
+ * @tc.type : Functional
+ * @tc.level : Level 0
+ */
+ it('Receiver_010_3', 0, async function (done) {
+ getComponentP(done, 'Receiver_010_3', YUV_Y)
+ })
+
+ /**
+ * @tc.number : Receiver_010_4
+ * @tc.name : getComponent-jpeg
+ * @tc.desc : 1.create ImageReceiver
+ * 2.call on
+ * 3.readLatestImage
+ * 4.call getComponent
+ * @tc.size : MEDIUM
+ * @tc.type : Functional
+ * @tc.level : Level 0
+ */
+ it('Receiver_010_4', 0, async function (done) {
+ getComponentCb(done, 'Receiver_010_4', JPEG)
+ })
+
+ /**
+ * @tc.number : Receiver_010_5
+ * @tc.name : getComponent-YUV_Y
+ * @tc.desc : 1.create ImageReceiver
+ * 2.call on
+ * 3.readLatestImage
+ * 4.call getComponent
+ * @tc.size : MEDIUM
+ * @tc.type : Functional
+ * @tc.level : Level 0
+ */
+ it('Receiver_010_5', 0, async function (done) {
+ getComponentCb(done, 'Receiver_010_5', YUV_Y)
+ })
+
+ /**
+ * @tc.number : Receiver_010_6
+ * @tc.name : getComponent-YUV_V
+ * @tc.desc : 1.create ImageReceiver
+ * 2.call on
+ * 3.readLatestImage
+ * 4.call getComponent
+ * @tc.size : MEDIUM
+ * @tc.type : Functional
+ * @tc.level : Level 0
+ */
+ it('Receiver_010_6', 0, async function (done) {
+ getComponentCb(done, 'Receiver_010_6', YUV_V)
+ })
+
+ /**
+ * @tc.number : Receiver_010_7
+ * @tc.name : getComponent-YUV_U
+ * @tc.desc : 1.create ImageReceiver
+ * 2.call on
+ * 3.readLatestImage
+ * 4.call getComponent
+ * @tc.size : MEDIUM
+ * @tc.type : Functional
+ * @tc.level : Level 0
+ */
+ it('Receiver_010_7', 0, async function (done) {
+ getComponentCb(done, 'Receiver_010_7', YUV_U)
+ })
+
+ /**
+ * @tc.number : Receiver_011
+ * @tc.name : on
+ * @tc.desc : 1.create ImageReceiver
+ * 2.call on
+ * @tc.size : MEDIUM
+ * @tc.type : Functional
+ * @tc.level : Level 0
+ */
+ it('Receiver_011', 0, async function (done) {
+ var receiver = image.createImageReceiver(WIDTH, HEIGHT, FORMAT, CAPACITY)
+ if (receiver == undefined) {
+ expect(false).assertTrue();
+ done();
+ }else{
+ let pass = false;
+ receiver.on('imageArrival', (err) => {
+ if(err){
+ console.info('Receiver_011 on err' +err);
+ expect(false).assertTrue();
+ done();
+ }else{
+ pass = true;
+ console.info('Receiver_011 on call back IN');
+ }
+ })
+
+ var dummy = receiver.test
+ await sleep(2000)
+ expect(pass).assertTrue();
+ done();
+ }
+ })
+
+ /**
+ * @tc.number : Receiver_012
+ * @tc.name : release-promise
+ * @tc.desc : 1.create ImageReceiver
+ * 2.call on
+ * 3.readLatestImage
+ * 4.call release
+ * 5.return the operation result
+ * @tc.size : MEDIUM
+ * @tc.type : Functional
+ * @tc.level : Level 0
+ */
+ it('Receiver_012', 0, async function (done) {
+ var receiver = image.createImageReceiver(WIDTH, HEIGHT, FORMAT, CAPACITY)
+ if (receiver == undefined) {
+ expect(false).assertTrue();
+ done();
+ }
+
+ receiver.on('imageArrival', () => {
+ expect(true).assertTrue();
+ })
+
+ var dummy = receiver.test
+
+ receiver.readLatestImage().then(img => {
+ if (img == undefined) {
+ expect(false).assertTrue();
+ done();
+ } else {
+ expect(img.size.width == WIDTH).assertTrue();
+ expect(img.size.height == HEIGHT).assertTrue();
+ expect(img.format == 12).assertTrue();
+ expect(img.clipRect.size.width == WIDTH).assertTrue();
+ expect(img.clipRect.size.height == HEIGHT).assertTrue();
+ expect(img.clipRect.x == 0).assertTrue();
+ expect(img.clipRect.y == 0).assertTrue();
+
+ img.release().then(() => {
+ expect(true).assertTrue();
+ done()
+ }).catch(error => {
+ console.log('Receiver_012 err' + error)
+ expect(false).assertTrue();
+ done();
+ })
+ }
+ }).catch(error => {
+ console.log('Receiver_012 readLatestImage err' + error)
+ expect(false).assertTrue();
+ done();
+ })
+ })
+
+ /**
+ * @tc.number : Receiver_013
+ * @tc.name : release-callback
+ * @tc.desc : 1.create ImageReceiver
+ * 2.call on
+ * 3.readLatestImage
+ * 4.call release
+ * 5.return the operation result
+ * @tc.size : MEDIUM
+ * @tc.type : Functional
+ * @tc.level : Level 0
+ */
+ it('Receiver_013', 0, async function (done) {
+ var receiver = image.createImageReceiver(WIDTH, HEIGHT, FORMAT, CAPACITY)
+ if (receiver == undefined) {
+ expect(false).assertTrue();
+ done();
+ }
+
+ receiver.on('imageArrival', () => {
+ expect(true).assertTrue();
+ })
+
+ var dummy = receiver.test
+
+ receiver.readLatestImage((err,img) => {
+ if (img == undefined) {
+ expect(false).assertTrue();
+ done();
+ }
+
+ expect(img.size.width == WIDTH).assertTrue();
+ expect(img.size.height == HEIGHT).assertTrue();
+ expect(img.format == 12).assertTrue();
+ expect(img.clipRect.size.width == WIDTH).assertTrue();
+ expect(img.clipRect.size.height == HEIGHT).assertTrue();
+ expect(img.clipRect.x == 0).assertTrue();
+ expect(img.clipRect.y == 0).assertTrue();
+
+ img.release((err) => {
+ if (err) {
+ expect(false).assertTrue();
+ done();
+ } else {
+ expect(true).assertTrue();
+ done();
+ }
+ })
+ })
+ })
+
+ /**
+ * @tc.number : Receiver_014
+ * @tc.name : getComponent-wrong format
+ * @tc.desc : 1.create ImageReceiver
+ * 2.call on
+ * 3.readLatestImage
+ * 4.call getComponent
+ * @tc.size : MEDIUM
+ * @tc.type : Functional
+ * @tc.level : Level 0
+ */
+ it('Receiver_014', 0, async function (done) {
+ getComponentCbErr(done, 'Receiver_014', null)
+ })
+
+ /**
+ * @tc.number : Receiver_015
+ * @tc.name : getComponent-wrong format
+ * @tc.desc : 1.create ImageReceiver
+ * 2.call on
+ * 3.readLatestImage
+ * 4.call getComponent
+ * @tc.size : MEDIUM
+ * @tc.type : Functional
+ * @tc.level : Level 0
+ */
+ it('Receiver_015', 0, async function (done) {
+ getComponentCbErr(done, 'Receiver_015', 'ab')
+ })
+
+ /**
+ * @tc.number : Receiver_016
+ * @tc.name : getComponent-wrong format
+ * @tc.desc : 1.create ImageReceiver
+ * 2.call on
+ * 3.readLatestImage
+ * 4.call getComponent
+ * @tc.size : MEDIUM
+ * @tc.type : Functional
+ * @tc.level : Level 0
+ */
+ it('Receiver_016', 0, async function (done) {
+ getComponentCbErr(done, 'Receiver_016', 0.1)
+ })
+
+ /**
+ * @tc.number : Receiver_017
+ * @tc.name : getComponent-wrong format
+ * @tc.desc : 1.create ImageReceiver
+ * 2.call on
+ * 3.readLatestImage
+ * 4.call getComponent
+ * @tc.size : MEDIUM
+ * @tc.type : Functional
+ * @tc.level : Level 0
+ */
+ it('Receiver_017', 0, async function (done) {
+ getComponentCbErr(done, 'Receiver_017', { a: 1 })
+ })
+
+ /**
+ * @tc.number : Receiver_018
+ * @tc.name : getComponent-wrong format
+ * @tc.desc : 1.create ImageReceiver
+ * 2.call on
+ * 3.readLatestImage
+ * 4.call getComponent
+ * @tc.size : MEDIUM
+ * @tc.type : Functional
+ * @tc.level : Level 0
+ */
+ it('Receiver_018', 0, async function (done) {
+ getComponentProErr(done, 'Receiver_018', null)
+ })
+
+ /**
+ * @tc.number : Receiver_019
+ * @tc.name : getComponent-wrong format
+ * @tc.desc : 1.create ImageReceiver
+ * 2.call on
+ * 3.readLatestImage
+ * 4.call getComponent
+ * @tc.size : MEDIUM
+ * @tc.type : Functional
+ * @tc.level : Level 0
+ */
+ it('Receiver_019', 0, async function (done) {
+ getComponentProErr(done, 'Receiver_019', 'ab')
+ })
+
+ /**
+ * @tc.number : Receiver_020
+ * @tc.name : getComponent-wrong format
+ * @tc.desc : 1.create ImageReceiver
+ * 2.call on
+ * 3.readLatestImage
+ * 4.call getComponent
+ * @tc.size : MEDIUM
+ * @tc.type : Functional
+ * @tc.level : Level 0
+ */
+ it('Receiver_020', 0, async function (done) {
+ getComponentProErr(done, 'Receiver_020', 0.1)
+ })
+
+ /**
+ * @tc.number : Receiver_021
+ * @tc.name : getComponent-wrong format
+ * @tc.desc : 1.create ImageReceiver
+ * 2.call on
+ * 3.readLatestImage
+ * 4.call getComponent
+ * @tc.size : MEDIUM
+ * @tc.type : Functional
+ * @tc.level : Level 0
+ */
+ it('Receiver_021', 0, async function (done) {
+ getComponentProErr(done, 'Receiver_021', { a: 1 })
+ })
+
+ /**
+ * @tc.number : Receiver_022
+ * @tc.name : on-1
+ * @tc.desc : 1.create ImageReceiver
+ * 2.call on
+ * @tc.size : MEDIUM
+ * @tc.type : Functional
+ * @tc.level : Level 0
+ */
+ it('Receiver_022', 0, async function (done) {
+ onErr(done, 'Receiver_022', 1)
+ })
+
+ /**
+ * @tc.number : Receiver_023
+ * @tc.name : on-null
+ * @tc.desc : 1.create ImageReceiver
+ * 2.call on
+ * @tc.size : MEDIUM
+ * @tc.type : Functional
+ * @tc.level : Level 0
+ */
+ it('Receiver_023', 0, async function (done) {
+ onErr(done, 'Receiver_023', null)
+ })
+
+ /**
+ * @tc.number : Receiver_024
+ * @tc.name : on-{a : 1}
+ * @tc.desc : 1.create ImageReceiver
+ * 2.call on
+ * @tc.size : MEDIUM
+ * @tc.type : Functional
+ * @tc.level : Level 0
+ */
+ it('Receiver_024', 0, async function (done) {
+ onErr(done, 'Receiver_024', { a: 1 })
+ })
+
+ /**
+ * @tc.number : Receiver_025
+ * @tc.name : on-'a'
+ * @tc.desc : 1.create ImageReceiver
+ * 2.call on
+ * @tc.size : MEDIUM
+ * @tc.type : Functional
+ * @tc.level : Level 0
+ */
+ it('Receiver_025', 0, async function (done) {
+ onErr(done, 'Receiver_025', 'a')
+ })
+})
\ No newline at end of file
diff --git a/multimedia/image/image_js_standard/imageReceiver/src/main/resources/base/element/string.json b/multimedia/image/image_js_standard/imageReceiver/src/main/resources/base/element/string.json
new file mode 100644
index 0000000000000000000000000000000000000000..eed70c6527b594a191b279111f5ad25a3155a1b6
--- /dev/null
+++ b/multimedia/image/image_js_standard/imageReceiver/src/main/resources/base/element/string.json
@@ -0,0 +1,12 @@
+{
+ "string": [
+ {
+ "name": "entry_MainAbility",
+ "value": "ImageJSTestMain"
+ },
+ {
+ "name": "mainability_description",
+ "value": "ImageJSTestMain Ability"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/multimedia/image/image_js_standard/imageReceiver/src/main/resources/base/media/icon.png b/multimedia/image/image_js_standard/imageReceiver/src/main/resources/base/media/icon.png
new file mode 100644
index 0000000000000000000000000000000000000000..ce307a8827bd75456441ceb57d530e4c8d45d36c
Binary files /dev/null and b/multimedia/image/image_js_standard/imageReceiver/src/main/resources/base/media/icon.png differ