[Pkg-owncloud-commits] [owncloud] 82/172: Added ground work for OC.Share unit tests

David Prévot taffit at moszumanska.debian.org
Sun May 18 20:09:42 UTC 2014


This is an automated email from the git hooks/post-receive script.

taffit pushed a commit to branch master
in repository owncloud.

commit 627eba53489b3ad4d04ab5bb156d7610ffe9dfc8
Author: Vincent Petry <pvince81 at owncloud.com>
Date:   Tue May 13 11:15:06 2014 +0200

    Added ground work for OC.Share unit tests
---
 core/js/core.json                |  1 +
 core/js/tests/specHelper.js      |  3 ++
 core/js/tests/specs/shareSpec.js | 97 ++++++++++++++++++++++++++++++++++++++++
 3 files changed, 101 insertions(+)

diff --git a/core/js/core.json b/core/js/core.json
index 05c2a17..f1e0ba8 100644
--- a/core/js/core.json
+++ b/core/js/core.json
@@ -14,6 +14,7 @@
 		"jquery.ocdialog.js",
 		"oc-dialogs.js",
 		"js.js",
+		"share.js",
 		"octemplate.js",
 		"eventsource.js",
 		"config.js",
diff --git a/core/js/tests/specHelper.js b/core/js/tests/specHelper.js
index d86cd81..b9be918 100644
--- a/core/js/tests/specHelper.js
+++ b/core/js/tests/specHelper.js
@@ -63,6 +63,9 @@ window.oc_config = {
 	session_lifetime: 600 * 1000,
 	session_keepalive: false
 };
+window.oc_appconfig = {
+	core: {}
+};
 window.oc_defaults = {};
 
 // global setup for all tests
diff --git a/core/js/tests/specs/shareSpec.js b/core/js/tests/specs/shareSpec.js
new file mode 100644
index 0000000..a487b71
--- /dev/null
+++ b/core/js/tests/specs/shareSpec.js
@@ -0,0 +1,97 @@
+/**
+* ownCloud
+*
+* @author Vincent Petry
+* @copyright 2014 Vincent Petry <pvince81 at owncloud.com>
+*
+* This library is free software; you can redistribute it and/or
+* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
+* License as published by the Free Software Foundation; either
+* version 3 of the License, or any later version.
+*
+* This library is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU AFFERO GENERAL PUBLIC LICENSE for more details.
+*
+* You should have received a copy of the GNU Affero General Public
+* License along with this library.  If not, see <http://www.gnu.org/licenses/>.
+*
+*/
+
+/* global oc_appconfig */
+describe('OC.Share tests', function() {
+	describe('dropdown', function() {
+		var $container;
+		var oldAppConfig;
+		var loadItemStub;
+		var autocompleteStub;
+		beforeEach(function() {
+			$('#testArea').append($('<div id="shareContainer"></div>'));
+			$container = $('#shareContainer');
+			/* jshint camelcase:false */
+			oldAppConfig = oc_appconfig.core;
+			loadItemStub = sinon.stub(OC.Share, 'loadItem');
+
+			loadItemStub.returns({
+				reshare: [],
+				shares: []
+			});
+
+			autocompleteStub = sinon.stub($.fn, 'autocomplete', function() {
+				// dummy container with the expected attributes
+				var $el = $('<div></div>').data('ui-autocomplete', {});
+				return $el;
+			});
+		});
+		afterEach(function() {
+			/* jshint camelcase:false */
+			oc_appconfig.core = oldAppConfig;
+			loadItemStub.restore();
+
+			autocompleteStub.restore();
+		});
+		it('calls loadItem with the correct arguments', function() {
+			OC.Share.showDropDown(
+				'file',
+			   	123,
+			   	$container,
+				'http://localhost/dummylink',
+				31,
+				'shared_file_name.txt'
+			);
+			expect(loadItemStub.calledOnce).toEqual(true);
+			expect(loadItemStub.calledWith('file', 123)).toEqual(true);
+		});
+		it('shows the dropdown with default values', function() {
+			var $el;
+			OC.Share.showDropDown(
+				'file',
+			   	123,
+			   	$container,
+				'http://localhost/dummylink',
+				31,
+				'shared_file_name.txt'
+			);
+			$el = $container.find('#dropdown');
+			expect($el.length).toEqual(1);
+			expect($el.attr('data-item-type')).toEqual('file');
+			expect($el.attr('data-item-source')).toEqual('123');
+			// TODO: expect that other parts are rendered correctly
+		});
+		it('shows default expiration date when set', function() {
+			oc_appconfig.core.defaultExpireDateEnabled = "yes";
+			oc_appconfig.core.defaultExpireDate = '';
+			// TODO: expect that default date was set
+		});
+		it('shows default expiration date is set but disabled', function() {
+			oc_appconfig.core.defaultExpireDateEnabled = "no";
+			oc_appconfig.core.defaultExpireDate = '';
+			// TODO: expect that default date was NOT set
+		});
+		// TODO: test password field visibility (whenever enforced or not)
+		// TODO: check link share field visibility based on whether it is allowed
+		// TODO: check public upload visibility based on config
+	});
+});
+

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-owncloud/owncloud.git



More information about the Pkg-owncloud-commits mailing list