# HG changeset patch # User Atul Varma # Date 1272510386 25200 # Node ID 00b02ba5236c2440cd8c085f2057a490a38c8a50 # Parent 106a0018e60172dc304eb293d96d8cda81924098 made all delegates have a dotted name (namespaced), modified black-box.js a bit diff -r 106a0018e601 -r 00b02ba5236c js/black-box.js --- a/js/black-box.js Wed Apr 28 18:37:08 2010 -0700 +++ b/js/black-box.js Wed Apr 28 20:06:26 2010 -0700 @@ -1,27 +1,3 @@ -function getXPathForElement(el, xml) { - var xpath = ""; - var pos, tempitem2; - - while (el !== xml.documentElement) { - pos = 0; - tempitem2 = el; - while (tempitem2) { - if (tempitem2.nodeType === 1 && tempitem2.nodeName === el.nodeName) { - // If it is ELEMENT_NODE of the same name - pos += 1; - } - tempitem2 = tempitem2.previousSibling; - } - - xpath = el.nodeName + "[" + pos + "]" + "/" + xpath; - - el = el.parentNode; - } - xpath = "/" + xml.documentElement.nodeName + "/" + xpath; - xpath = xpath.replace(/\/$/, ''); - return xpath; -} - function onDashboardLoaded(dashboard, options) { var require = Require.build(Require.modules, {window: window}); @@ -31,57 +7,12 @@ console.warn("An error occurred in the dashboard iframe."); }); - function DOMElementToCSSSelector(element) { - if (element.id) - return "#" + element.id; - - var document = element.ownerDocument; - - function isUnique(selector) { - return (document.querySelectorAll(selector).length == 1); - } - - var parent = element.parentNode; - while (parent) { - if (parent.id) - break; - parent = parent.parentNode; - } - - if (parent && parent.id) { - var selector = "#" + parent.id; - - var list = element.classList; - for (var i = 0; i < list.length; i++) { - selector += " ." + list[i]; - if (isUnique(selector)) - return selector; - } - } - return null; - } - - dashboard.addEventListener( - "mousedown", - function(event) { - var document = event.target.ownerDocument; - var xpath = getXPathForElement(event.target, document); - var result = document.evaluate(xpath, document, null, - XPathResult.ANY_TYPE, null); - console.log("mousedown", event.target, - DOMElementToCSSSelector(event.target), - xpath, - result.iterateNext()); - }, - true - ); - var moduleExports = {}; var dbrequire = dashboard.Require.build(dashboard.Require.modules, moduleExports); function delegate(method, args) { - //console.log(method, args); + console.log(method, args); } // Get rid of any form values cached by the browser. diff -r 106a0018e601 -r 00b02ba5236c js/modules/mocks.js --- a/js/modules/mocks.js Wed Apr 28 18:37:08 2010 -0700 +++ b/js/modules/mocks.js Wed Apr 28 20:06:26 2010 -0700 @@ -14,17 +14,17 @@ MockCache.prototype = { get: function get(key) { - this.delegate("get", [key]); + this.delegate("cache.get", [key]); if (key in this.cache) return copy(this.cache[key]); return null; }, set: function set(key, value) { - this.delegate("set", [key, value]); + this.delegate("cache.set", [key, value]); this.cache[key] = copy(value); }, clear: function clear() { - this.delegate("clear", []); + this.delegate("cache.clear", []); this.cache = {}; } }; @@ -104,11 +104,7 @@ if (time === undefined) time = DEFAULT_RESPONSE_TIME; - function xhrDelegate(method, args) { - delegate("xhr." + method, args); - } - - var req = require("mocks/xhr").create(xhrDelegate); + var req = require("mocks/xhr").create(delegate); require("window").setTimeout( function() { @@ -125,6 +121,7 @@ exports.create = function create(Bugzilla, ajaxImpl, delegate) { function MockBugzilla() { this.ajax = function ajax(options) { + delegate("bugzilla.ajax", options); var obj = ajaxImpl(options, exports); var req = response(delegate, obj); req.addEventListener( @@ -165,7 +162,7 @@ self.addEventListener = function(eventType, handler, useCapture) { verifyEventType(eventType); listeners[eventType].push(handler); - delegate("addEventListener", [eventType, handler, useCapture]); + delegate("xhr.addEventListener", [eventType, handler, useCapture]); }; self.removeEventListener = function(eventType, handler, useCapture) { @@ -174,19 +171,19 @@ if (index == -1) throw new Error("handler not registered for event: " + eventType); listeners[eventType].splice(index, 1); - delegate("removeEventListener", [eventType, handler, useCapture]); + delegate("xhr.removeEventListener", [eventType, handler, useCapture]); }; self.setRequestHeader = function(header, value) { - delegate("setRequestHeader", [header, value]); + delegate("xhr.setRequestHeader", [header, value]); }; self.send = function(data) { - delegate("send", [data]); + delegate("xhr.send", [data]); }; self.open = function open(method, url) { - delegate("open", [method, url]); + delegate("xhr.open", [method, url]); }; self.mockTriggerEvent = function(event) { diff -r 106a0018e601 -r 00b02ba5236c js/tests/test-bugzilla.js --- a/js/tests/test-bugzilla.js Wed Apr 28 18:37:08 2010 -0700 +++ b/js/tests/test-bugzilla.js Wed Apr 28 20:06:26 2010 -0700 @@ -2,12 +2,12 @@ var require = Require.build(); var actual = []; var expected = [ - ["open",["GET", - "https://api-dev.bugzilla.mozilla.org/latest/configuration"]], - ["setRequestHeader",["Accept","application/json"]], - ["setRequestHeader",["Content-Type","application/json"]], - ["addEventListener",["load",false]], - ["send",[null]] + ["xhr.open",["GET", + "https://api-dev.bugzilla.mozilla.org/latest/configuration"]], + ["xhr.setRequestHeader",["Accept","application/json"]], + ["xhr.setRequestHeader",["Content-Type","application/json"]], + ["xhr.addEventListener",["load",false]], + ["xhr.send",[null]] ]; expect(expected.length);