
Untitled
By: a guest on
May 16th, 2012 | syntax:
None | size: 1.63 KB | hits: 13 | expires: Never
var fake = function(methods) {
methods = methods || [];
var object = {listeners: {}};
for (var i = 0; i < methods.length; i++) {
object[methods[i]] = jasmine.createSpy();
};
object.addEventListener = function(event, callback) {
object.listeners[event] = callback;
};
object.fireEvent = function(event, params) {
object.listeners[event](params);
};
return object;
};
function createFactory(base, name, methods) {
base[name] = function(properties) {
var object = fake(methods);
for (var key in properties) {
object[key] = properties[key];
}
base[name].last = object;
return object;
};
};
var setupFakes = function() {
window.Ti = window.Titanium = {
App: fake(),
Network: {},
API: fake(["debug"]),
UI: {},
Filesystem: {
getFile: function(name) {
return {
"emailSubject.mustache": {read: function() {
return {text: "{{word}}"}
}},
"emailBody.mustache": {read: function() {
return {text: "{{definition}} {{example}}"}
}},
"template.mustache": {read: function() {
return {text: "the template"}
}}
}[name];
}
},
Gesture: fake(),
include: jasmine.createSpy(),
};
createFactory(Ti.Network, "createHTTPClient", ["open", "send"]);
createFactory(Ti.UI, "createWindow", ["add", "open"]);
createFactory(Ti.UI, "createView", ["add"]);
createFactory(Ti.UI, "createSearchBar", ["blur"]);
createFactory(Ti.UI, "createWebView");
createFactory(Ti.UI, "createEmailDialog", ["open"]);
};
beforeEach(function() {
setupFakes();
startApp();
});