Merge branch 'master' of https://github.com/AuthMe-Team/AuthMeReloaded into 411-forced-commands
This commit is contained in:
@@ -19,8 +19,8 @@ import fr.xephi.authme.task.purge.PurgeService;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Server;
|
||||
import org.bukkit.plugin.PluginDescriptionFile;
|
||||
import org.bukkit.plugin.PluginLoader;
|
||||
import org.bukkit.plugin.PluginManager;
|
||||
import org.bukkit.plugin.java.JavaPluginLoader;
|
||||
import org.junit.Before;
|
||||
import org.junit.BeforeClass;
|
||||
import org.junit.Rule;
|
||||
@@ -34,7 +34,6 @@ import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
import static fr.xephi.authme.settings.TestSettingsMigrationServices.alwaysFulfilled;
|
||||
import static fr.xephi.authme.settings.properties.AuthMeSettingsRetriever.buildConfigurationData;
|
||||
import static org.hamcrest.Matchers.not;
|
||||
import static org.hamcrest.Matchers.nullValue;
|
||||
@@ -49,9 +48,6 @@ import static org.mockito.Mockito.mock;
|
||||
@RunWith(MockitoJUnitRunner.class)
|
||||
public class AuthMeInitializationTest {
|
||||
|
||||
@Mock
|
||||
private PluginLoader pluginLoader;
|
||||
|
||||
@Mock
|
||||
private Server server;
|
||||
|
||||
@@ -60,7 +56,6 @@ public class AuthMeInitializationTest {
|
||||
|
||||
private AuthMe authMe;
|
||||
private File dataFolder;
|
||||
private File settingsFile;
|
||||
|
||||
@Rule
|
||||
public TemporaryFolder temporaryFolder = new TemporaryFolder();
|
||||
@@ -73,7 +68,8 @@ public class AuthMeInitializationTest {
|
||||
@Before
|
||||
public void initAuthMe() throws IOException {
|
||||
dataFolder = temporaryFolder.newFolder();
|
||||
settingsFile = new File(dataFolder, "config.yml");
|
||||
File settingsFile = new File(dataFolder, "config.yml");
|
||||
JavaPluginLoader pluginLoader = new JavaPluginLoader(server);
|
||||
Files.copy(TestHelper.getJarFile(TestHelper.PROJECT_ROOT + "config.test.yml"), settingsFile);
|
||||
|
||||
// Mock / wire various Bukkit components
|
||||
@@ -86,14 +82,14 @@ public class AuthMeInitializationTest {
|
||||
"AuthMe", "N/A", AuthMe.class.getCanonicalName());
|
||||
|
||||
// Initialize AuthMe
|
||||
authMe = new AuthMe(pluginLoader, server, descriptionFile, dataFolder, null);
|
||||
authMe = new AuthMe(pluginLoader, descriptionFile, dataFolder, null);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void shouldInitializeAllServices() {
|
||||
// given
|
||||
Settings settings =
|
||||
new Settings(dataFolder, mock(PropertyResource.class), alwaysFulfilled(), buildConfigurationData());
|
||||
new Settings(dataFolder, mock(PropertyResource.class), null, buildConfigurationData());
|
||||
|
||||
Injector injector = new InjectorBuilder().addDefaultHandlers("fr.xephi.authme").create();
|
||||
injector.provide(DataFolder.class, dataFolder);
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
package fr.xephi.authme.listener;
|
||||
|
||||
import org.bukkit.event.entity.EntityAirChangeEvent;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.mockito.InjectMocks;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.runners.MockitoJUnitRunner;
|
||||
|
||||
import static fr.xephi.authme.listener.EventCancelVerifier.withServiceMock;
|
||||
|
||||
/**
|
||||
* Test for {@link PlayerListener111}.
|
||||
*/
|
||||
@RunWith(MockitoJUnitRunner.class)
|
||||
public class PlayerListener111Test {
|
||||
|
||||
@InjectMocks
|
||||
private PlayerListener111 listener;
|
||||
|
||||
@Mock
|
||||
private ListenerService listenerService;
|
||||
|
||||
@Test
|
||||
public void shouldCancelEvent() {
|
||||
withServiceMock(listenerService)
|
||||
.check(listener::onPlayerAirChange, EntityAirChangeEvent.class);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -23,15 +23,15 @@ public class PermissionsSystemTypeTest {
|
||||
List<String> pluginNames = new ArrayList<>(PermissionsSystemType.values().length);
|
||||
|
||||
for (PermissionsSystemType system : PermissionsSystemType.values()) {
|
||||
assertThat("Name for enum entry '" + system + "' is not null",
|
||||
system.getName(), not(nullValue()));
|
||||
assertThat("Display name for enum entry '" + system + "' is not null",
|
||||
system.getDisplayName(), not(nullValue()));
|
||||
assertThat("Plugin name for enum entry '" + system + "' is not null",
|
||||
system.getPluginName(), not(nullValue()));
|
||||
assertThat("Only one enum entry has name '" + system.getName() + "'",
|
||||
names, not(hasItem(system.getName())));
|
||||
assertThat("Only one enum entry has display name '" + system.getDisplayName() + "'",
|
||||
names, not(hasItem(system.getDisplayName())));
|
||||
assertThat("Only one enum entry has plugin name '" + system.getPluginName() + "'",
|
||||
pluginNames, not(hasItem(system.getPluginName())));
|
||||
names.add(system.getName());
|
||||
names.add(system.getDisplayName());
|
||||
pluginNames.add(system.getPluginName());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -26,8 +26,10 @@ import org.mockito.stubbing.Answer;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import static com.google.common.collect.Lists.newArrayList;
|
||||
import static com.google.common.collect.Sets.newHashSet;
|
||||
import static org.hamcrest.Matchers.equalTo;
|
||||
import static org.hamcrest.Matchers.equalToIgnoringCase;
|
||||
import static org.junit.Assert.assertThat;
|
||||
@@ -173,7 +175,7 @@ public class PasswordSecurityTest {
|
||||
given(method.comparePassword(clearTextPass, password, playerLowerCase)).willReturn(false);
|
||||
given(method.computeHash(clearTextPass, playerLowerCase)).willReturn(newPassword);
|
||||
initSettings(HashAlgorithm.MD5);
|
||||
given(settings.getProperty(SecuritySettings.LEGACY_HASHES)).willReturn(newArrayList(HashAlgorithm.BCRYPT));
|
||||
given(settings.getProperty(SecuritySettings.LEGACY_HASHES)).willReturn(newArrayList(HashAlgorithm.BCRYPT.name()));
|
||||
PasswordSecurity security = newPasswordSecurity();
|
||||
|
||||
// when
|
||||
@@ -258,7 +260,7 @@ public class PasswordSecurityTest {
|
||||
initSettings(HashAlgorithm.BCRYPT);
|
||||
PasswordSecurity passwordSecurity = newPasswordSecurity();
|
||||
given(settings.getProperty(SecuritySettings.PASSWORD_HASH)).willReturn(HashAlgorithm.MD5);
|
||||
List<HashAlgorithm> legacyHashes = newArrayList(HashAlgorithm.CUSTOM, HashAlgorithm.BCRYPT);
|
||||
List<String> legacyHashes = newArrayList(HashAlgorithm.CUSTOM.name(), HashAlgorithm.BCRYPT.name());
|
||||
given(settings.getProperty(SecuritySettings.LEGACY_HASHES)).willReturn(legacyHashes);
|
||||
|
||||
// when
|
||||
@@ -267,8 +269,9 @@ public class PasswordSecurityTest {
|
||||
// then
|
||||
assertThat(ReflectionTestUtils.getFieldValue(PasswordSecurity.class, passwordSecurity, "algorithm"),
|
||||
equalTo(HashAlgorithm.MD5));
|
||||
Set<HashAlgorithm> legacyHashesSet = newHashSet(HashAlgorithm.CUSTOM, HashAlgorithm.BCRYPT);
|
||||
assertThat(ReflectionTestUtils.getFieldValue(PasswordSecurity.class, passwordSecurity, "legacyAlgorithms"),
|
||||
equalTo(legacyHashes));
|
||||
equalTo(legacyHashesSet));
|
||||
}
|
||||
|
||||
private PasswordSecurity newPasswordSecurity() {
|
||||
|
||||
@@ -121,8 +121,7 @@ public class SettingsIntegrationTest {
|
||||
// given
|
||||
File configFile = temporaryFolder.newFile();
|
||||
PropertyResource resource = new YamlFileResource(configFile);
|
||||
Settings settings = new Settings(testPluginFolder, resource,
|
||||
TestSettingsMigrationServices.alwaysFulfilled(), CONFIG_DATA);
|
||||
Settings settings = new Settings(testPluginFolder, resource, null, CONFIG_DATA);
|
||||
|
||||
// when
|
||||
assertThat(settings.getProperty(TestConfiguration.RATIO_ORDER), equalTo(TestEnum.SECOND)); // default value
|
||||
|
||||
@@ -55,8 +55,7 @@ public class SettingsTest {
|
||||
|
||||
PropertyResource resource = mock(PropertyResource.class);
|
||||
given(resource.getBoolean(RegistrationSettings.USE_WELCOME_MESSAGE.getPath())).willReturn(true);
|
||||
Settings settings = new Settings(testPluginFolder, resource,
|
||||
TestSettingsMigrationServices.alwaysFulfilled(), CONFIG_DATA);
|
||||
Settings settings = new Settings(testPluginFolder, resource, null, CONFIG_DATA);
|
||||
|
||||
// when
|
||||
String[] result = settings.getWelcomeMessage();
|
||||
@@ -75,8 +74,7 @@ public class SettingsTest {
|
||||
Files.write(emailFile.toPath(), emailMessage.getBytes());
|
||||
|
||||
PropertyResource resource = mock(PropertyResource.class);
|
||||
Settings settings = new Settings(testPluginFolder, resource,
|
||||
TestSettingsMigrationServices.alwaysFulfilled(), CONFIG_DATA);
|
||||
Settings settings = new Settings(testPluginFolder, resource, null, CONFIG_DATA);
|
||||
|
||||
// when
|
||||
String result = settings.getPasswordEmailMessage();
|
||||
|
||||
@@ -1,21 +0,0 @@
|
||||
package fr.xephi.authme.settings;
|
||||
|
||||
import com.github.authme.configme.migration.MigrationService;
|
||||
|
||||
/**
|
||||
* Provides {@link MigrationService} implementations for testing.
|
||||
*/
|
||||
public final class TestSettingsMigrationServices {
|
||||
|
||||
private TestSettingsMigrationServices() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a settings migration service which always answers that all data is up-to-date.
|
||||
*
|
||||
* @return test settings migration service
|
||||
*/
|
||||
public static MigrationService alwaysFulfilled() {
|
||||
return (propertyResource, knownProperties) -> false;
|
||||
}
|
||||
}
|
||||
@@ -124,6 +124,27 @@ public class PurgeTaskTest {
|
||||
assertRanPurgeWithNames("foxtrot");
|
||||
}
|
||||
|
||||
/**
|
||||
* #1008: OfflinePlayer#getName may return null.
|
||||
*/
|
||||
@Test
|
||||
public void shouldHandleOfflinePlayerWithNullName() {
|
||||
// given
|
||||
Set<String> names = newHashSet("name1", "name2");
|
||||
OfflinePlayer[] players = asArray(
|
||||
mockOfflinePlayer(null, false), mockOfflinePlayer("charlie", false), mockOfflinePlayer("name1", false));
|
||||
reset(purgeService, permissionsManager);
|
||||
setPermissionsBehavior();
|
||||
|
||||
PurgeTask task = new PurgeTask(purgeService, permissionsManager, null, names, players);
|
||||
|
||||
// when
|
||||
task.run();
|
||||
|
||||
// then
|
||||
assertRanPurgeWithPlayers(players[2]);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void shouldStopTaskAndInformSenderUponCompletion() {
|
||||
// given
|
||||
|
||||
Reference in New Issue
Block a user