• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1import { paramMock } from "./utils"
2
3export function mockWindow() {
4  const windowPropertiesMock = {
5    brightness: '[PC preview] unknow brightness',
6    isFullScreen: '[PC preview] unknow isFullScreen',
7    isKeepScreenOn: '[PC preview] unknow isKeepScreenOn',
8    isPrivacyMode: '[PC preview] unknow isPrivacyMode',
9    touchable: '[PC preview] unknow touchable',
10    focusable: '[PC preview] unknow focusable',
11    isLayoutFullScreen: '[PC preview] unknow isLayoutFullScreen',
12    isDimBehind: '[PC preview] unknow isDimBehind',
13    isTransparent: '[PC preview] unknow isTransparent',
14    isRoundCorner: '[PC preview] unknow isRoundCorner'
15  }
16  const AvoidAreaMock = {
17    left: '[PC preview] unknow Rect.left Rect.top Rect.right Rect.bottom',
18    top: '[PC preview] unknow Rect.left Rect.top Rect.right Rect.bottom',
19    right: '[PC preview] unknow Rect.left Rect.top Rect.right Rect.bottom',
20    bottom: '[PC preview] unknow Rect.left Rect.top Rect.right Rect.bottom'
21
22  }
23  const windowMock = {
24    setBrightness: function (...args) {
25      console.warn("Window.setBrightness interface mocked in the Previewer. How this interface works on the" +
26        " Previewer may be different from that on a real device.")
27      const len = args.length
28      if (typeof args[len - 1] === 'function') {
29        args[len - 1].call(this, paramMock.businessErrorMock)
30      } else {
31        return new Promise((resolve) => {
32          resolve()
33        })
34      }
35    },
36    setBackgroundColor: function (...args) {
37      console.warn("Window.setBackgroundColor interface mocked in the Previewer. How this interface works on the" +
38        " Previewer may be different from that on a real device.")
39      const len = args.length
40      if (typeof args[len - 1] === 'function') {
41        args[len - 1].call(this, paramMock.businessErrorMock)
42      } else {
43        return new Promise((resolve) => {
44          resolve()
45        })
46      }
47    },
48    setFullScreen: function (...args) {
49      console.warn("Window.setFullScreen interface mocked in the Previewer. How this interface works on the" +
50        " Previewer may be different from that on a real device.")
51      const len = args.length
52      if (typeof args[len - 1] === 'function') {
53        args[len - 1].call(this, paramMock.businessErrorMock)
54      } else {
55        return new Promise((resolve) => {
56          resolve()
57        })
58      }
59    },
60    setKeepScreenOn: function (...args) {
61      console.warn("Window.setKeepScreenOn interface mocked in the Previewer. How this interface works on the" +
62        " Previewer may be different from that on a real device.")
63      const len = args.length
64      if (typeof args[len - 1] === 'function') {
65        args[len - 1].call(this, paramMock.businessErrorMock)
66      } else {
67        return new Promise((resolve) => {
68          resolve()
69        })
70      }
71    },
72    setSystemBarProperties: function (...args) {
73      console.warn("Window.setSystemBarProperties interface mocked in the Previewer. How this interface works on the" +
74        " Previewer may be different from that on a real device.")
75      const len = args.length
76      if (typeof args[len - 1] === 'function') {
77        args[len - 1].call(this, paramMock.businessErrorMock)
78      } else {
79        return new Promise((resolve) => {
80          resolve()
81        })
82      }
83    },
84    getProperties: function (...args) {
85      console.warn("Window.getProperties interface mocked in the Previewer. How this interface works on the" +
86        " Previewer may be different from that on a real device.")
87      const len = args.length
88      if (typeof args[len - 1] === 'function') {
89        args[len - 1].call(this, paramMock.businessErrorMock, windowPropertiesMock)
90      } else {
91        return new Promise((resolve) => {
92          resolve(windowPropertiesMock)
93        })
94      }
95    },
96    on: function (...args) {
97      console.warn("Window.on interface mocked in the Previewer. How this interface works on the Previewer may be" +
98        " different from that on a real device.")
99      const len = args.length
100      args[len - 1].call(this, paramMock.businessErrorMock, paramMock.paramNumberMock)
101    },
102    off: function (...args) {
103      console.warn("Window.off interface mocked in the Previewer. How this interface works on the Previewer may be" +
104        " different from that on a real device.")
105      const len = args.length
106      args[len - 1].call(this, paramMock.businessErrorMock, paramMock.paramNumberMock)
107    },
108    setSystemBarEnable: function (...args) {
109      console.warn("Window.setSystemBarEnable interface mocked in the Previewer. How this interface works on the" +
110        " Previewer may be different from that on a real device.")
111      const len = args.length
112      if (typeof args[len - 1] === 'function') {
113        args[len - 1].call(this, paramMock.businessErrorMock)
114      } else {
115        return new Promise((resolve) => {
116          resolve()
117        })
118      }
119    },
120    setTransparent: function (...args) {
121      console.warn("Window.setTransparent interface mocked in the Previewer. How this interface works on the" +
122        " Previewer may be different from that on a real device.")
123      const len = args.length
124      if (typeof args[len - 1] === 'function') {
125        args[len - 1].call(this, paramMock.businessErrorMock)
126      } else {
127        return new Promise((resolve) => {
128          resolve()
129        })
130      }
131    },
132    setWindowType: function (...args) {
133      console.warn("Window.setWindowType interface mocked in the Previewer. How this interface works on the" +
134        " Previewer may be different from that on a real device.")
135      const len = args.length
136      if (typeof args[len - 1] === 'function') {
137        args[len - 1].call(this, paramMock.businessErrorMock)
138      } else {
139        return new Promise((resolve) => {
140          resolve()
141        })
142      }
143    },
144    setPrivacyMode: function (...args) {
145      console.warn("Window.setPrivacyMode interface mocked in the Previewer. How this interface works on the" +
146        " Previewer may be different from that on a real device.")
147      const len = args.length
148      if (typeof args[len - 1] === 'function') {
149        args[len - 1].call(this, paramMock.businessErrorMock)
150      } else {
151        return new Promise((resolve) => {
152          resolve()
153        })
154      }
155    },
156    setTouchable: function (...args) {
157      console.warn("Window.setTouchable interface mocked in the Previewer. How this interface works on the" +
158        " Previewer may be different from that on a real device.")
159      const len = args.length
160      if (typeof args[len - 1] === 'function') {
161        args[len - 1].call(this, paramMock.businessErrorMock)
162      } else {
163        return new Promise((resolve) => {
164          resolve()
165        })
166      }
167    },
168    setFocusable: function (...args) {
169      console.warn("Window.setFocusable interface mocked in the Previewer. How this interface works on the" +
170        " Previewer may be different from that on a real device.")
171      const len = args.length
172      if (typeof args[len - 1] === 'function') {
173        args[len - 1].call(this, paramMock.businessErrorMock)
174      } else {
175        return new Promise((resolve) => {
176          resolve()
177        })
178      }
179    },
180    setLayoutFullScreen: function (...args) {
181      console.warn("Window.setLayoutFullScreen interface mocked in the Previewer. How this interface works on the" +
182        " Previewer may be different from that on a real device.")
183      const len = args.length
184      if (typeof args[len - 1] === 'function') {
185        args[len - 1].call(this, paramMock.businessErrorMock)
186      } else {
187        return new Promise((resolve) => {
188          resolve()
189        })
190      }
191    },
192    getAvoidArea: function (...args) {
193      console.warn("Window.getAvoidArea interface mocked in the Previewer. How this interface works on the" +
194        " Previewer may be different from that on a real device.")
195      const len = args.length
196      if (typeof args[len - 1] === 'function') {
197        args[len - 1].call(this, paramMock.businessErrorMock, AvoidAreaMock)
198      } else {
199        return new Promise((resolve) => {
200          resolve(AvoidAreaMock)
201        })
202      }
203    },
204    setDimBehind: function (...args) {
205      console.warn("Window.setDimBehind interface mocked in the Previewer. How this interface works on the" +
206        " Previewer may be different from that on a real device.")
207      const len = args.length
208      if (typeof args[len - 1] === 'function') {
209        args[len - 1].call(this, paramMock.businessErrorMock)
210      } else {
211        return new Promise((resolve) => {
212          resolve()
213        })
214      }
215    },
216    loadContent: function (...args) {
217      console.warn("Window.loadContent interface mocked in the Previewer. How this interface works on the" +
218        " Previewer may be different from that on a real device.")
219      const len = args.length
220      if (typeof args[len - 1] === 'function') {
221        args[len - 1].call(this, paramMock.businessErrorMock)
222      } else {
223        return new Promise((resolve) => {
224          resolve()
225        })
226      }
227    },
228    hide: function (...args) {
229      console.warn("Window.hide interface mocked in the Previewer. How this interface works on the" +
230        " Previewer may be different from that on a real device.")
231      const len = args.length
232      if (typeof args[len - 1] === 'function') {
233        args[len - 1].call(this, paramMock.businessErrorMock)
234      } else {
235        return new Promise((resolve) => {
236          resolve()
237        })
238      }
239    },
240    show: function (...args) {
241      console.warn("Window.show interface mocked in the Previewer. How this interface works on the" +
242        " Previewer may be different from that on a real device.")
243      const len = args.length
244      if (typeof args[len - 1] === 'function') {
245        args[len - 1].call(this, paramMock.businessErrorMock)
246      } else {
247        return new Promise((resolve) => {
248          resolve()
249        })
250      }
251    },
252    isShowing: function (...args) {
253      console.warn("Window.isShowing interface mocked in the Previewer. How this interface works on the" +
254        " Previewer may be different from that on a real device.")
255      const len = args.length
256      if (typeof args[len - 1] === 'function') {
257        args[len - 1].call(this, paramMock.businessErrorMock, paramMock.paramBooleanMock)
258      } else {
259        return new Promise((resolve) => {
260          resolve(paramMock.paramBooleanMock)
261        })
262      }
263    },
264    destroy: function (...args) {
265      console.warn("Window.destroy interface mocked in the Previewer. How this interface works on the" +
266        " Previewer may be different from that on a real device.")
267      const len = args.length
268      if (typeof args[len - 1] === 'function') {
269        args[len - 1].call(this, paramMock.businessErrorMock)
270      } else {
271        return new Promise((resolve) => {
272          resolve()
273        })
274      }
275    },
276    setOutsideTouchable: function (...args) {
277      console.warn("Window.setOutsideTouchable interface mocked in the Previewer. How this interface works on the" +
278        " Previewer may be different from that on a real device.")
279      const len = args.length
280      if (typeof args[len - 1] === 'function') {
281        args[len - 1].call(this, paramMock.businessErrorMock)
282      } else {
283        return new Promise((resolve) => {
284          resolve()
285        })
286      }
287    },
288  }
289  global.systemplugin.window = {
290    getTopWindow: function (...args) {
291      console.warn("window.getTopWindow interface mocked in the Previewer. How this interface works on the Previewer" +
292        " may be different from that on a real device.")
293      const len = args.length
294      if (typeof args[len - 1] === 'function') {
295        args[len - 1].call(this, paramMock.businessErrorMock, windowMock)
296      } else {
297        return new Promise((resolve, reject) => {
298          resolve(windowMock)
299        })
300      }
301    },
302    create: function (...args) {
303      console.warn("Window.create interface mocked in the Previewer. How this interface works on the" +
304        " Previewer may be different from that on a real device.")
305      const len = args.length
306      if (typeof args[len - 1] === 'function') {
307        args[len - 1].call(this, paramMock.businessErrorMock, windowMock)
308      } else {
309        return new Promise((resolve, reject) => {
310          resolve(windowMock)
311        })
312      }
313    },
314    find: function (...args) {
315      console.warn("Window.find interface mocked in the Previewer. How this interface works on the" +
316        " Previewer may be different from that on a real device.")
317      const len = args.length
318      if (typeof args[len - 1] === 'function') {
319        args[len - 1].call(this, paramMock.businessErrorMock, windowMock)
320      } else {
321        return new Promise((resolve, reject) => {
322          resolve(windowMock)
323        })
324      }
325    },
326  }
327}