diff options
| author | Marak <[email protected]> | 2017-02-09 18:26:49 -0500 |
|---|---|---|
| committer | GitHub <[email protected]> | 2017-02-09 18:26:49 -0500 |
| commit | 2919b07973d5ff1bda890f38efe0644333bd1bad (patch) | |
| tree | cc1d497e829e68f47fc4e73644922fab5f92ebd4 | |
| parent | 89df29c092a3d3581b76c8fa26101172271d1dc4 (diff) | |
| parent | 4bffe048c114b4e11f527f05ddbbd7bbee294210 (diff) | |
| download | faker-2919b07973d5ff1bda890f38efe0644333bd1bad.tar.xz faker-2919b07973d5ff1bda890f38efe0644333bd1bad.zip | |
[api] [fix] Don't allow `/` in file names or paths
Don't allow path seperators in generated filenames
| -rw-r--r-- | lib/system.js | 4 | ||||
| -rw-r--r-- | test/system.unit.js | 27 |
2 files changed, 30 insertions, 1 deletions
diff --git a/lib/system.js b/lib/system.js index 60a55246..9ef713c8 100644 --- a/lib/system.js +++ b/lib/system.js @@ -19,6 +19,7 @@ function System (faker) { str = str.replace(/\,/g, '_'); str = str.replace(/\-/g, '_'); str = str.replace(/\\/g, '_'); + str = str.replace(/\//g, '_'); str = str.toLowerCase(); return str; }; @@ -36,6 +37,7 @@ function System (faker) { str = str.replace(/\,/g, '_'); str = str.replace(/\-/g, '_'); str = str.replace(/\\/g, '_'); + str = str.replace(/\//g, '_'); str = str.toLowerCase(); return str; }; @@ -155,4 +157,4 @@ function System (faker) { } -module['exports'] = System;
\ No newline at end of file +module['exports'] = System; diff --git a/test/system.unit.js b/test/system.unit.js new file mode 100644 index 00000000..1edcb8be --- /dev/null +++ b/test/system.unit.js @@ -0,0 +1,27 @@ +if (typeof module !== 'undefined') { + var assert = require('assert'); + var sinon = require('sinon'); + var faker = require('../index'); +} + +describe("system.js", function () { + describe("fileName()", function () { + it("returns filenames without system path seperators", function () { + sinon.stub(faker.random, 'words').returns('24/7'); + var fileName = faker.system.fileName(); + assert.equal(fileName.indexOf('/'), -1, 'generated fileNames should not have path seperators'); + + faker.random.words.restore(); + }); + }); + + describe("commonFileName()", function () { + it("returns filenames without system path seperators", function () { + sinon.stub(faker.random, 'words').returns('24/7'); + var fileName = faker.system.commonFileName(); + assert.equal(fileName.indexOf('/'), -1, 'generated commonFileNames should not have path seperators'); + + faker.random.words.restore(); + }); + }); +}); |
