diff --git a/multimedia/BUILD.gn b/multimedia/BUILD.gn
index 94e80883fddad55dcc315b106cde70c58a4d52f5..0c2cc0a76895d38bdddb134cda206c23ba7c2807 100644
--- a/multimedia/BUILD.gn
+++ b/multimedia/BUILD.gn
@@ -33,6 +33,7 @@ group("multimedia") {
"image/image_js_standard/imagePacking:image_packing_js_hap",
"image/image_js_standard/imagePixelMapFramework:image_pixelmapframework_js_hap",
"image/image_js_standard/imageRGBA:image_rgba_js_hap",
+ "image/image_js_standard/imageRaw:image_raw_js_hap",
"image/image_js_standard/imageReceiver:image_receiver_js_hap",
"image/image_js_standard/imageWebp:image_webp_js_hap",
"image/image_js_standard/imageYUV:image_yuv_js_hap",
diff --git a/multimedia/image/image_js_standard/imageRaw/BUILD.gn b/multimedia/image/image_js_standard/imageRaw/BUILD.gn
new file mode 100644
index 0000000000000000000000000000000000000000..c97e647418b85f52980f40db985e877f1edeabe1
--- /dev/null
+++ b/multimedia/image/image_js_standard/imageRaw/BUILD.gn
@@ -0,0 +1,35 @@
+# 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_raw_js_hap") {
+ hap_profile = "./src/main/config.json"
+ deps = [
+ ":image_raw_js_assets",
+ ":image_raw_resources",
+ ]
+ certificate_profile = "./signature/openharmony_sx.p7b"
+ hap_name = "ActsImageRawJsTest"
+ subsystem_name = "multimedia"
+ part_name = "multimedia_image_standard"
+}
+ohos_js_assets("image_raw_js_assets") {
+ js2abc = true
+ hap_profile = "./src/main/config.json"
+ source_dir = "./src/main/js"
+}
+ohos_resources("image_raw_resources") {
+ sources = [ "./src/main/resources" ]
+ hap_profile = "./src/main/config.json"
+}
diff --git a/multimedia/image/image_js_standard/imageRaw/Test.json b/multimedia/image/image_js_standard/imageRaw/Test.json
new file mode 100644
index 0000000000000000000000000000000000000000..52ac7754a3c9d59cdfed8ac65607cdc59ed9d80d
--- /dev/null
+++ b/multimedia/image/image_js_standard/imageRaw/Test.json
@@ -0,0 +1,55 @@
+{
+ "description": "Configuration for Image Tests",
+ "driver": {
+ "type": "OHJSUnitTest",
+ "test-timeout": "300000",
+ "shell-timeout": "120000",
+ "bundle-name": "ohos.acts.multimedia.image.Raw",
+ "package-name": "ohos.acts.multimedia.image.Raw"
+ },
+ "kits": [
+ {
+ "test-file-name": [
+ "ActsImageRawJsTest.hap"
+ ],
+ "type": "AppInstallKit",
+ "cleanup-apps": true
+ },
+ {
+ "type": "ShellKit",
+ "run-command": [
+ "mkdir -p /data/app/el2/100/base/ohos.acts.multimedia.image.Raw/haps/entry/files/",
+ "chmod -R 666 /data/app/el2/100/base/ohos.acts.multimedia.image.Raw/haps/entry/files/*"
+ ],
+ "teardown-command":[
+
+ ]
+ },
+ {
+ "type": "PushKit",
+ "pre-push": [],
+ "push": [
+
+ "./resource/image/test.nrw ->/data/app/el2/100/base/ohos.acts.multimedia.image.Raw/haps/entry/files",
+ "./resource/image/test.cr2 ->/data/app/el2/100/base/ohos.acts.multimedia.image.Raw/haps/entry/files",
+ "./resource/image/test_dng.dng ->/data/app/el2/100/base/ohos.acts.multimedia.image.Raw/haps/entry/files",
+ "./resource/image/test.cr3 ->/data/app/el2/100/base/ohos.acts.multimedia.image.Raw/haps/entry/files",
+ "./resource/image/test.arw ->/data/app/el2/100/base/ohos.acts.multimedia.image.Raw/haps/entry/files",
+ "./resource/image/test.pef ->/data/app/el2/100/base/ohos.acts.multimedia.image.Raw/haps/entry/files",
+ "./resource/image/test.raf ->/data/app/el2/100/base/ohos.acts.multimedia.image.Raw/haps/entry/files",
+ "./resource/image/test.rw2 ->/data/app/el2/100/base/ohos.acts.multimedia.image.Raw/haps/entry/files"
+ ]
+ },
+ {
+ "type": "ShellKit",
+ "run-command": [
+ "hilog -Q pidoff",
+ "hilog -b D",
+ "chmod 777 /data/app/el2/100/base/ohos.acts.multimedia.image.Raw/haps/entry/files/*"
+ ],
+ "teardown-command": [
+ "rm -rf /data/app/el2/100/base/ohos.acts.multimedia.image.Raw/*"
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/multimedia/image/image_js_standard/imageRaw/signature/openharmony_sx.p7b b/multimedia/image/image_js_standard/imageRaw/signature/openharmony_sx.p7b
new file mode 100644
index 0000000000000000000000000000000000000000..d9fe0c1edd5ef09a357ed0bf05ed915a72278cca
Binary files /dev/null and b/multimedia/image/image_js_standard/imageRaw/signature/openharmony_sx.p7b differ
diff --git a/multimedia/image/image_js_standard/imageRaw/src/main/config.json b/multimedia/image/image_js_standard/imageRaw/src/main/config.json
new file mode 100644
index 0000000000000000000000000000000000000000..ffc0721bdfe7909b5faed0b4881c9d50e941d944
--- /dev/null
+++ b/multimedia/image/image_js_standard/imageRaw/src/main/config.json
@@ -0,0 +1,132 @@
+{
+ "app": {
+ "apiVersion": {
+ "compatible": 6,
+ "releaseType": "Beta1",
+ "target": 7
+ },
+ "vendor": "acts",
+ "bundleName": "ohos.acts.multimedia.image.Raw",
+ "version": {
+ "code": 1000000,
+ "name": "1.0.0"
+ }
+ },
+ "deviceConfig": {
+ "default": {
+ "debug": true
+ }
+ },
+ "module": {
+ "abilities": [
+ {
+ "skills": [
+ {
+ "entities": [
+ "entity.system.home"
+ ],
+ "actions": [
+ "action.system.home"
+ ]
+ }
+ ],
+ "orientation": "unspecified",
+ "formsEnabled": false,
+ "name": ".MainAbility",
+ "srcLanguage": "js",
+ "srcPath": "MainAbility",
+ "icon": "$media:icon",
+ "description": "$string:MainAbility_desc",
+ "label": "$string:MainAbility_label",
+ "type": "page",
+ "visible": true,
+ "launchType": "standard"
+ },
+ {
+ "orientation": "unspecified",
+ "formsEnabled": false,
+ "name": ".TestAbility",
+ "srcLanguage": "js",
+ "srcPath": "TestAbility",
+ "icon": "$media:icon",
+ "description": "$string:TestAbility_desc",
+ "label": "$string:TestAbility_label",
+ "type": "page",
+ "visible": true,
+ "launchType": "standard"
+ }
+ ],
+ "deviceType": [
+ "phone",
+ "tablet",
+ "tv",
+ "wearable"
+ ],
+ "mainAbility": ".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.Raw",
+ "name": ".entry",
+ "js": [
+ {
+ "pages": [
+ "pages/index/index"
+ ],
+ "name": "default",
+ "window": {
+ "designWidth": 720,
+ "autoDesignWidth": true
+ }
+ },
+ {
+ "pages": [
+ "pages/index/index"
+ ],
+ "name": ".TestAbility",
+ "window": {
+ "designWidth": 720,
+ "autoDesignWidth": false
+ }
+ }
+ ],
+ "testRunner": {
+ "name": "OpenHarmonyTestRunner",
+ "srcPath": "TestRunner"
+ },
+ "srcPath": ""
+ }
+}
\ No newline at end of file
diff --git a/multimedia/image/image_js_standard/imageRaw/src/main/js/MainAbility/app.js b/multimedia/image/image_js_standard/imageRaw/src/main/js/MainAbility/app.js
new file mode 100644
index 0000000000000000000000000000000000000000..8b3c3b3cb7930c465567b386bf230cb38a0d128e
--- /dev/null
+++ b/multimedia/image/image_js_standard/imageRaw/src/main/js/MainAbility/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/imageRaw/src/main/js/MainAbility/i18n/en-US.json b/multimedia/image/image_js_standard/imageRaw/src/main/js/MainAbility/i18n/en-US.json
new file mode 100644
index 0000000000000000000000000000000000000000..0331845d4580b25c5af980f2ff65203583053b66
--- /dev/null
+++ b/multimedia/image/image_js_standard/imageRaw/src/main/js/MainAbility/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/imageRaw/src/main/js/MainAbility/i18n/zh-CN.json b/multimedia/image/image_js_standard/imageRaw/src/main/js/MainAbility/i18n/zh-CN.json
new file mode 100644
index 0000000000000000000000000000000000000000..9106b0897838e8e7600cd824146a7c2f8ee6c574
--- /dev/null
+++ b/multimedia/image/image_js_standard/imageRaw/src/main/js/MainAbility/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/imageRaw/src/main/js/MainAbility/pages/index/index.css b/multimedia/image/image_js_standard/imageRaw/src/main/js/MainAbility/pages/index/index.css
new file mode 100644
index 0000000000000000000000000000000000000000..53b12aeee6149cbc85a51a69bdadb6a06c635dd3
--- /dev/null
+++ b/multimedia/image/image_js_standard/imageRaw/src/main/js/MainAbility/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/imageRaw/src/main/js/MainAbility/pages/index/index.hml b/multimedia/image/image_js_standard/imageRaw/src/main/js/MainAbility/pages/index/index.hml
new file mode 100644
index 0000000000000000000000000000000000000000..e7b706af9e044f0ef934e80c6c23ddabf25e2f7d
--- /dev/null
+++ b/multimedia/image/image_js_standard/imageRaw/src/main/js/MainAbility/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/imageRaw/src/main/js/MainAbility/pages/index/index.js b/multimedia/image/image_js_standard/imageRaw/src/main/js/MainAbility/pages/index/index.js
new file mode 100644
index 0000000000000000000000000000000000000000..6e13f07516799a59adf5300cb7a609436db8122a
--- /dev/null
+++ b/multimedia/image/image_js_standard/imageRaw/src/main/js/MainAbility/pages/index/index.js
@@ -0,0 +1,29 @@
+/*
+ * 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 {
+ data: {
+ title: ""
+ },
+ onInit() {
+ this.title = this.$t('strings.world');
+ },
+ onShow() {
+ console.info('onShow finish')
+ },
+ onReady() {
+ },
+}
\ No newline at end of file
diff --git a/multimedia/image/image_js_standard/imageRaw/src/main/js/TestAbility/app.js b/multimedia/image/image_js_standard/imageRaw/src/main/js/TestAbility/app.js
new file mode 100644
index 0000000000000000000000000000000000000000..cdc31f3dcf031e2f6a7665d9653e53bb649e21c5
--- /dev/null
+++ b/multimedia/image/image_js_standard/imageRaw/src/main/js/TestAbility/app.js
@@ -0,0 +1,31 @@
+/*
+ * Copyright (c) 2022 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 AbilityDelegatorRegistry from '@ohos.application.abilityDelegatorRegistry'
+import { Hypium } from '@ohos/hypium'
+import testsuite from '../test/List.test'
+
+export default {
+ onCreate() {
+ console.info('TestApplication onCreate')
+ var abilityDelegator = AbilityDelegatorRegistry.getAbilityDelegator()
+ var abilityDelegatorArguments = AbilityDelegatorRegistry.getArguments()
+ console.info('start run testcase!!!')
+ Hypium.hypiumTest(abilityDelegator, abilityDelegatorArguments, testsuite)
+ },
+ onDestroy() {
+ console.info("TestApplication onDestroy");
+ }
+};
diff --git a/multimedia/image/image_js_standard/imageRaw/src/main/js/TestAbility/i18n/en-US.json b/multimedia/image/image_js_standard/imageRaw/src/main/js/TestAbility/i18n/en-US.json
new file mode 100644
index 0000000000000000000000000000000000000000..3cb24b374b1d919ca8eac0638f361692b603a900
--- /dev/null
+++ b/multimedia/image/image_js_standard/imageRaw/src/main/js/TestAbility/i18n/en-US.json
@@ -0,0 +1,8 @@
+{
+ "strings": {
+ "hello": "Hello",
+ "world": "World"
+ },
+ "Files": {
+ }
+}
\ No newline at end of file
diff --git a/multimedia/image/image_js_standard/imageRaw/src/main/js/TestAbility/i18n/zh-CN.json b/multimedia/image/image_js_standard/imageRaw/src/main/js/TestAbility/i18n/zh-CN.json
new file mode 100644
index 0000000000000000000000000000000000000000..c804e32c0c3103929baca5617cdac70be11fdba1
--- /dev/null
+++ b/multimedia/image/image_js_standard/imageRaw/src/main/js/TestAbility/i18n/zh-CN.json
@@ -0,0 +1,8 @@
+{
+ "strings": {
+ "hello": "您好",
+ "world": "世界"
+ },
+ "Files": {
+ }
+}
\ No newline at end of file
diff --git a/multimedia/image/image_js_standard/imageRaw/src/main/js/TestAbility/pages/index/index.css b/multimedia/image/image_js_standard/imageRaw/src/main/js/TestAbility/pages/index/index.css
new file mode 100644
index 0000000000000000000000000000000000000000..b1bcd43387ba131cc1d30975ff7508a6f8084a4b
--- /dev/null
+++ b/multimedia/image/image_js_standard/imageRaw/src/main/js/TestAbility/pages/index/index.css
@@ -0,0 +1,30 @@
+.container {
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+ align-items: center;
+ left: 0px;
+ top: 0px;
+ width: 100%;
+ height: 100%;
+}
+
+.title {
+ font-size: 60px;
+ text-align: center;
+ width: 100%;
+ height: 40%;
+ margin: 10px;
+}
+
+@media screen and (device-type: phone) and (orientation: landscape) {
+ .title {
+ font-size: 60px;
+ }
+}
+
+@media screen and (device-type: tablet) and (orientation: landscape) {
+ .title {
+ font-size: 100px;
+ }
+}
\ No newline at end of file
diff --git a/multimedia/image/image_js_standard/imageRaw/src/main/js/TestAbility/pages/index/index.hml b/multimedia/image/image_js_standard/imageRaw/src/main/js/TestAbility/pages/index/index.hml
new file mode 100644
index 0000000000000000000000000000000000000000..f629c71a9be857db6cdf94149652a191b9b272ea
--- /dev/null
+++ b/multimedia/image/image_js_standard/imageRaw/src/main/js/TestAbility/pages/index/index.hml
@@ -0,0 +1,5 @@
+
+
+ {{ $t('strings.hello') }} {{ title }}
+
+
diff --git a/multimedia/image/image_js_standard/imageRaw/src/main/js/TestAbility/pages/index/index.js b/multimedia/image/image_js_standard/imageRaw/src/main/js/TestAbility/pages/index/index.js
new file mode 100644
index 0000000000000000000000000000000000000000..88b083a7f6b979019d6a2c5ad20b19c5fd43286b
--- /dev/null
+++ b/multimedia/image/image_js_standard/imageRaw/src/main/js/TestAbility/pages/index/index.js
@@ -0,0 +1,26 @@
+/*
+ * Copyright (c) 2022 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 {
+ data: {
+ title: ""
+ },
+ onInit() {
+ this.title = this.$t('strings.world');
+ }
+}
+
+
+
diff --git a/multimedia/image/image_js_standard/imageRaw/src/main/js/TestRunner/OpenHarmonyTestRunner.js b/multimedia/image/image_js_standard/imageRaw/src/main/js/TestRunner/OpenHarmonyTestRunner.js
new file mode 100644
index 0000000000000000000000000000000000000000..c5fa8620ca77d381f20b65a903b833e6e3378c97
--- /dev/null
+++ b/multimedia/image/image_js_standard/imageRaw/src/main/js/TestRunner/OpenHarmonyTestRunner.js
@@ -0,0 +1,59 @@
+/*
+ * Copyright (c) 2022 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 AbilityDelegatorRegistry from '@ohos.application.abilityDelegatorRegistry'
+
+function translateParamsToString(parameters) {
+ const keySet = new Set([
+ '-s class', '-s notClass', '-s suite', '-s itName',
+ '-s level', '-s testType', '-s size', '-s timeout',
+ '-s package', '-s dryRun'
+ ])
+ let targetParams = '';
+ for (const key in parameters) {
+ if (keySet.has(key)) {
+ targetParams += ' ' + key + ' ' + parameters[key]
+ }
+ }
+ return targetParams.trim()
+}
+
+ export default {
+ onPrepare() {
+ console.info('OpenHarmonyTestRunner OnPrepare')
+ },
+ onRun() {
+ console.log('OpenHarmonyTestRunner onRun run')
+ var abilityDelegatorArguments = AbilityDelegatorRegistry.getArguments()
+ var abilityDelegator = AbilityDelegatorRegistry.getAbilityDelegator()
+
+ var testAbilityName = abilityDelegatorArguments.parameters['-p'] + '.TestAbility'
+
+ var cmd = 'aa start -d 0 -a ' + testAbilityName + ' -b ' + abilityDelegatorArguments.bundleName
+ cmd += ' ' + translateParamsToString(abilityDelegatorArguments.parameters)
+ var debug = abilityDelegatorArguments.parameters["-D"]
+ console.info('debug value : '+debug)
+ if (debug == 'true')
+ {
+ cmd += ' -D'
+ }
+ console.info('cmd : '+cmd)
+ abilityDelegator.executeShellCommand(cmd, (err, data) => {
+ console.info('executeShellCommand : err : ' + JSON.stringify(err));
+ console.info('executeShellCommand : data : ' + data.stdResult);
+ console.info('executeShellCommand : data : ' + data.exitCode);
+ })
+ }
+};
diff --git a/multimedia/image/image_js_standard/imageRaw/src/main/js/test/List.test.js b/multimedia/image/image_js_standard/imageRaw/src/main/js/test/List.test.js
new file mode 100644
index 0000000000000000000000000000000000000000..ed4fa8881a65078355bbbd7f42ea67953d810ada
--- /dev/null
+++ b/multimedia/image/image_js_standard/imageRaw/src/main/js/test/List.test.js
@@ -0,0 +1,18 @@
+/*
+ * 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 imageRaw from "./raw.test.js";
+export default function testsuite() {
+ imageRaw();
+}
diff --git a/multimedia/image/image_js_standard/imageRaw/src/main/js/test/raw.test.js b/multimedia/image/image_js_standard/imageRaw/src/main/js/test/raw.test.js
new file mode 100644
index 0000000000000000000000000000000000000000..80ae7cbcf39f0ff099951614a8e3ad67cd7f4aee
--- /dev/null
+++ b/multimedia/image/image_js_standard/imageRaw/src/main/js/test/raw.test.js
@@ -0,0 +1,914 @@
+/*
+ * Copyright (C) 2022 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 fileio from "@ohos.fileio";
+import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from "@ohos/hypium";
+import featureAbility from "@ohos.ability.featureAbility";
+export default function imageRaw() {
+ describe("imageRaw", function () {
+ const RGBA_8888 = image.PixelMapFormat.RGBA_8888;
+ let filePath;
+ let fdNumber;
+ async function getFd(fileName) {
+ let context = await featureAbility.getContext();
+ await context.getFilesDir().then((data) => {
+ filePath = data + "/" + fileName;
+ console.info("image case filePath is " + filePath);
+ });
+ await fileio
+ .open(filePath, 0o2, 0o777)
+ .then(
+ (data) => {
+ fdNumber = data;
+ console.info("image case open fd success " + fdNumber);
+ },
+ (err) => {
+ console.info("image cese open fd fail" + err);
+ }
+ )
+ .catch((err) => {
+ console.info("image case open fd err " + err);
+ });
+ }
+
+ beforeAll(async function () {
+ console.info("beforeAll case");
+ });
+
+ beforeEach(function () {
+ console.info("beforeEach case");
+ });
+
+ afterEach(async function () {
+ console.info("afterEach case");
+ });
+
+ afterAll(async function () {
+ console.info("afterAll case");
+ });
+
+ async function packingPromise(done, testNum, pixelmap, packOpts) {
+ console.info(`${testNum} packingPromise enter`);
+ try {
+ const imagePackerApi = image.createImagePacker();
+ if (imagePackerApi == undefined) {
+ console.info(`${testNum} packingPromise create image packer failed`);
+ expect(false).assertTrue();
+ done();
+ } else {
+ let packOptsFormat = `format:` + packOpts.format;
+ let packOptsQuality = `quality:` + packOpts.quality;
+ console.info(
+ `${testNum} packingPromise packOpts={` + packOptsFormat + `, ` + packOptsQuality + `}`
+ );
+ imagePackerApi
+ .packing(pixelmap, packOpts)
+ .then((data) => {
+ console.info(`${testNum} packing finished`);
+ if (data != undefined) {
+ console.info(`${testNum} packing success`);
+ var dataArr = new Uint8Array(data);
+ console.info(`${testNum} packing show begin(length:` + dataArr.length + `)`);
+ var line = 0;
+ for (var i = 0; i < dataArr.length; i++) {
+ var str = `dataArr[` + i + `]=`;
+ for (var j = 0; j < 20 && i < dataArr.length; j++, i++) {
+ str = str + "," + dataArr[i];
+ }
+ console.info(`${testNum} packing ` + str);
+ i--;
+ line++;
+ }
+ console.info(`${testNum} packing show end(line:` + line + `)`);
+ expect(true).assertTrue();
+ done();
+ } else {
+ console.info(`${testNum} packing failed`);
+ expect(false).assertTrue();
+ done();
+ }
+ })
+ .catch((error) => {
+ console.log(`${testNum} packing error: ` + error);
+ expect(false).assertTrue();
+ done();
+ });
+ }
+ } catch (error) {
+ console.info(`${testNum} packingPromise error: ` + error);
+ expect(false).assertTrue();
+ done();
+ }
+ console.info(`${testNum} packingPromise leave`);
+ }
+
+ async function createPixelMapPromise(done, testNum, picName, decodeOpts, packFunc, packOpts) {
+ let imageSourceApi;
+ try {
+ await getFd(picName);
+ imageSourceApi = image.createImageSource(fdNumber);
+ if (imageSourceApi == undefined) {
+ console.info(`${testNum} createPixelMapPromise create imagesource failed`);
+ expect(false).assertTrue();
+ done();
+ } else {
+ console.info(`${testNum} createPixelMapPromise create imagesource success`);
+ imageSourceApi
+ .createPixelMap(decodeOpts)
+ .then((pixelmap) => {
+ if (pixelmap != undefined) {
+ console.info(`${testNum} createPixelMap create pixelmap success`);
+ packFunc(done, testNum, pixelmap, packOpts);
+ } else {
+ console.info(`${testNum} createPixelMap create pixelmap failed`);
+ expect(false).assertTrue();
+ done();
+ }
+ })
+ .catch((error) => {
+ console.log(`${testNum} createPixelMap err: ` + error);
+ expect(false).assertTrue();
+ done();
+ });
+ }
+ } catch (error) {
+ console.info(`${testNum} error: ` + error);
+ expect(false).assertTrue();
+ done();
+ }
+ console.info(`${testNum} createPixelMapPromise leave`);
+ }
+
+ async function createPixelMapCallBack(done, testNum, picName, decodeOpts, packFunc, packOpts) {
+ let imageSourceApi;
+ try {
+ await getFd(picName);
+ imageSourceApi = image.createImageSource(fdNumber);
+ if (imageSourceApi == undefined) {
+ console.info(`${testNum} createPixelMapPromise create imagesource failed`);
+ expect(false).assertTrue();
+ done();
+ } else {
+ console.info(`${testNum} createPixelMapPromise create imagesource success`);
+ imageSourceApi.createPixelMap(decodeOpts, (err, pixelmap) => {
+ if (pixelmap != undefined) {
+ console.info(`${testNum} createPixelMap create pixelmap success`);
+ packFunc(done, testNum, pixelmap, packOpts);
+ } else {
+ console.info(`${testNum} createPixelMap create pixelmap failed err: ${err}`);
+ expect(false).assertTrue();
+ done();
+ }
+ });
+ }
+ } catch (error) {
+ console.info(`${testNum} error: ` + error);
+ expect(false).assertTrue();
+ done();
+ }
+ console.info(`${testNum} createPixelMapPromise leave`);
+ }
+
+ async function createPixelMapCallBackErr(done, testNum, picName, decodeOpts) {
+ let imageSourceApi;
+ try {
+ await getFd(picName);
+ imageSourceApi = image.createImageSource(fdNumber);
+ if (imageSourceApi == undefined) {
+ console.info(`${testNum} createPixelMapPromise create imagesource failed`);
+ expect(false).assertTrue();
+ done();
+ } else {
+ console.info(`${testNum} createPixelMapPromise create imagesource success`);
+ imageSourceApi.createPixelMap(decodeOpts, (err, pixelmap) => {
+ if (pixelmap == undefined) {
+ expect(true).assertTrue();
+ console.info(`${testNum} success: ` + err);
+ done();
+ } else {
+ expect(false).assertTrue();
+ done();
+ }
+ });
+ }
+ } catch (error) {
+ console.info(`${testNum} error: ` + error);
+ expect(false).assertTrue();
+ done();
+ }
+ console.info(`${testNum} createPixelMap leave`);
+ }
+ async function createPixelMapPromiseErr(done, testNum, picName, decodeOpts) {
+ let imageSourceApi;
+ try {
+ await getFd(picName);
+ imageSourceApi = image.createImageSource(fdNumber);
+ if (imageSourceApi == undefined) {
+ console.info(`${testNum} createPixelMapPromise create imagesource failed`);
+ expect(false).assertTrue();
+ done();
+ } else {
+ console.info(`${testNum} createPixelMapPromise create imagesource success`);
+ imageSourceApi
+ .createPixelMap(decodeOpts)
+ .then((pixelmap) => {
+ console.log(`${testNum} failed`);
+ expect(false).assertTrue();
+ done();
+ })
+ .catch((error) => {
+ console.log(`${testNum} createPixelMap err: ` + error);
+ expect(true).assertTrue();
+ done();
+ });
+ }
+ } catch (error) {
+ console.info(`${testNum} error: ` + error);
+ expect(false).assertTrue();
+ done();
+ }
+ console.info(`${testNum} createPixelMap leave`);
+ }
+
+ /**
+ * @tc.number : SUB_GRAPHIC_IMAGE_RAW_0100
+ * @tc.name : createPixelMap - promise-arw
+ * @tc.desc : 1.create imagesource
+ * 2.set DecodeOptions
+ * 3.create PixelMap
+ * 4.packing
+ * @tc.size : MEDIUM
+ * @tc.type : Functional
+ * @tc.level : Level 0
+ */
+ it("SUB_GRAPHIC_IMAGE_RAW_0100", 0, async function (done) {
+ let decodeOpts = {
+ sampleSize: 1,
+ editable: true,
+ desiredSize: { width: 192, height: 108 },
+ rotate: 0,
+ desiredPixelFormat: RGBA_8888,
+ index: 0,
+ };
+ let packOpts = { format: ["image/webp"], quality: 100 };
+ createPixelMapPromise(done, "SUB_GRAPHIC_IMAGE_RAW_0100", "test.arw", decodeOpts, packingPromise, packOpts);
+ });
+
+ /**
+ * @tc.number : SUB_GRAPHIC_IMAGE_RAW_0200
+ * @tc.name : createPixelMap - promise-cr2
+ * @tc.desc : 1.create imagesource
+ * 2.set DecodeOptions
+ * 3.create PixelMap
+ * 4.packing
+ * @tc.size : MEDIUM
+ * @tc.type : Functional
+ * @tc.level : Level 1
+ */
+ it("SUB_GRAPHIC_IMAGE_RAW_0200", 0, async function (done) {
+ let decodeOpts = {
+ sampleSize: 1,
+ editable: true,
+ desiredSize: { width: 160, height: 120 },
+ rotate: 0,
+ desiredPixelFormat: RGBA_8888,
+ index: 0,
+ };
+ let packOpts = { format: ["image/webp"], quality: 100 };
+ createPixelMapPromise(done, "SUB_GRAPHIC_IMAGE_RAW_0200", "test.cr2", decodeOpts, packingPromise, packOpts);
+ });
+
+ /**
+ * @tc.number : SUB_GRAPHIC_IMAGE_RAW_0300
+ * @tc.name : createPixelMap - promise-dng
+ * @tc.desc : 1.create imagesource
+ * 2.set DecodeOptions
+ * 3.create PixelMap
+ * 4.packing
+ * @tc.size : MEDIUM
+ * @tc.type : Functional
+ * @tc.level : Level 2
+ */
+ it("SUB_GRAPHIC_IMAGE_RAW_0300", 0, async function (done) {
+ let decodeOpts = {
+ sampleSize: 1,
+ editable: true,
+ desiredSize: { width: 160, height: 120 },
+ rotate: 0,
+ desiredPixelFormat: RGBA_8888,
+ index: 0,
+ };
+ let packOpts = { format: ["image/webp"], quality: 100 };
+ createPixelMapPromise(
+ done,
+ "SUB_GRAPHIC_IMAGE_RAW_0300",
+ "test_dng.dng",
+ decodeOpts,
+ packingPromise,
+ packOpts
+ );
+ });
+
+ /**
+ * @tc.number : SUB_GRAPHIC_IMAGE_RAW_0400
+ * @tc.name : createPixelMap - promise-nrw
+ * @tc.desc : 1.create imagesource
+ * 2.set DecodeOptions
+ * 3.create PixelMap
+ * 4.packing
+ * @tc.size : MEDIUM
+ * @tc.type : Functional
+ * @tc.level : Level 2
+ */
+ it("SUB_GRAPHIC_IMAGE_RAW_0400", 0, async function (done) {
+ let decodeOpts = {
+ sampleSize: 1,
+ editable: true,
+ desiredSize: { width: 160, height: 120 },
+ rotate: 0,
+ desiredPixelFormat: RGBA_8888,
+ index: 0,
+ };
+ let packOpts = { format: ["image/webp"], quality: 100 };
+ createPixelMapPromise(done, "SUB_GRAPHIC_IMAGE_RAW_0400", "test.nrw", decodeOpts, packingPromise, packOpts);
+ });
+
+ /**
+ * @tc.number : SUB_GRAPHIC_IMAGE_RAW_0500
+ * @tc.name : createPixelMap - promise-pef
+ * @tc.desc : 1.create imagesource
+ * 2.set DecodeOptions
+ * 3.create PixelMap
+ * 4.packing
+ * @tc.size : MEDIUM
+ * @tc.type : Functional
+ * @tc.level : Level 2
+ */
+ it("SUB_GRAPHIC_IMAGE_RAW_0500", 0, async function (done) {
+ let decodeOpts = {
+ sampleSize: 1,
+ editable: true,
+ desiredSize: { width: 160, height: 120 },
+ rotate: 0,
+ desiredPixelFormat: RGBA_8888,
+ index: 0,
+ };
+ let packOpts = { format: ["image/webp"], quality: 100 };
+ createPixelMapPromise(done, "SUB_GRAPHIC_IMAGE_RAW_0500", "test.pef", decodeOpts, packingPromise, packOpts);
+ });
+
+ /**
+ * @tc.number : SUB_GRAPHIC_IMAGE_RAW_0600
+ * @tc.name : createPixelMap - promise-raf
+ * @tc.desc : 1.create imagesource
+ * 2.set DecodeOptions
+ * 3.create PixelMap
+ * 4.packing
+ * @tc.size : MEDIUM
+ * @tc.type : Functional
+ * @tc.level : Level 2
+ */
+ it("SUB_GRAPHIC_IMAGE_RAW_0600", 0, async function (done) {
+ let decodeOpts = {
+ sampleSize: 1,
+ editable: true,
+ desiredSize: { width: 160, height: 120 },
+ rotate: 0,
+ desiredPixelFormat: RGBA_8888,
+ index: 0,
+ };
+ let packOpts = { format: ["image/webp"], quality: 100 };
+ createPixelMapPromise(done, "SUB_GRAPHIC_IMAGE_RAW_0600", "test.raf", decodeOpts, packingPromise, packOpts);
+ });
+
+ /**
+ * @tc.number : SUB_GRAPHIC_IMAGE_RAW_0700
+ * @tc.name : createPixelMap - promise-rw2
+ * @tc.desc : 1.create imagesource
+ * 2.set DecodeOptions
+ * 3.create PixelMap
+ * 4.packing
+ * @tc.size : MEDIUM
+ * @tc.type : Functional
+ * @tc.level : Level 2
+ */
+ it("SUB_GRAPHIC_IMAGE_RAW_0700", 0, async function (done) {
+ let decodeOpts = {
+ sampleSize: 1,
+ editable: true,
+ desiredSize: { width: 160, height: 120 },
+ rotate: 0,
+ desiredPixelFormat: RGBA_8888,
+ index: 0,
+ };
+ let packOpts = { format: ["image/webp"], quality: 100 };
+ createPixelMapPromise(done, "SUB_GRAPHIC_IMAGE_RAW_0700", "test.rw2", decodeOpts, packingPromise, packOpts);
+ });
+
+ /**
+ * @tc.number : SUB_GRAPHIC_IMAGE_RAW_0800
+ * @tc.name : createPixelMap - callback-arw
+ * @tc.desc : 1.create imagesource
+ * 2.set DecodeOptions
+ * 3.create PixelMap
+ * 4.packing
+ * @tc.size : MEDIUM
+ * @tc.type : Functional
+ * @tc.level : Level 0
+ */
+ it("SUB_GRAPHIC_IMAGE_RAW_0800", 0, async function (done) {
+ let decodeOpts = {
+ sampleSize: 1,
+ editable: true,
+ desiredSize: { width: 192, height: 108 },
+ rotate: 0,
+ desiredPixelFormat: RGBA_8888,
+ index: 0,
+ };
+ let packOpts = { format: ["image/webp"], quality: 100 };
+ createPixelMapCallBack(
+ done,
+ "SUB_GRAPHIC_IMAGE_RAW_0800",
+ "test.arw",
+ decodeOpts,
+ packingPromise,
+ packOpts
+ );
+ });
+
+ /**
+ * @tc.number : SUB_GRAPHIC_IMAGE_RAW_0900
+ * @tc.name : createPixelMap - callback-cr2
+ * @tc.desc : 1.create imagesource
+ * 2.set DecodeOptions
+ * 3.create PixelMap
+ * 4.packing
+ * @tc.size : MEDIUM
+ * @tc.type : Functional
+ * @tc.level : Level 1
+ */
+ it("SUB_GRAPHIC_IMAGE_RAW_0900", 0, async function (done) {
+ let decodeOpts = {
+ sampleSize: 1,
+ editable: true,
+ desiredSize: { width: 160, height: 120 },
+ rotate: 0,
+ desiredPixelFormat: RGBA_8888,
+ index: 0,
+ };
+ let packOpts = { format: ["image/webp"], quality: 100 };
+ createPixelMapCallBack(
+ done,
+ "SUB_GRAPHIC_IMAGE_RAW_0900",
+ "test.cr2",
+ decodeOpts,
+ packingPromise,
+ packOpts
+ );
+ });
+
+ /**
+ * @tc.number : SUB_GRAPHIC_IMAGE_RAW_1000
+ * @tc.name : createPixelMap - callback-dng
+ * @tc.desc : 1.create imagesource
+ * 2.set DecodeOptions
+ * 3.create PixelMap
+ * 4.packing
+ * @tc.size : MEDIUM
+ * @tc.type : Functional
+ * @tc.level : Level 2
+ */
+ it("SUB_GRAPHIC_IMAGE_RAW_1000", 0, async function (done) {
+ let decodeOpts = {
+ sampleSize: 1,
+ editable: true,
+ desiredSize: { width: 160, height: 120 },
+ rotate: 0,
+ desiredPixelFormat: RGBA_8888,
+ index: 0,
+ };
+ let packOpts = { format: ["image/webp"], quality: 100 };
+ createPixelMapCallBack(
+ done,
+ "SUB_GRAPHIC_IMAGE_RAW_1000",
+ "test_dng.dng",
+ decodeOpts,
+ packingPromise,
+ packOpts
+ );
+ });
+
+ /**
+ * @tc.number : SUB_GRAPHIC_IMAGE_RAW_1100
+ * @tc.name : createPixelMap - callback-nrw
+ * @tc.desc : 1.create imagesource
+ * 2.set DecodeOptions
+ * 3.create PixelMap
+ * 4.packing
+ * @tc.size : MEDIUM
+ * @tc.type : Functional
+ * @tc.level : Level 2
+ */
+ it("SUB_GRAPHIC_IMAGE_RAW_1100", 0, async function (done) {
+ let decodeOpts = {
+ sampleSize: 1,
+ editable: true,
+ desiredSize: { width: 160, height: 120 },
+ rotate: 0,
+ desiredPixelFormat: RGBA_8888,
+ index: 0,
+ };
+ let packOpts = { format: ["image/webp"], quality: 100 };
+ createPixelMapCallBack(
+ done,
+ "SUB_GRAPHIC_IMAGE_RAW_1100",
+ "test.nrw",
+ decodeOpts,
+ packingPromise,
+ packOpts
+ );
+ });
+
+ /**
+ * @tc.number : SUB_GRAPHIC_IMAGE_RAW_1200
+ * @tc.name : createPixelMap - callback-pef
+ * @tc.desc : 1.create imagesource
+ * 2.set DecodeOptions
+ * 3.create PixelMap
+ * 4.packing
+ * @tc.size : MEDIUM
+ * @tc.type : Functional
+ * @tc.level : Level 2
+ */
+ it("SUB_GRAPHIC_IMAGE_RAW_1200", 0, async function (done) {
+ let decodeOpts = {
+ sampleSize: 1,
+ editable: true,
+ desiredSize: { width: 160, height: 120 },
+ rotate: 0,
+ desiredPixelFormat: RGBA_8888,
+ index: 0,
+ };
+ let packOpts = { format: ["image/webp"], quality: 100 };
+ createPixelMapCallBack(
+ done,
+ "SUB_GRAPHIC_IMAGE_RAW_1200",
+ "test.pef",
+ decodeOpts,
+ packingPromise,
+ packOpts
+ );
+ });
+
+ /**
+ * @tc.number : SUB_GRAPHIC_IMAGE_RAW_1300
+ * @tc.name : createPixelMap - callback-raf
+ * @tc.desc : 1.create imagesource
+ * 2.set DecodeOptions
+ * 3.create PixelMap
+ * 4.packing
+ * @tc.size : MEDIUM
+ * @tc.type : Functional
+ * @tc.level : Level 2
+ */
+ it("SUB_GRAPHIC_IMAGE_RAW_1300", 0, async function (done) {
+ let decodeOpts = {
+ sampleSize: 1,
+ editable: true,
+ desiredSize: { width: 160, height: 120 },
+ rotate: 0,
+ desiredPixelFormat: RGBA_8888,
+ index: 0,
+ };
+ let packOpts = { format: ["image/webp"], quality: 100 };
+ createPixelMapCallBack(
+ done,
+ "SUB_GRAPHIC_IMAGE_RAW_1300",
+ "test.raf",
+ decodeOpts,
+ packingPromise,
+ packOpts
+ );
+ });
+
+ /**
+ * @tc.number : SUB_GRAPHIC_IMAGE_RAW_1400
+ * @tc.name : createPixelMap - callback-rw2
+ * @tc.desc : 1.create imagesource
+ * 2.set DecodeOptions
+ * 3.create PixelMap
+ * 4.packing
+ * @tc.size : MEDIUM
+ * @tc.type : Functional
+ * @tc.level : Level 2
+ */
+ it("SUB_GRAPHIC_IMAGE_RAW_1400", 0, async function (done) {
+ let decodeOpts = {
+ sampleSize: 1,
+ editable: true,
+ desiredSize: { width: 160, height: 120 },
+ rotate: 0,
+ desiredPixelFormat: RGBA_8888,
+ index: 0,
+ };
+ let packOpts = { format: ["image/webp"], quality: 100 };
+ createPixelMapCallBack(
+ done,
+ "SUB_GRAPHIC_IMAGE_RAW_1400",
+ "test.rw2",
+ decodeOpts,
+ packingPromise,
+ packOpts
+ );
+ });
+
+ /**
+ * @tc.number : SUB_GRAPHIC_IMAGE_RAW_1500
+ * @tc.name : createPixelMap - callback-arw
+ * @tc.desc : 1.create imagesource
+ * 2.set DecodeOptions
+ * 3.create PixelMap
+ * @tc.size : MEDIUM
+ * @tc.type : Functional
+ * @tc.level : Level 3
+ */
+ it("SUB_GRAPHIC_IMAGE_RAW_1500", 0, async function (done) {
+ let decodingOption = {
+ sampleSize: -1,
+ editable: true,
+ desiredSize: { width: 1, height: 2 },
+ rotate: 0,
+ desiredPixelFormat: RGBA_8888,
+ desiredRegion: { size: { height: 1, width: 2 }, x: 0, y: 0 },
+ index: 0,
+ };
+ await createPixelMapCallBackErr(done, "SUB_GRAPHIC_IMAGE_RAW_1500", "test.arw", decodingOption);
+ });
+
+ /**
+ * @tc.number : SUB_GRAPHIC_IMAGE_RAW_1600
+ * @tc.name : createPixelMap - callback-arw
+ * @tc.desc : 1.create imagesource
+ * 2.set DecodeOptions
+ * 3.create PixelMap
+ * @tc.size : MEDIUM
+ * @tc.type : Functional
+ * @tc.level : Level 3
+ */
+ it("SUB_GRAPHIC_IMAGE_RAW_1600", 0, async function (done) {
+ let decodingOption = {
+ sampleSize: 1,
+ editable: true,
+ desiredSize: { width: 1, height: 2 },
+ rotate: 0,
+ desiredPixelFormat: RGBA_8888,
+ desiredRegion: { size: { height: 1, width: 2 }, x: 0, y: 0 },
+ index: -1,
+ };
+ await createPixelMapCallBackErr(done, "SUB_GRAPHIC_IMAGE_RAW_1600", "test.arw", decodingOption);
+ });
+
+ /**
+ * @tc.number : SUB_GRAPHIC_IMAGE_RAW_1700
+ * @tc.name : createPixelMap - callback-arw
+ * @tc.desc : 1.create imagesource
+ * 2.set DecodeOptions
+ * 3.create PixelMap
+ * @tc.size : MEDIUM
+ * @tc.type : Functional
+ * @tc.level : Level 3
+ */
+ it("SUB_GRAPHIC_IMAGE_RAW_1700", 0, async function (done) {
+ let decodingOption = {
+ sampleSize: 1,
+ editable: true,
+ desiredSize: { width: 1, height: 2 },
+ rotate: 500,
+ desiredPixelFormat: RGBA_8888,
+ desiredRegion: { size: { height: 1, width: 2 }, x: 0, y: 0 },
+ index: 0,
+ };
+ await createPixelMapCallBackErr(done, "SUB_GRAPHIC_IMAGE_RAW_1700", "test.arw", decodingOption);
+ });
+
+ /**
+ * @tc.number : SUB_GRAPHIC_IMAGE_RAW_1800
+ * @tc.name : createPixelMap - callback-arw
+ * @tc.desc : 1.create imagesource
+ * 2.set DecodeOptions
+ * 3.create PixelMap
+ * @tc.size : MEDIUM
+ * @tc.type : Functional
+ * @tc.level : Level 3
+ */
+ it("SUB_GRAPHIC_IMAGE_RAW_1800", 0, async function (done) {
+ let decodingOption = {
+ sampleSize: 1,
+ editable: false,
+ desiredSize: { width: 1, height: 2 },
+ rotate: 0,
+ desiredPixelFormat: 33,
+ desiredRegion: { size: { height: 1, width: 2 }, x: 0, y: 0 },
+ index: 0,
+ };
+ await createPixelMapCallBackErr(done, "SUB_GRAPHIC_IMAGE_RAW_1800", "test.arw", decodingOption);
+ });
+
+ /**
+ * @tc.number : SUB_GRAPHIC_IMAGE_RAW_1900
+ * @tc.name : createPixelMap - callback-arw
+ * @tc.desc : 1.create imagesource
+ * 2.set DecodeOptions
+ * 3.create PixelMap
+ * @tc.size : MEDIUM
+ * @tc.type : Functional
+ * @tc.level : Level 3
+ */
+ it("SUB_GRAPHIC_IMAGE_RAW_1900", 0, async function (done) {
+ let decodingOption = {
+ sampleSize: 1,
+ editable: true,
+ desiredSize: { width: 1, height: 2 },
+ rotate: 0,
+ desiredPixelFormat: RGBA_8888,
+ desiredRegion: { size: { height: 1, width: 2 }, x: 10000, y: 0 },
+ index: 0,
+ };
+ await createPixelMapCallBackErr(done, "SUB_GRAPHIC_IMAGE_RAW_1900", "test.arw", decodingOption);
+ });
+
+ /**
+ * @tc.number : SUB_GRAPHIC_IMAGE_RAW_2000
+ * @tc.name : createPixelMap - callback-arw
+ * @tc.desc : 1.create imagesource
+ * 2.set DecodeOptions
+ * 3.create PixelMap
+ * @tc.size : MEDIUM
+ * @tc.type : Functional
+ * @tc.level : Level 3
+ */
+ it("SUB_GRAPHIC_IMAGE_RAW_2000", 0, async function (done) {
+ let decodingOption = {
+ sampleSize: 1,
+ editable: true,
+ desiredSize: { width: 1, height: 2 },
+ rotate: 0,
+ desiredPixelFormat: RGBA_8888,
+ desiredRegion: { size: { height: 1, width: 2 }, x: 0, y: 10000 },
+ index: 0,
+ };
+ await createPixelMapCallBackErr(done, "SUB_GRAPHIC_IMAGE_RAW_2000", "test.arw", decodingOption);
+ });
+
+ /**
+ * @tc.number : SUB_GRAPHIC_IMAGE_RAW_2100
+ * @tc.name : createPixelMap - promise-arw
+ * @tc.desc : 1.create imagesource
+ * 2.set DecodeOptions
+ * 3.create PixelMap
+ * @tc.size : MEDIUM
+ * @tc.type : Functional
+ * @tc.level : Level 3
+ */
+ it("SUB_GRAPHIC_IMAGE_RAW_2100", 0, async function (done) {
+ let decodingOption = {
+ sampleSize: -1,
+ editable: true,
+ desiredSize: { width: 1, height: 2 },
+ rotate: 0,
+ desiredPixelFormat: RGBA_8888,
+ desiredRegion: { size: { height: 1, width: 2 }, x: 0, y: 0 },
+ index: 0,
+ };
+ await createPixelMapPromiseErr(done, "SUB_GRAPHIC_IMAGE_RAW_2100", "test.arw", decodingOption);
+ });
+
+ /**
+ * @tc.number : SUB_GRAPHIC_IMAGE_RAW_2200
+ * @tc.name : createPixelMap - promise-arw
+ * @tc.desc : 1.create imagesource
+ * 2.set DecodeOptions
+ * 3.create PixelMap
+ * @tc.size : MEDIUM
+ * @tc.type : Functional
+ * @tc.level : Level 3
+ */
+ it("SUB_GRAPHIC_IMAGE_RAW_2200", 0, async function (done) {
+ let decodingOption = {
+ sampleSize: 1,
+ editable: true,
+ desiredSize: { width: 1, height: 2 },
+ rotate: 0,
+ desiredPixelFormat: RGBA_8888,
+ desiredRegion: { size: { height: 1, width: 2 }, x: 0, y: 0 },
+ index: -1,
+ };
+ await createPixelMapPromiseErr(done, "SUB_GRAPHIC_IMAGE_RAW_2200", "test.arw", decodingOption);
+ });
+
+ /**
+ * @tc.number : SUB_GRAPHIC_IMAGE_RAW_2300
+ * @tc.name : createPixelMap - promise-arw
+ * @tc.desc : 1.create imagesource
+ * 2.set DecodeOptions
+ * 3.create PixelMap
+ * @tc.size : MEDIUM
+ * @tc.type : Functional
+ * @tc.level : Level 3
+ */
+ it("SUB_GRAPHIC_IMAGE_RAW_2300", 0, async function (done) {
+ let decodingOption = {
+ sampleSize: 1,
+ editable: true,
+ desiredSize: { width: 1, height: 2 },
+ rotate: 500,
+ desiredPixelFormat: RGBA_8888,
+ desiredRegion: { size: { height: 1, width: 2 }, x: 0, y: 0 },
+ index: 0,
+ };
+ await createPixelMapPromiseErr(done, "SUB_GRAPHIC_IMAGE_RAW_2300", "test.arw", decodingOption);
+ });
+
+ /**
+ * @tc.number : SUB_GRAPHIC_IMAGE_RAW_2400
+ * @tc.name : createPixelMap - promise-arw
+ * @tc.desc : 1.create imagesource
+ * 2.set DecodeOptions
+ * 3.create PixelMap
+ * @tc.size : MEDIUM
+ * @tc.type : Functional
+ * @tc.level : Level 3
+ */
+ it("SUB_GRAPHIC_IMAGE_RAW_2400", 0, async function (done) {
+ let decodingOption = {
+ sampleSize: 1,
+ editable: false,
+ desiredSize: { width: 1, height: 2 },
+ rotate: 0,
+ desiredPixelFormat: 33,
+ desiredRegion: { size: { height: 1, width: 2 }, x: 0, y: 0 },
+ index: 0,
+ };
+ await createPixelMapPromiseErr(done, "SUB_GRAPHIC_IMAGE_RAW_2400", "test.arw", decodingOption);
+ });
+
+ /**
+ * @tc.number : SUB_GRAPHIC_IMAGE_RAW_2500
+ * @tc.name : createPixelMap - promise-arw
+ * @tc.desc : 1.create imagesource
+ * 2.set DecodeOptions
+ * 3.create PixelMap
+ * @tc.size : MEDIUM
+ * @tc.type : Functional
+ * @tc.level : Level 3
+ */
+ it("SUB_GRAPHIC_IMAGE_RAW_2500", 0, async function (done) {
+ let decodingOption = {
+ sampleSize: 1,
+ editable: true,
+ desiredSize: { width: 1, height: 2 },
+ rotate: 0,
+ desiredPixelFormat: RGBA_8888,
+ desiredRegion: { size: { height: 1, width: 2 }, x: 10000, y: 0 },
+ index: 0,
+ };
+ await createPixelMapPromiseErr(done, "SUB_GRAPHIC_IMAGE_RAW_2500", "test.arw", decodingOption);
+ });
+
+ /**
+ * @tc.number : SUB_GRAPHIC_IMAGE_RAW_2600
+ * @tc.name : createPixelMap - promise-arw
+ * @tc.desc : 1.create imagesource
+ * 2.set DecodeOptions
+ * 3.create PixelMap
+ * @tc.size : MEDIUM
+ * @tc.type : Functional
+ * @tc.level : Level 3
+ */
+ it("SUB_GRAPHIC_IMAGE_RAW_2600", 0, async function (done) {
+ let decodingOption = {
+ sampleSize: 1,
+ editable: true,
+ desiredSize: { width: 1, height: 2 },
+ rotate: 0,
+ desiredPixelFormat: RGBA_8888,
+ desiredRegion: { size: { height: 1, width: 2 }, x: 0, y: 10000 },
+ index: 0,
+ };
+ await createPixelMapPromiseErr(done, "SUB_GRAPHIC_IMAGE_RAW_2600", "test.arw", decodingOption);
+ });
+ });
+}
diff --git a/multimedia/image/image_js_standard/imageRaw/src/main/resources/base/element/string.json b/multimedia/image/image_js_standard/imageRaw/src/main/resources/base/element/string.json
new file mode 100644
index 0000000000000000000000000000000000000000..1d7bac3ea9bb0e76919191be613c4c14d712914e
--- /dev/null
+++ b/multimedia/image/image_js_standard/imageRaw/src/main/resources/base/element/string.json
@@ -0,0 +1,28 @@
+{
+ "string": [
+ {
+ "name": "entry_MainAbility",
+ "value": "ImageJSTestMain"
+ },
+ {
+ "name": "mainability_description",
+ "value": "ImageJSTestMain Ability"
+ },
+ {
+ "name": "MainAbility_desc",
+ "value": "description"
+ },
+ {
+ "name": "MainAbility_label",
+ "value": "label"
+ },
+ {
+ "name": "TestAbility_desc",
+ "value": "description"
+ },
+ {
+ "name": "TestAbility_label",
+ "value": "label"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/multimedia/image/image_js_standard/imageRaw/src/main/resources/base/media/icon.png b/multimedia/image/image_js_standard/imageRaw/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/imageRaw/src/main/resources/base/media/icon.png differ