diff options
| author | ChinCluBi <[email protected]> | 2016-08-12 14:21:05 +0700 |
|---|---|---|
| committer | ChinCluBi <[email protected]> | 2016-08-12 14:21:05 +0700 |
| commit | bc8ee47acecf2045f9bb4a504cd8494b8a7113e9 (patch) | |
| tree | f53fc28c59a44a82e234c13724854a9d3fe953ef | |
| parent | ec13e84dcd6e01f908aa89bc56d3f8b1d5c9cd42 (diff) | |
| download | faker-bc8ee47acecf2045f9bb4a504cd8494b8a7113e9.tar.xz faker-bc8ee47acecf2045f9bb4a504cd8494b8a7113e9.zip | |
move random image from lorempixel.com to unsplash.com
| -rw-r--r-- | lib/image.js | 60 | ||||
| -rw-r--r-- | test/image.unit.js | 50 |
2 files changed, 87 insertions, 23 deletions
diff --git a/lib/image.js b/lib/image.js index 20576d92..ef4c12da 100644 --- a/lib/image.js +++ b/lib/image.js @@ -5,6 +5,8 @@ var Image = function (faker) { var self = this; + var otherCategories = ["abstract", "animals", "business", "cats", "city", "nightlife", "fashion", "sports", "technics", "transport"]; + var unsplashCategories = ["food", "nature", "people", "technology", "objects", "buildings"]; /** * image @@ -15,8 +17,8 @@ var Image = function (faker) { * @method faker.image.image */ self.image = function (width, height, randomize) { - var categories = ["abstract", "animals", "business", "cats", "city", "food", "nightlife", "fashion", "people", "nature", "sports", "technics", "transport"]; - return self[faker.random.arrayElement(categories)](width, height, randomize); + var allCategories = unsplashCategories.concat(otherCategories); + return self[faker.random.arrayElement(allCategories)](width, height, randomize); }; /** * avatar @@ -39,14 +41,25 @@ var Image = function (faker) { var width = width || 640; var height = height || 480; - var url ='http://lorempixel.com/' + width + '/' + height; - if (typeof category !== 'undefined') { - url += '/' + category; + var url ='https://source.unsplash.com'; + + if (typeof category !== 'undefined' && unsplashCategories.indexOf(category) > -1) { + url += '/category/' + category; + } + + url += '/' + width + 'x' + height + + if (typeof category !== 'undefined' && otherCategories.indexOf(category) > -1) { + url += '?' + category } + /* + Current version of unsplash official wrapper(source.unsplash.com) does not support full randomize yet. + I will implement randomize function with official unsplash api in next version. if (randomize) { url += '?' + faker.random.number() } + */ return url; }; @@ -192,7 +205,40 @@ var Image = function (faker) { */ self.transport = function (width, height, randomize) { return faker.image.imageUrl(width, height, 'transport', randomize); - } + }; + /** + * technology + * + * @param {number} width + * @param {number} height + * @param {boolean} randomize + * @method faker.image.technology + */ + self.technology = function (width, height, randomize) { + return faker.image.imageUrl(width, height, 'technology', randomize); + }; + /** + * objects + * + * @param {number} width + * @param {number} height + * @param {boolean} randomize + * @method faker.image.objects + */ + self.objects = function (width, height, randomize) { + return faker.image.imageUrl(width, height, 'objects', randomize); + }; + /** + * buildings + * + * @param {number} width + * @param {number} height + * @param {boolean} randomize + * @method faker.image.buildings + */ + self.buildings = function (width, height, randomize) { + return faker.image.imageUrl(width, height, 'buildings', randomize); + }; } -module["exports"] = Image;
\ No newline at end of file +module["exports"] = Image; diff --git a/test/image.unit.js b/test/image.unit.js index e7c7c3c7..a469ba87 100644 --- a/test/image.unit.js +++ b/test/image.unit.js @@ -9,17 +9,17 @@ describe("image.js", function () { it("returns a random image url from lorempixel", function () { var imageUrl = faker.image.imageUrl(); - assert.equal(imageUrl, 'http://lorempixel.com/640/480'); + assert.equal(imageUrl, 'https://source.unsplash.com/640x480'); }); it("returns a random image url from lorempixel with width and height", function () { var imageUrl = faker.image.imageUrl(100, 100); - assert.equal(imageUrl, 'http://lorempixel.com/100/100'); + assert.equal(imageUrl, 'https://source.unsplash.com/100x100'); }); it("returns a random image url for a specified category", function () { var imageUrl = faker.image.imageUrl(100, 100, 'abstract'); - assert.equal(imageUrl, 'http://lorempixel.com/100/100/abstract'); + assert.equal(imageUrl, 'https://source.unsplash.com/100x100?abstract'); }); /* it.only("returns a random image url from lorempixel with a randomizer", function () { @@ -38,79 +38,97 @@ describe("image.js", function () { describe("abstract()", function () { it("returns a random abstract image url", function () { var abstract = faker.image.abstract(); - assert.equal(abstract, 'http://lorempixel.com/640/480/abstract'); + assert.equal(abstract, 'https://source.unsplash.com/640x480?abstract'); }); }); describe("animals()", function () { it("returns a random animals image url", function () { var animals = faker.image.animals(); - assert.equal(animals, 'http://lorempixel.com/640/480/animals'); + assert.equal(animals, 'https://source.unsplash.com/640x480?animals'); }); }); describe("business()", function () { it("returns a random business image url", function () { var business = faker.image.business(); - assert.equal(business, 'http://lorempixel.com/640/480/business'); + assert.equal(business, 'https://source.unsplash.com/640x480?business'); }); }); describe("cats()", function () { it("returns a random cats image url", function () { var cats = faker.image.cats(); - assert.equal(cats, 'http://lorempixel.com/640/480/cats'); + assert.equal(cats, 'https://source.unsplash.com/640x480?cats'); }); }); describe("city()", function () { it("returns a random city image url", function () { var city = faker.image.city(); - assert.equal(city, 'http://lorempixel.com/640/480/city'); + assert.equal(city, 'https://source.unsplash.com/640x480?city'); }); }); describe("food()", function () { it("returns a random food image url", function () { var food = faker.image.food(); - assert.equal(food, 'http://lorempixel.com/640/480/food'); + assert.equal(food, 'https://source.unsplash.com/category/food/640x480'); }); }); describe("nightlife()", function () { it("returns a random nightlife image url", function () { var nightlife = faker.image.nightlife(); - assert.equal(nightlife, 'http://lorempixel.com/640/480/nightlife'); + assert.equal(nightlife, 'https://source.unsplash.com/640x480?nightlife'); }); }); describe("fashion()", function () { it("returns a random fashion image url", function () { var fashion = faker.image.fashion(); - assert.equal(fashion, 'http://lorempixel.com/640/480/fashion'); + assert.equal(fashion, 'https://source.unsplash.com/640x480?fashion'); }); }); describe("people()", function () { it("returns a random people image url", function () { var people = faker.image.people(); - assert.equal(people, 'http://lorempixel.com/640/480/people'); + assert.equal(people, 'https://source.unsplash.com/category/people/640x480'); }); }); describe("nature()", function () { it("returns a random nature image url", function () { var nature = faker.image.nature(); - assert.equal(nature, 'http://lorempixel.com/640/480/nature'); + assert.equal(nature, 'https://source.unsplash.com/category/nature/640x480'); }); }); describe("sports()", function () { it("returns a random sports image url", function () { var sports = faker.image.sports(); - assert.equal(sports, 'http://lorempixel.com/640/480/sports'); + assert.equal(sports, 'https://source.unsplash.com/640x480?sports'); }); }); describe("technics()", function () { it("returns a random technics image url", function () { var technics = faker.image.technics(); - assert.equal(technics, 'http://lorempixel.com/640/480/technics'); + assert.equal(technics, 'https://source.unsplash.com/640x480?technics'); }); }); describe("transport()", function () { it("returns a random transport image url", function () { var transport = faker.image.transport(); - assert.equal(transport, 'http://lorempixel.com/640/480/transport'); + assert.equal(transport, 'https://source.unsplash.com/640x480?transport'); + }); + }); + describe("technology()", function () { + it("returns a random technology image url", function () { + var transport = faker.image.technology(); + assert.equal(transport, 'https://source.unsplash.com/category/technology/640x480'); + }); + }); + describe("objects()", function () { + it("returns a random objects image url", function () { + var transport = faker.image.objects(); + assert.equal(transport, 'https://source.unsplash.com/category/objects/640x480'); + }); + }); + describe("buildings()", function () { + it("returns a random buildings image url", function () { + var transport = faker.image.buildings(); + assert.equal(transport, 'https://source.unsplash.com/category/buildings/640x480'); }); }); }); |
