Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/server.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Calviño Sánchez <danxuliu@gmail.com>2017-06-09 10:09:41 +0300
committerDaniel Calviño Sánchez <danxuliu@gmail.com>2017-06-09 10:13:29 +0300
commit6bcace4609a27fc864b873bf66c66a8c2468ce87 (patch)
tree623ddee823f8be0209f93e541f7e5573030da3d1 /apps/systemtags/tests
parentccf4b9ec69c3a9d33cc02b5cf01f2ff0a866efdd (diff)
Extract toggle visibility of a SystemTagsInfoView to its own view
The SystemTagsInfoViewToggleView is a basic view that renders a label that, when clicked, toggles the visibility of an associated SystemTagsInfoView. In order to keep the view parent agnostic its attachment and detachment to/from the MainfFileInfoView is done in the FilesPlugin. Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
Diffstat (limited to 'apps/systemtags/tests')
-rw-r--r--apps/systemtags/tests/js/systemtagsinfoviewtoggleviewSpec.js93
1 files changed, 93 insertions, 0 deletions
diff --git a/apps/systemtags/tests/js/systemtagsinfoviewtoggleviewSpec.js b/apps/systemtags/tests/js/systemtagsinfoviewtoggleviewSpec.js
new file mode 100644
index 00000000000..5e6c2c820e9
--- /dev/null
+++ b/apps/systemtags/tests/js/systemtagsinfoviewtoggleviewSpec.js
@@ -0,0 +1,93 @@
+/**
+ *
+ * @copyright Copyright (c) 2017, Daniel Calviño Sánchez (danxuliu@gmail.com)
+ *
+ * @license GNU AGPL version 3 or any later version
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program 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 program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+describe('OCA.SystemTags.SystemTagsInfoViewToggleView', function () {
+
+ var systemTagsInfoView;
+ var view;
+
+ beforeEach(function() {
+ systemTagsInfoView = new OCA.SystemTags.SystemTagsInfoView();
+ view = new OCA.SystemTags.SystemTagsInfoViewToggleView({ systemTagsInfoView: systemTagsInfoView });
+ });
+
+ afterEach(function() {
+ view.remove();
+ systemTagsInfoView.remove();
+ });
+
+ describe('initialize', function() {
+ it('fails if a "systemTagsInfoView" parameter is not provided', function() {
+ var constructor = function() {
+ return new OCA.SystemTags.SystemTagsInfoViewToggleView({});
+ }
+
+ expect(constructor).toThrow();
+ });
+ });
+
+ describe('click on element', function() {
+
+ var isVisibleStub;
+ var showStub;
+ var hideStub;
+ var openDropdownStub;
+
+ beforeEach(function() {
+ isVisibleStub = sinon.stub(systemTagsInfoView, 'isVisible');
+ showStub = sinon.stub(systemTagsInfoView, 'show');
+ hideStub = sinon.stub(systemTagsInfoView, 'hide');
+ openDropdownStub = sinon.stub(systemTagsInfoView, 'openDropdown');
+ });
+
+ afterEach(function() {
+ isVisibleStub.restore();
+ showStub.restore();
+ hideStub.restore();
+ openDropdownStub.restore();
+ });
+
+ it('shows a not visible SystemTagsInfoView', function() {
+ isVisibleStub.returns(false);
+
+ view.$el.click();
+
+ expect(isVisibleStub.calledOnce).toBeTruthy();
+ expect(showStub.calledOnce).toBeTruthy();
+ expect(openDropdownStub.calledOnce).toBeTruthy();
+ expect(openDropdownStub.calledAfter(showStub)).toBeTruthy();
+ expect(hideStub.notCalled).toBeTruthy();
+ });
+
+ it('hides a visible SystemTagsInfoView', function() {
+ isVisibleStub.returns(true);
+
+ view.$el.click();
+
+ expect(isVisibleStub.calledOnce).toBeTruthy();
+ expect(hideStub.calledOnce).toBeTruthy();
+ expect(showStub.notCalled).toBeTruthy();
+ expect(openDropdownStub.notCalled).toBeTruthy();
+ });
+
+ });
+
+});