Mercurial > bugzilla-dashboard
comparison js/modules/mocks.js @ 69:51c1829956d9
Added mock XHR object and a simple bugzilla ajax test
author | Atul Varma <avarma@mozilla.com> |
---|---|
date | Sun, 25 Apr 2010 11:41:55 -0700 |
parents | |
children | 544d339d2b4c |
comparison
equal
deleted
inserted
replaced
68:6f5b5b404066 | 69:51c1829956d9 |
---|---|
1 Require.modules["mocks"] = function(exports, require) { | |
2 function MockXMLHttpRequest(delegate) { | |
3 var self = this; | |
4 | |
5 var listeners = { | |
6 "load": [], | |
7 "progress": [], | |
8 "error": [], | |
9 "abort": [] | |
10 }; | |
11 | |
12 function verifyEventType(eventType) { | |
13 if (!(eventType in listeners)) | |
14 throw new Error("unknown event type: " + eventType); | |
15 } | |
16 | |
17 self.addEventListener = function(eventType, handler, useCapture) { | |
18 verifyEventType(eventType); | |
19 listeners[eventType].push(handler); | |
20 delegate("addEventListener", [eventType, handler, useCapture]); | |
21 }; | |
22 | |
23 self.removeEventListener = function(eventType, handler, useCapture) { | |
24 verifyEventType(eventType); | |
25 var index = listeners[eventType].indexOf(handler); | |
26 if (index == -1) | |
27 throw new Error("handler not registered for event: " + eventType); | |
28 listeners[eventType].splice(index, 1); | |
29 delegate("removeEventListener", [eventType, handler, useCapture]); | |
30 }; | |
31 | |
32 self.setRequestHeader = function(header, value) { | |
33 delegate("setRequestHeader", [header, value]); | |
34 }; | |
35 | |
36 self.send = function(data) { | |
37 delegate("send", [data]); | |
38 }; | |
39 | |
40 self.open = function open(method, url) { | |
41 delegate("open", [method, url]); | |
42 }; | |
43 | |
44 self.mockTriggerEvent = function(event) { | |
45 verifyEventType(event.type); | |
46 listeners.forEach( | |
47 function(listener) { | |
48 listener(event); | |
49 }); | |
50 }; | |
51 } | |
52 | |
53 exports.xhr = function xhr(delegate) { | |
54 return new MockXMLHttpRequest(delegate); | |
55 }; | |
56 }; |