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 };