File: mockTransfer.js

package info (click to toggle)
thunderbird 1%3A78.14.0-1~deb10u1
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 2,922,628 kB
  • sloc: cpp: 5,990,120; javascript: 4,418,692; ansic: 3,063,889; python: 915,509; asm: 304,197; xml: 206,623; sh: 109,253; java: 108,679; makefile: 22,985; perl: 15,867; yacc: 4,565; objc: 3,026; pascal: 1,787; lex: 1,720; ada: 1,681; cs: 879; exp: 505; awk: 485; sql: 452; php: 436; lisp: 432; ruby: 99; sed: 69; csh: 45
file content (85 lines) | stat: -rw-r--r-- 2,551 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */

Services.scriptloader.loadSubScript(
  "chrome://mochikit/content/tests/SimpleTest/MockObjects.js",
  this
);

var mockTransferCallback;

/**
 * This "transfer" object implementation continues the currently running test
 * when the download is completed, reporting true for success or false for
 * failure as the first argument of the testRunner.continueTest function.
 */
function MockTransfer() {
  this._downloadIsSuccessful = true;
}

MockTransfer.prototype = {
  QueryInterface: ChromeUtils.generateQI([
    Ci.nsIWebProgressListener,
    Ci.nsIWebProgressListener2,
    Ci.nsITransfer,
  ]),

  /* nsIWebProgressListener */
  onStateChange: function MTFC_onStateChange(
    aWebProgress,
    aRequest,
    aStateFlags,
    aStatus
  ) {
    // If at least one notification reported an error, the download failed.
    if (!Components.isSuccessCode(aStatus)) {
      this._downloadIsSuccessful = false;
    }

    // If the download is finished
    if (
      aStateFlags & Ci.nsIWebProgressListener.STATE_STOP &&
      aStateFlags & Ci.nsIWebProgressListener.STATE_IS_NETWORK
    ) {
      // Continue the test, reporting the success or failure condition.
      mockTransferCallback(this._downloadIsSuccessful);
    }
  },
  onProgressChange() {},
  onLocationChange() {},
  onStatusChange: function MTFC_onStatusChange(
    aWebProgress,
    aRequest,
    aStatus,
    aMessage
  ) {
    // If at least one notification reported an error, the download failed.
    if (!Components.isSuccessCode(aStatus)) {
      this._downloadIsSuccessful = false;
    }
  },
  onSecurityChange() {},
  onContentBlockingEvent() {},

  /* nsIWebProgressListener2 */
  onProgressChange64() {},
  onRefreshAttempted() {},

  /* nsITransfer */
  init() {},
  initWithBrowsingContext() {},
  setSha256Hash() {},
  setSignatureInfo() {},
};

// Create an instance of a MockObjectRegisterer whose methods can be used to
// temporarily replace the default "@mozilla.org/transfer;1" object factory with
// one that provides the mock implementation above. To activate the mock object
// factory, call the "register" method. Starting from that moment, all the
// transfer objects that are requested will be mock objects, until the
// "unregister" method is called.
var mockTransferRegisterer = new MockObjectRegisterer(
  "@mozilla.org/transfer;1",
  MockTransfer
);