1/*
2 * Copyright (C) 2022-2023 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// @ts-nocheck
16import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from 'deccjsunit/index';
17import pasteboard from '@ohos.pasteboard';
18import image from '@ohos.multimedia.image';
19
20describe('PasteBoardPerfJSTest', function () {
21  beforeAll(async function () {
22    console.info('beforeAll');
23  });
24
25  afterAll(async function () {
26    console.info('afterAll');
27  });
28
29  const BASE_CONUT = 200;
30  const pixelMapBuffer = new ArrayBuffer(10000);
31  const opt = {
32    size: { height: 50, width: 50 },
33    pixelFormat: 3,
34    editable: true,
35    alphaType: 1,
36    scaleMode: 1,
37  };
38  const htmlText = '<html><head></head><body>Hello!</body></html>';
39  const uriText = 'https://www.baidu.com/';
40  const plainText = 'Hello World!';
41  const wantText = {
42    bundleName: 'com.example.myapplication8',
43    abilityName: 'com.example.myapplication8.MainAbility',
44  };
45
46  /**
47   * @tc.name      getSystemPasteboard_performance_test_001
48   * @tc.desc      getSystemPasteboard interface performance test
49   * @tc.type      PERF
50   * @tc.require   I5YP4X
51   */
52  it('getSystemPasteboard_performance_test_001', 0, async function (done) {
53    let startTime = new Date().getTime();
54    funcWithNoparam(pasteboard.getSystemPasteboard, BASE_CONUT);
55    computeAverageTime(startTime, BASE_CONUT, 'getSystemPasteboard_performance_test_001 averageTime:');
56    done();
57  });
58
59  /**
60   * @tc.name      createData_performance_test_001
61   * @tc.desc      createData interface performance test
62   * @tc.type      PERF
63   * @tc.require   I5YP4X
64   */
65  it('createData_performance_test_001', 0, async function (done) {
66    let pixelMap = await image.createPixelMap(pixelMapBuffer, opt);
67    let startTime = new Date().getTime();
68    funcWithTwoparam(pasteboard.createData, pasteboard.MIMETYPE_PIXELMAP, pixelMap, BASE_CONUT);
69    computeAverageTime(startTime, BASE_CONUT, 'createData_performance_test_001 averageTime:');
70    done();
71  });
72
73  /**
74   * @tc.name      createRecord_performance_test_001
75   * @tc.desc      createRecord interface performance test
76   * @tc.type      PERF
77   * @tc.require   I5YP4X
78   */
79  it('createRecord_performance_test_001', 0, async function (done) {
80    let pixelMap = await image.createPixelMap(pixelMapBuffer, opt);
81    let startTime = new Date().getTime();
82    funcWithTwoparam(pasteboard.createRecord, pasteboard.MIMETYPE_PIXELMAP, pixelMap, BASE_CONUT);
83    computeAverageTime(startTime, BASE_CONUT, 'createRecord_performance_test_001 averageTime:');
84    done();
85  });
86
87  /**
88   * @tc.name      createHtmlData_performance_test_001
89   * @tc.desc      createHtmlData interface performance test
90   * @tc.type      PERF
91   * @tc.require   I5YP4X
92   */
93  it('createHtmlData_performance_test_001', 0, async function (done) {
94    let startTime = new Date().getTime();
95    funcWithOneparam(pasteboard.createHtmlData, htmlText, BASE_CONUT);
96    computeAverageTime(startTime, BASE_CONUT, 'createHtmlData_performance_test_001 averageTime:');
97    done();
98  });
99
100  /**
101   * @tc.name      createWantData_performance_test_001
102   * @tc.desc      createWantData interface performance test
103   * @tc.type      PERF
104   * @tc.require   I5YP4X
105   */
106  it('createWantData_performance_test_001', 0, async function (done) {
107    let startTime = new Date().getTime();
108    funcWithOneparam(pasteboard.createWantData, wantText, BASE_CONUT);
109    computeAverageTime(startTime, BASE_CONUT, 'createWantData_performance_test_001 averageTime:');
110    done();
111  });
112
113  /**
114   * @tc.name      createPlainTextData_performance_test_001
115   * @tc.desc      createPlainTextData interface performance test
116   * @tc.type      PERF
117   * @tc.require   I5YP4X
118   */
119  it('createPlainTextData_performance_test_001', 0, async function (done) {
120    let startTime = new Date().getTime();
121    funcWithOneparam(pasteboard.createPlainTextData, plainText, BASE_CONUT);
122    computeAverageTime(startTime, BASE_CONUT, 'createPlainTextData_performance_test_001 averageTime:');
123    done();
124  });
125
126  /**
127   * @tc.name      createUriData_performance_test_001
128   * @tc.desc      createUriData interface performance test
129   * @tc.type      PERF
130   * @tc.require   I5YP4X
131   */
132  it('createUriData_performance_test_001', 0, async function (done) {
133    let startTime = new Date().getTime();
134    funcWithOneparam(pasteboard.createUriData, uriText, BASE_CONUT);
135    computeAverageTime(startTime, BASE_CONUT, 'createUriData_performance_test_001 averageTime:');
136    done();
137  });
138
139  /**
140   * @tc.name      createHtmlTextRecord_performance_test_001
141   * @tc.desc      createHtmlTextRecord interface performance test
142   * @tc.type      PERF
143   * @tc.require   I5YP4X
144   */
145  it('createHtmlTextRecord_performance_test_001', 0, async function (done) {
146    let startTime = new Date().getTime();
147    funcWithOneparam(pasteboard.createHtmlTextRecord, htmlText, BASE_CONUT);
148    computeAverageTime(startTime, BASE_CONUT, 'createHtmlTextRecord_performance_test_001 averageTime:');
149    done();
150  });
151
152  /**
153   * @tc.name      createWantRecord_performance_test_001
154   * @tc.desc      createWantRecord interface performance test
155   * @tc.type      PERF
156   * @tc.require   I5YP4X
157   */
158  it('createWantRecord_performance_test_001', 0, async function (done) {
159    let startTime = new Date().getTime();
160    funcWithOneparam(pasteboard.createWantRecord, wantText, BASE_CONUT);
161    computeAverageTime(startTime, BASE_CONUT, 'createWantRecord_performance_test_001 averageTime:');
162    done();
163  });
164
165  /**
166   * @tc.name      createPlainTextRecord_performance_test_001
167   * @tc.desc      createPlainTextRecord interface performance test
168   * @tc.type      PERF
169   * @tc.require   I5YP4X
170   */
171  it('createPlainTextRecord_performance_test_001', 0, async function (done) {
172    let startTime = new Date().getTime();
173    funcWithOneparam(pasteboard.createPlainTextRecord, plainText, BASE_CONUT);
174    computeAverageTime(startTime, BASE_CONUT, 'createPlainTextRecord_performance_test_001 averageTime:');
175    done();
176  });
177
178  /**
179   * @tc.name      createUriRecord_performance_test_001
180   * @tc.desc      createUriRecord interface performance test
181   * @tc.type      PERF
182   * @tc.require   I5YP4X
183   */
184  it('createUriRecord_performance_test_001', 0, async function (done) {
185    let startTime = new Date().getTime();
186    funcWithOneparam(pasteboard.createUriRecord, uriText, BASE_CONUT);
187    computeAverageTime(startTime, BASE_CONUT, 'createUriRecord_performance_test_001 averageTime:');
188    done();
189  });
190
191  /**
192   * @tc.name      addRecord_performance_test_001
193   * @tc.desc      addRecord interface performance test
194   * @tc.type      PERF
195   * @tc.require   I5YP4X
196   */
197  it('addRecord_performance_test_001', 0, async function (done) {
198    let pixelMap = await image.createPixelMap(pixelMapBuffer, opt);
199    let pasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_URI, uriText);
200    let startTime = new Date().getTime();
201    funcWithTwoparam(pasteData.addRecord, pasteboard.MIMETYPE_PIXELMAP, pixelMap, BASE_CONUT);
202    computeAverageTime(startTime, BASE_CONUT, 'addRecord_performance_test_001 averageTime:');
203    done();
204  });
205
206  /**
207   * @tc.name      getRecord_performance_test_001
208   * @tc.desc      getRecord interface performance test
209   * @tc.type      PERF
210   * @tc.require   I5YP4X
211   */
212  it('getRecord_performance_test_001', 0, async function (done) {
213    let pasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_URI, uriText);
214    let startTime = new Date().getTime();
215    funcWithOneparam(pasteData.getRecord, 0, BASE_CONUT);
216    computeAverageTime(startTime, BASE_CONUT, 'getRecord_performance_test_001 averageTime:');
217    done();
218  });
219
220  /**
221   * @tc.name      hasType_performance_test_001
222   * @tc.desc      hasType interface performance test
223   * @tc.type      PERF
224   * @tc.require   I5YP4X
225   */
226  it('hasType_performance_test_001', 0, async function (done) {
227    let pasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_URI, uriText);
228    let startTime = new Date().getTime();
229    funcWithOneparam(pasteData.hasType, pasteboard.MIMETYPE_PIXELMAP, BASE_CONUT);
230    computeAverageTime(startTime, BASE_CONUT, 'hasType_performance_test_001 averageTime:');
231    done();
232  });
233
234  /**
235   * @tc.name      removeRecord_performance_test_001
236   * @tc.desc      removeRecord interface performance test
237   * @tc.type      PERF
238   * @tc.require   I5YP4X
239   */
240  it('removeRecord_performance_test_001', 0, async function (done) {
241    let pasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_URI, uriText);
242    funcWithOneparam(pasteData.addHtmlRecord, htmlText, BASE_CONUT);
243    let startTime = new Date().getTime();
244    funcWithOneparam(pasteData.removeRecord, 0, BASE_CONUT);
245    computeAverageTime(startTime, BASE_CONUT, 'removeRecord_performance_test_001 averageTime:');
246    done();
247  });
248
249  /**
250   * @tc.name      replaceRecord_performance_test_001
251   * @tc.desc      replaceRecord interface performance test
252   * @tc.type      PERF
253   * @tc.require   I5YP4X
254   */
255  it('replaceRecord_performance_test_001', 0, async function (done) {
256    let pasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_URI, uriText);
257    let dataRecord = pasteboard.createRecord(pasteboard.MIMETYPE_TEXT_URI, uriText);
258    let startTime = new Date().getTime();
259    funcWithTwoparam(pasteData.replaceRecord, 0, dataRecord, BASE_CONUT);
260    computeAverageTime(startTime, BASE_CONUT, 'replaceRecord_performance_test_001 averageTime:');
261    done();
262  });
263
264  /**
265   * @tc.name      addHtmlRecord_performance_test_001
266   * @tc.desc      addHtmlRecord interface performance test
267   * @tc.type      PERF
268   * @tc.require   I5YP4X
269   */
270  it('addHtmlRecord_performance_test_001', 0, async function (done) {
271    let pasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_URI, uriText);
272    let startTime = new Date().getTime();
273    funcWithOneparam(pasteData.addHtmlRecord, htmlText, BASE_CONUT);
274    computeAverageTime(startTime, BASE_CONUT, 'addHtmlRecord_performance_test_001 averageTime:');
275    done();
276  });
277
278  /**
279   * @tc.name      addWantRecord_performance_test_001
280   * @tc.desc      addWantRecord interface performance test
281   * @tc.type      PERF
282   * @tc.require   I5YP4X
283   */
284  it('addWantRecord_performance_test_001', 0, async function (done) {
285    let pasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_URI, uriText);
286    let startTime = new Date().getTime();
287    funcWithOneparam(pasteData.addWantRecord, wantText, BASE_CONUT);
288    computeAverageTime(startTime, BASE_CONUT, 'addWantRecord_performance_test_001 averageTime:');
289    done();
290  });
291
292  /**
293   * @tc.name      addRecord_performance_test_002
294   * @tc.desc      addRecord interface performance test
295   * @tc.type      PERF
296   * @tc.require   I5YP4X
297   */
298  it('addRecord_performance_test_002', 0, async function (done) {
299    let pasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_URI, uriText);
300    let dataRecord = pasteboard.createRecord(pasteboard.MIMETYPE_TEXT_URI, uriText);
301    let startTime = new Date().getTime();
302    funcWithOneparam(pasteData.addRecord, dataRecord, BASE_CONUT);
303    computeAverageTime(startTime, BASE_CONUT, 'addRecord_performance_test_002 averageTime:');
304    done();
305  });
306
307  /**
308   * @tc.name      addTextRecord_performance_test_001
309   * @tc.desc      addTextRecord interface performance test
310   * @tc.type      PERF
311   * @tc.require   I5YP4X
312   */
313  it('addTextRecord_performance_test_001', 0, async function (done) {
314    let pasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_URI, uriText);
315    let startTime = new Date().getTime();
316    funcWithOneparam(pasteData.addTextRecord, plainText, BASE_CONUT);
317    computeAverageTime(startTime, BASE_CONUT, 'addTextRecord_performance_test_001 averageTime:');
318    done();
319  });
320
321  /**
322   * @tc.name      addUriRecord_performance_test_001
323   * @tc.desc      addUriRecord interface performance test
324   * @tc.type      PERF
325   * @tc.require   I5YP4X
326   */
327  it('addUriRecord_performance_test_001', 0, async function (done) {
328    let pasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_URI, uriText);
329    let startTime = new Date().getTime();
330    funcWithOneparam(pasteData.addUriRecord, uriText, BASE_CONUT);
331    computeAverageTime(startTime, BASE_CONUT, 'addUriRecord_performance_test_001 averageTime:');
332    done();
333  });
334
335  /**
336   * @tc.name      getMimeTypes_performance_test_001
337   * @tc.desc      getMimeTypes interface performance test
338   * @tc.type      PERF
339   * @tc.require   I5YP4X
340   */
341  it('getMimeTypes_performance_test_001', 0, async function (done) {
342    let pasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_URI, uriText);
343    let startTime = new Date().getTime();
344    funcWithNoparam(pasteData.getMimeTypes, BASE_CONUT);
345    computeAverageTime(startTime, BASE_CONUT, 'getMimeTypes_performance_test_001 averageTime:');
346    done();
347  });
348
349  /**
350   * @tc.name      getPrimaryHtml_performance_test_001
351   * @tc.desc      getPrimaryHtml interface performance test
352   * @tc.type      PERF
353   * @tc.require   I5YP4X
354   */
355  it('getPrimaryHtml_performance_test_001', 0, async function (done) {
356    let pasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_HTML, htmlText);
357    let startTime = new Date().getTime();
358    funcWithNoparam(pasteData.getPrimaryHtml, BASE_CONUT);
359    computeAverageTime(startTime, BASE_CONUT, 'getPrimaryHtml_performance_test_001 averageTime:');
360    done();
361  });
362
363  /**
364   * @tc.name      getPrimaryWant_performance_test_001
365   * @tc.desc      getPrimaryWant interface performance test
366   * @tc.type      PERF
367   * @tc.require   I5YP4X
368   */
369  it('getPrimaryWant_performance_test_001', 0, async function (done) {
370    let pasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_WANT, wantText);
371    let startTime = new Date().getTime();
372    funcWithNoparam(pasteData.getPrimaryWant, BASE_CONUT);
373    computeAverageTime(startTime, BASE_CONUT, 'getPrimaryWant_performance_test_001 averageTime:');
374    done();
375  });
376
377  /**
378   * @tc.name      getPrimaryMimeType_performance_test_001
379   * @tc.desc      getPrimaryMimeType interface performance test
380   * @tc.type      PERF
381   * @tc.require   I5YP4X
382   */
383  it('getPrimaryMimeType_performance_test_001', 0, async function (done) {
384    let pasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_WANT, wantText);
385    let startTime = new Date().getTime();
386    funcWithNoparam(pasteData.getPrimaryMimeType, BASE_CONUT);
387    computeAverageTime(startTime, BASE_CONUT, 'getPrimaryMimeType_performance_test_001 averageTime:');
388    done();
389  });
390
391  /**
392   * @tc.name      getPrimaryUri_performance_test_001
393   * @tc.desc      getPrimaryUri interface performance test
394   * @tc.type      PERF
395   * @tc.require   I5YP4X
396   */
397  it('getPrimaryUri_performance_test_001', 0, async function (done) {
398    let pasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_URI, uriText);
399    let startTime = new Date().getTime();
400    funcWithNoparam(pasteData.getPrimaryUri, BASE_CONUT);
401    computeAverageTime(startTime, BASE_CONUT, 'getPrimaryUri_performance_test_001 averageTime:');
402    done();
403  });
404
405  /**
406   * @tc.name      getPrimaryPixelMap_performance_test_001
407   * @tc.desc      getPrimaryPixelMap interface performance test
408   * @tc.type      PERF
409   * @tc.require   I5YP4X
410   */
411  it('getPrimaryPixelMap_performance_test_001', 0, async function (done) {
412    let pixelMap = await image.createPixelMap(pixelMapBuffer, opt);
413    let pasteData = pasteboard.createData(pasteboard.MIMETYPE_PIXELMAP, pixelMap);
414    let startTime = new Date().getTime();
415    funcWithNoparam(pasteData.getPrimaryPixelMap, BASE_CONUT);
416    computeAverageTime(startTime, BASE_CONUT, 'getPrimaryPixelMap_performance_test_001 averageTime:');
417    done();
418  });
419
420  /**
421   * @tc.name      getProperty_performance_test_001
422   * @tc.desc      getProperty interface performance test
423   * @tc.type      PERF
424   * @tc.require   I5YP4X
425   */
426  it('getProperty_performance_test_001', 0, async function (done) {
427    let pasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_URI, uriText);
428    let startTime = new Date().getTime();
429    funcWithNoparam(pasteData.getProperty, BASE_CONUT);
430    computeAverageTime(startTime, BASE_CONUT, 'getProperty_performance_test_001 averageTime:');
431    done();
432  });
433
434  /**
435   * @tc.name      setProperty_performance_test_001
436   * @tc.desc      setProperty interface performance test
437   * @tc.type      PERF
438   * @tc.require   I5YP4X
439   */
440  it('setProperty_performance_test_001', 0, async function (done) {
441    let pasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_URI, uriText);
442    let property = pasteData.getProperty();
443    let startTime = new Date().getTime();
444    funcWithOneparam(pasteData.setProperty, property, BASE_CONUT);
445    computeAverageTime(startTime, BASE_CONUT, 'setProperty_performance_test_001 averageTime:');
446    done();
447  });
448
449  /**
450   * @tc.name      getRecordAt_performance_test_001
451   * @tc.desc      getRecordAt interface performance test
452   * @tc.type      PERF
453   * @tc.require   I5YP4X
454   */
455  it('getRecordAt_performance_test_001', 0, async function (done) {
456    let pasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_URI, uriText);
457    let startTime = new Date().getTime();
458    funcWithOneparam(pasteData.getRecordAt, 0, BASE_CONUT);
459    computeAverageTime(startTime, BASE_CONUT, 'getRecordAt_performance_test_001 averageTime:');
460    done();
461  });
462
463  /**
464   * @tc.name      getRecordCount_performance_test_001
465   * @tc.desc      getRecordCount interface performance test
466   * @tc.type      PERF
467   * @tc.require   I5YP4X
468   */
469  it('getRecordCount_performance_test_001', 0, async function (done) {
470    let pasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_URI, uriText);
471    let startTime = new Date().getTime();
472    funcWithNoparam(pasteData.getRecordCount, BASE_CONUT);
473    computeAverageTime(startTime, BASE_CONUT, 'getRecordCount_performance_test_001 averageTime:');
474    done();
475  });
476
477  /**
478   * @tc.name      hasMimeType_performance_test_001
479   * @tc.desc      hasMimeType interface performance test
480   * @tc.type      PERF
481   * @tc.require   I5YP4X
482   */
483  it('hasMimeType_performance_test_001', 0, async function (done) {
484    let pasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_URI, uriText);
485    let startTime = new Date().getTime();
486    funcWithOneparam(pasteData.hasMimeType, pasteboard.MIMETYPE_TEXT_URI, BASE_CONUT);
487    computeAverageTime(startTime, BASE_CONUT, 'hasMimeType_performance_test_001 averageTime:');
488    done();
489  });
490
491  /**
492   * @tc.name      removeRecordAt_performance_test_001
493   * @tc.desc      removeRecordAt interface performance test
494   * @tc.type      PERF
495   * @tc.require   I5YP4X
496   */
497  it('removeRecordAt_performance_test_001', 0, async function (done) {
498    let pasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_URI, uriText);
499    let startTime = new Date().getTime();
500    funcWithOneparam(pasteData.removeRecordAt, 0, BASE_CONUT);
501    computeAverageTime(startTime, BASE_CONUT, 'removeRecordAt_performance_test_001 averageTime:');
502    done();
503  });
504
505  /**
506   * @tc.name      replaceRecordAt_performance_test_001
507   * @tc.desc      replaceRecordAt interface performance test
508   * @tc.type      PERF
509   * @tc.require   I5YP4X
510   */
511  it('replaceRecordAt_performance_test_001', 0, async function (done) {
512    let pasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_URI, uriText);
513    let dataRecord = pasteboard.createRecord(pasteboard.MIMETYPE_TEXT_HTML, htmlText);
514    let startTime = new Date().getTime();
515    funcWithTwoparam(pasteData.replaceRecordAt, 0, dataRecord, BASE_CONUT);
516    computeAverageTime(startTime, BASE_CONUT, 'replaceRecordAt_performance_test_001 averageTime:');
517    done();
518  });
519
520  /**
521   * @tc.name      on_performance_test_001
522   * @tc.desc      on interface performance test
523   * @tc.type      PERF
524   * @tc.require   I5YP4X
525   */
526  it('on_performance_test_001', 0, async function (done) {
527    let systemPasteboard = pasteboard.getSystemPasteboard();
528    let startTime = new Date().getTime();
529    funcWithTwoparam(systemPasteboard.on, 'update', contentChanges, BASE_CONUT);
530    computeAverageTime(startTime, BASE_CONUT, 'on_performance_test_001 averageTime:');
531    done();
532  });
533
534  /**
535   * @tc.name      off_performance_test_001
536   * @tc.desc      off interface performance test
537   * @tc.type      PERF
538   * @tc.require   I5YP4X
539   */
540  it('off_performance_test_001', 0, async function (done) {
541    let systemPasteboard = pasteboard.getSystemPasteboard();
542    let startTime = new Date().getTime();
543    funcWithTwoparam(systemPasteboard.off, 'update', contentChanges, BASE_CONUT);
544    computeAverageTime(startTime, BASE_CONUT, 'off_performance_test_001 averageTime:');
545    done();
546  });
547
548  function funcWithNoparam(func, count) {
549    for (let index = 0; index < count; index++) {
550      func();
551    }
552  }
553
554  function funcWithOneparam(func, param, count) {
555    for (let index = 0; index < count; index++) {
556      func(param);
557    }
558  }
559
560  function funcWithTwoparam(func, paramOne, paramTwo, count) {
561    for (let index = 0; index < count; index++) {
562      func(paramOne, paramTwo);
563    }
564  }
565
566  function computeAverageTime(startTime, baseCount, message) {
567    let endTime = new Date().getTime();
568    let averageTime = ((endTime - startTime) * 1000) / baseCount;
569    console.info(message + averageTime);
570  }
571
572  function contentChanges() {
573    console.info('#EVENT: The content is changed in the pasteboard');
574  }
575});
576