#930 Registration captcha: update message shown to player on failed captcha

- Show message with new captcha code when a captcha has failed
- Requires implementation of circular dependency handler (initial draft)
This commit is contained in:
ljacqu
2018-01-05 00:17:22 +01:00
parent c8d82a23e0
commit 7cf3f6d77b
9 changed files with 201 additions and 11 deletions
@@ -6,8 +6,11 @@ import ch.jalu.injector.InjectorBuilder;
import com.google.common.io.Files;
import fr.xephi.authme.api.v3.AuthMeApi;
import fr.xephi.authme.command.CommandHandler;
import fr.xephi.authme.data.RegistrationCaptchaManager;
import fr.xephi.authme.data.limbo.LimboService;
import fr.xephi.authme.datasource.DataSource;
import fr.xephi.authme.initialization.DataFolder;
import fr.xephi.authme.initialization.circulardependency.CircularDependencyInitializer;
import fr.xephi.authme.listener.BlockListener;
import fr.xephi.authme.permission.PermissionsManager;
import fr.xephi.authme.process.Management;
@@ -39,6 +42,7 @@ import java.util.logging.Logger;
import static fr.xephi.authme.settings.properties.AuthMeSettingsRetriever.buildConfigurationData;
import static org.hamcrest.Matchers.not;
import static org.hamcrest.Matchers.nullValue;
import static org.hamcrest.Matchers.sameInstance;
import static org.junit.Assert.assertThat;
import static org.mockito.BDDMockito.given;
import static org.mockito.Mockito.mock;
@@ -108,6 +112,7 @@ public class AuthMeInitializationTest {
// when
authMe.instantiateServices(injector);
authMe.registerEventListeners(injector);
injector.newInstance(CircularDependencyInitializer.class).initializeCircularDependencies();
// then
// Take a few samples and ensure that they are not null
@@ -121,6 +126,17 @@ public class AuthMeInitializationTest {
assertThat(injector.getIfAvailable(PermissionsManager.class), not(nullValue()));
assertThat(injector.getIfAvailable(ProcessSyncPlayerLogin.class), not(nullValue()));
assertThat(injector.getIfAvailable(PurgeService.class), not(nullValue()));
assertCircularDependencyWasSet(injector);
}
private void assertCircularDependencyWasSet(Injector injector) {
RegistrationCaptchaManager registrationCaptchaManager = injector.getIfAvailable(RegistrationCaptchaManager.class);
LimboService limboServiceOnCaptchaManager = ReflectionTestUtils.getFieldValue(
RegistrationCaptchaManager.class, registrationCaptchaManager, "limboService");
LimboService limboServiceFromInjector = injector.getIfAvailable(LimboService.class);
assertThat(limboServiceOnCaptchaManager, not(nullValue()));
assertThat(limboServiceOnCaptchaManager, sameInstance(limboServiceFromInjector));
}
}