#293 Skip help sections if translation is empty

This commit is contained in:
ljacqu
2016-10-08 14:25:42 +02:00
parent 6b1112438a
commit f453a5b4f5
10 changed files with 125 additions and 100 deletions
@@ -64,9 +64,13 @@ public class HelpMessagesConsistencyTest {
FileConfiguration configuration = YamlConfiguration.loadConfiguration(DEFAULT_MESSAGES_FILE);
// when / then
for (HelpMessageKey key : HelpMessageKey.values()) {
assertThat("Default configuration has entry for key '" + key + "'",
configuration.contains(key.getKey()), equalTo(true));
for (HelpMessage message : HelpMessage.values()) {
assertThat("Default configuration has entry for message '" + message + "'",
configuration.contains(message.getKey()), equalTo(true));
}
for (HelpSection section : HelpSection.values()) {
assertThat("Default configuration has entry for section '" + section + "'",
configuration.contains(section.getKey()), equalTo(true));
}
}
@@ -32,6 +32,7 @@ import static fr.xephi.authme.command.help.HelpProvider.HIDE_COMMAND;
import static fr.xephi.authme.command.help.HelpProvider.SHOW_ALTERNATIVES;
import static fr.xephi.authme.command.help.HelpProvider.SHOW_ARGUMENTS;
import static fr.xephi.authme.command.help.HelpProvider.SHOW_CHILDREN;
import static fr.xephi.authme.command.help.HelpProvider.SHOW_DESCRIPTION;
import static fr.xephi.authme.command.help.HelpProvider.SHOW_LONG_DESCRIPTION;
import static fr.xephi.authme.command.help.HelpProvider.SHOW_PERMISSIONS;
import static org.hamcrest.Matchers.contains;
@@ -83,7 +84,7 @@ public class HelpProviderTest {
FoundCommandResult result = newFoundResult(command, Arrays.asList("authme", "login"));
// when
helpProvider.outputHelp(sender, result, SHOW_LONG_DESCRIPTION);
helpProvider.outputHelp(sender, result, SHOW_LONG_DESCRIPTION | SHOW_DESCRIPTION);
// then
List<String> lines = getLines(sender);
@@ -368,7 +369,7 @@ public class HelpProviderTest {
private static void setDefaultHelpMessages(HelpMessagesService helpMessagesService) {
given(helpMessagesService.buildLocalizedDescription(any(CommandDescription.class)))
.willAnswer(new ReturnsArgumentAt(0));
for (HelpMessageKey key : HelpMessageKey.values()) {
for (HelpMessage key : HelpMessage.values()) {
String text = key.name().replace("_", " ").toLowerCase();
given(helpMessagesService.getMessage(key))
.willReturn(text.substring(0, 1).toUpperCase() + text.substring(1));
@@ -378,6 +379,11 @@ public class HelpProviderTest {
given(helpMessagesService.getMessage(permission))
.willReturn(text.substring(0, 1).toUpperCase() + text.substring(1));
}
for (HelpSection section : HelpSection.values()) {
String text = section.name().replace("_", " ").toLowerCase();
given(helpMessagesService.getMessage(section))
.willReturn(text.substring(0, 1).toUpperCase() + text.substring(1));
}
}
}
@@ -34,7 +34,7 @@ import static org.mockito.Mockito.verify;
public class MessagesIntegrationTest {
private static final String YML_TEST_FILE = TestHelper.PROJECT_ROOT + "message/messages_test.yml";
private static final String YML_DEFAULT_TEST_FILE = TestHelper.PROJECT_ROOT + "message/messages_default.yml";
private static final String YML_DEFAULT_TEST_FILE = "messages/messages_en.yml";
private Messages messages;
@BeforeClass
@@ -201,7 +201,8 @@ public class MessagesIntegrationTest {
String message = messages.retrieveSingle(key);
// then
assertThat(message, equalTo("Message from default file"));
assertThat(message,
equalTo("§4Only registered users can join the server! Please visit http://example.com to register yourself!"));
}
@Test
@@ -217,35 +218,6 @@ public class MessagesIntegrationTest {
assertThat(message, equalTo("§cWrong password!"));
}
@Test
public void shouldReturnErrorForMissingMessage() {
// given
// Key is not present in test file or default file
MessageKey key = MessageKey.TWO_FACTOR_CREATE;
// when
String message = messages.retrieveSingle(key);
// then
assertThat(message, containsString("Error retrieving message"));
}
@Test
public void shouldAllowNullAsDefaultFile() {
// given
MessageFileHandlerProvider provider =
providerReturning(TestHelper.getJarFile(YML_TEST_FILE), YML_DEFAULT_TEST_FILE);
Messages testMessages = new Messages(provider);
// Key not present in test file
MessageKey key = MessageKey.TWO_FACTOR_CREATE;
// when
String message = testMessages.retrieveSingle(key);
// then
assertThat(message, containsString("Error retrieving message"));
}
@Test
public void shouldRetrieveMessageWithReplacements() {
// given