From f790d5cfe645f1e2075ab7c053517631be4458c7 Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Mon, 15 Jun 2015 12:25:14 -0400
Subject: [PATCH] Revised AvatarGenerator to be injectable

---
 src/test/java/com/gitblit/tests/GravatarTest.java |   99 ++++++++++++++++++++++++-------------------------
 1 files changed, 48 insertions(+), 51 deletions(-)

diff --git a/src/test/java/com/gitblit/tests/GravatarTest.java b/src/test/java/com/gitblit/tests/GravatarTest.java
index 1fea843..ba989d5 100644
--- a/src/test/java/com/gitblit/tests/GravatarTest.java
+++ b/src/test/java/com/gitblit/tests/GravatarTest.java
@@ -1,77 +1,74 @@
 package com.gitblit.tests;
 
-import org.junit.Assert;
 import org.junit.Test;
 
+import com.gitblit.AvatarGenerator;
+import com.gitblit.GravatarGenerator;
 import com.gitblit.IStoredSettings;
 import com.gitblit.Keys;
-import com.gitblit.manager.AuthenticationManager;
-import com.gitblit.manager.FederationManager;
-import com.gitblit.manager.GitblitManager;
-import com.gitblit.manager.IAuthenticationManager;
-import com.gitblit.manager.IFederationManager;
-import com.gitblit.manager.IGitblit;
-import com.gitblit.manager.INotificationManager;
-import com.gitblit.manager.IPluginManager;
-import com.gitblit.manager.IProjectManager;
-import com.gitblit.manager.IRepositoryManager;
+import com.gitblit.guice.AvatarGeneratorProvider;
 import com.gitblit.manager.IRuntimeManager;
-import com.gitblit.manager.IServicesManager;
-import com.gitblit.manager.IUserManager;
-import com.gitblit.manager.NotificationManager;
-import com.gitblit.manager.PluginManager;
-import com.gitblit.manager.ProjectManager;
-import com.gitblit.manager.RepositoryManager;
 import com.gitblit.manager.RuntimeManager;
-import com.gitblit.manager.ServicesManager;
-import com.gitblit.manager.UserManager;
 import com.gitblit.tests.mock.MemorySettings;
-import com.gitblit.tickets.FileTicketService;
-import com.gitblit.tickets.ITicketService;
-import com.gitblit.transport.ssh.IPublicKeyManager;
-import com.gitblit.transport.ssh.MemoryKeyManager;
-import com.gitblit.utils.IdGenerator;
-import com.gitblit.utils.WorkQueue;
+import com.gitblit.utils.ActivityUtils;
 import com.gitblit.utils.XssFilter;
 import com.gitblit.utils.XssFilter.AllowXssFilter;
-import com.gitblit.wicket.GitBlitWebApp;
 import com.google.inject.AbstractModule;
 import com.google.inject.Guice;
 import com.google.inject.Injector;
 
 public class GravatarTest extends GitblitUnitTest {
 
-	public static  class SomeModule extends AbstractModule {
-		private final IStoredSettings settings = new MemorySettings();
-		SomeModule() {
-			settings.overrideSetting(Keys.web.avatarClass, "com.gitblit.GravatarGenerator");
+	public static  class AvatarModule extends AbstractModule {
+		private final IStoredSettings settings;
+
+		AvatarModule(IStoredSettings settings) {
+			this.settings = settings;
 		}
-		@Override 
+
+		@Override
 		protected void configure() {
-			bind(IGitblit.class).to(GitblitManager.class);
-			bind(IAuthenticationManager.class).to(AuthenticationManager.class);
-			bind(IFederationManager.class).to(FederationManager.class);
-			bind(INotificationManager.class).to(NotificationManager.class);
-			bind(IPluginManager.class).to(PluginManager.class);
-			bind(IRepositoryManager.class).to(RepositoryManager.class);
-			bind(IProjectManager.class).to(ProjectManager.class);
-			bind(IRuntimeManager.class).to(RuntimeManager.class);
-			bind(IUserManager.class).to(UserManager.class);
-			bind(ITicketService.class).to(FileTicketService.class);
-			bind(XssFilter.class).to(AllowXssFilter.class);
 			bind(IStoredSettings.class).toInstance(settings);
-			bind(IPublicKeyManager.class).to(MemoryKeyManager.class);
-			bind(IServicesManager.class).to(ServicesManager.class);
-			bind(WorkQueue.class).toInstance(new WorkQueue(new IdGenerator(), 0));
+			bind(XssFilter.class).to(AllowXssFilter.class);
+			bind(IRuntimeManager.class).to(RuntimeManager.class);
+			bind(AvatarGenerator.class).toProvider(AvatarGeneratorProvider.class);
 		}
 	}
 
 	@Test
-	public void oneTest() {
-		Injector injector = Guice.createInjector(new SomeModule());
-		GitBlitWebApp webapp = injector.getInstance(GitBlitWebApp.class);
-		webapp.init();
-		Assert.assertNotNull(webapp.buildAvatarUrl("username", "emailaddress", "cssClass", 10, true));
+	public void gravatarIdenticonTest() {
+		IStoredSettings settings = new MemorySettings();
+		settings.overrideSetting(Keys.web.avatarClass, GravatarGenerator.class.getName());
+
+		Injector injector = Guice.createInjector(new AvatarModule(settings));
+		AvatarGenerator avatarGenerator = injector.getInstance(AvatarGenerator.class);
+
+		String username = "username";
+		String emailAddress = "emailAddress";
+		int width = 10;
+
+		String url = avatarGenerator.getURL(username, emailAddress, true, width);
+		assertNotNull(url);
+
+		assertEquals(ActivityUtils.getGravatarIdenticonUrl(emailAddress, width), url);
 	}
-	
+
+	@Test
+	public void gravatarThumbnailTest() {
+		IStoredSettings settings = new MemorySettings();
+		settings.overrideSetting(Keys.web.avatarClass, GravatarGenerator.class.getName());
+
+		Injector injector = Guice.createInjector(new AvatarModule(settings));
+		AvatarGenerator avatarGenerator = injector.getInstance(AvatarGenerator.class);
+
+		String username = "username";
+		String emailAddress = "emailAddress";
+		int width = 10;
+
+		String url = avatarGenerator.getURL(username, emailAddress, false, width);
+		assertNotNull(url);
+
+		assertEquals(ActivityUtils.getGravatarThumbnailUrl(emailAddress, width), url);
+	}
+
 }

--
Gitblit v1.9.1