From 6a0f5cfc619e8e7463883b8df1375b93bc68a4d1 Mon Sep 17 00:00:00 2001
From: Vincent Petry <pvince81@owncloud.com>
Date: Thu, 12 Jun 2014 18:42:09 +0200
Subject: [PATCH] Added unit tests for heartbeat interval min/max values

---
 core/js/tests/specs/coreSpec.js | 24 +++++++++++++++++++++++-
 1 file changed, 23 insertions(+), 1 deletion(-)

diff --git a/core/js/tests/specs/coreSpec.js b/core/js/tests/specs/coreSpec.js
index 3c62b976779..dd9d4a79277 100644
--- a/core/js/tests/specs/coreSpec.js
+++ b/core/js/tests/specs/coreSpec.js
@@ -19,7 +19,6 @@
 *
 */
 
-/* global OC */
 describe('Core base tests', function() {
 	describe('Base values', function() {
 		it('Sets webroots', function() {
@@ -235,10 +234,12 @@ describe('Core base tests', function() {
 		});
 		afterEach(function() {
 			clock.restore();
+			/* jshint camelcase: false */
 			window.oc_config = oldConfig;
 			routeStub.restore();
 		});
 		it('sends heartbeat half the session lifetime when heartbeat enabled', function() {
+			/* jshint camelcase: false */
 			window.oc_config = {
 				session_keepalive: true,
 				session_lifetime: 300
@@ -265,6 +266,7 @@ describe('Core base tests', function() {
 			expect(counter).toEqual(2);
 		});
 		it('does no send heartbeat when heartbeat disabled', function() {
+			/* jshint camelcase: false */
 			window.oc_config = {
 				session_keepalive: false,
 				session_lifetime: 300
@@ -279,6 +281,26 @@ describe('Core base tests', function() {
 			// still nothing
 			expect(counter).toEqual(0);
 		});
+		it('limits the heartbeat between one minute and one day', function() {
+			/* jshint camelcase: false */
+			var setIntervalStub = sinon.stub(window, 'setInterval');
+			window.oc_config = {
+				session_keepalive: true,
+				session_lifetime: 5
+			};
+			window.initCore();
+			expect(setIntervalStub.getCall(0).args[1]).toEqual(60 * 1000);
+			setIntervalStub.reset();
+
+			window.oc_config = {
+				session_keepalive: true,
+				session_lifetime: 48 * 3600
+			};
+			window.initCore();
+			expect(setIntervalStub.getCall(0).args[1]).toEqual(24 * 3600 * 1000);
+
+			setIntervalStub.restore();
+		});
 	});
 	describe('Parse query string', function() {
 		it('Parses query string from full URL', function() {
-- 
GitLab