Fixed folder icon update routine when share owner exists
Whenever a folder has a "data-share-owner" attribute, the icon is now properly updated to a shared folder icon.
This commit is contained in:
parent
1fff77f5de
commit
607ea636be
|
@ -938,16 +938,6 @@ describe('OCA.Files.FileList tests', function() {
|
|||
describe('file previews', function() {
|
||||
var previewLoadStub;
|
||||
|
||||
function getImageUrl($el) {
|
||||
// might be slightly different cross-browser
|
||||
var url = $el.css('background-image');
|
||||
var r = url.match(/url\(['"]?([^'")]*)['"]?\)/);
|
||||
if (!r) {
|
||||
return url;
|
||||
}
|
||||
return r[1];
|
||||
}
|
||||
|
||||
beforeEach(function() {
|
||||
previewLoadStub = sinon.stub(OCA.Files.FileList.prototype, 'lazyLoadPreview');
|
||||
});
|
||||
|
@ -961,7 +951,7 @@ describe('OCA.Files.FileList tests', function() {
|
|||
};
|
||||
var $tr = fileList.add(fileData);
|
||||
var $td = $tr.find('td.filename');
|
||||
expect(getImageUrl($td)).toEqual(OC.webroot + '/core/img/filetypes/file.svg');
|
||||
expect(OC.TestUtil.getImageUrl($td)).toEqual(OC.webroot + '/core/img/filetypes/file.svg');
|
||||
expect(previewLoadStub.notCalled).toEqual(true);
|
||||
});
|
||||
it('renders default icon for dir when none provided and no preview is available', function() {
|
||||
|
@ -971,7 +961,7 @@ describe('OCA.Files.FileList tests', function() {
|
|||
};
|
||||
var $tr = fileList.add(fileData);
|
||||
var $td = $tr.find('td.filename');
|
||||
expect(getImageUrl($td)).toEqual(OC.webroot + '/core/img/filetypes/folder.svg');
|
||||
expect(OC.TestUtil.getImageUrl($td)).toEqual(OC.webroot + '/core/img/filetypes/folder.svg');
|
||||
expect(previewLoadStub.notCalled).toEqual(true);
|
||||
});
|
||||
it('renders provided icon for file when provided', function() {
|
||||
|
@ -982,7 +972,7 @@ describe('OCA.Files.FileList tests', function() {
|
|||
};
|
||||
var $tr = fileList.add(fileData);
|
||||
var $td = $tr.find('td.filename');
|
||||
expect(getImageUrl($td)).toEqual(OC.webroot + '/core/img/filetypes/application-pdf.svg');
|
||||
expect(OC.TestUtil.getImageUrl($td)).toEqual(OC.webroot + '/core/img/filetypes/application-pdf.svg');
|
||||
expect(previewLoadStub.notCalled).toEqual(true);
|
||||
});
|
||||
it('renders preview when no icon was provided and preview is available', function() {
|
||||
|
@ -993,11 +983,11 @@ describe('OCA.Files.FileList tests', function() {
|
|||
};
|
||||
var $tr = fileList.add(fileData);
|
||||
var $td = $tr.find('td.filename');
|
||||
expect(getImageUrl($td)).toEqual(OC.webroot + '/core/img/filetypes/file.svg');
|
||||
expect(OC.TestUtil.getImageUrl($td)).toEqual(OC.webroot + '/core/img/filetypes/file.svg');
|
||||
expect(previewLoadStub.calledOnce).toEqual(true);
|
||||
// third argument is callback
|
||||
previewLoadStub.getCall(0).args[0].callback(OC.webroot + '/somepath.png');
|
||||
expect(getImageUrl($td)).toEqual(OC.webroot + '/somepath.png');
|
||||
expect(OC.TestUtil.getImageUrl($td)).toEqual(OC.webroot + '/somepath.png');
|
||||
});
|
||||
it('renders default file type icon when no icon was provided and no preview is available', function() {
|
||||
var fileData = {
|
||||
|
@ -1007,7 +997,7 @@ describe('OCA.Files.FileList tests', function() {
|
|||
};
|
||||
var $tr = fileList.add(fileData);
|
||||
var $td = $tr.find('td.filename');
|
||||
expect(getImageUrl($td)).toEqual(OC.webroot + '/core/img/filetypes/file.svg');
|
||||
expect(OC.TestUtil.getImageUrl($td)).toEqual(OC.webroot + '/core/img/filetypes/file.svg');
|
||||
expect(previewLoadStub.notCalled).toEqual(true);
|
||||
});
|
||||
});
|
||||
|
|
|
@ -231,7 +231,7 @@ OC.Share={
|
|||
var shareFolderIcon;
|
||||
var image = OC.imagePath('core', 'actions/share');
|
||||
// update folder icon
|
||||
if (type === 'dir' && (hasShares || hasLink)) {
|
||||
if (type === 'dir' && (hasShares || hasLink || owner)) {
|
||||
if (hasLink) {
|
||||
shareFolderIcon = OC.imagePath('core', 'filetypes/folder-public');
|
||||
}
|
||||
|
|
|
@ -82,6 +82,26 @@ window.Snap.prototype = {
|
|||
var fakeServer = null,
|
||||
$testArea = null;
|
||||
|
||||
/**
|
||||
* Utility functions for testing
|
||||
*/
|
||||
var TestUtil = {
|
||||
/**
|
||||
* Returns the image URL set on the given element
|
||||
* @param $el element
|
||||
* @return {String} image URL
|
||||
*/
|
||||
getImageUrl: function($el) {
|
||||
// might be slightly different cross-browser
|
||||
var url = $el.css('background-image');
|
||||
var r = url.match(/url\(['"]?([^'")]*)['"]?\)/);
|
||||
if (!r) {
|
||||
return url;
|
||||
}
|
||||
return r[1];
|
||||
}
|
||||
};
|
||||
|
||||
beforeEach(function() {
|
||||
// test area for elements that need absolute selector access or measure widths/heights
|
||||
// which wouldn't work for detached or hidden elements
|
||||
|
@ -103,6 +123,10 @@ window.Snap.prototype = {
|
|||
// make it globally available, so that other tests can define
|
||||
// custom responses
|
||||
window.fakeServer = fakeServer;
|
||||
|
||||
if (!OC.TestUtil) {
|
||||
OC.TestUtil = TestUtil;
|
||||
}
|
||||
});
|
||||
|
||||
afterEach(function() {
|
||||
|
|
|
@ -562,7 +562,52 @@ describe('OC.Share tests', function() {
|
|||
});
|
||||
});
|
||||
|
||||
// TODO: add unit tests for folder icons
|
||||
describe('displaying the folder icon', function() {
|
||||
function checkIcon(expectedImage) {
|
||||
var imageUrl = OC.TestUtil.getImageUrl($file.find('.filename'));
|
||||
expectedIcon = OC.imagePath('core', expectedImage);
|
||||
expect(imageUrl).toEqual(expectedIcon);
|
||||
}
|
||||
|
||||
it('shows a plain folder icon for non-shared folders', function() {
|
||||
$file.attr('data-type', 'dir');
|
||||
OC.Share.markFileAsShared($file);
|
||||
|
||||
checkIcon('filetypes/folder');
|
||||
});
|
||||
it('shows a shared folder icon for folders shared with another user', function() {
|
||||
$file.attr('data-type', 'dir');
|
||||
OC.Share.markFileAsShared($file, true);
|
||||
|
||||
checkIcon('filetypes/folder-shared');
|
||||
});
|
||||
it('shows a shared folder icon for folders shared with the current user', function() {
|
||||
$file.attr('data-type', 'dir');
|
||||
$file.attr('data-share-owner', 'someoneelse');
|
||||
OC.Share.markFileAsShared($file);
|
||||
|
||||
checkIcon('filetypes/folder-shared');
|
||||
});
|
||||
it('shows a link folder icon for folders shared with link', function() {
|
||||
$file.attr('data-type', 'dir');
|
||||
OC.Share.markFileAsShared($file, false, true);
|
||||
|
||||
checkIcon('filetypes/folder-public');
|
||||
});
|
||||
it('shows a link folder icon for folders shared with both link and another user', function() {
|
||||
$file.attr('data-type', 'dir');
|
||||
OC.Share.markFileAsShared($file, true, true);
|
||||
|
||||
checkIcon('filetypes/folder-public');
|
||||
});
|
||||
it('shows a link folder icon for folders reshared with link', function() {
|
||||
$file.attr('data-type', 'dir');
|
||||
$file.attr('data-share-owner', 'someoneelse');
|
||||
OC.Share.markFileAsShared($file, false, true);
|
||||
|
||||
checkIcon('filetypes/folder-public');
|
||||
});
|
||||
});
|
||||
// TODO: add unit tests for share recipients
|
||||
});
|
||||
});
|
||||
|
|
Loading…
Reference in New Issue