From 86ac789d8b3066c88a14117fd430a841a816d0fc Mon Sep 17 00:00:00 2001 From: Emerson Macedo Date: Sat, 19 Feb 2011 16:39:18 -0200 Subject: [PATCH] Allow size parameter --- lib/gravatar.js | 6 ++++-- test/gravatar.test.js | 21 +++++++++++++-------- 2 files changed, 17 insertions(+), 10 deletions(-) diff --git a/lib/gravatar.js b/lib/gravatar.js index 322a27a..85ccf8d 100644 --- a/lib/gravatar.js +++ b/lib/gravatar.js @@ -1,8 +1,10 @@ var crypto = require('crypto') + , querystring = require('querystring') , baseURI = 'http://www.gravatar.com/avatar/'; var gravatar = module.exports = { - url: function (email) { - return baseURI + crypto.createHash('md5').update(email.toLowerCase()).digest('hex'); + url: function (email, options) { + var query = (options && "?" + querystring.stringify(options)) || ""; + return baseURI + crypto.createHash('md5').update(email.toLowerCase()).digest('hex') + query; } }; diff --git a/test/gravatar.test.js b/test/gravatar.test.js index 04397c7..3d1a688 100644 --- a/test/gravatar.test.js +++ b/test/gravatar.test.js @@ -1,18 +1,23 @@ var testCase = require('nodeunit').testCase + , url = require('url') , gravatar = require('../lib/gravatar') , baseURI = 'http://www.gravatar.com/avatar/'; - - module.exports = testCase({ - 'it should gererate correct hash given an email': function(test) { - test.ok(gravatar.url('emerleite@gmail.com') == baseURI + "93e9084aa289b7f1f5e4ab6716a56c3b"); - test.ok(gravatar.url('emerleite@yahoo.com.br') == baseURI + "6c47672b0d58bd6aae4fa70920cb3ee4"); + 'it should gererate correct uri given an email': function(test) { + test.equal(gravatar.url('emerleite@gmail.com'), baseURI + "93e9084aa289b7f1f5e4ab6716a56c3b"); + test.equal(gravatar.url('emerleite@yahoo.com.br'), baseURI + "6c47672b0d58bd6aae4fa70920cb3ee4"); + test.done(); + }, + 'it should generate same uri ignoring case': function(test) { + test.ok(gravatar.url('EMERLEITE@gmAil.com'), baseURI + "93e9084aa289b7f1f5e4ab6716a56c3b"); + test.ok(gravatar.url('emerleite@YAHOO.com.BR'), baseURI + "6c47672b0d58bd6aae4fa70920cb3ee4"); test.done(); }, - 'it should generate same url ignoring case': function(test) { - test.ok(gravatar.url('EMERLEITE@gmAil.com') == baseURI + "93e9084aa289b7f1f5e4ab6716a56c3b"); - test.ok(gravatar.url('emerleite@YAHOO.com.BR') == baseURI + "6c47672b0d58bd6aae4fa70920cb3ee4"); + 'it should generate uri with size parameter': function(test) { + var gravatarURI = gravatar.url('emerleite@gmail.com', { s: '200'}); + var queryString = url.parse(gravatarURI, true).query; + test.equal(queryString.s, '200'); test.done(); } });