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