~launchpad-pqm/launchpad/devel

« back to all changes in this revision

Viewing changes to lib/lp/app/javascript/lazr/testing/mockio.js

  • Committer: Launchpad Patch Queue Manager
  • Date: 2011-07-08 03:08:43 UTC
  • mfrom: (13314.10.11 lazr-js-tests)
  • Revision ID: launchpad@pqm.canonical.com-20110708030843-lmw3ba9pva8bcdyy
[r=allenap][bug=806956] Refactor the lazr-js javascript tests so they
 are run as part of the Launchpad YUI test layer.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/* Copyright (c) 2009, Canonical Ltd. All rights reserved. */
2
 
 
3
 
YUI.add('lazr.testing.mockio', function(Y) {
4
 
/**
5
 
 * A utility module for use in YUI unit-tests with a helper for mocking Y.io.
6
 
 *
7
 
 * @module lazr.testing
8
 
 */
9
 
var MockIo = function() {
10
 
    this.uri = null;
11
 
    this.cfg = null;
12
 
};
13
 
 
14
 
/* Save the Y.io() arguments. */
15
 
MockIo.prototype.io = function(uri, cfg) {
16
 
    this.uri = uri;
17
 
    this.cfg = cfg;
18
 
    return this;  // Usually this isn't used, except for logging.
19
 
};
20
 
 
21
 
/* Simulate the Xhr request/response cycle. */
22
 
MockIo.prototype.simulateXhr = function(response, is_failure) {
23
 
    var cfg = this.cfg;
24
 
    var context = cfg.context || this;
25
 
    var args = cfg.arguments;
26
 
    var tId = 'mockTId';
27
 
    if (!response) {
28
 
        response = {};
29
 
    }
30
 
 
31
 
    // See the Y.io utility documentation for the signatures.
32
 
    if (cfg.on.start) {
33
 
        cfg.on.start.call(context, tId, args);
34
 
    }
35
 
    if (cfg.on.complete) {
36
 
        cfg.on.complete.call(context, tId, response, args);
37
 
    }
38
 
    if (cfg.on.success && !is_failure) {
39
 
        cfg.on.success.call(context, tId, response, args);
40
 
    }
41
 
    if (cfg.on.failure && is_failure) {
42
 
        cfg.on.failure.call(context, tId, response, args);
43
 
    }
44
 
};
45
 
 
46
 
/* Make a successful XHR response object. */
47
 
MockIo.makeXhrSuccessResponse = function(responseText) {
48
 
    var text = responseText || "";
49
 
    return {
50
 
        status: 200,
51
 
        statusText: "OK",
52
 
        responseText: text
53
 
    };
54
 
};
55
 
 
56
 
/* Make a failed XHR response object. */
57
 
MockIo.makeXhrFailureResponse = function(responseText) {
58
 
    var text = responseText || "";
59
 
    return {
60
 
        status: 500,
61
 
        statusText: "Internal Server Error",
62
 
        responseText: text
63
 
    };
64
 
};
65
 
 
66
 
Y.namespace("lazr.testing");
67
 
Y.lazr.testing.MockIo = MockIo;
68
 
 
69
 
}, '0.1', {});