diff --git a/lib/ldp-container.js b/lib/ldp-container.js index a0420c28b..05796f62d 100644 --- a/lib/ldp-container.js +++ b/lib/ldp-container.js @@ -4,15 +4,14 @@ module.exports.addStats = addStats module.exports.getMetadataGraph = getMetadataGraph module.exports.readdir = readdir -var $rdf = require('rdflib') -var debug = require('./debug') -var error = require('./http-error') -var fs = require('fs') -var ns = require('solid-namespace')($rdf) -var S = require('string') -// var turtleExtension = '.ttl' -var mime = require('mime-types') -const url = require('url') +const $rdf = require('rdflib') +const debug = require('./debug') +const error = require('./http-error') +const fs = require('fs') +const ns = require('solid-namespace')($rdf) +const S = require('string') +const mime = require('mime-types') +const path = require('path') function addContainerStats (ldp, reqUri, filename, resourceGraph, next) { ldp.stat(filename, function (err, containerStats) { @@ -38,7 +37,7 @@ function addFile (ldp, resourceGraph, containerUri, reqUri, uri, container, file return callback(null) } - let filePath = url.resolve(container, file) + const filePath = path.join(container, file) // Get file stats ldp.stat(filePath, function (err, stats) { diff --git a/test/integration/ldp-test.js b/test/integration/ldp-test.js index 932f4656c..2d03b94c8 100644 --- a/test/integration/ldp-test.js +++ b/test/integration/ldp-test.js @@ -245,26 +245,21 @@ describe('LDP', function () { }) }) - it('should ldp:contains the same amount of files in dir', function (done) { + it('should ldp:contains the same files in dir', function (done) { ldp.listContainer(path.join(__dirname, '../resources/sampleContainer/'), 'https://server.tld/resources/sampleContainer/', 'https://server.tld', '', 'text/turtle', function (err, data) { if (err) done(err) - fs.readdir(path.join(__dirname, '../resources/sampleContainer/'), function (err, files) { - var graph = $rdf.graph() - $rdf.parse( - data, - graph, - 'https://server.tld/sampleContainer', - 'text/turtle') + fs.readdir(path.join(__dirname, '../resources/sampleContainer/'), function (err, expectedFiles) { + const graph = $rdf.graph() + $rdf.parse(data, graph, 'https://server.tld/sampleContainer', 'text/turtle') + const statements = graph.match(null, ns.ldp('contains'), null) + const files = statements + .map(s => s.object.value.replace(/.*\//, '')) + .map(decodeURIComponent) - var statements = graph.each( - undefined, - ns.ldp('contains'), - undefined) - - assert.notEqual(graph.statements.length, 0) - assert.equal(statements.length, files.length) - assert.notOk(err) - done() + files.sort() + expectedFiles.sort() + assert.deepEqual(files, expectedFiles) + done(err) }) }) }) diff --git a/test/resources/sampleContainer/filename with spaces.txt b/test/resources/sampleContainer/filename with spaces.txt new file mode 100644 index 000000000..e69de29bb