annotate js/modules/mocks.js @ 102:00b02ba5236c

made all delegates have a dotted name (namespaced), modified black-box.js a bit
author Atul Varma <avarma@mozilla.com>
date Wed, 28 Apr 2010 20:06:26 -0700
parents c486d35fad27
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
99
544d339d2b4c Added the beginnings of a black-box app that can be used to generate/run functional tests.
Atul Varma <avarma@mozilla.com>
parents: 69
diff changeset
1 Require.modules["mocks/cache"] = function(exports, require) {
544d339d2b4c Added the beginnings of a black-box app that can be used to generate/run functional tests.
Atul Varma <avarma@mozilla.com>
parents: 69
diff changeset
2 function copy(obj) {
100
c486d35fad27 added more mocks; black-box now talks to a really simple fake bugzilla 'server'.
Atul Varma <avarma@mozilla.com>
parents: 99
diff changeset
3 if (typeof(obj) == "function")
c486d35fad27 added more mocks; black-box now talks to a really simple fake bugzilla 'server'.
Atul Varma <avarma@mozilla.com>
parents: 99
diff changeset
4 throw new Error("can't store functions");
c486d35fad27 added more mocks; black-box now talks to a really simple fake bugzilla 'server'.
Atul Varma <avarma@mozilla.com>
parents: 99
diff changeset
5 if (typeof(obj) == "object")
c486d35fad27 added more mocks; black-box now talks to a really simple fake bugzilla 'server'.
Atul Varma <avarma@mozilla.com>
parents: 99
diff changeset
6 return JSON.parse(JSON.stringify(obj));
c486d35fad27 added more mocks; black-box now talks to a really simple fake bugzilla 'server'.
Atul Varma <avarma@mozilla.com>
parents: 99
diff changeset
7 return obj;
99
544d339d2b4c Added the beginnings of a black-box app that can be used to generate/run functional tests.
Atul Varma <avarma@mozilla.com>
parents: 69
diff changeset
8 }
544d339d2b4c Added the beginnings of a black-box app that can be used to generate/run functional tests.
Atul Varma <avarma@mozilla.com>
parents: 69
diff changeset
9
100
c486d35fad27 added more mocks; black-box now talks to a really simple fake bugzilla 'server'.
Atul Varma <avarma@mozilla.com>
parents: 99
diff changeset
10 function MockCache(delegate) {
c486d35fad27 added more mocks; black-box now talks to a really simple fake bugzilla 'server'.
Atul Varma <avarma@mozilla.com>
parents: 99
diff changeset
11 this.delegate = delegate;
99
544d339d2b4c Added the beginnings of a black-box app that can be used to generate/run functional tests.
Atul Varma <avarma@mozilla.com>
parents: 69
diff changeset
12 this.cache = {};
544d339d2b4c Added the beginnings of a black-box app that can be used to generate/run functional tests.
Atul Varma <avarma@mozilla.com>
parents: 69
diff changeset
13 };
544d339d2b4c Added the beginnings of a black-box app that can be used to generate/run functional tests.
Atul Varma <avarma@mozilla.com>
parents: 69
diff changeset
14
544d339d2b4c Added the beginnings of a black-box app that can be used to generate/run functional tests.
Atul Varma <avarma@mozilla.com>
parents: 69
diff changeset
15 MockCache.prototype = {
544d339d2b4c Added the beginnings of a black-box app that can be used to generate/run functional tests.
Atul Varma <avarma@mozilla.com>
parents: 69
diff changeset
16 get: function get(key) {
102
00b02ba5236c made all delegates have a dotted name (namespaced), modified black-box.js a bit
Atul Varma <avarma@mozilla.com>
parents: 100
diff changeset
17 this.delegate("cache.get", [key]);
99
544d339d2b4c Added the beginnings of a black-box app that can be used to generate/run functional tests.
Atul Varma <avarma@mozilla.com>
parents: 69
diff changeset
18 if (key in this.cache)
544d339d2b4c Added the beginnings of a black-box app that can be used to generate/run functional tests.
Atul Varma <avarma@mozilla.com>
parents: 69
diff changeset
19 return copy(this.cache[key]);
544d339d2b4c Added the beginnings of a black-box app that can be used to generate/run functional tests.
Atul Varma <avarma@mozilla.com>
parents: 69
diff changeset
20 return null;
544d339d2b4c Added the beginnings of a black-box app that can be used to generate/run functional tests.
Atul Varma <avarma@mozilla.com>
parents: 69
diff changeset
21 },
544d339d2b4c Added the beginnings of a black-box app that can be used to generate/run functional tests.
Atul Varma <avarma@mozilla.com>
parents: 69
diff changeset
22 set: function set(key, value) {
102
00b02ba5236c made all delegates have a dotted name (namespaced), modified black-box.js a bit
Atul Varma <avarma@mozilla.com>
parents: 100
diff changeset
23 this.delegate("cache.set", [key, value]);
99
544d339d2b4c Added the beginnings of a black-box app that can be used to generate/run functional tests.
Atul Varma <avarma@mozilla.com>
parents: 69
diff changeset
24 this.cache[key] = copy(value);
544d339d2b4c Added the beginnings of a black-box app that can be used to generate/run functional tests.
Atul Varma <avarma@mozilla.com>
parents: 69
diff changeset
25 },
100
c486d35fad27 added more mocks; black-box now talks to a really simple fake bugzilla 'server'.
Atul Varma <avarma@mozilla.com>
parents: 99
diff changeset
26 clear: function clear() {
102
00b02ba5236c made all delegates have a dotted name (namespaced), modified black-box.js a bit
Atul Varma <avarma@mozilla.com>
parents: 100
diff changeset
27 this.delegate("cache.clear", []);
99
544d339d2b4c Added the beginnings of a black-box app that can be used to generate/run functional tests.
Atul Varma <avarma@mozilla.com>
parents: 69
diff changeset
28 this.cache = {};
544d339d2b4c Added the beginnings of a black-box app that can be used to generate/run functional tests.
Atul Varma <avarma@mozilla.com>
parents: 69
diff changeset
29 }
544d339d2b4c Added the beginnings of a black-box app that can be used to generate/run functional tests.
Atul Varma <avarma@mozilla.com>
parents: 69
diff changeset
30 };
544d339d2b4c Added the beginnings of a black-box app that can be used to generate/run functional tests.
Atul Varma <avarma@mozilla.com>
parents: 69
diff changeset
31
100
c486d35fad27 added more mocks; black-box now talks to a really simple fake bugzilla 'server'.
Atul Varma <avarma@mozilla.com>
parents: 99
diff changeset
32 exports.create = function create(delegate) {
c486d35fad27 added more mocks; black-box now talks to a really simple fake bugzilla 'server'.
Atul Varma <avarma@mozilla.com>
parents: 99
diff changeset
33 return new MockCache(delegate);
c486d35fad27 added more mocks; black-box now talks to a really simple fake bugzilla 'server'.
Atul Varma <avarma@mozilla.com>
parents: 99
diff changeset
34 };
c486d35fad27 added more mocks; black-box now talks to a really simple fake bugzilla 'server'.
Atul Varma <avarma@mozilla.com>
parents: 99
diff changeset
35 };
c486d35fad27 added more mocks; black-box now talks to a really simple fake bugzilla 'server'.
Atul Varma <avarma@mozilla.com>
parents: 99
diff changeset
36
c486d35fad27 added more mocks; black-box now talks to a really simple fake bugzilla 'server'.
Atul Varma <avarma@mozilla.com>
parents: 99
diff changeset
37 Require.modules["mocks/bugzilla/trivial"] = function(exports, require) {
c486d35fad27 added more mocks; black-box now talks to a really simple fake bugzilla 'server'.
Atul Varma <avarma@mozilla.com>
parents: 99
diff changeset
38 var bug = {
c486d35fad27 added more mocks; black-box now talks to a really simple fake bugzilla 'server'.
Atul Varma <avarma@mozilla.com>
parents: 99
diff changeset
39 'summary': 'Application destroys computer on startup',
c486d35fad27 added more mocks; black-box now talks to a really simple fake bugzilla 'server'.
Atul Varma <avarma@mozilla.com>
parents: 99
diff changeset
40 'last_change_time': '2010-04-13T18:02:00Z',
c486d35fad27 added more mocks; black-box now talks to a really simple fake bugzilla 'server'.
Atul Varma <avarma@mozilla.com>
parents: 99
diff changeset
41 'status': 'NEW',
c486d35fad27 added more mocks; black-box now talks to a really simple fake bugzilla 'server'.
Atul Varma <avarma@mozilla.com>
parents: 99
diff changeset
42 'priority': 'P1',
c486d35fad27 added more mocks; black-box now talks to a really simple fake bugzilla 'server'.
Atul Varma <avarma@mozilla.com>
parents: 99
diff changeset
43 'severity': 'blocker',
c486d35fad27 added more mocks; black-box now talks to a really simple fake bugzilla 'server'.
Atul Varma <avarma@mozilla.com>
parents: 99
diff changeset
44 'id': '558680'
c486d35fad27 added more mocks; black-box now talks to a really simple fake bugzilla 'server'.
Atul Varma <avarma@mozilla.com>
parents: 99
diff changeset
45 };
c486d35fad27 added more mocks; black-box now talks to a really simple fake bugzilla 'server'.
Atul Varma <avarma@mozilla.com>
parents: 99
diff changeset
46
c486d35fad27 added more mocks; black-box now talks to a really simple fake bugzilla 'server'.
Atul Varma <avarma@mozilla.com>
parents: 99
diff changeset
47 var user = {
c486d35fad27 added more mocks; black-box now talks to a really simple fake bugzilla 'server'.
Atul Varma <avarma@mozilla.com>
parents: 99
diff changeset
48 'email': 'john@doe.com',
c486d35fad27 added more mocks; black-box now talks to a really simple fake bugzilla 'server'.
Atul Varma <avarma@mozilla.com>
parents: 99
diff changeset
49 'real_name': 'John Doe',
c486d35fad27 added more mocks; black-box now talks to a really simple fake bugzilla 'server'.
Atul Varma <avarma@mozilla.com>
parents: 99
diff changeset
50 'name': 'john@doe.com'
c486d35fad27 added more mocks; black-box now talks to a really simple fake bugzilla 'server'.
Atul Varma <avarma@mozilla.com>
parents: 99
diff changeset
51 };
c486d35fad27 added more mocks; black-box now talks to a really simple fake bugzilla 'server'.
Atul Varma <avarma@mozilla.com>
parents: 99
diff changeset
52
c486d35fad27 added more mocks; black-box now talks to a really simple fake bugzilla 'server'.
Atul Varma <avarma@mozilla.com>
parents: 99
diff changeset
53 var config = {
c486d35fad27 added more mocks; black-box now talks to a really simple fake bugzilla 'server'.
Atul Varma <avarma@mozilla.com>
parents: 99
diff changeset
54 product: {
c486d35fad27 added more mocks; black-box now talks to a really simple fake bugzilla 'server'.
Atul Varma <avarma@mozilla.com>
parents: 99
diff changeset
55 foo: {
c486d35fad27 added more mocks; black-box now talks to a really simple fake bugzilla 'server'.
Atul Varma <avarma@mozilla.com>
parents: 99
diff changeset
56 component: {
c486d35fad27 added more mocks; black-box now talks to a really simple fake bugzilla 'server'.
Atul Varma <avarma@mozilla.com>
parents: 99
diff changeset
57 caching: {},
c486d35fad27 added more mocks; black-box now talks to a really simple fake bugzilla 'server'.
Atul Varma <avarma@mozilla.com>
parents: 99
diff changeset
58 passwords: {}
c486d35fad27 added more mocks; black-box now talks to a really simple fake bugzilla 'server'.
Atul Varma <avarma@mozilla.com>
parents: 99
diff changeset
59 }
c486d35fad27 added more mocks; black-box now talks to a really simple fake bugzilla 'server'.
Atul Varma <avarma@mozilla.com>
parents: 99
diff changeset
60 },
c486d35fad27 added more mocks; black-box now talks to a really simple fake bugzilla 'server'.
Atul Varma <avarma@mozilla.com>
parents: 99
diff changeset
61 bar: {
c486d35fad27 added more mocks; black-box now talks to a really simple fake bugzilla 'server'.
Atul Varma <avarma@mozilla.com>
parents: 99
diff changeset
62 component: {
c486d35fad27 added more mocks; black-box now talks to a really simple fake bugzilla 'server'.
Atul Varma <avarma@mozilla.com>
parents: 99
diff changeset
63 "help system": {},
c486d35fad27 added more mocks; black-box now talks to a really simple fake bugzilla 'server'.
Atul Varma <avarma@mozilla.com>
parents: 99
diff changeset
64 "curmudgeonry": {}
c486d35fad27 added more mocks; black-box now talks to a really simple fake bugzilla 'server'.
Atul Varma <avarma@mozilla.com>
parents: 99
diff changeset
65 }
c486d35fad27 added more mocks; black-box now talks to a really simple fake bugzilla 'server'.
Atul Varma <avarma@mozilla.com>
parents: 99
diff changeset
66 }
c486d35fad27 added more mocks; black-box now talks to a really simple fake bugzilla 'server'.
Atul Varma <avarma@mozilla.com>
parents: 99
diff changeset
67 }
c486d35fad27 added more mocks; black-box now talks to a really simple fake bugzilla 'server'.
Atul Varma <avarma@mozilla.com>
parents: 99
diff changeset
68 };
c486d35fad27 added more mocks; black-box now talks to a really simple fake bugzilla 'server'.
Atul Varma <avarma@mozilla.com>
parents: 99
diff changeset
69
c486d35fad27 added more mocks; black-box now talks to a really simple fake bugzilla 'server'.
Atul Varma <avarma@mozilla.com>
parents: 99
diff changeset
70 exports.makeAjaxImpl = function makeAjaxImpl(delegate, setTimeout) {
c486d35fad27 added more mocks; black-box now talks to a really simple fake bugzilla 'server'.
Atul Varma <avarma@mozilla.com>
parents: 99
diff changeset
71 return function ajaxImpl(options) {
c486d35fad27 added more mocks; black-box now talks to a really simple fake bugzilla 'server'.
Atul Varma <avarma@mozilla.com>
parents: 99
diff changeset
72 var authenticated = false;
c486d35fad27 added more mocks; black-box now talks to a really simple fake bugzilla 'server'.
Atul Varma <avarma@mozilla.com>
parents: 99
diff changeset
73 if (options.data && options.data.username) {
c486d35fad27 added more mocks; black-box now talks to a really simple fake bugzilla 'server'.
Atul Varma <avarma@mozilla.com>
parents: 99
diff changeset
74 if (!(options.data.username == 'john@doe.com' &&
c486d35fad27 added more mocks; black-box now talks to a really simple fake bugzilla 'server'.
Atul Varma <avarma@mozilla.com>
parents: 99
diff changeset
75 options.data.password == 'test'))
c486d35fad27 added more mocks; black-box now talks to a really simple fake bugzilla 'server'.
Atul Varma <avarma@mozilla.com>
parents: 99
diff changeset
76 return {error: true, message: "wrong password, yo!"};
c486d35fad27 added more mocks; black-box now talks to a really simple fake bugzilla 'server'.
Atul Varma <avarma@mozilla.com>
parents: 99
diff changeset
77 authenticated = true;
c486d35fad27 added more mocks; black-box now talks to a really simple fake bugzilla 'server'.
Atul Varma <avarma@mozilla.com>
parents: 99
diff changeset
78 }
c486d35fad27 added more mocks; black-box now talks to a really simple fake bugzilla 'server'.
Atul Varma <avarma@mozilla.com>
parents: 99
diff changeset
79 switch (options.url) {
c486d35fad27 added more mocks; black-box now talks to a really simple fake bugzilla 'server'.
Atul Varma <avarma@mozilla.com>
parents: 99
diff changeset
80 case "/bug":
c486d35fad27 added more mocks; black-box now talks to a really simple fake bugzilla 'server'.
Atul Varma <avarma@mozilla.com>
parents: 99
diff changeset
81 if (!('resolution' in options.data))
c486d35fad27 added more mocks; black-box now talks to a really simple fake bugzilla 'server'.
Atul Varma <avarma@mozilla.com>
parents: 99
diff changeset
82 return {bugs: [bug]};
c486d35fad27 added more mocks; black-box now talks to a really simple fake bugzilla 'server'.
Atul Varma <avarma@mozilla.com>
parents: 99
diff changeset
83 return {bugs: []};
c486d35fad27 added more mocks; black-box now talks to a really simple fake bugzilla 'server'.
Atul Varma <avarma@mozilla.com>
parents: 99
diff changeset
84 case "/configuration":
c486d35fad27 added more mocks; black-box now talks to a really simple fake bugzilla 'server'.
Atul Varma <avarma@mozilla.com>
parents: 99
diff changeset
85 return config;
c486d35fad27 added more mocks; black-box now talks to a really simple fake bugzilla 'server'.
Atul Varma <avarma@mozilla.com>
parents: 99
diff changeset
86 case "/user":
c486d35fad27 added more mocks; black-box now talks to a really simple fake bugzilla 'server'.
Atul Varma <avarma@mozilla.com>
parents: 99
diff changeset
87 if (!authenticated)
c486d35fad27 added more mocks; black-box now talks to a really simple fake bugzilla 'server'.
Atul Varma <avarma@mozilla.com>
parents: 99
diff changeset
88 return {error: true, message: "needs login, yo!"};
c486d35fad27 added more mocks; black-box now talks to a really simple fake bugzilla 'server'.
Atul Varma <avarma@mozilla.com>
parents: 99
diff changeset
89 if (user.email.indexOf(options.data.match) != -1 ||
c486d35fad27 added more mocks; black-box now talks to a really simple fake bugzilla 'server'.
Atul Varma <avarma@mozilla.com>
parents: 99
diff changeset
90 user.real_name.indexOf(options.data.match) != -1)
c486d35fad27 added more mocks; black-box now talks to a really simple fake bugzilla 'server'.
Atul Varma <avarma@mozilla.com>
parents: 99
diff changeset
91 return {users: [user]};
c486d35fad27 added more mocks; black-box now talks to a really simple fake bugzilla 'server'.
Atul Varma <avarma@mozilla.com>
parents: 99
diff changeset
92 return {users: []};
c486d35fad27 added more mocks; black-box now talks to a really simple fake bugzilla 'server'.
Atul Varma <avarma@mozilla.com>
parents: 99
diff changeset
93 default:
c486d35fad27 added more mocks; black-box now talks to a really simple fake bugzilla 'server'.
Atul Varma <avarma@mozilla.com>
parents: 99
diff changeset
94 throw new Error("unexpected url: " + options.url);
c486d35fad27 added more mocks; black-box now talks to a really simple fake bugzilla 'server'.
Atul Varma <avarma@mozilla.com>
parents: 99
diff changeset
95 }
c486d35fad27 added more mocks; black-box now talks to a really simple fake bugzilla 'server'.
Atul Varma <avarma@mozilla.com>
parents: 99
diff changeset
96 };
99
544d339d2b4c Added the beginnings of a black-box app that can be used to generate/run functional tests.
Atul Varma <avarma@mozilla.com>
parents: 69
diff changeset
97 };
544d339d2b4c Added the beginnings of a black-box app that can be used to generate/run functional tests.
Atul Varma <avarma@mozilla.com>
parents: 69
diff changeset
98 };
544d339d2b4c Added the beginnings of a black-box app that can be used to generate/run functional tests.
Atul Varma <avarma@mozilla.com>
parents: 69
diff changeset
99
544d339d2b4c Added the beginnings of a black-box app that can be used to generate/run functional tests.
Atul Varma <avarma@mozilla.com>
parents: 69
diff changeset
100 Require.modules["mocks/bugzilla"] = function(exports, require) {
100
c486d35fad27 added more mocks; black-box now talks to a really simple fake bugzilla 'server'.
Atul Varma <avarma@mozilla.com>
parents: 99
diff changeset
101 const DEFAULT_RESPONSE_TIME = 500;
c486d35fad27 added more mocks; black-box now talks to a really simple fake bugzilla 'server'.
Atul Varma <avarma@mozilla.com>
parents: 99
diff changeset
102
c486d35fad27 added more mocks; black-box now talks to a really simple fake bugzilla 'server'.
Atul Varma <avarma@mozilla.com>
parents: 99
diff changeset
103 function response(delegate, obj, time) {
c486d35fad27 added more mocks; black-box now talks to a really simple fake bugzilla 'server'.
Atul Varma <avarma@mozilla.com>
parents: 99
diff changeset
104 if (time === undefined)
c486d35fad27 added more mocks; black-box now talks to a really simple fake bugzilla 'server'.
Atul Varma <avarma@mozilla.com>
parents: 99
diff changeset
105 time = DEFAULT_RESPONSE_TIME;
c486d35fad27 added more mocks; black-box now talks to a really simple fake bugzilla 'server'.
Atul Varma <avarma@mozilla.com>
parents: 99
diff changeset
106
102
00b02ba5236c made all delegates have a dotted name (namespaced), modified black-box.js a bit
Atul Varma <avarma@mozilla.com>
parents: 100
diff changeset
107 var req = require("mocks/xhr").create(delegate);
100
c486d35fad27 added more mocks; black-box now talks to a really simple fake bugzilla 'server'.
Atul Varma <avarma@mozilla.com>
parents: 99
diff changeset
108
c486d35fad27 added more mocks; black-box now talks to a really simple fake bugzilla 'server'.
Atul Varma <avarma@mozilla.com>
parents: 99
diff changeset
109 require("window").setTimeout(
c486d35fad27 added more mocks; black-box now talks to a really simple fake bugzilla 'server'.
Atul Varma <avarma@mozilla.com>
parents: 99
diff changeset
110 function() {
c486d35fad27 added more mocks; black-box now talks to a really simple fake bugzilla 'server'.
Atul Varma <avarma@mozilla.com>
parents: 99
diff changeset
111 req.responseText = JSON.stringify(obj);
c486d35fad27 added more mocks; black-box now talks to a really simple fake bugzilla 'server'.
Atul Varma <avarma@mozilla.com>
parents: 99
diff changeset
112 req.status = 200;
c486d35fad27 added more mocks; black-box now talks to a really simple fake bugzilla 'server'.
Atul Varma <avarma@mozilla.com>
parents: 99
diff changeset
113 req.statusText = "OK";
c486d35fad27 added more mocks; black-box now talks to a really simple fake bugzilla 'server'.
Atul Varma <avarma@mozilla.com>
parents: 99
diff changeset
114 req.mockTriggerEvent({type: "load", target: req});
c486d35fad27 added more mocks; black-box now talks to a really simple fake bugzilla 'server'.
Atul Varma <avarma@mozilla.com>
parents: 99
diff changeset
115 },
c486d35fad27 added more mocks; black-box now talks to a really simple fake bugzilla 'server'.
Atul Varma <avarma@mozilla.com>
parents: 99
diff changeset
116 time
c486d35fad27 added more mocks; black-box now talks to a really simple fake bugzilla 'server'.
Atul Varma <avarma@mozilla.com>
parents: 99
diff changeset
117 );
c486d35fad27 added more mocks; black-box now talks to a really simple fake bugzilla 'server'.
Atul Varma <avarma@mozilla.com>
parents: 99
diff changeset
118 return req;
c486d35fad27 added more mocks; black-box now talks to a really simple fake bugzilla 'server'.
Atul Varma <avarma@mozilla.com>
parents: 99
diff changeset
119 }
c486d35fad27 added more mocks; black-box now talks to a really simple fake bugzilla 'server'.
Atul Varma <avarma@mozilla.com>
parents: 99
diff changeset
120
c486d35fad27 added more mocks; black-box now talks to a really simple fake bugzilla 'server'.
Atul Varma <avarma@mozilla.com>
parents: 99
diff changeset
121 exports.create = function create(Bugzilla, ajaxImpl, delegate) {
99
544d339d2b4c Added the beginnings of a black-box app that can be used to generate/run functional tests.
Atul Varma <avarma@mozilla.com>
parents: 69
diff changeset
122 function MockBugzilla() {
544d339d2b4c Added the beginnings of a black-box app that can be used to generate/run functional tests.
Atul Varma <avarma@mozilla.com>
parents: 69
diff changeset
123 this.ajax = function ajax(options) {
102
00b02ba5236c made all delegates have a dotted name (namespaced), modified black-box.js a bit
Atul Varma <avarma@mozilla.com>
parents: 100
diff changeset
124 delegate("bugzilla.ajax", options);
100
c486d35fad27 added more mocks; black-box now talks to a really simple fake bugzilla 'server'.
Atul Varma <avarma@mozilla.com>
parents: 99
diff changeset
125 var obj = ajaxImpl(options, exports);
c486d35fad27 added more mocks; black-box now talks to a really simple fake bugzilla 'server'.
Atul Varma <avarma@mozilla.com>
parents: 99
diff changeset
126 var req = response(delegate, obj);
c486d35fad27 added more mocks; black-box now talks to a really simple fake bugzilla 'server'.
Atul Varma <avarma@mozilla.com>
parents: 99
diff changeset
127 req.addEventListener(
c486d35fad27 added more mocks; black-box now talks to a really simple fake bugzilla 'server'.
Atul Varma <avarma@mozilla.com>
parents: 99
diff changeset
128 "load",
c486d35fad27 added more mocks; black-box now talks to a really simple fake bugzilla 'server'.
Atul Varma <avarma@mozilla.com>
parents: 99
diff changeset
129 function onLoad() {
c486d35fad27 added more mocks; black-box now talks to a really simple fake bugzilla 'server'.
Atul Varma <avarma@mozilla.com>
parents: 99
diff changeset
130 var response = JSON.parse(req.responseText);
c486d35fad27 added more mocks; black-box now talks to a really simple fake bugzilla 'server'.
Atul Varma <avarma@mozilla.com>
parents: 99
diff changeset
131 if (!response.error)
c486d35fad27 added more mocks; black-box now talks to a really simple fake bugzilla 'server'.
Atul Varma <avarma@mozilla.com>
parents: 99
diff changeset
132 options.success(response);
c486d35fad27 added more mocks; black-box now talks to a really simple fake bugzilla 'server'.
Atul Varma <avarma@mozilla.com>
parents: 99
diff changeset
133 },
c486d35fad27 added more mocks; black-box now talks to a really simple fake bugzilla 'server'.
Atul Varma <avarma@mozilla.com>
parents: 99
diff changeset
134 false
c486d35fad27 added more mocks; black-box now talks to a really simple fake bugzilla 'server'.
Atul Varma <avarma@mozilla.com>
parents: 99
diff changeset
135 );
c486d35fad27 added more mocks; black-box now talks to a really simple fake bugzilla 'server'.
Atul Varma <avarma@mozilla.com>
parents: 99
diff changeset
136 return req;
99
544d339d2b4c Added the beginnings of a black-box app that can be used to generate/run functional tests.
Atul Varma <avarma@mozilla.com>
parents: 69
diff changeset
137 };
544d339d2b4c Added the beginnings of a black-box app that can be used to generate/run functional tests.
Atul Varma <avarma@mozilla.com>
parents: 69
diff changeset
138 };
544d339d2b4c Added the beginnings of a black-box app that can be used to generate/run functional tests.
Atul Varma <avarma@mozilla.com>
parents: 69
diff changeset
139
544d339d2b4c Added the beginnings of a black-box app that can be used to generate/run functional tests.
Atul Varma <avarma@mozilla.com>
parents: 69
diff changeset
140 MockBugzilla.prototype = Bugzilla;
544d339d2b4c Added the beginnings of a black-box app that can be used to generate/run functional tests.
Atul Varma <avarma@mozilla.com>
parents: 69
diff changeset
141
544d339d2b4c Added the beginnings of a black-box app that can be used to generate/run functional tests.
Atul Varma <avarma@mozilla.com>
parents: 69
diff changeset
142 return new MockBugzilla();
544d339d2b4c Added the beginnings of a black-box app that can be used to generate/run functional tests.
Atul Varma <avarma@mozilla.com>
parents: 69
diff changeset
143 };
544d339d2b4c Added the beginnings of a black-box app that can be used to generate/run functional tests.
Atul Varma <avarma@mozilla.com>
parents: 69
diff changeset
144 };
544d339d2b4c Added the beginnings of a black-box app that can be used to generate/run functional tests.
Atul Varma <avarma@mozilla.com>
parents: 69
diff changeset
145
544d339d2b4c Added the beginnings of a black-box app that can be used to generate/run functional tests.
Atul Varma <avarma@mozilla.com>
parents: 69
diff changeset
146 Require.modules["mocks/xhr"] = function(exports, require) {
69
51c1829956d9 Added mock XHR object and a simple bugzilla ajax test
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
147 function MockXMLHttpRequest(delegate) {
51c1829956d9 Added mock XHR object and a simple bugzilla ajax test
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
148 var self = this;
51c1829956d9 Added mock XHR object and a simple bugzilla ajax test
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
149
51c1829956d9 Added mock XHR object and a simple bugzilla ajax test
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
150 var listeners = {
51c1829956d9 Added mock XHR object and a simple bugzilla ajax test
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
151 "load": [],
51c1829956d9 Added mock XHR object and a simple bugzilla ajax test
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
152 "progress": [],
51c1829956d9 Added mock XHR object and a simple bugzilla ajax test
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
153 "error": [],
51c1829956d9 Added mock XHR object and a simple bugzilla ajax test
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
154 "abort": []
51c1829956d9 Added mock XHR object and a simple bugzilla ajax test
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
155 };
51c1829956d9 Added mock XHR object and a simple bugzilla ajax test
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
156
51c1829956d9 Added mock XHR object and a simple bugzilla ajax test
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
157 function verifyEventType(eventType) {
51c1829956d9 Added mock XHR object and a simple bugzilla ajax test
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
158 if (!(eventType in listeners))
51c1829956d9 Added mock XHR object and a simple bugzilla ajax test
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
159 throw new Error("unknown event type: " + eventType);
51c1829956d9 Added mock XHR object and a simple bugzilla ajax test
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
160 }
51c1829956d9 Added mock XHR object and a simple bugzilla ajax test
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
161
51c1829956d9 Added mock XHR object and a simple bugzilla ajax test
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
162 self.addEventListener = function(eventType, handler, useCapture) {
51c1829956d9 Added mock XHR object and a simple bugzilla ajax test
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
163 verifyEventType(eventType);
51c1829956d9 Added mock XHR object and a simple bugzilla ajax test
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
164 listeners[eventType].push(handler);
102
00b02ba5236c made all delegates have a dotted name (namespaced), modified black-box.js a bit
Atul Varma <avarma@mozilla.com>
parents: 100
diff changeset
165 delegate("xhr.addEventListener", [eventType, handler, useCapture]);
69
51c1829956d9 Added mock XHR object and a simple bugzilla ajax test
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
166 };
51c1829956d9 Added mock XHR object and a simple bugzilla ajax test
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
167
51c1829956d9 Added mock XHR object and a simple bugzilla ajax test
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
168 self.removeEventListener = function(eventType, handler, useCapture) {
51c1829956d9 Added mock XHR object and a simple bugzilla ajax test
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
169 verifyEventType(eventType);
51c1829956d9 Added mock XHR object and a simple bugzilla ajax test
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
170 var index = listeners[eventType].indexOf(handler);
51c1829956d9 Added mock XHR object and a simple bugzilla ajax test
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
171 if (index == -1)
51c1829956d9 Added mock XHR object and a simple bugzilla ajax test
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
172 throw new Error("handler not registered for event: " + eventType);
51c1829956d9 Added mock XHR object and a simple bugzilla ajax test
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
173 listeners[eventType].splice(index, 1);
102
00b02ba5236c made all delegates have a dotted name (namespaced), modified black-box.js a bit
Atul Varma <avarma@mozilla.com>
parents: 100
diff changeset
174 delegate("xhr.removeEventListener", [eventType, handler, useCapture]);
69
51c1829956d9 Added mock XHR object and a simple bugzilla ajax test
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
175 };
51c1829956d9 Added mock XHR object and a simple bugzilla ajax test
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
176
51c1829956d9 Added mock XHR object and a simple bugzilla ajax test
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
177 self.setRequestHeader = function(header, value) {
102
00b02ba5236c made all delegates have a dotted name (namespaced), modified black-box.js a bit
Atul Varma <avarma@mozilla.com>
parents: 100
diff changeset
178 delegate("xhr.setRequestHeader", [header, value]);
69
51c1829956d9 Added mock XHR object and a simple bugzilla ajax test
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
179 };
51c1829956d9 Added mock XHR object and a simple bugzilla ajax test
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
180
51c1829956d9 Added mock XHR object and a simple bugzilla ajax test
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
181 self.send = function(data) {
102
00b02ba5236c made all delegates have a dotted name (namespaced), modified black-box.js a bit
Atul Varma <avarma@mozilla.com>
parents: 100
diff changeset
182 delegate("xhr.send", [data]);
69
51c1829956d9 Added mock XHR object and a simple bugzilla ajax test
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
183 };
51c1829956d9 Added mock XHR object and a simple bugzilla ajax test
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
184
51c1829956d9 Added mock XHR object and a simple bugzilla ajax test
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
185 self.open = function open(method, url) {
102
00b02ba5236c made all delegates have a dotted name (namespaced), modified black-box.js a bit
Atul Varma <avarma@mozilla.com>
parents: 100
diff changeset
186 delegate("xhr.open", [method, url]);
69
51c1829956d9 Added mock XHR object and a simple bugzilla ajax test
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
187 };
51c1829956d9 Added mock XHR object and a simple bugzilla ajax test
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
188
51c1829956d9 Added mock XHR object and a simple bugzilla ajax test
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
189 self.mockTriggerEvent = function(event) {
51c1829956d9 Added mock XHR object and a simple bugzilla ajax test
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
190 verifyEventType(event.type);
100
c486d35fad27 added more mocks; black-box now talks to a really simple fake bugzilla 'server'.
Atul Varma <avarma@mozilla.com>
parents: 99
diff changeset
191 listeners[event.type].forEach(
69
51c1829956d9 Added mock XHR object and a simple bugzilla ajax test
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
192 function(listener) {
51c1829956d9 Added mock XHR object and a simple bugzilla ajax test
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
193 listener(event);
51c1829956d9 Added mock XHR object and a simple bugzilla ajax test
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
194 });
51c1829956d9 Added mock XHR object and a simple bugzilla ajax test
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
195 };
51c1829956d9 Added mock XHR object and a simple bugzilla ajax test
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
196 }
51c1829956d9 Added mock XHR object and a simple bugzilla ajax test
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
197
99
544d339d2b4c Added the beginnings of a black-box app that can be used to generate/run functional tests.
Atul Varma <avarma@mozilla.com>
parents: 69
diff changeset
198 exports.create = function create(delegate) {
69
51c1829956d9 Added mock XHR object and a simple bugzilla ajax test
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
199 return new MockXMLHttpRequest(delegate);
51c1829956d9 Added mock XHR object and a simple bugzilla ajax test
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
200 };
51c1829956d9 Added mock XHR object and a simple bugzilla ajax test
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
201 };