Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on May 16th, 2012  |  syntax: None  |  size: 1.63 KB  |  hits: 13  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. var fake = function(methods) {
  2.   methods = methods || [];
  3.  
  4.   var object = {listeners: {}};
  5.   for (var i = 0; i < methods.length; i++) {
  6.     object[methods[i]] = jasmine.createSpy();
  7.   };
  8.  
  9.   object.addEventListener = function(event, callback) {
  10.     object.listeners[event] = callback;
  11.   };
  12.  
  13.   object.fireEvent = function(event, params) {
  14.     object.listeners[event](params);
  15.   };
  16.  
  17.   return object;
  18. };
  19.  
  20. function createFactory(base, name, methods) {
  21.   base[name] = function(properties) {
  22.     var object = fake(methods);
  23.     for (var key in properties) {
  24.       object[key] = properties[key];
  25.     }
  26.  
  27.     base[name].last = object;
  28.  
  29.     return object;
  30.   };
  31. };
  32.  
  33. var setupFakes = function() {
  34.   window.Ti = window.Titanium = {
  35.     App: fake(),
  36.     Network: {},
  37.     API: fake(["debug"]),
  38.     UI: {},
  39.     Filesystem: {
  40.       getFile: function(name) {
  41.         return {
  42.           "emailSubject.mustache": {read: function() {
  43.             return {text: "{{word}}"}
  44.           }},
  45.           "emailBody.mustache": {read: function() {
  46.             return {text: "{{definition}} {{example}}"}
  47.           }},
  48.           "template.mustache": {read: function() {
  49.             return {text: "the template"}
  50.           }}
  51.         }[name];
  52.       }
  53.     },
  54.     Gesture: fake(),
  55.     include: jasmine.createSpy(),
  56.   };
  57.  
  58.   createFactory(Ti.Network, "createHTTPClient", ["open", "send"]);
  59.   createFactory(Ti.UI, "createWindow", ["add", "open"]);
  60.   createFactory(Ti.UI, "createView", ["add"]);
  61.   createFactory(Ti.UI, "createSearchBar", ["blur"]);
  62.   createFactory(Ti.UI, "createWebView");
  63.   createFactory(Ti.UI, "createEmailDialog", ["open"]);
  64. };
  65.  
  66. beforeEach(function() {
  67.   setupFakes();
  68.   startApp();
  69. });