Mercurial > bugzilla-dashboard
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 |
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 }; |