• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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