[Libreoffice-commits] online.git: 2 commits - loleaflet/spec loleaflet/src
Mihai Varga
mihai.varga at collabora.com
Mon Jul 27 07:55:24 PDT 2015
loleaflet/spec/tilebench/TileBenchSpec.js | 337 +++++++++++++++++++++++++++++-
loleaflet/src/core/Log.js | 6
2 files changed, 338 insertions(+), 5 deletions(-)
New commits:
commit 1f88357aa8917918a1a5fde10b5aa787be2fb6d9
Author: Mihai Varga <mihai.varga at collabora.com>
Date: Mon Jul 27 17:53:18 2015 +0300
loleaflet: tilebench - replay an editing session
Sends recorded key input commands to the server over a period
about 20 seconds and then requests and empty tile so that the
'alltilesloaded' event is fired in the end, letting us know that the
editing session finished.
diff --git a/loleaflet/spec/tilebench/TileBenchSpec.js b/loleaflet/spec/tilebench/TileBenchSpec.js
index 6cb137a..28ac2b0 100644
--- a/loleaflet/spec/tilebench/TileBenchSpec.js
+++ b/loleaflet/spec/tilebench/TileBenchSpec.js
@@ -1,6 +1,6 @@
describe('TileBench', function () {
- // 20 s timeout
- this.timeout(20000);
+ // 25 s timeout
+ this.timeout(25000);
var map;
var loadCount = 0;
@@ -30,6 +30,21 @@ describe('TileBench', function () {
edit: false,
readOnly: false
});
+
+ // add a timestamp to tile messages so we can identify
+ // the response
+ docLayer.sendMessage = L.bind(function (msg, coords) {
+ var now = Date.now();
+ if (msg.startsWith('tile')) {
+ msg += ' timestamp=' + now;
+ }
+ L.Log.log(msg, L.OUTGOING, coords, now);
+ this._map.socket.send(msg);
+ }, docLayer);
+
+ // don't pre-fetch tiles
+ docLayer._preFetchTiles = L.Util.falseFn;
+
map.addLayer(docLayer);
map.addControl(L.control.scroll());
});
@@ -48,12 +63,48 @@ describe('TileBench', function () {
it('Load all new tiles', function (done) {
map.on('alltilesloaded', L.bind(function () {
loadCount += 1;
- console.log(loadCount);
done();
}, done));
});
+ it('Edit the document', function (done) {
+ L.Log.clear();
+
+ // allow 2 seconds to pass after the last key input
+ var aproxTime = keyInput[keyInput.length - 1][0] + 2000;
+
+ setTimeout(L.bind(function () {
+ map.on('alltilesloaded', L.bind(function () {
+ loadCount += 1;
+ getTimes(done);
+ }, done));
+
+
+ // request an empty tile and when it arrives we know that the
+ // server has finished processing all other messages
+ var docLayer = map._docLayer;
+ var x = Math.floor(docLayer._docWidthTwips / docLayer._tileWidthTwips);
+ var y = Math.floor(docLayer._docHeightTwips / docLayer._tileHeightTwips);
+ var coords = new L.Point(x, y);
+ coords.z = map.getZoom();
+ coords.part = docLayer._currentPart;
+ var key = docLayer._tileCoordsToKey(coords);
+ if (docLayer._tiles[key]) {
+ // the tile is already here, the whole document is loaded
+ getTimes(done);
+ }
+ var fragment = document.createDocumentFragment();
+ docLayer._addTile(coords, fragment);
+ }, done), aproxTime);
+
+ for (var i = 0; i < keyInput.length; i++) {
+ setTimeout(L.bind(function () {
+ map._docLayer.sendMessage(keyInput[this][1]);
+ }, i), keyInput[i][0]);
+ }
+ });
+
it('Scroll to the bottom', function (done) {
$('.scroll-container').mCustomScrollbar('scrollTo', 'bottom', {scrollInertia: 3000});
// check how we're doing 200ms after the scroll has ended
@@ -73,4 +124,284 @@ describe('TileBench', function () {
}, done), 3200);
});
});
+
+ var getTimes = function (done) {
+ var incoming = [];
+ var outgoing = [];
+ var logs = L.Log._logs;
+ for (var i = 0; i < logs.length; i++) {
+ if (logs[i].coords !== undefined) {
+ if (logs[i].direction === L.INCOMING) {
+ logs[i].msg = logs[i].msg.replace(':', '');
+ incoming.push(logs[i]);
+ }
+ else if (logs[i].direction === L.OUTGOING) {
+ outgoing.push(logs[i]);
+ }
+ }
+ }
+ time_deltas = [];
+ for (i = 0; i < outgoing.length; i++) {
+ for (j = 0; j < incoming.length; j++) {
+ if (outgoing[i].msg === incoming[j].msg) {
+ time_deltas.push(incoming[j].time - outgoing[i].time);
+ }
+ }
+ }
+ var min = 20000,
+ max = 0,
+ avg = 0;
+ for (i = 0; i < time_deltas.length; i++) {
+ min = Math.min(min, time_deltas[i]);
+ max = Math.max(max, time_deltas[i]);
+ avg += time_deltas[i];
+ }
+ avg = Math.round(avg / time_deltas.length);
+
+ log('Min time: ' + min + ' ms');
+ log('Max time: ' + max + ' ms');
+ log('Avg time: ' + avg + ' ms');
+
+ done();
+ };
+
+ var keyInput = [
+ [135, 'key type=input char=84 key=0'],
+ [237, 'key type=up char=0 key=16'],
+ [254, 'key type=up char=0 key=84'],
+ [372, 'key type=input char=104 key=0'],
+ [455, 'key type=input char=105 key=0'],
+ [510, 'key type=up char=0 key=72'],
+ [520, 'key type=input char=115 key=0'],
+ [580, 'key type=up char=0 key=73'],
+ [603, 'key type=input char=32 key=0'],
+ [635, 'key type=up char=0 key=83'],
+ [701, 'key type=up char=0 key=1284'],
+ [875, 'key type=input char=116 key=0'],
+ [915, 'key type=input char=101 key=0'],
+ [993, 'key type=up char=0 key=84'],
+ [1014, 'key type=up char=0 key=69'],
+ [1148, 'key type=input char=115 key=0'],
+ [1244, 'key type=up char=0 key=83'],
+ [1319, 'key type=input char=116 key=0'],
+ [1377, 'key type=input char=115 key=0'],
+ [1418, 'key type=up char=0 key=84'],
+ [1466, 'key type=input char=32 key=0'],
+ [1493, 'key type=up char=0 key=83'],
+ [1544, 'key type=up char=0 key=1284'],
+ [1687, 'key type=input char=116 key=0'],
+ [1760, 'key type=input char=104 key=0'],
+ [1773, 'key type=up char=0 key=84'],
+ [1828, 'key type=input char=101 key=0'],
+ [1886, 'key type=up char=0 key=72'],
+ [1952, 'key type=up char=0 key=69'],
+ [1957, 'key type=input char=32 key=0'],
+ [2071, 'key type=up char=0 key=1284'],
+ [2176, 'key type=input char=115 key=0'],
+ [2250, 'key type=input char=101 key=0'],
+ [2282, 'key type=up char=0 key=83'],
+ [2349, 'key type=up char=0 key=69'],
+ [2430, 'key type=input char=114 key=0'],
+ [2512, 'key type=up char=0 key=82'],
+ [2702, 'key type=input char=118 key=0'],
+ [2751, 'key type=input char=101 key=0'],
+ [2806, 'key type=up char=0 key=86'],
+ [2873, 'key type=up char=0 key=69'],
+ [2927, 'key type=input char=114 key=0'],
+ [3032, 'key type=up char=0 key=82'],
+ [3064, 'key type=input char=39 key=0'],
+ [3160, 'key type=input char=115 key=0'],
+ [3175, 'key type=up char=0 key=222'],
+ [3243, 'key type=input char=32 key=0'],
+ [3269, 'key type=up char=0 key=83'],
+ [3337, 'key type=up char=0 key=1284'],
+ [3535, 'key type=input char=114 key=0'],
+ [3574, 'key type=input char=101 key=0'],
+ [3646, 'key type=up char=0 key=82'],
+ [3705, 'key type=up char=0 key=69'],
+ [3804, 'key type=input char=112 key=0'],
+ [3868, 'key type=input char=111 key=0'],
+ [3953, 'key type=up char=0 key=80'],
+ [4056, 'key type=up char=0 key=79'],
+ [4262, 'key type=input char=110 key=0'],
+ [4362, 'key type=input char=115 key=0'],
+ [4390, 'key type=up char=0 key=78'],
+ [4449, 'key type=input char=101 key=0'],
+ [4513, 'key type=up char=0 key=83'],
+ [4535, 'key type=input char=32 key=0'],
+ [4560, 'key type=up char=0 key=69'],
+ [4631, 'key type=up char=0 key=1284'],
+ [4771, 'key type=input char=116 key=0'],
+ [4818, 'key type=input char=105 key=0'],
+ [4853, 'key type=up char=0 key=84'],
+ [4908, 'key type=up char=0 key=73'],
+ [4990, 'key type=input char=109 key=0'],
+ [5038, 'key type=input char=101 key=0'],
+ [5118, 'key type=up char=0 key=77'],
+ [5157, 'key type=input char=32 key=0'],
+ [5195, 'key type=up char=0 key=69'],
+ [5273, 'key type=up char=0 key=1284'],
+ [5410, 'key type=input char=119 key=0'],
+ [5462, 'key type=input char=104 key=0'],
+ [5522, 'key type=up char=0 key=87'],
+ [5523, 'key type=input char=105 key=0'],
+ [5591, 'key type=up char=0 key=72'],
+ [5632, 'key type=up char=0 key=73'],
+ [5857, 'key type=input char=108 key=0'],
+ [5941, 'key type=input char=101 key=0'],
+ [5990, 'key type=up char=0 key=76'],
+ [6039, 'key type=input char=32 key=0'],
+ [6057, 'key type=up char=0 key=69'],
+ [6126, 'key type=up char=0 key=1284'],
+ [6274, 'key type=input char=101 key=0'],
+ [6354, 'key type=up char=0 key=69'],
+ [6450, 'key type=input char=100 key=0'],
+ [6563, 'key type=input char=105 key=0'],
+ [6566, 'key type=up char=0 key=68'],
+ [6673, 'key type=up char=0 key=73'],
+ [6695, 'key type=input char=116 key=0'],
+ [6794, 'key type=input char=105 key=0'],
+ [6799, 'key type=up char=0 key=84'],
+ [6850, 'key type=input char=110 key=0'],
+ [6885, 'key type=up char=0 key=73'],
+ [6970, 'key type=input char=103 key=0'],
+ [6974, 'key type=up char=0 key=78'],
+ [7064, 'key type=up char=0 key=71'],
+ [7176, 'key type=input char=46 key=0'],
+ [7297, 'key type=up char=0 key=190'],
+ [7323, 'key type=input char=32 key=0'],
+ [7422, 'key type=up char=0 key=1284'],
+ [7580, 'key type=input char=73 key=0'],
+ [7655, 'key type=up char=0 key=16'],
+ [7679, 'key type=up char=0 key=73'],
+ [7829, 'key type=input char=39 key=0'],
+ [7875, 'key type=up char=0 key=222'],
+ [7922, 'key type=input char=109 key=0'],
+ [8072, 'key type=input char=32 key=0'],
+ [8082, 'key type=up char=0 key=77'],
+ [8169, 'key type=up char=0 key=1284'],
+ [8340, 'key type=input char=116 key=0'],
+ [8399, 'key type=up char=0 key=84'],
+ [8503, 'key type=input char=114 key=0'],
+ [8553, 'key type=input char=121 key=0'],
+ [8618, 'key type=up char=0 key=82'],
+ [8640, 'key type=up char=0 key=89'],
+ [8773, 'key type=input char=105 key=0'],
+ [8862, 'key type=input char=110 key=0'],
+ [8935, 'key type=input char=103 key=0'],
+ [8945, 'key type=up char=0 key=73'],
+ [9019, 'key type=input char=32 key=0'],
+ [9025, 'key type=up char=0 key=78'],
+ [9047, 'key type=up char=0 key=71'],
+ [9124, 'key type=up char=0 key=1284'],
+ [9257, 'key type=input char=116 key=0'],
+ [9357, 'key type=input char=111 key=0'],
+ [9396, 'key type=input char=32 key=0'],
+ [9397, 'key type=up char=0 key=84'],
+ [9487, 'key type=up char=0 key=79'],
+ [9488, 'key type=up char=0 key=1284'],
+ [9646, 'key type=input char=119 key=0'],
+ [9766, 'key type=up char=0 key=87'],
+ [9919, 'key type=input char=114 key=0'],
+ [9988, 'key type=input char=105 key=0'],
+ [10024, 'key type=up char=0 key=82'],
+ [10098, 'key type=up char=0 key=73'],
+ [10200, 'key type=input char=116 key=0'],
+ [10253, 'key type=input char=101 key=0'],
+ [10334, 'key type=up char=0 key=84'],
+ [10349, 'key type=input char=32 key=0'],
+ [10388, 'key type=up char=0 key=69'],
+ [10462, 'key type=up char=0 key=1284'],
+ [10620, 'key type=input char=97 key=0'],
+ [10727, 'key type=up char=0 key=65'],
+ [10847, 'key type=input char=115 key=0'],
+ [10953, 'key type=input char=32 key=0'],
+ [10978, 'key type=up char=0 key=83'],
+ [11059, 'key type=up char=0 key=1284'],
+ [11262, 'key type=input char=105 key=0'],
+ [11341, 'key type=input char=102 key=0'],
+ [11385, 'key type=up char=0 key=73'],
+ [11428, 'key type=input char=32 key=0'],
+ [11454, 'key type=up char=0 key=70'],
+ [11537, 'key type=up char=0 key=1284'],
+ [11696, 'key type=input char=73 key=0'],
+ [11797, 'key type=up char=0 key=73'],
+ [11814, 'key type=up char=0 key=16'],
+ [11917, 'key type=input char=39 key=0'],
+ [12028, 'key type=input char=109 key=0'],
+ [12034, 'key type=up char=0 key=222'],
+ [12171, 'key type=up char=0 key=77'],
+ [12195, 'key type=input char=32 key=0'],
+ [12302, 'key type=up char=0 key=1284'],
+ [12422, 'key type=input char=110 key=0'],
+ [12510, 'key type=input char=111 key=0'],
+ [12565, 'key type=up char=0 key=78'],
+ [12631, 'key type=input char=116 key=0'],
+ [12654, 'key type=up char=0 key=79'],
+ [12726, 'key type=input char=32 key=0'],
+ [12751, 'key type=up char=0 key=84'],
+ [12830, 'key type=up char=0 key=1284'],
+ [12963, 'key type=input char=101 key=0'],
+ [13044, 'key type=up char=0 key=69'],
+ [13176, 'key type=input char=120 key=0'],
+ [13319, 'key type=up char=0 key=88'],
+ [13460, 'key type=input char=112 key=0'],
+ [13542, 'key type=input char=101 key=0'],
+ [13606, 'key type=up char=0 key=80'],
+ [13637, 'key type=up char=0 key=69'],
+ [13788, 'key type=input char=99 key=0'],
+ [13908, 'key type=up char=0 key=67'],
+ [14061, 'key type=input char=116 key=0'],
+ [14130, 'key type=input char=105 key=0'],
+ [14167, 'key type=up char=0 key=84'],
+ [14216, 'key type=input char=110 key=0'],
+ [14272, 'key type=up char=0 key=73'],
+ [14339, 'key type=input char=103 key=0'],
+ [14363, 'key type=up char=0 key=78'],
+ [14457, 'key type=up char=0 key=71'],
+ [14500, 'key type=input char=32 key=0'],
+ [14590, 'key type=up char=0 key=1284'],
+ [15056, 'key type=input char=97 key=0'],
+ [15139, 'key type=input char=110 key=0'],
+ [15158, 'key type=up char=0 key=65'],
+ [15268, 'key type=up char=0 key=78'],
+ [15383, 'key type=input char=121 key=0'],
+ [15503, 'key type=input char=32 key=0'],
+ [15505, 'key type=up char=0 key=89'],
+ [15613, 'key type=up char=0 key=1284'],
+ [15769, 'key type=input char=108 key=0'],
+ [15888, 'key type=input char=97 key=0'],
+ [15903, 'key type=up char=0 key=76'],
+ [15981, 'key type=up char=0 key=65'],
+ [16148, 'key type=input char=116 key=0'],
+ [16196, 'key type=input char=101 key=0'],
+ [16275, 'key type=up char=0 key=84'],
+ [16308, 'key type=input char=110 key=0'],
+ [16341, 'key type=up char=0 key=69'],
+ [16441, 'key type=up char=0 key=78'],
+ [16833, 'key type=input char=99 key=0'],
+ [16875, 'key type=input char=121 key=0'],
+ [16948, 'key type=up char=0 key=67'],
+ [16966, 'key type=up char=0 key=89'],
+ [17582, 'key type=input char=32 key=0'],
+ [17672, 'key type=up char=0 key=1284'],
+ [17773, 'key type=input char=102 key=0'],
+ [17898, 'key type=up char=0 key=70'],
+ [17962, 'key type=input char=111 key=0'],
+ [18102, 'key type=input char=114 key=0'],
+ [18133, 'key type=up char=0 key=79'],
+ [18214, 'key type=up char=0 key=82'],
+ [18294, 'key type=input char=109 key=0'],
+ [18423, 'key type=input char=32 key=0'],
+ [18428, 'key type=up char=0 key=77'],
+ [18529, 'key type=up char=0 key=1284'],
+ [18563, 'key type=input char=105 key=0'],
+ [18674, 'key type=up char=0 key=73'],
+ [18703, 'key type=input char=116 key=0'],
+ [18799, 'key type=up char=0 key=84'],
+ [19067, 'key type=input char=46 key=0'],
+ [19147, 'key type=up char=0 key=190'],
+ [19440, 'key type=input char=32 key=0'],
+ [19511, 'key type=up char=0 key=1284'],
+ ];
});
commit 88f32c61bed15780a7edd1a42b348c9996ea4264
Author: Mihai Varga <mihai.varga at collabora.com>
Date: Mon Jul 27 17:51:45 2015 +0300
loleaflet: log method accepts a timestamp parameter
This will be used for tests, to add timestamps to tile requests
diff --git a/loleaflet/src/core/Log.js b/loleaflet/src/core/Log.js
index dcb9045..e8f731f 100644
--- a/loleaflet/src/core/Log.js
+++ b/loleaflet/src/core/Log.js
@@ -3,8 +3,10 @@
*/
L.Log = {
- log: function (msg, direction, tileCoords) {
- var time = Date.now();
+ log: function (msg, direction, tileCoords, time) {
+ if (!time) {
+ var time = Date.now();
+ }
if (!this._logs) {
this._logs = [];
}
More information about the Libreoffice-commits
mailing list