123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141 |
- /**
- * ownCloud
- *
- * @author Tom Needham
- * @copyright 2015 Tom Needham <tom@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.ShareDialogShareeListView', function () {
- var oldCurrentUser;
- var fileInfoModel;
- var configModel;
- var shareModel;
- var listView;
- var updateShareStub;
- beforeEach(function () {
- /* jshint camelcase:false */
- oldAppConfig = _.extend({}, oc_appconfig.core);
- oc_appconfig.core.enforcePasswordForPublicLink = false;
- fileInfoModel = new OCA.Files.FileInfoModel({
- id: 123,
- name: 'shared_file_name.txt',
- path: '/subdir',
- size: 100,
- mimetype: 'text/plain',
- permissions: 31,
- sharePermissions: 31
- });
- var attributes = {
- itemType: fileInfoModel.isDirectory() ? 'folder' : 'file',
- itemSource: fileInfoModel.get('id'),
- possiblePermissions: 31,
- permissions: 31
- };
- shareModel = new OC.Share.ShareItemModel(attributes, {
- configModel: configModel,
- fileInfoModel: fileInfoModel
- });
- configModel = new OC.Share.ShareConfigModel({
- enforcePasswordForPublicLink: false,
- isResharingAllowed: true,
- isDefaultExpireDateEnabled: false,
- isDefaultExpireDateEnforced: false,
- defaultExpireDate: 7
- });
- listView = new OC.Share.ShareDialogShareeListView({
- configModel: configModel,
- model: shareModel
- });
- // required for proper event propagation when simulating clicks in some cases (jquery bugs)
- $('#testArea').append(listView.$el);
- shareModel.set({
- linkShare: {isLinkShare: false}
- });
- oldCurrentUser = OC.currentUser;
- OC.currentUser = 'user0';
- updateShareStub = sinon.stub(OC.Share.ShareItemModel.prototype, 'updateShare');
- });
- afterEach(function () {
- OC.currentUser = oldCurrentUser;
- /* jshint camelcase:false */
- oc_appconfig.core = oldAppConfig;
- listView.remove();
- updateShareStub.restore();
- });
- describe('Manages checkbox events correctly', function () {
- it('Checks cruds boxes when edit box checked', function () {
- shareModel.set('shares', [{
- id: 100,
- item_source: 123,
- permissions: 1,
- share_type: OC.Share.SHARE_TYPE_USER,
- share_with: 'user1',
- share_with_displayname: 'User One'
- }]);
- shareModel.set('itemType', 'folder');
- listView.render();
- listView.$el.find("input[name='edit']").click();
- expect(listView.$el.find("input[name='update']").is(':checked')).toEqual(true);
- expect(updateShareStub.calledOnce).toEqual(true);
- });
- it('Checks edit box when create/update/delete are checked', function () {
- shareModel.set('shares', [{
- id: 100,
- item_source: 123,
- permissions: 1,
- share_type: OC.Share.SHARE_TYPE_USER,
- share_with: 'user1',
- share_with_displayname: 'User One',
- itemType: 'folder'
- }]);
- shareModel.set('itemType', 'folder');
- listView.render();
- listView.$el.find("input[name='update']").click();
- expect(listView.$el.find("input[name='edit']").is(':checked')).toEqual(true);
- expect(updateShareStub.calledOnce).toEqual(true);
- });
- it('shows cruds checkboxes when toggled', function () {
- shareModel.set('shares', [{
- id: 100,
- item_source: 123,
- permissions: 1,
- share_type: OC.Share.SHARE_TYPE_USER,
- share_with: 'user1',
- share_with_displayname: 'User One'
- }]);
- listView.render();
- listView.$el.find('a.showCruds').click();
- expect(listView.$el.find('li.cruds').hasClass('hidden')).toEqual(false);
- });
- });
- });
|