[Libreoffice-commits] online.git: loleaflet/spec

Mihai Varga mihai.varga at collabora.com
Thu Aug 20 09:05:35 PDT 2015


 loleaflet/spec/loleaflet.html             |   43 ++++++
 loleaflet/spec/loleaflet/loleafletSpec.js |  193 ++++++++++++++++++++++++++++++
 2 files changed, 236 insertions(+)

New commits:
commit c6e5a6b257bdd6b667c8fd419fb1628562f16cb2
Author: Mihai Varga <mihai.varga at collabora.com>
Date:   Thu Aug 20 19:04:06 2015 +0300

    loleaflet: unit tests - some still fail

diff --git a/loleaflet/spec/loleaflet.html b/loleaflet/spec/loleaflet.html
new file mode 100644
index 0000000..eb399b3
--- /dev/null
+++ b/loleaflet/spec/loleaflet.html
@@ -0,0 +1,43 @@
+<!DOCTYPE html>
+<html>
+<head>
+	<meta charset="utf-8">
+	<title>LOOL Spec Runner</title>
+	<link rel="stylesheet" type="text/css" href="../node_modules/mocha/mocha.css">
+	<link rel="stylesheet" type="text/css" href="../dist/leaflet.css">
+	<link rel="stylesheet" type="text/css" href="../dist/dialog/vex.css" />
+	<link rel="stylesheet" type="text/css" href="../dist/dialog/vex-theme-plain.css" />
+</head>
+<body>
+	<div id="mocha"></div>
+	<script src="expect.js"></script>
+	<script type="text/javascript" src="../node_modules/mocha/mocha.js"></script>
+	<script type="text/javascript" src="../node_modules/happen/happen.js"></script>
+	<script type="text/javascript" src="sinon.js"></script>
+
+	<!-- source files -->
+	<script type="text/javascript" src="../build/deps.js"></script>
+
+	<script type="text/javascript" src="../debug/leaflet-include.js"></script>
+
+	<script>
+		mocha.setup({
+			ui: 'bdd',
+			ignoreLeaks: true
+		});
+	</script>
+
+	<!-- spec files -->
+	<script type="text/javascript" src="loleaflet/loleafletSpec.js"></script>
+
+	<div id="toolbar" style="hidden">
+	</div>
+	<div id="document-container" style="top:0px; height:400px; visibility:hidden">
+		<div id="map"></div>
+	</div>
+
+	<script>
+		(window.mochaPhantomJS || window.mocha).run();
+	</script>
+</body>
+</html>
diff --git a/loleaflet/spec/loleaflet/loleafletSpec.js b/loleaflet/spec/loleaflet/loleafletSpec.js
new file mode 100644
index 0000000..2d0edf5
--- /dev/null
+++ b/loleaflet/spec/loleaflet/loleafletSpec.js
@@ -0,0 +1,193 @@
+describe('TileBench', function () {
+	this.timeout(10000);
+	var map;
+	var timeOut
+
+	var log = function (msg) {
+		// write custom log messages
+		var cont = document.getElementById('mocha-report');
+		var li = document.createElement('li');
+		li.style.class = 'test pass';
+		li.innerHTML = '<h2>' + msg + '</h2>';
+		cont.appendChild(li);
+	}
+
+	before(function () {
+		// initialize the map and load the document
+		map = L.map('map', {
+			center: [0, 0],
+			zoom: 10,
+			minZoom: 1,
+			maxZoom: 20,
+			server: 'ws://localhost:9980',
+			doubleClickZoom: false
+		});
+
+		var docLayer = new L.TileLayer('', {
+			doc: 'file:///home/mihai/Desktop/test_docs/eval.odt',
+			useSocket : true,
+			edit: false,
+			readOnly: false
+		});
+
+		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);
+	});
+
+	afterEach(function () {
+		map.off('statusindicator');
+	});
+
+	after(function () {
+		map.remove();
+	});
+
+	describe('Benchmarking', function () {
+		it('Load all new tiles', function (done) {
+			map.on('statusindicator', function (e) {
+				if (e.statusType === 'alltilesloaded') {
+					done();
+				}
+			});
+		});
+
+		it('Set permission to "readonly"', function (done) {
+			map.once('updatepermission', function (e) {
+				expect(e.perm).to.be('readonly');
+				done();
+			});
+			map.setPermission('readonly');
+		});
+
+		it('Set permission to "edit"', function (done) {
+			map.once('updatepermission', function (e) {
+				expect(e.perm).to.be('edit');
+				done();
+			});
+			map.setPermission('edit');
+		});
+
+		it('Set permission to "view"', function (done) {
+			map.once('updatepermission', function (e) {
+				expect(e.perm).to.be('view');
+				done();
+			});
+			map.setPermission('view');
+		});
+
+		it('Place the coursor by clicking', function (done) {
+			map.on('statusindicator', function (e) {
+				expect(e).to.have.property('statusType');
+				if (e.statusType === 'setvalue') {
+					expect(e).to.have.property('value');
+				}
+				if (e.statusType === 'finish') {
+					done();
+				}
+			});
+			map._docLayer._postMouseEvent('buttondown', 2500, 3515, 1);
+			map._docLayer._postMouseEvent('buttonup', 2500, 3515, 1);
+			map.setPermission('edit');
+		});
+
+		it('Make a word Bold', function (done) {
+			map.once('commandstatechanged', function (e) {
+				expect(e.unoCmd).to.be('Bold');
+				expect(e.state).to.be('false');
+				done();
+			});
+			map.toggleCommandState('Bold')
+		});
+
+		it('Search backwards', function (done) {
+			map.once('scrollto', function (e) {
+				//expect(e.x).to.be(0);
+				//expect(e.y).to.be.above(0);
+				//expect(e.y).to.be(2321);
+				done();
+			});
+			map.search('document', true);
+		});
+
+		it('Search not found', function (done) {
+			map.once('search', function (e) {
+				expect(e.originalPhrase).to.be('something-not-found');
+				expect(e.count).to.be(0);
+				done();
+			});
+			map.search('something-not-found');
+		});
+
+
+		it('Get document size', function () {
+			var size = map.getDocSize();
+			// TODO assert
+			//expect(size.x).to.be();
+			//expect(size.y).to.be();
+		});
+
+		it('Get document type', function () {
+			expect(map.getDocType()).to.be('text');
+		});
+
+		it('Check pages', function () {
+			expect(map.getNumberOfPages()).to.be(2);
+			expect(map.getNumberOfParts()).to.be(1);
+			expect(map.getCurrentPageNumber()).to.be(0);
+		});
+
+		it('Go to the next page', function () {
+			map.once('pagenumberchanged', function (e) {
+				expect(e.currentPage).to.be(1);
+				expect(e.pages).to.be(2);
+				expect(e.docType).to.be('text');
+				done();
+			});
+		});
+
+		it('Scroll to the top', function (done) {
+			map.once('updatescrolloffset', function (e) {
+				expect(e.x).to.be(0);
+				expect(e.y).to.be(0);
+				done();
+			});
+			map.scrollTop(0, {update: true});
+		});
+
+		it('Scroll to the middle', function (done) {
+			var size = map.getDocSize();
+			var x = Math.round(size.x / 2);
+			var y = Math.round(size.y / 2);
+			map.once('updatescrolloffset', function (e) {
+				expect(e.x).to.be(0);
+				expect(e.y).to.be(y);
+				done();
+			});
+			map.scroll(x, y, {update: true});
+		});
+
+		it('Check if pre-fetching works', function (done) {
+			// clear the tiles
+			map._docLayer._tiles = {};
+			map._docLayer._resetPreFetching(true);
+
+			this.timeout(7000);
+			// tiles are pre-fetched after 6seconds
+			setTimeout(function () {
+				expect(Object.keys(map._docLayer._tiles).length).to.be.above(5);
+				done();
+			}, 6000);
+		});
+	});
+});


More information about the Libreoffice-commits mailing list