aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChinCluBi <[email protected]>2016-08-12 14:21:05 +0700
committerChinCluBi <[email protected]>2016-08-12 14:21:05 +0700
commitbc8ee47acecf2045f9bb4a504cd8494b8a7113e9 (patch)
treef53fc28c59a44a82e234c13724854a9d3fe953ef
parentec13e84dcd6e01f908aa89bc56d3f8b1d5c9cd42 (diff)
downloadfaker-bc8ee47acecf2045f9bb4a504cd8494b8a7113e9.tar.xz
faker-bc8ee47acecf2045f9bb4a504cd8494b8a7113e9.zip
move random image from lorempixel.com to unsplash.com
-rw-r--r--lib/image.js60
-rw-r--r--test/image.unit.js50
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');
});
});
});