1/* 2 * Copyright (c) 2021-2022 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 */ 15 16import { paramMock } from "../utils" 17 18export const windowPropertiesMock = { 19 windowRect: '[PC preview] unknow windowRect', 20 type: '[PC preview] unknow type', 21 brightness: '[PC preview] unknow brightness', 22 isTransparent: '[PC preview] unknow isTransparent', 23 isFullScreen: '[PC preview] unknow isFullScreen', 24 isKeepScreenOn: '[PC preview] unknow isKeepScreenOn', 25 dimBehindValue: '[PC preview] unknow dimBehindValue', 26 isLayoutFullScreen: '[PC preview] unknow isLayoutFullScreen', 27 focusable: '[PC preview] unknow focusable', 28 touchable: '[PC preview] unknow touchable', 29 isPrivacyMode: '[PC preview] unknow isPrivacyMode', 30 isRoundCorner: '[PC preview] unknow isRoundCorner' 31} 32export const RectMock = { 33 left: '[PC preview] unknow Rect.left', 34 top: '[PC preview] unknow Rect.top', 35 width: '[PC preview] unknow Rect.width', 36 height: '[PC preview] unknow Rect.height' 37} 38export const AvoidAreaMock = { 39 leftRect: RectMock, 40 topRect: RectMock, 41 rightRect: RectMock, 42 bottomRect: RectMock 43} 44export const windowMock = { 45 setBrightness: function (...args) { 46 console.warn("Window.setBrightness interface mocked in the Previewer. How this interface works on the" + 47 " Previewer may be different from that on a real device.") 48 const len = args.length 49 if (typeof args[len - 1] === 'function') { 50 args[len - 1].call(this, paramMock.businessErrorMock) 51 } else { 52 return new Promise((resolve) => { 53 resolve() 54 }) 55 } 56 }, 57 setBackgroundColor: function (...args) { 58 console.warn("Window.setBackgroundColor interface mocked in the Previewer. How this interface works on the" + 59 " Previewer may be different from that on a real device.") 60 const len = args.length 61 if (typeof args[len - 1] === 'function') { 62 args[len - 1].call(this, paramMock.businessErrorMock) 63 } else { 64 return new Promise((resolve) => { 65 resolve() 66 }) 67 } 68 }, 69 setTransparent: function (...args) { 70 console.warn("Window.setTransparent interface mocked in the Previewer. How this interface works on the" + 71 " Previewer may be different from that on a real device.") 72 const len = args.length 73 if (typeof args[len - 1] === 'function') { 74 args[len - 1].call(this, paramMock.businessErrorMock) 75 } else { 76 return new Promise((resolve) => { 77 resolve() 78 }) 79 } 80 }, 81 setFullScreen: function (...args) { 82 console.warn("Window.setFullScreen interface mocked in the Previewer. How this interface works on the" + 83 " Previewer may be different from that on a real device.") 84 const len = args.length 85 if (typeof args[len - 1] === 'function') { 86 args[len - 1].call(this, paramMock.businessErrorMock) 87 } else { 88 return new Promise((resolve) => { 89 resolve() 90 }) 91 } 92 }, 93 setKeepScreenOn: function (...args) { 94 console.warn("Window.setKeepScreenOn interface mocked in the Previewer. How this interface works on the" + 95 " Previewer may be different from that on a real device.") 96 const len = args.length 97 if (typeof args[len - 1] === 'function') { 98 args[len - 1].call(this, paramMock.businessErrorMock) 99 } else { 100 return new Promise((resolve) => { 101 resolve() 102 }) 103 } 104 }, 105 setDimBehind: function (...args) { 106 console.warn("Window.setDimBehind interface mocked in the Previewer. How this interface works on the" + 107 " Previewer may be different from that on a real device.") 108 const len = args.length 109 if (typeof args[len - 1] === 'function') { 110 args[len - 1].call(this, paramMock.businessErrorMock) 111 } else { 112 return new Promise((resolve) => { 113 resolve() 114 }) 115 } 116 }, 117 setLayoutFullScreen: function (...args) { 118 console.warn("Window.setLayoutFullScreen interface mocked in the Previewer. How this interface works on the" + 119 " Previewer may be different from that on a real device.") 120 const len = args.length 121 if (typeof args[len - 1] === 'function') { 122 args[len - 1].call(this, paramMock.businessErrorMock) 123 } else { 124 return new Promise((resolve) => { 125 resolve() 126 }) 127 } 128 }, 129 setFocusable: function (...args) { 130 console.warn("Window.setFocusable interface mocked in the Previewer. How this interface works on the" + 131 " Previewer may be different from that on a real device.") 132 const len = args.length 133 if (typeof args[len - 1] === 'function') { 134 args[len - 1].call(this, paramMock.businessErrorMock) 135 } else { 136 return new Promise((resolve) => { 137 resolve() 138 }) 139 } 140 }, 141 setTouchable: function (...args) { 142 console.warn("Window.setTouchable interface mocked in the Previewer. How this interface works on the" + 143 " Previewer may be different from that on a real device.") 144 const len = args.length 145 if (typeof args[len - 1] === 'function') { 146 args[len - 1].call(this, paramMock.businessErrorMock) 147 } else { 148 return new Promise((resolve) => { 149 resolve() 150 }) 151 } 152 }, 153 setPrivacyMode: function (...args) { 154 console.warn("Window.setPrivacyMode interface mocked in the Previewer. How this interface works on the" + 155 " Previewer may be different from that on a real device.") 156 const len = args.length 157 if (typeof args[len - 1] === 'function') { 158 args[len - 1].call(this, paramMock.businessErrorMock) 159 } else { 160 return new Promise((resolve) => { 161 resolve() 162 }) 163 } 164 }, 165 setSystemBarEnable: function (...args) { 166 console.warn("Window.setSystemBarEnable interface mocked in the Previewer. How this interface works on the" + 167 " Previewer may be different from that on a real device.") 168 const len = args.length 169 if (typeof args[len - 1] === 'function') { 170 args[len - 1].call(this, paramMock.businessErrorMock) 171 } else { 172 return new Promise((resolve) => { 173 resolve() 174 }) 175 } 176 }, 177 setSystemBarProperties: function (...args) { 178 console.warn("Window.setSystemBarProperties interface mocked in the Previewer. How this interface works on the" + 179 " Previewer may be different from that on a real device.") 180 const len = args.length 181 if (typeof args[len - 1] === 'function') { 182 args[len - 1].call(this, paramMock.businessErrorMock) 183 } else { 184 return new Promise((resolve) => { 185 resolve() 186 }) 187 } 188 }, 189 getProperties: function (...args) { 190 console.warn("Window.getProperties interface mocked in the Previewer. How this interface works on the" + 191 " Previewer may be different from that on a real device.") 192 const len = args.length 193 if (typeof args[len - 1] === 'function') { 194 args[len - 1].call(this, paramMock.businessErrorMock, windowPropertiesMock) 195 } else { 196 return new Promise((resolve) => { 197 resolve(windowPropertiesMock) 198 }) 199 } 200 }, 201 getAvoidArea: function (...args) { 202 console.warn("Window.getAvoidArea interface mocked in the Previewer. How this interface works on the" + 203 " Previewer may be different from that on a real device.") 204 const len = args.length 205 if (typeof args[len - 1] === 'function') { 206 args[len - 1].call(this, paramMock.businessErrorMock, AvoidAreaMock) 207 } else { 208 return new Promise((resolve) => { 209 resolve(AvoidAreaMock) 210 }) 211 } 212 }, 213 moveTo: function (...args) { 214 console.warn("Window.moveTo interface mocked in the Previewer. How this interface works on the" + 215 " Previewer may be different from that on a real device.") 216 const len = args.length 217 if (typeof args[len - 1] === 'function') { 218 args[len - 1].call(this, paramMock.businessErrorMock) 219 } else { 220 return new Promise((resolve) => { 221 resolve() 222 }) 223 } 224 }, 225 resetSize: function (...args) { 226 console.warn("Window.resetSize interface mocked in the Previewer. How this interface works on the" + 227 " Previewer may be different from that on a real device.") 228 const len = args.length 229 if (typeof args[len - 1] === 'function') { 230 args[len - 1].call(this, paramMock.businessErrorMock) 231 } else { 232 return new Promise((resolve) => { 233 resolve() 234 }) 235 } 236 }, 237 setWindowType: function (...args) { 238 console.warn("Window.setWindowType interface mocked in the Previewer. How this interface works on the" + 239 " Previewer may be different from that on a real device.") 240 const len = args.length 241 if (typeof args[len - 1] === 'function') { 242 args[len - 1].call(this, paramMock.businessErrorMock) 243 } else { 244 return new Promise((resolve) => { 245 resolve() 246 }) 247 } 248 }, 249 loadContent: function (...args) { 250 console.warn("Window.loadContent interface mocked in the Previewer. How this interface works on the" + 251 " Previewer may be different from that on a real device.") 252 const len = args.length 253 if (typeof args[len - 1] === 'function') { 254 args[len - 1].call(this, paramMock.businessErrorMock) 255 } else { 256 return new Promise((resolve) => { 257 resolve() 258 }) 259 } 260 }, 261 hide: function (...args) { 262 console.warn("Window.hide interface mocked in the Previewer. How this interface works on the" + 263 " Previewer may be different from that on a real device.") 264 const len = args.length 265 if (typeof args[len - 1] === 'function') { 266 args[len - 1].call(this, paramMock.businessErrorMock) 267 } else { 268 return new Promise((resolve) => { 269 resolve() 270 }) 271 } 272 }, 273 show: function (...args) { 274 console.warn("Window.show interface mocked in the Previewer. How this interface works on the" + 275 " Previewer may be different from that on a real device.") 276 const len = args.length 277 if (typeof args[len - 1] === 'function') { 278 args[len - 1].call(this, paramMock.businessErrorMock) 279 } else { 280 return new Promise((resolve) => { 281 resolve() 282 }) 283 } 284 }, 285 isShowing: function (...args) { 286 console.warn("Window.isShowing interface mocked in the Previewer. How this interface works on the" + 287 " Previewer may be different from that on a real device.") 288 const len = args.length 289 if (typeof args[len - 1] === 'function') { 290 args[len - 1].call(this, paramMock.businessErrorMock, paramMock.paramBooleanMock) 291 } else { 292 return new Promise((resolve) => { 293 resolve(paramMock.paramBooleanMock) 294 }) 295 } 296 }, 297 destroy: function (...args) { 298 console.warn("Window.destroy interface mocked in the Previewer. How this interface works on the" + 299 " Previewer may be different from that on a real device.") 300 const len = args.length 301 if (typeof args[len - 1] === 'function') { 302 args[len - 1].call(this, paramMock.businessErrorMock) 303 } else { 304 return new Promise((resolve) => { 305 resolve() 306 }) 307 } 308 }, 309 setOutsideTouchable: function (...args) { 310 console.warn("Window.setOutsideTouchable interface mocked in the Previewer. How this interface works on the" + 311 " Previewer may be different from that on a real device.") 312 const len = args.length 313 if (typeof args[len - 1] === 'function') { 314 args[len - 1].call(this, paramMock.businessErrorMock) 315 } else { 316 return new Promise((resolve) => { 317 resolve() 318 }) 319 } 320 }, 321 on: function (...args) { 322 console.warn("Window.on interface mocked in the Previewer. How this interface works on the Previewer may be" + 323 " different from that on a real device.") 324 const len = args.length 325 if (typeof args[len - 1] === 'function') { 326 args[len - 1].call(this, paramMock.businessErrorMock, paramMock.paramNumberMock) 327 } 328 }, 329 off: function (...args) { 330 console.warn("Window.off interface mocked in the Previewer. How this interface works on the Previewer may be" + 331 " different from that on a real device.") 332 const len = args.length 333 if (typeof args[len - 1] === 'function') { 334 args[len - 1].call(this, paramMock.businessErrorMock, paramMock.paramNumberMock) 335 } 336 }, 337 setColorSpace: function (...args) { 338 console.warn("Window.setColorSpace interface mocked in the Previewer. How this interface works on the Previewer" + 339 " may be different from that on a real device.") 340 const len = args.length 341 if (typeof args[len - 1] === 'function') { 342 args[len - 1].call(this, paramMock.businessErrorMock) 343 } else { 344 return new Promise((resolve) => { 345 resolve() 346 }) 347 } 348 }, 349 getColorSpace: function (...args) { 350 console.warn("Window.getColorSpace interface mocked in the Previewer. How this interface works on the Previewer" + 351 " may be different from that on a real device.") 352 const len = args.length 353 if (typeof args[len - 1] === 'function') { 354 args[len - 1].call(this, paramMock.businessErrorMock, paramMock.paramNumberMock) 355 } else { 356 return new Promise((resolve) => { 357 resolve(paramMock.paramNumberMock) 358 }) 359 } 360 }, 361 isSupportWideGamut: function (...args) { 362 console.warn("Window.isSupportWideGamut interface mocked in the Previewer. How this interface works on the" + 363 " Previewer may be different from that on a real device.") 364 const len = args.length 365 if (typeof args[len - 1] === 'function') { 366 args[len - 1].call(this, paramMock.businessErrorMock, paramMock.paramBooleanMock) 367 } else { 368 return new Promise((resolve) => { 369 resolve(paramMock.paramBooleanMock) 370 }) 371 } 372 }, 373} 374export function mockWindow() { 375 const SizeMock = { 376 width: '[PC preview] unknow width', 377 height: '[PC preview] unknow height' 378 } 379 const getSplitScreenBoundsMock = { 380 splitMode: '[PC preview] unknow splitMode', 381 primaryBounds: RectMock, 382 secondaryBounds: RectMock, 383 } 384 const window = { 385 getTopWindow: function (...args) { 386 console.warn("window.getTopWindow interface mocked in the Previewer. How this interface works on the Previewer" + 387 " may be different from that on a real device.") 388 const len = args.length 389 if (typeof args[len - 1] === 'function') { 390 args[len - 1].call(this, paramMock.businessErrorMock, windowMock) 391 } else { 392 return new Promise((resolve, reject) => { 393 resolve(windowMock) 394 }) 395 } 396 }, 397 create: function (...args) { 398 console.warn("Window.create interface mocked in the Previewer. How this interface works on the" + 399 " Previewer may be different from that on a real device.") 400 const len = args.length 401 if (typeof args[len - 1] === 'function') { 402 args[len - 1].call(this, paramMock.businessErrorMock, windowMock) 403 } else { 404 return new Promise((resolve, reject) => { 405 resolve(windowMock) 406 }) 407 } 408 }, 409 find: function (...args) { 410 console.warn("Window.find interface mocked in the Previewer. How this interface works on the" + 411 " Previewer may be different from that on a real device.") 412 const len = args.length 413 if (typeof args[len - 1] === 'function') { 414 args[len - 1].call(this, paramMock.businessErrorMock, windowMock) 415 } else { 416 return new Promise((resolve, reject) => { 417 resolve(windowMock) 418 }) 419 } 420 }, 421 getAbilityWindowMode: function (...args) { 422 console.warn("Window.getAbilityWindowMode interface mocked in the Previewer. How this interface works on the Previewer" + 423 " may be different from that on a real device.") 424 const len = args.length 425 if (typeof args[len - 1] === 'function') { 426 args[len - 1].call(this, paramMock.businessErrorMock, paramMock.paramNumberMock) 427 } else { 428 return new Promise((resolve, reject) => { 429 resolve(paramMock.paramNumberMock) 430 }) 431 } 432 }, 433 getSplitScreenBounds: function (...args) { 434 console.warn("window.getSplitScreenBounds interface mocked in the Previewer. How this interface works on the Previewer" + 435 " may be different from that on a real device.") 436 const len = args.length 437 if (typeof args[len - 1] === 'function') { 438 args[len - 1].call(this, paramMock.businessErrorMock, getSplitScreenBoundsMock) 439 } else { 440 return new Promise((resolve, reject) => { 441 resolve(getSplitScreenBoundsMock) 442 }) 443 } 444 }, 445 isFloatingAbilityWindowVisible: function (...args) { 446 console.warn("window.isFloatingAbilityWindowVisible interface mocked in the Previewer. How this interface works on the Previewer" + 447 " may be different from that on a real device.") 448 const len = args.length 449 if (typeof args[len - 1] === 'function') { 450 args[len - 1].call(this, paramMock.businessErrorMock, paramMock.paramBooleanMock) 451 } else { 452 return new Promise((resolve, reject) => { 453 resolve(paramMock.paramBooleanMock) 454 }) 455 } 456 }, 457 setSplitBarVisibility: function (...args) { 458 console.warn("window.setSplitBarVisibility interface mocked in the Previewer. How this interface works on the Previewer" + 459 " may be different from that on a real device.") 460 const len = args.length 461 if (typeof args[len - 1] === 'function') { 462 args[len - 1].call(this, paramMock.businessErrorMock) 463 } else { 464 return new Promise((resolve, reject) => { 465 resolve() 466 }) 467 } 468 }, 469 AvoidAreaType: { 470 TYPE_SYSTEM: 0, 471 TYPE_CUTOUT: 1, 472 TYPE_SYSTEM_GESTURE: 2 473 }, 474 WindowType: { 475 TYPE_APP: 0, 476 TYPE_SYSTEM_ALERT: 1, 477 TYPE_INPUT_METHOD: 2, 478 TYPE_STATUS_BAR: 3, 479 TYPE_PANEL: 4, 480 TYPE_KEYGUARD: 5, 481 TYPE_VOLUME_OVERLAY: 6, 482 TYPE_NAVIGATION_BAR: 7 483 }, 484 ColorSpace: { 485 DEFAULT: 0, 486 WIDE_GAMUT: 1 487 }, 488 } 489 return window 490} 491