1/* 2 * Copyright (c) 2022-2024 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from "@ohos/hypium" 16import ohosWindow from '@ohos.window'; 17import display from '@ohos.display'; 18import screenshot from '@ohos.screenshot'; 19import { UiDriver, BY, ON, PointerMatrix } from '@ohos.UiTest' 20import { BusinessError } from '@ohos.base'; 21 22async function sleep(time: number) { 23 let timeoutId: number = 0; 24 let promise = new Promise<string>(resolve => { 25 timeoutId = setTimeout(() => { 26 resolve('sleep finished'); 27 }, time); 28 }) 29 await promise; 30 clearTimeout(timeoutId) 31} 32export default function windowVerificationProblemTest() { 33 describe('window_verification_problem_test', async () => { 34 console.log('describe window_verification_problem_test start!!!'); 35 36 /** 37 * @tc.number : SUB_BASIC_WMS_SPCIAL_XTS_STAGE_JS_API_4170 38 * @tc.name : testDisplayOffAdd_RepeatOff 39 * @tc.desc : Turn off the monitor that shows device changes 40 * @tc.size : MediumTest 41 * @tc.type : Function 42 * @tc.level : Level 3 43 */ 44 it('testDisplayOffAdd_RepeatOff', 0, async (done:Function) => { 45 let caseName = 'testDisplayOffAdd_RepeatOff'; 46 let msgStr = 'jsunittest ' + caseName + ' '; 47 console.log(msgStr + 'begin'); 48 let callback: Callback<number> = (data: number) => { 49 console.info(msgStr + 'Listening enabled. Data: ' + JSON.stringify(data)); 50 }; 51 try { 52 display.on("add", callback); 53 } catch (exception) { 54 console.error(msgStr + 'Failed to register callback. Code: ' + JSON.stringify(exception)); 55 expect().assertFail(); 56 done(); 57 58 } 59 try { 60 display.off("add"); 61 } catch (exception) { 62 console.error(msgStr + 'Failed to unregister callback. Code: ' + JSON.stringify(exception)); 63 expect().assertFail(); 64 done(); 65 } 66 try { 67 display.off("add"); 68 done(); 69 } catch (exception) { 70 console.error(msgStr + 'Failed to unregister callback. Code: ' + JSON.stringify(exception)); 71 expect().assertFail(); 72 done(); 73 } 74 }); 75 /** 76 * @tc.number : SUB_BASIC_WMS_SPCIAL_XTS_STAGE_JS_API_4180 77 * @tc.name : testDisplayOffAdd_UnregisteredOff 78 * @tc.desc : Turn off the monitor that shows device changes 79 * @tc.size : MediumTest 80 * @tc.type : Function 81 * @tc.level : Level 3 82 */ 83 it('testDisplayOffAdd_UnregisteredOff', 0, async (done:Function) => { 84 let caseName = 'testDisplayOffAdd_UnregisteredOff'; 85 let msgStr = 'jsunittest ' + caseName + ' '; 86 console.log(msgStr + 'begin'); 87 try { 88 display.off("add"); 89 done(); 90 } catch (exception) { 91 console.error(msgStr + 'Failed to unregister callback. Code: ' + JSON.stringify(exception)); 92 expect().assertFail(); 93 done(); 94 } 95 }); 96 /** 97 * @tc.number : SUB_BASIC_WMS_SPCIAL_XTS_STAGE_JS_API_4190 98 * @tc.name : testDisplayOffRemove_RepeatOff 99 * @tc.desc : Turn off the monitor that shows device changes 100 * @tc.size : MediumTest 101 * @tc.type : Function 102 * @tc.level : Level 3 103 */ 104 it('testDisplayOffRemove_RepeatOff', 0, async (done:Function) => { 105 let caseName = 'testDisplayOffRemove_RepeatOff'; 106 let msgStr = 'jsunittest ' + caseName + ' '; 107 console.log(msgStr + 'begin'); 108 let callback: Callback<number> = (data: number) => { 109 console.info(msgStr + 'Listening enabled. Data: ' + JSON.stringify(data)); 110 }; 111 try { 112 display.on("remove", callback); 113 } catch (exception) { 114 console.error(msgStr + 'Failed to register callback. Code: ' + JSON.stringify(exception)); 115 expect().assertFail(); 116 done(); 117 } 118 try { 119 display.off("remove"); 120 } catch (exception) { 121 console.error(msgStr + 'Failed to unregister callback. Code: ' + JSON.stringify(exception)); 122 expect().assertFail(); 123 done(); 124 } 125 try { 126 display.off("remove"); 127 done(); 128 } catch (exception) { 129 console.error(msgStr + 'Failed to unregister callback. Code: ' + JSON.stringify(exception)); 130 expect().assertFail(); 131 done(); 132 } 133 }); 134 /** 135 * @tc.number : SUB_BASIC_WMS_SPCIAL_XTS_STAGE_JS_API_4200 136 * @tc.name : testDisplayOffRemove_UnregisteredOff 137 * @tc.desc : Turn off the monitor that shows device changes 138 * @tc.size : MediumTest 139 * @tc.type : Function 140 * @tc.level : Level 3 141 */ 142 it('testDisplayOffRemove_UnregisteredOff', 0, async (done:Function) => { 143 let caseName = 'testDisplayOffRemove_UnregisteredOff'; 144 let msgStr = 'jsunittest ' + caseName + ' '; 145 console.log(msgStr + 'begin'); 146 try { 147 display.off("remove"); 148 done(); 149 } catch (exception) { 150 console.error(msgStr + 'Failed to unregister callback. Code: ' + JSON.stringify(exception)); 151 expect().assertFail(); 152 done(); 153 } 154 }); 155 /** 156 * @tc.number : SUB_BASIC_WMS_SPCIAL_XTS_STAGE_JS_API_4210 157 * @tc.name : testDisplayOffChange_RepeatOff 158 * @tc.desc : Turn off the monitor that shows device changes 159 * @tc.size : MediumTest 160 * @tc.type : Function 161 * @tc.level : Level 3 162 */ 163 it('testDisplayOffChange_RepeatOff', 0, async (done:Function) => { 164 let caseName = 'testDisplayOffChange_RepeatOff'; 165 let msgStr = 'jsunittest ' + caseName + ' '; 166 console.log(msgStr + 'begin'); 167 let callback: Callback<number> = (data: number) => { 168 console.info(msgStr + 'Listening enabled. Data: ' + JSON.stringify(data)); 169 }; 170 try { 171 display.on("change", callback); 172 } catch (exception) { 173 console.error(msgStr + 'Failed to register callback. Code: ' + JSON.stringify(exception)); 174 expect().assertFail(); 175 done(); 176 } 177 try { 178 display.off("change"); 179 } catch (exception) { 180 console.error(msgStr + 'Failed to unregister callback. Code: ' + JSON.stringify(exception)); 181 expect().assertFail(); 182 done(); 183 } 184 try { 185 display.off("change"); 186 done(); 187 188 } catch (exception) { 189 console.error(msgStr + 'Failed to unregister callback. Code: ' + JSON.stringify(exception)); 190 expect().assertFail(); 191 done(); 192 } 193 }); 194 /** 195 * @tc.number : SUB_BASIC_WMS_SPCIAL_XTS_STAGE_JS_API_4220 196 * @tc.name : testDisplayOffChange_UnregisteredOff 197 * @tc.desc : Turn off the monitor that shows device changes 198 * @tc.size : MediumTest 199 * @tc.type : Function 200 * @tc.level : Level 3 201 */ 202 it('testDisplayOffChange_UnregisteredOff', 0, async (done:Function) => { 203 let caseName = 'testDisplayOffChange_UnregisteredOff'; 204 let msgStr = 'jsunittest ' + caseName + ' '; 205 console.log(msgStr + 'begin'); 206 try { 207 display.off("change"); 208 done(); 209 } catch (exception) { 210 console.error(msgStr + 'Failed to unregister callback. Code: ' + JSON.stringify(exception)); 211 expect().assertFail(); 212 done(); 213 } 214 }); 215 /** 216 * @tc.number : SUB_BASIC_WMS_SPCIAL_XTS_STAGE_JS_API_4230 217 * @tc.name : testDisplayOffFoldStatusChange_RepeatOff 218 * @tc.desc : Enable the monitoring of the folding status change of the folding device 219 * @tc.size : MediumTest 220 * @tc.type : Function 221 * @tc.level : Level 3 222 */ 223 it('testDisplayOffFoldStatusChange_RepeatOff', 0, async (done:Function) => { 224 let caseName = 'testDisplayOffFoldStatusChange_RepeatOff'; 225 let msgStr = 'jsunittest ' + caseName + ' '; 226 console.log(msgStr + 'begin'); 227 let callback: Callback<display.FoldStatus> = (data: display.FoldStatus) => { 228 console.info(msgStr + 'Listening enabled. Data: ' + JSON.stringify(data)); 229 }; 230 try { 231 display.on('foldStatusChange', callback); 232 } catch (exception) { 233 console.error(msgStr + 'Failed to register callback. Code: ' + JSON.stringify(exception)); 234 expect().assertFail(); 235 done(); 236 } 237 try { 238 display.off("foldStatusChange"); 239 } catch (exception) { 240 console.error(msgStr + 'Failed to unregister callback. Code: ' + JSON.stringify(exception)); 241 expect().assertFail(); 242 done(); 243 } 244 try { 245 display.off("foldStatusChange"); 246 done(); 247 } catch (exception) { 248 console.error(msgStr + 'Failed to unregister callback. Code: ' + JSON.stringify(exception)); 249 expect().assertFail(); 250 done(); 251 } 252 }); 253 /** 254 * @tc.number : SUB_BASIC_WMS_SPCIAL_XTS_STAGE_JS_API_4240 255 * @tc.name : testDisplayOffFoldStatusChange_UnregisteredOff 256 * @tc.desc : Enable the monitoring of the folding status change of the folding device 257 * @tc.size : MediumTest 258 * @tc.type : Function 259 * @tc.level : Level 3 260 */ 261 it('testDisplayOffFoldStatusChange_UnregisteredOff', 0, async (done:Function) => { 262 let caseName = 'testDisplayOffFoldStatusChange_UnregisteredOff'; 263 let msgStr = 'jsunittest ' + caseName + ' '; 264 console.log(msgStr + 'begin'); 265 try { 266 display.off("foldStatusChange"); 267 done(); 268 } catch (exception) { 269 console.error(msgStr + 'Failed to unregister callback. Code: ' + JSON.stringify(exception)); 270 expect().assertFail(); 271 done(); 272 } 273 }); 274 /** 275 * @tc.number : SUB_BASIC_WMS_SPCIAL_XTS_STAGE_JS_API_4250 276 * @tc.name : testDisplayOffFoldDisplayModeChange_RepeatOff 277 * @tc.desc : Turn off monitoring for screen display mode changes on folding devices 278 * @tc.size : MediumTest 279 * @tc.type : Function 280 * @tc.level : Level 3 281 */ 282 it('testDisplayOffFoldDisplayModeChange_RepeatOff', 0, async (done:Function) => { 283 let caseName = 'testDisplayOffFoldDisplayModeChange_RepeatOff'; 284 let msgStr = 'jsunittest ' + caseName + ' '; 285 console.log(msgStr + 'begin'); 286 let callback: Callback<display.FoldDisplayMode> = (data: display.FoldDisplayMode) => { 287 console.info(msgStr + 'Listening enabled. Data: ' + JSON.stringify(data)); 288 }; 289 try { 290 display.on('foldDisplayModeChange', callback); 291 } catch (exception) { 292 console.error(msgStr + 'Failed to register callback. Code: ' + JSON.stringify(exception)); 293 expect().assertFail(); 294 done(); 295 } 296 try { 297 display.off("foldDisplayModeChange"); 298 } catch (exception) { 299 console.error(msgStr + 'Failed to unregister callback. Code: ' + JSON.stringify(exception)); 300 expect().assertFail(); 301 done(); 302 } 303 try { 304 display.off("foldDisplayModeChange"); 305 done(); 306 } catch (exception) { 307 console.error(msgStr + 'Failed to unregister callback. Code: ' + JSON.stringify(exception)); 308 expect().assertFail(); 309 done(); 310 } 311 }); 312 /** 313 * @tc.number : SUB_BASIC_WMS_SPCIAL_XTS_STAGE_JS_API_4260 314 * @tc.name : testDisplayOffFoldDisplayModeChange_UnregisteredOff 315 * @tc.desc : Turn off monitoring for screen display mode changes on folding devices 316 * @tc.size : MediumTest 317 * @tc.type : Function 318 * @tc.level : Level 3 319 */ 320 it('testDisplayOffFoldDisplayModeChange_UnregisteredOff', 0, async (done:Function) => { 321 let caseName = 'testDisplayOffFoldDisplayModeChange_UnregisteredOff'; 322 let msgStr = 'jsunittest ' + caseName + ' '; 323 console.log(msgStr + 'begin'); 324 try { 325 display.off("foldDisplayModeChange"); 326 done(); 327 328 } catch (exception) { 329 console.error(msgStr + 'Failed to unregister callback. Code: ' + JSON.stringify(exception)); 330 expect().assertFail(); 331 done(); 332 } 333 }); 334 }) 335} 336