Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Xts Acts
提交
c6f40d8e
X
Xts Acts
项目概览
OpenHarmony
/
Xts Acts
1 年多 前同步成功
通知
9
Star
22
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
X
Xts Acts
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
未验证
提交
c6f40d8e
编写于
4月 12, 2023
作者:
O
openharmony_ci
提交者:
Gitee
4月 12, 2023
浏览文件
操作
浏览文件
下载
差异文件
!8428 修改validator结果替换bug
Merge pull request !8428 from 田文哲/OpenHarmony-3.2-Release
上级
b354cd85
ea3d6218
变更
23
隐藏空白更改
内联
并排
Showing
23 changed file
with
352 addition
and
353 deletion
+352
-353
validator/acts_validator/src/main/ets/pages/ArkUI/ArkUI_index.ets
...r/acts_validator/src/main/ets/pages/ArkUI/ArkUI_index.ets
+3
-3
validator/acts_validator/src/main/ets/pages/ArkUI/TouchMoveTest.ets
...acts_validator/src/main/ets/pages/ArkUI/TouchMoveTest.ets
+2
-2
validator/acts_validator/src/main/ets/pages/Audio/Audio_index.ets
...r/acts_validator/src/main/ets/pages/Audio/Audio_index.ets
+3
-3
validator/acts_validator/src/main/ets/pages/Camera/Camera_index.ets
...acts_validator/src/main/ets/pages/Camera/Camera_index.ets
+3
-3
validator/acts_validator/src/main/ets/pages/Experience/Experience_index.ets
...idator/src/main/ets/pages/Experience/Experience_index.ets
+3
-4
validator/acts_validator/src/main/ets/pages/Player/Player_index.ets
...acts_validator/src/main/ets/pages/Player/Player_index.ets
+3
-3
validator/acts_validator/src/main/ets/pages/common/AudioContainer.ets
...ts_validator/src/main/ets/pages/common/AudioContainer.ets
+147
-147
validator/acts_validator/src/main/ets/pages/common/CameraFlashContainer.ets
...idator/src/main/ets/pages/common/CameraFlashContainer.ets
+1
-1
validator/acts_validator/src/main/ets/pages/common/CameraOrientationContainer.ets
.../src/main/ets/pages/common/CameraOrientationContainer.ets
+162
-162
validator/acts_validator/src/main/ets/pages/common/CameraPhotoContainer.ets
...idator/src/main/ets/pages/common/CameraPhotoContainer.ets
+1
-1
validator/acts_validator/src/main/ets/pages/common/CameraPreviewFormatContainer.ets
...rc/main/ets/pages/common/CameraPreviewFormatContainer.ets
+1
-1
validator/acts_validator/src/main/ets/pages/common/CameraVideoContainer.ets
...idator/src/main/ets/pages/common/CameraVideoContainer.ets
+1
-1
validator/acts_validator/src/main/ets/pages/common/CanvasCustomContainer1.ets
...ator/src/main/ets/pages/common/CanvasCustomContainer1.ets
+1
-1
validator/acts_validator/src/main/ets/pages/common/CanvasCustomContainer2.ets
...ator/src/main/ets/pages/common/CanvasCustomContainer2.ets
+1
-1
validator/acts_validator/src/main/ets/pages/common/CustomContainer.ets
...s_validator/src/main/ets/pages/common/CustomContainer.ets
+1
-1
validator/acts_validator/src/main/ets/pages/common/CustomContainer2.ets
..._validator/src/main/ets/pages/common/CustomContainer2.ets
+1
-1
validator/acts_validator/src/main/ets/pages/common/CustomContainer3.ets
..._validator/src/main/ets/pages/common/CustomContainer3.ets
+1
-1
validator/acts_validator/src/main/ets/pages/common/CustomContainer4.ets
..._validator/src/main/ets/pages/common/CustomContainer4.ets
+1
-1
validator/acts_validator/src/main/ets/pages/common/CustomContainer5.ets
..._validator/src/main/ets/pages/common/CustomContainer5.ets
+1
-1
validator/acts_validator/src/main/ets/pages/common/ExperienceCustomContainer.ets
...r/src/main/ets/pages/common/ExperienceCustomContainer.ets
+1
-1
validator/acts_validator/src/main/ets/pages/common/StartExperienceCustomContainer.ets
.../main/ets/pages/common/StartExperienceCustomContainer.ets
+1
-1
validator/acts_validator/src/main/ets/pages/common/TimeExperienceCustomContainer.ets
...c/main/ets/pages/common/TimeExperienceCustomContainer.ets
+1
-1
validator/acts_validator/src/main/ets/pages/index.ets
validator/acts_validator/src/main/ets/pages/index.ets
+12
-12
未找到文件。
validator/acts_validator/src/main/ets/pages/ArkUI/ArkUI_index.ets
浏览文件 @
c6f40d8e
...
...
@@ -116,7 +116,7 @@ struct IndexPage {
let number = WriteTitle.length + 11;
let Index = ColorBack.indexOf(WriteTitle);
if (this.result === 'true'){
if (this.result === 'true
'){
this.ColorObject[this.current] = '#ff008000';
let Log = (titles+';'+'#ff008000'+';');
let key = ColorBack.substring(Index,Index+number);
...
...
@@ -282,12 +282,12 @@ struct IndexPage {
FailIndex = report.indexOf('false',FailIndex + 1);
}
let failNum = (FailNum).toString();
let PassIndex = report.indexOf('true');
let PassIndex = report.indexOf('true
');
let PassNum = 0;
while (PassIndex != -1) {
console.log(PassIndex);
PassNum++;
PassIndex = report.indexOf('true',PassIndex + 1);
PassIndex = report.indexOf('true
',PassIndex + 1);
}
let TestNum = FailNum + PassNum;
let testNum = (TestNum).toString();
...
...
validator/acts_validator/src/main/ets/pages/ArkUI/TouchMoveTest.ets
浏览文件 @
c6f40d8e
...
...
@@ -50,7 +50,7 @@ struct CustomContainer1 {
.onClick(()=>{
router.back({
url:this.Url,
params: {result : 'true', title : this.name,
params: {result : 'true
', title : this.name,
}
})
this.getScreen(isFullScreen);
...
...
@@ -126,7 +126,7 @@ struct CustomContainer1 {
};
let name = this.name;
let displayName = `${info.prefix}${name}${info.suffix}`;
let dirPath = path + '/' + displayName;
let dirPath = path + '/
screenshot' + '/
' + displayName;
let imagePackerApi = image.createImagePacker();
let arrayBuffer = await imagePackerApi.packing(data, packOpts);
let fd = fileio.openSync(dirPath,0o102,0o666);
...
...
validator/acts_validator/src/main/ets/pages/Audio/Audio_index.ets
浏览文件 @
c6f40d8e
...
...
@@ -99,7 +99,7 @@ struct IndexPage {
let number = WriteTitle.length + 11;
let Index = ColorBack.indexOf(WriteTitle);
if (this.result === 'true'){
if (this.result === 'true
'){
this.ColorObject[this.current] = '#ff008000';
let Log = (titles+';'+'#ff008000'+';');
let key = ColorBack.substring(Index,Index+number);
...
...
@@ -265,12 +265,12 @@ struct IndexPage {
FailIndex = report.indexOf('false',FailIndex + 1);
}
let failNum = (FailNum).toString();
let PassIndex = report.indexOf('true');
let PassIndex = report.indexOf('true
');
let PassNum = 0;
while (PassIndex != -1) {
console.log(PassIndex);
PassNum++;
PassIndex = report.indexOf('true',PassIndex + 1);
PassIndex = report.indexOf('true
',PassIndex + 1);
}
let TestNum = FailNum + PassNum;
let testNum = (TestNum).toString();
...
...
validator/acts_validator/src/main/ets/pages/Camera/Camera_index.ets
浏览文件 @
c6f40d8e
...
...
@@ -100,7 +100,7 @@ struct IndexPage {
let number = WriteTitle.length + 11;
let Index = ColorBack.indexOf(WriteTitle);
if (this.result === 'true'){
if (this.result === 'true
'){
this.ColorObject[this.current] = '#ff008000';
let Log = (titles+';'+'#ff008000'+';');
let key = ColorBack.substring(Index,Index+number);
...
...
@@ -266,12 +266,12 @@ struct IndexPage {
FailIndex = report.indexOf('false',FailIndex + 1);
}
let failNum = (FailNum).toString();
let PassIndex = report.indexOf('true');
let PassIndex = report.indexOf('true
');
let PassNum = 0;
while (PassIndex != -1) {
console.log(PassIndex);
PassNum++;
PassIndex = report.indexOf('true',PassIndex + 1);
PassIndex = report.indexOf('true
',PassIndex + 1);
}
let TestNum = FailNum + PassNum;
let testNum = (TestNum).toString();
...
...
validator/acts_validator/src/main/ets/pages/Experience/Experience_index.ets
浏览文件 @
c6f40d8e
...
...
@@ -113,7 +113,7 @@ struct IndexPage {
let number = WriteTitle.length + 11;
let Index = ColorBack.indexOf(WriteTitle);
if (this.result === 'true'){
if (this.result === 'true
'){
this.ColorObject[this.current] = '#ff008000';
let Log = (titles+';'+'#ff008000'+';');
let key = ColorBack.substring(Index,Index+number);
...
...
@@ -255,7 +255,6 @@ struct IndexPage {
ReadTextParseXml(){
let ReportPath = path1 + '/ExperienceReport.txt';
let dir = fileio.opendirSync(path1);
console.info("ssssss"+dir);
while (dir) {
let OP = fileio.openSync(ReportPath, 0o100 | 0o2002, 0o664);
let buf = new ArrayBuffer(40960);
...
...
@@ -281,12 +280,12 @@ struct IndexPage {
FailIndex = report.indexOf('false',FailIndex + 1);
}
let failNum = (FailNum).toString();
let PassIndex = report.indexOf('true');
let PassIndex = report.indexOf('true
');
let PassNum = 0;
while (PassIndex != -1) {
console.log(PassIndex);
PassNum++;
PassIndex = report.indexOf('true',PassIndex + 1);
PassIndex = report.indexOf('true
',PassIndex + 1);
}
let TestNum = FailNum + PassNum;
let testNum = (TestNum).toString();
...
...
validator/acts_validator/src/main/ets/pages/Player/Player_index.ets
浏览文件 @
c6f40d8e
...
...
@@ -99,7 +99,7 @@ struct IndexPage {
let number = WriteTitle.length + 11;
let Index = ColorBack.indexOf(WriteTitle);
if (this.result === 'true') {
if (this.result === 'true
') {
this.ColorObject[this.current] = '#ff008000';
let Log = (titles + ';' + '#ff008000' + ';');
let key = ColorBack.substring(Index, Index + number);
...
...
@@ -285,12 +285,12 @@ struct IndexPage {
FailIndex = report.indexOf('false', FailIndex + 1);
}
let failNum = (FailNum).toString();
let PassIndex = report.indexOf('true');
let PassIndex = report.indexOf('true
');
let PassNum = 0;
while (PassIndex != -1) {
console.log(PassIndex);
PassNum++;
PassIndex = report.indexOf('true', PassIndex + 1);
PassIndex = report.indexOf('true
', PassIndex + 1);
}
let TestNum = FailNum + PassNum;
let testNum = (TestNum).toString();
...
...
validator/acts_validator/src/main/ets/pages/common/AudioContainer.ets
浏览文件 @
c6f40d8e
/*
* 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 prompt from '@ohos.prompt';
import fileio from '@ohos.fileio';
import router from '@ohos.router';
import screenshot from '@ohos.screenshot';
import image from '@ohos.multimedia.image';
import Logger from '../model/Logger';
import mediaLibrary from '@ohos.multimedia.mediaLibrary';
let path = globalThis.dir;
const TAG = '[Screenshot]';
@Component
export struct CustomContainer {
@Link name : string;
title : string = '';
StepTips: string = '';
Url : string = '';
@Link Vue : boolean;
@Builder
PassBtn(text: Resource, isFullScreen: boolean) {
if(this.Vue == false){
Button({stateEffect:this.Vue}) {
Image($r('app.media.ic_public_pass')).width('20vp').height('20vp')
}.width('30%').height('30vp').backgroundColor(Color.Grey).opacity(0.4)
.onClick(()=>{
})
}
else{
Button({stateEffect:this.Vue}) {
Image($r('app.media.ic_public_pass')).width('20vp').height('20vp')
}.width('30%').height('30vp').backgroundColor(Color.Grey)
.onClick(()=>{
router.back({
url:this.Url,
params: {result : 'true
', title : this.name,
}
})
this.getScreen(isFullScreen);
prompt.showToast({
message: '通过', duration: 1000
});
})
}
}
@Builder
FailBtn(text: Resource, isFullScreen: boolean) {
Button(){
Image($r('app.media.ic_public_fail')).width('20vp').height('20vp')
}.width('30%').height('30vp').backgroundColor(Color.Grey)
.onClick(()=>{
router.back({
url:this.Url,
params: {result : 'false',title : this.name,
}
})
this.getScreen(isFullScreen);
prompt.showToast({
message: '失败', duration: 1000
});
})
}
build() {
Column() {
Row() {
this.PassBtn($r('app.string.btn_fullscreen'), true);
Button(){
Image($r('app.media.ic_public_help')).width('20vp').height('20vp')
}.width('30%').height('30vp').backgroundColor(Color.Grey)
.onClick(() =>{
AlertDialog.show({
title:'操作提示',
message: this.StepTips,
confirm:{
value:'OK',
action:()=>{
}
}
})
})
this.FailBtn($r('app.string.btn_fullscreen'), true);
}.width('100%').justifyContent(FlexAlign.SpaceEvenly).backgroundColor(Color.Black)
}.height('98%').width('100%')
}
async savePicture(data: image.PixelMap, context: any) {
Logger.info(TAG, `savePicture`);
let packOpts: image.PackingOption = {
format: "image/jpeg", quality: 100
};
let info = {
prefix: 'IMG_', suffix: '.jpg', directory: mediaLibrary.DirectoryType.DIR_IMAGE
};
let name = this.name;
let displayName = `${info.prefix}${name}${info.suffix}`;
let dirPath = path + '/screenshot' + '/' + displayName;
let imagePackerApi = image.createImagePacker();
let arrayBuffer = await imagePackerApi.packing(data, packOpts);
let fd = fileio.openSync(dirPath,0o102,0o666);
imagePackerApi.release();
try {
await fileio.write(fd, arrayBuffer);
} catch (err) {
Logger.error(`write failed, code is ${err.code}, message is ${err.message}`);
}
await fileio.close(fd);
Logger.info(TAG, `write done`);
}
getScreen = (isFullScreen: boolean) => {
let screenshotOptions: screenshot.ScreenshotOptions = {
screenRect: { left: 0, top: 0, width: 400, height: 400 },
imageSize: { width: 400, height: 400 },
rotation: 0,
displayId: 0
};
if (isFullScreen) {
screenshotOptions = {
rotation: 0
}
}
try {
screenshot.save(screenshotOptions, (err, data: image.PixelMap) => {
if (err) {
Logger.info(TAG, `Failed to save the screenshot. Error:${JSON.stringify(err)}`);
}
Logger.info(TAG, 'save callback');
this.savePicture(data, getContext(this) as any);
})
} catch (err) {
Logger.error(`save failed, code is ${err.code}, message is ${err.message}`);
}
}
}
/*
* 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 prompt from '@ohos.prompt';
import fileio from '@ohos.fileio';
import router from '@ohos.router';
import screenshot from '@ohos.screenshot';
import image from '@ohos.multimedia.image';
import Logger from '../model/Logger';
import mediaLibrary from '@ohos.multimedia.mediaLibrary';
let path = globalThis.dir;
const TAG = '[Screenshot]';
@Component
export struct CustomContainer {
@Link name : string;
title : string = '';
StepTips: string = '';
Url : string = '';
@Link Vue : boolean;
@Builder
PassBtn(text: Resource, isFullScreen: boolean) {
if(this.Vue == false){
Button({stateEffect:this.Vue}) {
Image($r('app.media.ic_public_pass')).width('20vp').height('20vp')
}.width('30%').height('30vp').backgroundColor(Color.Grey).opacity(0.4)
.onClick(()=>{
})
}
else{
Button({stateEffect:this.Vue}) {
Image($r('app.media.ic_public_pass')).width('20vp').height('20vp')
}.width('30%').height('30vp').backgroundColor(Color.Grey)
.onClick(()=>{
router.back({
url:this.Url,
params: {result : 'true
', title : this.name,
}
})
this.getScreen(isFullScreen);
prompt.showToast({
message: '通过', duration: 1000
});
})
}
}
@Builder
FailBtn(text: Resource, isFullScreen: boolean) {
Button(){
Image($r('app.media.ic_public_fail')).width('20vp').height('20vp')
}.width('30%').height('30vp').backgroundColor(Color.Grey)
.onClick(()=>{
router.back({
url:this.Url,
params: {result : 'false',title : this.name,
}
})
this.getScreen(isFullScreen);
prompt.showToast({
message: '失败', duration: 1000
});
})
}
build() {
Column() {
Row() {
this.PassBtn($r('app.string.btn_fullscreen'), true);
Button(){
Image($r('app.media.ic_public_help')).width('20vp').height('20vp')
}.width('30%').height('30vp').backgroundColor(Color.Grey)
.onClick(() =>{
AlertDialog.show({
title:'操作提示',
message: this.StepTips,
confirm:{
value:'OK',
action:()=>{
}
}
})
})
this.FailBtn($r('app.string.btn_fullscreen'), true);
}.width('100%').justifyContent(FlexAlign.SpaceEvenly).backgroundColor(Color.Black)
}.height('98%').width('100%')
}
async savePicture(data: image.PixelMap, context: any) {
Logger.info(TAG, `savePicture`);
let packOpts: image.PackingOption = {
format: "image/jpeg", quality: 100
};
let info = {
prefix: 'IMG_', suffix: '.jpg', directory: mediaLibrary.DirectoryType.DIR_IMAGE
};
let name = this.name;
let displayName = `${info.prefix}${name}${info.suffix}`;
let dirPath = path + '/screenshot' + '/' + displayName;
let imagePackerApi = image.createImagePacker();
let arrayBuffer = await imagePackerApi.packing(data, packOpts);
let fd = fileio.openSync(dirPath,0o102,0o666);
imagePackerApi.release();
try {
await fileio.write(fd, arrayBuffer);
} catch (err) {
Logger.error(`write failed, code is ${err.code}, message is ${err.message}`);
}
await fileio.close(fd);
Logger.info(TAG, `write done`);
}
getScreen = (isFullScreen: boolean) => {
let screenshotOptions: screenshot.ScreenshotOptions = {
screenRect: { left: 0, top: 0, width: 400, height: 400 },
imageSize: { width: 400, height: 400 },
rotation: 0,
displayId: 0
};
if (isFullScreen) {
screenshotOptions = {
rotation: 0
}
}
try {
screenshot.save(screenshotOptions, (err, data: image.PixelMap) => {
if (err) {
Logger.info(TAG, `Failed to save the screenshot. Error:${JSON.stringify(err)}`);
}
Logger.info(TAG, 'save callback');
this.savePicture(data, getContext(this) as any);
})
} catch (err) {
Logger.error(`save failed, code is ${err.code}, message is ${err.message}`);
}
}
}
validator/acts_validator/src/main/ets/pages/common/CameraFlashContainer.ets
浏览文件 @
c6f40d8e
...
...
@@ -55,7 +55,7 @@ export struct CustomContainer {
.onClick(() => {
router.back({
url: this.Url,
params: { result: 'true', title: this.name,
params: { result: 'true
', title: this.name,
}
})
this.getScreen(isFullScreen);
...
...
validator/acts_validator/src/main/ets/pages/common/CameraOrientationContainer.ets
浏览文件 @
c6f40d8e
/*
* 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 fileio from '@ohos.fileio';
import prompt from '@ohos.prompt';
import router from '@ohos.router';
import screenshot from '@ohos.screenshot';
import image from '@ohos.multimedia.image';
import Logger from '../model/Logger';
import mediaLibrary from '@ohos.multimedia.mediaLibrary';
let path = globalThis.dir;
const TAG = '[Screenshot]';
@Component
export struct CustomContainer {
@Link FillColor: string;
@Link name: string;
@Link Vue : boolean;
@Link isEnabled: boolean;
Url : string = '';
title : string = '';
StepTips: string = '';
@Link testingFrequency: number
@Link clickFrequency: number
@Builder
PassBtn(text: Resource, isFullScreen: boolean) {
if(this.Vue == false){
Button({stateEffect:this.Vue}) {
Image($r('app.media.ic_public_pass')).width('20vp').height('20vp')
}.width('30%').height('30vp').backgroundColor(Color.Grey).opacity(0.4)
.onClick(()=>{
})
}
else{
Button({stateEffect:this.Vue}) {
Image($r('app.media.ic_public_pass')).width('20vp').height('20vp')
}.width('30%').height('30vp').backgroundColor(Color.Grey)
.onClick(()=>{
this.isEnabled = true
this.Vue = false
this.clickFrequency++
Logger.info(`TAG`, `clickFrequency: ${this.clickFrequency}`)
Logger.info(`TAG`, `testingFrequency: ${this.testingFrequency}`)
if (this.clickFrequency === this.testingFrequency){
router.back({
url:this.Url,
params: {result : 'true
', title : this.name,
}
})
}
this.getScreen(isFullScreen);
prompt.showToast({
message: '通过', duration: 1000
});
})
}
}
@Builder
FailBtn(text: Resource, isFullScreen: boolean) {
Button(){
Image($r('app.media.ic_public_fail')).width('20vp').height('20vp')
}.width('30%').height('30vp').backgroundColor(Color.Grey)
.onClick(()=>{
router.back({
url:this.Url,
params: {result : 'false',title : this.name,
}
})
this.getScreen(isFullScreen);
prompt.showToast({
message: '失败', duration: 1000
});
})
}
build() {
Column() {
Flex({
justifyContent: FlexAlign.SpaceEvenly, alignItems: ItemAlign.Center
}){
this.PassBtn($r('app.string.btn_fullscreen'), true);
Button(){
Image($r('app.media.ic_public_help')).width('20vp').height('20vp')
}.width('30%').height('30vp').backgroundColor(Color.Grey)
.onClick(() =>{
AlertDialog.show(
{
title:'操作提示',
message: this.StepTips,
confirm:{
value:'OK',
action:()=>{
}
}
}
)
})
this.FailBtn($r('app.string.btn_fullscreen'), true);
}.height('98%').width('100%').backgroundColor(Color.Black)
}.height('98%').width('100%')
}
async savePicture(data: image.PixelMap, context: any) {
Logger.info(TAG, `savePicture`);
let packOpts: image.PackingOption = {
format: "image/jpeg", quality: 100
};
let info = {
prefix: 'IMG_', suffix: '.jpg', directory: mediaLibrary.DirectoryType.DIR_IMAGE
};
let name = this.name;
let displayName = `${info.prefix}${name}${info.suffix}`;
let dirPath = path + '/screenshot' + '/' + displayName;
let imagePackerApi = image.createImagePacker();
let arrayBuffer = await imagePackerApi.packing(data, packOpts);
let fd = fileio.openSync(dirPath,0o102,0o666);
imagePackerApi.release();
try {
await fileio.write(fd, arrayBuffer);
} catch (err) {
Logger.error(`write failed, code is ${err.code}, message is ${err.message}`);
}
await fileio.close(fd);
Logger.info(TAG, `write done`);
}
getScreen = (isFullScreen: boolean) => {
let screenshotOptions: screenshot.ScreenshotOptions = {
screenRect: { left: 0, top: 0, width: 400, height: 400 },
imageSize: { width: 400, height: 400 },
rotation: 0,
displayId: 0
};
if (isFullScreen) {
screenshotOptions = {
rotation: 0
}
}
try {
screenshot.save(screenshotOptions, (err, data: image.PixelMap) => {
if (err) {
Logger.info(TAG, `Failed to save the screenshot. Error:${JSON.stringify(err)}`);
}
Logger.info(TAG, 'save callback');
this.savePicture(data, getContext(this) as any);
})
} catch (err) {
Logger.error(`save failed, code is ${err.code}, message is ${err.message}`);
}
}
}
/*
* 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 fileio from '@ohos.fileio';
import prompt from '@ohos.prompt';
import router from '@ohos.router';
import screenshot from '@ohos.screenshot';
import image from '@ohos.multimedia.image';
import Logger from '../model/Logger';
import mediaLibrary from '@ohos.multimedia.mediaLibrary';
let path = globalThis.dir;
const TAG = '[Screenshot]';
@Component
export struct CustomContainer {
@Link FillColor: string;
@Link name: string;
@Link Vue : boolean;
@Link isEnabled: boolean;
Url : string = '';
title : string = '';
StepTips: string = '';
@Link testingFrequency: number
@Link clickFrequency: number
@Builder
PassBtn(text: Resource, isFullScreen: boolean) {
if(this.Vue == false){
Button({stateEffect:this.Vue}) {
Image($r('app.media.ic_public_pass')).width('20vp').height('20vp')
}.width('30%').height('30vp').backgroundColor(Color.Grey).opacity(0.4)
.onClick(()=>{
})
}
else{
Button({stateEffect:this.Vue}) {
Image($r('app.media.ic_public_pass')).width('20vp').height('20vp')
}.width('30%').height('30vp').backgroundColor(Color.Grey)
.onClick(()=>{
this.isEnabled = true
this.Vue = false
this.clickFrequency++
Logger.info(`TAG`, `clickFrequency: ${this.clickFrequency}`)
Logger.info(`TAG`, `testingFrequency: ${this.testingFrequency}`)
if (this.clickFrequency === this.testingFrequency){
router.back({
url:this.Url,
params: {result : 'true
', title : this.name,
}
})
}
this.getScreen(isFullScreen);
prompt.showToast({
message: '通过', duration: 1000
});
})
}
}
@Builder
FailBtn(text: Resource, isFullScreen: boolean) {
Button(){
Image($r('app.media.ic_public_fail')).width('20vp').height('20vp')
}.width('30%').height('30vp').backgroundColor(Color.Grey)
.onClick(()=>{
router.back({
url:this.Url,
params: {result : 'false',title : this.name,
}
})
this.getScreen(isFullScreen);
prompt.showToast({
message: '失败', duration: 1000
});
})
}
build() {
Column() {
Flex({
justifyContent: FlexAlign.SpaceEvenly, alignItems: ItemAlign.Center
}){
this.PassBtn($r('app.string.btn_fullscreen'), true);
Button(){
Image($r('app.media.ic_public_help')).width('20vp').height('20vp')
}.width('30%').height('30vp').backgroundColor(Color.Grey)
.onClick(() =>{
AlertDialog.show(
{
title:'操作提示',
message: this.StepTips,
confirm:{
value:'OK',
action:()=>{
}
}
}
)
})
this.FailBtn($r('app.string.btn_fullscreen'), true);
}.height('98%').width('100%').backgroundColor(Color.Black)
}.height('98%').width('100%')
}
async savePicture(data: image.PixelMap, context: any) {
Logger.info(TAG, `savePicture`);
let packOpts: image.PackingOption = {
format: "image/jpeg", quality: 100
};
let info = {
prefix: 'IMG_', suffix: '.jpg', directory: mediaLibrary.DirectoryType.DIR_IMAGE
};
let name = this.name;
let displayName = `${info.prefix}${name}${info.suffix}`;
let dirPath = path + '/screenshot' + '/' + displayName;
let imagePackerApi = image.createImagePacker();
let arrayBuffer = await imagePackerApi.packing(data, packOpts);
let fd = fileio.openSync(dirPath,0o102,0o666);
imagePackerApi.release();
try {
await fileio.write(fd, arrayBuffer);
} catch (err) {
Logger.error(`write failed, code is ${err.code}, message is ${err.message}`);
}
await fileio.close(fd);
Logger.info(TAG, `write done`);
}
getScreen = (isFullScreen: boolean) => {
let screenshotOptions: screenshot.ScreenshotOptions = {
screenRect: { left: 0, top: 0, width: 400, height: 400 },
imageSize: { width: 400, height: 400 },
rotation: 0,
displayId: 0
};
if (isFullScreen) {
screenshotOptions = {
rotation: 0
}
}
try {
screenshot.save(screenshotOptions, (err, data: image.PixelMap) => {
if (err) {
Logger.info(TAG, `Failed to save the screenshot. Error:${JSON.stringify(err)}`);
}
Logger.info(TAG, 'save callback');
this.savePicture(data, getContext(this) as any);
})
} catch (err) {
Logger.error(`save failed, code is ${err.code}, message is ${err.message}`);
}
}
}
validator/acts_validator/src/main/ets/pages/common/CameraPhotoContainer.ets
浏览文件 @
c6f40d8e
...
...
@@ -48,7 +48,7 @@ export struct CustomContainer {
.onClick(()=>{
router.back({
url:this.Url,
params: {result : 'true', title : this.name,
params: {result : 'true
', title : this.name,
}
})
this.getScreen(isFullScreen);
...
...
validator/acts_validator/src/main/ets/pages/common/CameraPreviewFormatContainer.ets
浏览文件 @
c6f40d8e
...
...
@@ -48,7 +48,7 @@ export struct CustomContainer {
.onClick(()=>{
router.back({
url:this.Url,
params: {result : 'true', title : this.name,
params: {result : 'true
', title : this.name,
}
})
this.getScreen(isFullScreen);
...
...
validator/acts_validator/src/main/ets/pages/common/CameraVideoContainer.ets
浏览文件 @
c6f40d8e
...
...
@@ -48,7 +48,7 @@ export struct CustomContainer {
.onClick(()=>{
router.back({
url:this.Url,
params: {result : 'true', title : this.name,
params: {result : 'true
', title : this.name,
}
})
this.getScreen(isFullScreen);
...
...
validator/acts_validator/src/main/ets/pages/common/CanvasCustomContainer1.ets
浏览文件 @
c6f40d8e
...
...
@@ -50,7 +50,7 @@ export struct CustomContainer {
.onClick(()=>{
router.back({
url:this.Url,
params: {result : 'true', title : this.name,
params: {result : 'true
', title : this.name,
}
})
this.getScreen(isFullScreen);
...
...
validator/acts_validator/src/main/ets/pages/common/CanvasCustomContainer2.ets
浏览文件 @
c6f40d8e
...
...
@@ -52,7 +52,7 @@ export struct CustomContainer {
.onClick(()=>{
router.back({
url:this.Url,
params: {result : 'true', title : this.name,
params: {result : 'true
', title : this.name,
}
})
this.getScreen(isFullScreen);
...
...
validator/acts_validator/src/main/ets/pages/common/CustomContainer.ets
浏览文件 @
c6f40d8e
...
...
@@ -48,7 +48,7 @@ export struct CustomContainer {
.onClick(()=>{
router.back({
url:this.Url,
params: {result : 'true', title : this.name,
params: {result : 'true
', title : this.name,
}
})
this.getScreen(isFullScreen);
...
...
validator/acts_validator/src/main/ets/pages/common/CustomContainer2.ets
浏览文件 @
c6f40d8e
...
...
@@ -48,7 +48,7 @@ export struct CustomContainer {
.onClick(()=>{
router.back({
url:this.Url,
params: {result : 'true', title : this.name,
params: {result : 'true
', title : this.name,
}
})
this.getScreen(isFullScreen);
...
...
validator/acts_validator/src/main/ets/pages/common/CustomContainer3.ets
浏览文件 @
c6f40d8e
...
...
@@ -49,7 +49,7 @@ export struct CustomContainer {
.onClick(()=>{
router.back({
url:this.Url,
params: {result : 'true', title : this.name,
params: {result : 'true
', title : this.name,
}
})
this.getScreen(isFullScreen);
...
...
validator/acts_validator/src/main/ets/pages/common/CustomContainer4.ets
浏览文件 @
c6f40d8e
...
...
@@ -48,7 +48,7 @@ export struct CustomContainer {
.onClick(()=>{
router.back({
url:this.Url,
params: {result : 'true', title : this.name,
params: {result : 'true
', title : this.name,
}
})
this.getScreen(isFullScreen);
...
...
validator/acts_validator/src/main/ets/pages/common/CustomContainer5.ets
浏览文件 @
c6f40d8e
...
...
@@ -50,7 +50,7 @@ export struct CustomContainer {
.onClick(()=>{
router.back({
url:this.Url,
params: {result : 'true', title : this.name,
params: {result : 'true
', title : this.name,
}
})
this.getScreen(isFullScreen);
...
...
validator/acts_validator/src/main/ets/pages/common/ExperienceCustomContainer.ets
浏览文件 @
c6f40d8e
...
...
@@ -50,7 +50,7 @@ export struct CustomContainer {
.onClick(()=>{
router.back({
url:this.Url,
params: {result : 'true', title : this.name,
params: {result : 'true
', title : this.name,
}
})
this.getScreen(isFullScreen);
...
...
validator/acts_validator/src/main/ets/pages/common/StartExperienceCustomContainer.ets
浏览文件 @
c6f40d8e
...
...
@@ -55,7 +55,7 @@ export struct CustomContainer {
.onClick(()=>{
router.back({
url:this.Url,
params: {result : 'true', title : this.name,
params: {result : 'true
', title : this.name,
}
})
this.getScreen(isFullScreen);
...
...
validator/acts_validator/src/main/ets/pages/common/TimeExperienceCustomContainer.ets
浏览文件 @
c6f40d8e
...
...
@@ -50,7 +50,7 @@ export struct CustomContainer {
.onClick(()=>{
router.back({
url:this.Url,
params: {result : 'true', title : this.name,
params: {result : 'true
', title : this.name,
}
})
this.getScreen(isFullScreen);
...
...
validator/acts_validator/src/main/ets/pages/index.ets
浏览文件 @
c6f40d8e
...
...
@@ -339,12 +339,12 @@ struct IndexPage {
FailIndex = report.indexOf('false',FailIndex + 1);
}
let failNum = (FailNum).toString();
let PassIndex = report.indexOf('true');
let PassIndex = report.indexOf('true
');
let PassNum = 0;
while(PassIndex != -1) {
console.log(PassIndex);
PassNum++;
PassIndex = report.indexOf('true',PassIndex + 1);
PassIndex = report.indexOf('true
',PassIndex + 1);
}
let TestNum = FailNum + PassNum;
let testNum = (TestNum).toString();
...
...
@@ -359,12 +359,12 @@ struct IndexPage {
ArkUIFailIndex = ArkUIReport.indexOf('false',ArkUIFailIndex + 1);
}
let ArkuiFailNum = (ArkUIFailNum).toString();
let ArkUIPassIndex = ArkUIReport.indexOf('true');
let ArkUIPassIndex = ArkUIReport.indexOf('true
');
let ArkUIPassNum = 0;
while (ArkUIPassIndex != -1) {
console.log(ArkUIPassIndex);
ArkUIPassNum++;
ArkUIPassIndex = ArkUIReport.indexOf('true',ArkUIPassIndex + 1);
ArkUIPassIndex = ArkUIReport.indexOf('true
',ArkUIPassIndex + 1);
}
let ArkUITestNum = ArkUIFailNum + ArkUIPassNum;
let ArkuiTestNum = (ArkUITestNum).toString();
...
...
@@ -379,12 +379,12 @@ struct IndexPage {
AudioFailIndex = AudioReport.indexOf('false',AudioFailIndex + 1);
}
let audioFailNum = (AudioFailNum).toString();
let AudioPassIndex = AudioReport.indexOf('true');
let AudioPassIndex = AudioReport.indexOf('true
');
let AudioPassNum = 0;
while (AudioPassIndex != -1) {
console.log(AudioPassIndex);
AudioPassNum++;
AudioPassIndex = AudioReport.indexOf('true',AudioPassIndex + 1);
AudioPassIndex = AudioReport.indexOf('true
',AudioPassIndex + 1);
}
let AudioTestNum = AudioFailNum + AudioPassNum;
let audioTestNum = (AudioTestNum).toString();
...
...
@@ -399,12 +399,12 @@ struct IndexPage {
CameraFailIndex = CameraReport.indexOf('false',CameraFailIndex + 1);
}
let cameraFailNum = (CameraFailNum).toString();
let CameraPassIndex = CameraReport.indexOf('true');
let CameraPassIndex = CameraReport.indexOf('true
');
let CameraPassNum = 0;
while (CameraPassIndex != -1) {
console.log(CameraPassIndex);
CameraPassNum++;
CameraPassIndex = CameraReport.indexOf('true',CameraPassIndex + 1);
CameraPassIndex = CameraReport.indexOf('true
',CameraPassIndex + 1);
}
let CameraTestNum = CameraFailNum + CameraPassNum;
let cameraTestNum = (CameraTestNum).toString();
...
...
@@ -419,12 +419,12 @@ struct IndexPage {
PlayerFailIndex = PlayerReport.indexOf('false',PlayerFailIndex + 1);
}
let playerFailNum = (PlayerFailNum).toString();
let PlayerPassIndex = PlayerReport.indexOf('true');
let PlayerPassIndex = PlayerReport.indexOf('true
');
let PlayerPassNum = 0;
while (PlayerPassIndex != -1) {
console.log(PlayerPassIndex);
PlayerPassNum++;
PlayerPassIndex = PlayerReport.indexOf('true',PlayerPassIndex + 1);
PlayerPassIndex = PlayerReport.indexOf('true
',PlayerPassIndex + 1);
}
let PlayerTestNum = PlayerFailNum + PlayerPassNum;
let playerTestNum = (PlayerTestNum).toString();
...
...
@@ -439,12 +439,12 @@ struct IndexPage {
ExperienceFailIndex = ExperienceReport.indexOf('false',ExperienceFailIndex + 1);
}
let experienceFailNum = (ExperienceFailNum).toString();
let ExperiencePassIndex = ExperienceReport.indexOf('true');
let ExperiencePassIndex = ExperienceReport.indexOf('true
');
let ExperiencePassNum = 0;
while (ExperiencePassIndex != -1) {
console.log(ExperiencePassIndex);
ExperiencePassNum++;
ExperiencePassIndex = ExperienceReport.indexOf('true',ExperiencePassIndex + 1);
ExperiencePassIndex = ExperienceReport.indexOf('true
',ExperiencePassIndex + 1);
}
let ExperienceTestNum = ExperienceFailNum + ExperiencePassNum;
let experienceTestNum = (ExperienceTestNum).toString();
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录