diff options
| -rw-r--r-- | lib/internet.js | 16 | ||||
| -rw-r--r-- | test/internet.unit.js | 18 |
2 files changed, 31 insertions, 3 deletions
diff --git a/lib/internet.js b/lib/internet.js index 0de5ef65..ca33672d 100644 --- a/lib/internet.js +++ b/lib/internet.js @@ -305,13 +305,23 @@ var Internet = function (faker) { * mac * * @method faker.internet.mac + * @param {string} sep */ - self.mac = function(){ - var i, mac = ""; + self.mac = function(sep){ + var i, + mac = "", + validSep = ':'; + + // if the client passed in a different separator than `:`, + // we will use it if it is in the list of acceptable separators (dash or no separator) + if (['-', ''].indexOf(sep) !== -1) { + validSep = sep; + } + for (i=0; i < 12; i++) { mac+= faker.random.number(15).toString(16); if (i%2==1 && i != 11) { - mac+=":"; + mac+=validSep; } } return mac; diff --git a/test/internet.unit.js b/test/internet.unit.js index 12da8eec..0c9bbd30 100644 --- a/test/internet.unit.js +++ b/test/internet.unit.js @@ -173,5 +173,23 @@ describe("internet.js", function () { var mac = faker.internet.mac(); assert.ok(mac.match(/^([a-f0-9]{2}:){5}[a-f0-9]{2}$/)); }); + + it("uses the dash separator if we pass it in as our separator", function () { + var mac = faker.internet.mac('-'); + assert.ok(mac.match(/^([a-f0-9]{2}-){5}[a-f0-9]{2}$/)); + }); + + it("uses no separator if we pass in an empty string", function() { + var mac = faker.internet.mac(''); + assert.ok(mac.match(/^[a-f0-9]{12}$/)); + }); + + it("uses the default colon (:) if we provide an unacceptable separator", function() { + var mac = faker.internet.mac('!'); + assert.ok(mac.match(/^([a-f0-9]{2}:){5}[a-f0-9]{2}$/)); + + mac = faker.internet.mac('&'); + assert.ok(mac.match(/^([a-f0-9]{2}:){5}[a-f0-9]{2}$/)); + }); }); }); |
