Fix names with spaces in letter-avatars
Seems like there is a possible problem when a name containing a space is passed to this function. using urlencode on the name should fix possible problems here. Signed-off-by: Sheogorath <sheogorath@shivering-isles.com>
This commit is contained in:
		
							parent
							
								
									112827423a
								
							
						
					
					
						commit
						1ee9874393
					
				| @ -30,6 +30,7 @@ exports.generateAvatarURL = function (name, email = '', big = true) { | ||||
|   if (typeof email !== 'string') { | ||||
|     email = '' + name + '@example.com' | ||||
|   } | ||||
|   name=encodeURIComponent(name) | ||||
| 
 | ||||
|   let hash = crypto.createHash('md5') | ||||
|   hash.update(email.toLowerCase()) | ||||
|  | ||||
| @ -3,11 +3,50 @@ | ||||
| 'use strict' | ||||
| 
 | ||||
| const assert = require('assert') | ||||
| const avatars = require('../lib/letter-avatars') | ||||
| const mock = require('mock-require') | ||||
| 
 | ||||
| describe('generateAvatarURL() gravatar enabled', function () { | ||||
|   let avatars | ||||
|   beforeEach(function () { | ||||
|     // Reset config to make sure we don't influence other tests
 | ||||
|     let testconfig = { | ||||
|       allowGravatar: true, | ||||
|       serverURL: 'http://localhost:3000', | ||||
|       port: 3000 | ||||
|     } | ||||
|     mock('../lib/config', testconfig) | ||||
|     avatars = mock.reRequire('../lib/letter-avatars') | ||||
|   }) | ||||
| 
 | ||||
| describe('generateAvatarURL()', function () { | ||||
|   it('should return correct urls', function () { | ||||
|     assert.strictEqual(avatars.generateAvatarURL('Daan Sprenkels', 'hello@dsprenkels.com', true), 'https://www.gravatar.com/avatar/d41b5f3508cc3f31865566a47dd0336b?s=400') | ||||
|     assert.strictEqual(avatars.generateAvatarURL('Daan Sprenkels', 'hello@dsprenkels.com', false), 'https://www.gravatar.com/avatar/d41b5f3508cc3f31865566a47dd0336b?s=96') | ||||
|   }) | ||||
| 
 | ||||
|   it('should return correct urls for names with spaces', function () { | ||||
|     assert.strictEqual(avatars.generateAvatarURL('Daan Sprenkels'), 'http://localhost:3000/user/Daan%20Sprenkels/avatar.svg') | ||||
|   }) | ||||
| }) | ||||
| 
 | ||||
| describe('generateAvatarURL() gravatar disabled', function () { | ||||
|   let avatars | ||||
|   beforeEach(function () { | ||||
|     // Reset config to make sure we don't influence other tests
 | ||||
|     let testconfig = { | ||||
|       allowGravatar: false, | ||||
|       serverURL: 'http://localhost:3000', | ||||
|       port: 3000 | ||||
|     } | ||||
|     mock('../lib/config', testconfig) | ||||
|     avatars = mock.reRequire('../lib/letter-avatars') | ||||
|   }) | ||||
| 
 | ||||
|   it('should return correct urls', function () { | ||||
|     assert.strictEqual(avatars.generateAvatarURL('Daan Sprenkels', 'hello@dsprenkels.com', true), 'http://localhost:3000/user/Daan%20Sprenkels/avatar.svg') | ||||
|     assert.strictEqual(avatars.generateAvatarURL('Daan Sprenkels', 'hello@dsprenkels.com', false), 'http://localhost:3000/user/Daan%20Sprenkels/avatar.svg') | ||||
|   }) | ||||
| 
 | ||||
|   it('should return correct urls for names with spaces', function () { | ||||
|     assert.strictEqual(avatars.generateAvatarURL('Daan Sprenkels'), 'http://localhost:3000/user/Daan%20Sprenkels/avatar.svg') | ||||
|   }) | ||||
| }) | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user