From fe1b5435aacf4b3c757fa7908abaa260006c6745 Mon Sep 17 00:00:00 2001 From: lilia <liliakai@gmail.com> Date: Fri, 14 Mar 2014 00:47:13 -0700 Subject: [PATCH] Add FakeWhisperAPI for serverless development When included after api.js, fake_api.js inits a FakeWhisperAPI. FakeWhisperAPI inherits the methods of API, overrides a few, and then usurps its place as the one true API. Single device mode successfully "registers" against FakeAPI. Sadly, multidevice mode has a recursive loop somewhere that makes the callstack asplode. --- background.html | 1 + js/fake_api.js | 27 +++++++++++++++++++++++++++ options.html | 1 + popup.html | 1 + 4 files changed, 30 insertions(+) create mode 100644 js/fake_api.js diff --git a/background.html b/background.html index f03238f96..d4a7773a9 100644 --- a/background.html +++ b/background.html @@ -17,6 +17,7 @@ <script type="text/javascript" src="js-deps/ProtoBuf.min.js"></script> <script type="text/javascript" src="js/helpers.js"></script> <script type="text/javascript" src="js/api.js"></script> + <script type="text/javascript" src="js/fake_api.js"></script> <script type="text/javascript" src="js/background.js"></script> </head> <body data-name="curve25519" data-tools="pnacl" data-configs="Debug Release" data-path="pnacl/{config}"> diff --git a/js/fake_api.js b/js/fake_api.js new file mode 100644 index 000000000..8d1e099a0 --- /dev/null +++ b/js/fake_api.js @@ -0,0 +1,27 @@ +var FakeWhisperAPI = function() { + + this.doAjax = function(param) { + if (param.success_callback) { + setTimeout(param.success_callback, 100, param.response); + } + } + + this.getKeysForNumber = function(number, success_callback, error_callback) { + this.doAjax({ success_callback: success_callback, + response : [{ identityKey: 1, + deviceId : 1, + publicKey : 1, + keyId : 1 }] + }); + } + + this.sendMessages = function(jsonData, success_callback, error_callback) { + this.doAjax({ success_callback: success_callback, + response : { missingDeviceIds: [] } + }); + } +}; + +FakeWhisperAPI.prototype = API; +API = new FakeWhisperAPI(); + diff --git a/options.html b/options.html index fad6e53cc..b5d34b2db 100644 --- a/options.html +++ b/options.html @@ -41,6 +41,7 @@ <script type="text/javascript" src="js-deps/ByteBuffer.min.js"></script> <script type="text/javascript" src="js-deps/ProtoBuf.min.js"></script> <script type="text/javascript" src="js/api.js"></script> + <script type="text/javascript" src="js/fake_api.js"></script> <script type="text/javascript" src="js/helpers.js"></script> <script type="text/javascript" src="js/options.js"></script> </body> diff --git a/popup.html b/popup.html index 6c2d39d87..da4b9b72b 100644 --- a/popup.html +++ b/popup.html @@ -30,6 +30,7 @@ <script type="text/javascript" src="js-deps/ProtoBuf.min.js"></script> <script type="text/javascript" src="js/helpers.js"></script> <script type="text/javascript" src="js/api.js"></script> + <script type="text/javascript" src="js/fake_api.js"></script> <script type="text/javascript" src="js/popup.js"></script> </body> </html>