Skip to content
Snippets Groups Projects
Commit eb819fd5 authored by Piotr Gawron's avatar Piotr Gawron
Browse files

ignoring of mac specific hiden entries in zip file

parent 34fbf561
No related branches found
No related tags found
1 merge request!190Resolve "uploading zip file from MAC"
......@@ -159,7 +159,7 @@ AddProjectDialog.prototype.createGeneralTabContent = function () {
name: "project-file"
});
fileInput.addEventListener("change", function () {
return self.callListeners("onFileUpload", fileInput.files[0]);
return self.callListeners("onFileUpload", fileInput.files[0]).then(null, GuiConnector.alert);
}, false);
self.addListener("onFileUpload", function (e) {
var file = e.arg;
......@@ -936,6 +936,8 @@ AddProjectDialog.prototype.createZipEntry = function (jsZipEntry, zipObject) {
data.description = "";
}
});
} else if (this.isIgnoredZipEntry(filename)) {
type = undefined;
} else if (filename.indexOf("\\") === -1 && filename.indexOf("/") === -1) {
type = "MAP";
data.root = true;
......@@ -972,7 +974,11 @@ AddProjectDialog.prototype.createZipEntry = function (jsZipEntry, zipObject) {
}
return processingPromise.then(function () {
return new ZipEntry({filename: filename, type: type, data: data});
if (type !== undefined) {
return new ZipEntry({filename: filename, type: type, data: data});
} else {
return null;
}
});
};
......@@ -986,6 +992,15 @@ AddProjectDialog.prototype.setZipEntries = function (entries) {
};
AddProjectDialog.prototype.isIgnoredZipEntry = function (filename) {
var lowercaseString = filename.toLowerCase();
if (lowercaseString.startsWith("__macosx") || lowercaseString.startsWith(".ds_store")) {
return true;
} else {
return false;
}
};
AddProjectDialog.prototype.getEntryByFilename = function (filename) {
var self = this;
var entries = self.getZipEntries();
......
......@@ -172,7 +172,7 @@ describe('AddProjectDialog', function () {
dialog.setProjectId("(invalid id)");
return dialog.checkValidity().then(function () {
assert.notOk("Expected validity to reject");
}).catch(function(error){
}).catch(function (error) {
assert.ok(error instanceof ValidationError);
});
}).then().finally(function () {
......@@ -198,4 +198,38 @@ describe('AddProjectDialog', function () {
});
});
describe('isIgnoredZipEntry', function () {
it('valid entry', function () {
var dialog = new AddProjectDialog({
element: testDiv,
customMap: null
});
assert.notOk(dialog.isIgnoredZipEntry("images/a.png"));
assert.notOk(dialog.isIgnoredZipEntry("main.xml"));
return dialog.destroy();
});
it('invalid MAC OS entry', function () {
var dialog = new AddProjectDialog({
element: testDiv,
customMap: null
});
// noinspection SpellCheckingInspection
assert.ok(dialog.isIgnoredZipEntry("__MACOSX/.desc"));
assert.ok(dialog.isIgnoredZipEntry("__macosx/.desc"));
return dialog.destroy();
});
it('invalid old MAC OS entry', function () {
var dialog = new AddProjectDialog({
element: testDiv,
customMap: null
});
assert.ok(dialog.isIgnoredZipEntry(".DS_Store/.desc"));
assert.ok(dialog.isIgnoredZipEntry(".ds_store/.desc"));
return dialog.destroy();
});
});
});
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment