aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarak <[email protected]>2017-02-09 18:26:49 -0500
committerGitHub <[email protected]>2017-02-09 18:26:49 -0500
commit2919b07973d5ff1bda890f38efe0644333bd1bad (patch)
treecc1d497e829e68f47fc4e73644922fab5f92ebd4
parent89df29c092a3d3581b76c8fa26101172271d1dc4 (diff)
parent4bffe048c114b4e11f527f05ddbbd7bbee294210 (diff)
downloadfaker-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.js4
-rw-r--r--test/system.unit.js27
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();
+ });
+ });
+});