aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJosé Bollo <jose.bollo@iot.bzh>2016-05-31 14:43:55 +0200
committerStephane Desneux <stephane.desneux@iot.bzh>2016-06-02 19:37:04 +0200
commite5f93c1d987bf7143d561cbf9763aed3854bf898 (patch)
tree381adf4378c9e5cdbc36a86f3cbe7ed179291fe0
parent7a2b3e3f930db0445a2b778576314fe525d97ff7 (diff)
clean test directory
Change-Id: I97eb1d4d4e06e152b41556c273e1713d9df326b3 Signed-off-by: José Bollo <jose.bollo@iot.bzh>
-rw-r--r--test/AfbAngular.js193
-rw-r--r--test/angular.html21
-rw-r--r--test/index.html4
-rw-r--r--test/websock.html41
-rw-r--r--test/websock.js117
5 files changed, 1 insertions, 375 deletions
diff --git a/test/AfbAngular.js b/test/AfbAngular.js
deleted file mode 100644
index 3db1ad59..00000000
--- a/test/AfbAngular.js
+++ /dev/null
@@ -1,193 +0,0 @@
-(function (){'use strict';
-
- // some default values
- // note that how default values are defined/used may change
- var defaults = {
- token: '123456789',
- api: '/api'
- };
-
- var CALL = 2;
- var RETOK = 3;
- var RETERR = 4;
- var EVENT = 5;
-
- var PROTO1 = "x-afb-ws-json1";
-
- // Definition of the Angular module
- var AfbClientModule = angular.module('AfbClient', []);
-
- // The instanciation of the module
- AfbClientModule.factory('AfbClient', [ '$location', function ($location) {
- var refid = $location.host();
- var params = $location.search();
- return clients[refid] || (client[refid] = new AfbContext(refid, params));
- }]);
-
- // prototype for handling context by uuid and token
- function AfbContext(refid, params) {
- this.refid = refid;
- this.api = params.api || defaults.api;
- this.uhttp = params.uhttp || this.api+'/';
- this.uws = params.uws || this.api;
- this.token = params.token || defaults.token;
- this.uuid = params.uuid;
- this.ws = null;
- }
-
- AfbContext.prototype = {
- call: function(method, query) { return getws(this).call(method, query); },
- get: function(method, query) { return $http.get(this.uhttp+method, mixtu(this, query)); },
- post: function(method, query) { return $http.post(this.uhttp+method, mixtu(this, query)); },
- };
-
- function getws(ctxt) {
- return ctxt.ws || (ctxt.ws = new AfbWebSocket(ctxt));
- }
-
- function mixtu(ctxt, query) {
- return ("token" in query) ? query : angular.extend({token:ctxt.token},query);
- }
-
- // prototype for websocket
- function AfbWebSocket(ctxt) {
- var protos = [ PROTO1 ];
- this.context = ctxt;
- var url = "ws:" + ctxt.refid + ctxt.uws;
- var q = ctxt.uuid ? ("?x-afb-uuid=" + ctxt.uuid) : "";
- if (ctxt.token)
- q = (q ? (q + "&") : "?") + ("x-afb-token=" + ctxt.token);
- this.pendings = {};
- this.awaitens = {};
- this.counter = 0;
- this.ws = new WebSocket(url + q, protos);
- this.ws.onopen = onopen.bind(this);
- this.ws.onerror = onerror.bind(this);
- this.ws.onclose = onclose.bind(this);
- this.ws.onmessage = onmessage.bind(this);
- this.onopen = onopen;
- this.onabort = onabort;
- }
-
- AfbWebSocket.prototype = {
- call: function(method, query) {
- return new Promise((function(resolve, reject){
- var id = String(this.counter = 4095 & (this.counter + 1));
- while (id in this.pendings) id = String(this.counter = 4095 & (this.counter + 1));
- this.pendings[id] = [ resolve, reject ];
- var arr = [CALL, id, method, request ];
- var tok = this.context.token; if (tok) arr.push(tok);
- this.ws.send(angular.toJson(arr, 0));
- }).bind(this));
- },
- addEvent: function (name, handler) {
- (this.awaitens[name] || (this.awaitens[name] = [])).push(handler);
- },
- removeEvent: function (name, handler) {
- var a = this.awaitens[name];
- if (a) {
- var i = a.indexOf(handler);
- if (i >= 0) a.splice(i, 1);
- }
- }
-
- };
-
- function onmessage(ev) {
- var obj = angular.fromJson(ev.data);
- var id = obj[1];
- var ans = obj[2];
- if (obj[3])
- this.context.token = obj[3];
- switch (obj[0]) {
- case RETOK: reply(this.pendings, id, ans, 0); break;
- case RETERR: reply(this.pendings, id, ans, 1); break;
- case EVENT: fire(this.awaitens, id, ans); break;
-
- }
- }
-
- function fire(awaitens, name, data) {
- var a = awaitens[name];
- if (a) a.forEach(function(handler){handler(data);});
- var i = name.indexOf("/");
- if (i >= 0) {
- a = awaitens[name.substring(0,i)];
- if (a) a.forEach(function(handler){handler(data);});
- }
- a = awaitens["*"];
- if (a) a.forEach(function(handler){handler(data);});
- }
-
- function reply(pendings, id, ans, offset) {
- if (id in pendings) {
- var p = pendings[id];
- delete pendings[id];
- var f = p[offset];
- if (f) f(ans);
- }
- }
-
-
-
-
-
-
-
-
-
-
- AFB_websocket = function(onopen, onabort) {
- }
-
- function onerror(event) {
- var f = this.onabort;
- if (f) {
- delete this.onopen;
- delete this.onabort;
- f && f(this);
- }
- this.onerror && this.onerror(this);
- }
-
- function onopen(event) {
- var f = this.onopen;
- delete this.onopen;
- delete this.onabort;
- f && f(this);
- }
-
- function onclose(event) {
- for (var id in this.pendings) {
- var ferr = this.pendings[id].onerror;
- ferr && ferr(null, this);
- }
- this.pendings = {};
- this.onclose && this.onclose();
- }
-
- function close() {
- this.ws.close();
- }
-
- function call(method, request) {
- }
-
-/*
- // Factory is a singleton and share its context within all instances.
- AfbClientModule.factory('AppCall', function ($http, AppConfig, $log) {
- var myCalls = {
- get : function(plugin, action, query, callback) {
- if (!query.token) query.token = AppConfig.session.token; // add token to provided query
- $http.get('/api/' + plugin + '/' + action , {params: query}).then (callback, callback);
- }
- };
- return myCalls;
- });
-*/
-
-
-
-
-
-})();
diff --git a/test/angular.html b/test/angular.html
deleted file mode 100644
index f7e25756..00000000
--- a/test/angular.html
+++ /dev/null
@@ -1,21 +0,0 @@
-<!doctype html>
-<html>
-<body>
- <div ng-controller="MyController">
- Hello {{greetMe}}!
- </div>
- <script src="http://code.angularjs.org/1.5.5/angular.js"></script>
- <script src="AfbAngular.js"></script>
-
- <script>
- angular.module('myApp', [])
- .controller('MyController', ['$scope', function ($scope) {
- $scope.greetMe = 'World';
- }]);
-
- angular.element(document).ready(function() {
- angular.bootstrap(document, ['myApp']);
- });
- </script>
-</body>
-</html>
diff --git a/test/index.html b/test/index.html
index 014ae461..10e02024 100644
--- a/test/index.html
+++ b/test/index.html
@@ -7,6 +7,4 @@
<li><a href="hello-world.html">Hello World!</a>
<li><a href="client-ctx.html">client context</a>
<li><a href="sample-post.html">Sample post</a>
- <li><a href="websock.html">websockets</a>
- <li><a href="AFB.html">AFB.js</a>
- <li><a href="angular.html">AfbAngular.js</a>
+ <li><a href="AFB.html">Websocket with AFB.js</a>
diff --git a/test/websock.html b/test/websock.html
deleted file mode 100644
index 2ebb90bf..00000000
--- a/test/websock.html
+++ /dev/null
@@ -1,41 +0,0 @@
-<html>
-<head>
- <title>WebSocket Echo</title>
- <script type="text/javascript" src="websock.js"></script>
- <script type="text/javascript">
- var ws;
-
- function onopen() {
- document.getElementById("main").style.visibility = "visible";
- document.getElementById("connected").innerHTML = "Connected to WebSocket server";
- }
- function onabort() {
- document.getElementById("main").style.visibility = "hidden";
- document.getElementById("connected").innerHTML = "Connected Closed";
- }
- function init() {
- ws = new AfbWsItf("api", onopen, onabort, new AfbCtxItf("hello"));
- }
- function replyok(obj) {
- document.getElementById("output").innerHTML = "OK: "+JSON.stringify(obj);
- }
- function replyerr(obj) {
- document.getElementById("output").innerHTML = "ERROR: "+JSON.stringify(obj);
- }
- function send(message) {
- var api = document.getElementById("api").value;
- var verb = document.getElementById("verb").value;
- ws.call(api, verb, {data:message}, replyok, replyerr);
- }
- </script>
-
-<body onload="init();">
- <h1>WebSocket Echo</h1>
- <div id="connected">Not Connected</div>
- <div id="main" style="visibility:hidden">
- API: <input type="text" id="api" value="hello" size="80"/><br/>
- VERB: <input type="text" id="verb" value="ping" size="80"/><br/>
- Enter Message: <input type="text" name="message" value="" size="80" onchange="send(this.value)"/><br/>
- Server says... <div id="output"></div>
- </div>
-
diff --git a/test/websock.js b/test/websock.js
deleted file mode 100644
index c4295536..00000000
--- a/test/websock.js
+++ /dev/null
@@ -1,117 +0,0 @@
-
-AfbCtxItf = (function(){
-
- var UUID = undefined;
- var TOKEN = undefined;
-
- function AfbCtxItf(token, uuid) {
- this.token = token;
- this.uuid = uuid;
- }
-
- AfbCtxItf.prototype = {
- get token() {return TOKEN;},
- set token(tok) {if(tok) TOKEN=tok;},
- get uuid() {return UUID;},
- set uuid(id) {if(id) UUID=id;}
- };
-
- return AfbCtxItf;
-})();
-
-
-AfbWsItf = (function(){
-
- var CALL = 2;
- var RETOK = 3;
- var RETERR = 4;
-
- function AfbWsItf(base, onopen, onabort, ctx) {
- ctx = ctx || new AfbCtxItf();
- var wl = window.location;
- var u = "ws://"+wl.host+"/"+base;
- if (ctx.token) {
- u = u + '?x-afb-token=' + ctx.token;
- if (ctx.uuid)
- u = u + '&x-afb-uuid=' + ctx.uuid;
- }
- this.ws = new (WebSocket || MozWebSocket)(u, [ "x-afb-ws-json1" ]);
- this.pendings = {};
- this.counter = 0;
- this.ctx = ctx;
- this.ws.onopen = onopen.bind(this);
- this.ws.onerror = onerror.bind(this);
- this.ws.onclose = onclose.bind(this);
- this.ws.onmessage = onmessage.bind(this);
- this.onopen = onopen;
- this.onabort = onabort;
- }
-
- function onerror(event) {
- var f = this.onabort;
- if (f) {
- delete this.onopen;
- delete this.onabort;
- f && f(this);
- }
- this.onerror && this.onerror(this);
- }
-
- function onopen(event) {
- var f = this.onopen;
- delete this.onopen;
- delete this.onabort;
- f && f(this);
- }
-
- function onclose(event) {
- for (var id in this.pendings) {
- var ferr = this.pendings[id].onerror;
- ferr && ferr(null, this);
- }
- this.pendings = {};
- this.onclose && this.onclose();
- }
-
- function onmessage(event) {
- var obj = JSON.parse(event.data);
- var code = obj[0];
- var id = obj[1];
- var ans = obj[2];
- this.ctx.token = obj[3];
- var pend;
- if (id && id in this.pendings) {
- pend = this.pendings[id];
- delete this.pendings[id];
- }
- switch (code) {
- case RETOK:
- pend && pend.onsuccess && pend.onsuccess(ans, this);
- break;
- case RETERR:
- default:
- pend && pend.onerror && pend.onerror(ans, this);
- break;
- }
- }
-
- function close() {
- this.ws.close();
- }
-
- function call(api, verb, request, onsuccess, onerror) {
- var id = String(++this.counter);
- this.pendings[id] = { onsuccess: onsuccess, onerror: onerror };
- var arr = [CALL, id, api+"/"+verb, request ];
- if (this.ctx.token) arr.push(this.ctx.token);
- this.ws.send(JSON.stringify(arr));
- }
-
- AfbWsItf.prototype = {
- close: close,
- call: call
- };
-
- return AfbWsItf;
-})();
-