SPIGOT-7676: Enforce locale parameter in toLowerCase and toUpperCase method calls and always use root locale
By: DerFrZocker <derrieple@gmail.com>
This commit is contained in:
@@ -3,6 +3,7 @@ package org.bukkit;
|
||||
import static org.bukkit.support.MatcherAssert.*;
|
||||
import static org.hamcrest.Matchers.*;
|
||||
import static org.junit.jupiter.api.Assertions.*;
|
||||
import java.util.Locale;
|
||||
import net.minecraft.core.registries.BuiltInRegistries;
|
||||
import net.minecraft.resources.MinecraftKey;
|
||||
import org.bukkit.craftbukkit.CraftSound;
|
||||
@@ -21,7 +22,7 @@ public class SoundTest extends AbstractTestingBase {
|
||||
@Test
|
||||
public void testReverse() {
|
||||
for (MinecraftKey effect : BuiltInRegistries.SOUND_EVENT.keySet()) {
|
||||
assertNotNull(Sound.valueOf(effect.getPath().replace('.', '_').toUpperCase(java.util.Locale.ENGLISH)), effect + "");
|
||||
assertNotNull(Sound.valueOf(effect.getPath().replace('.', '_').toUpperCase(Locale.ROOT)), effect + "");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -4,6 +4,7 @@ import static org.junit.jupiter.api.Assertions.*;
|
||||
import java.io.StringReader;
|
||||
import java.lang.reflect.Array;
|
||||
import java.nio.ByteBuffer;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
import java.util.UUID;
|
||||
import org.bukkit.Bukkit;
|
||||
@@ -82,7 +83,7 @@ public class DeprecatedItemMetaCustomValueTest extends AbstractTestingBase {
|
||||
}
|
||||
|
||||
private NamespacedKey requestKey(String keyName) {
|
||||
return new NamespacedKey("test-plugin", keyName.toLowerCase());
|
||||
return new NamespacedKey("test-plugin", keyName.toLowerCase(Locale.ROOT));
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@@ -7,6 +7,7 @@ import java.lang.reflect.Array;
|
||||
import java.nio.ByteBuffer;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
import java.util.UUID;
|
||||
import java.util.function.BiConsumer;
|
||||
@@ -96,7 +97,7 @@ public class PersistentDataContainerTest extends AbstractTestingBase {
|
||||
}
|
||||
|
||||
private static NamespacedKey requestKey(String keyName) {
|
||||
return new NamespacedKey("test-plugin", keyName.toLowerCase());
|
||||
return new NamespacedKey("test-plugin", keyName.toLowerCase(Locale.ROOT));
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
@@ -3,6 +3,7 @@ package org.bukkit.generator.structure;
|
||||
import static org.junit.jupiter.api.Assertions.*;
|
||||
import java.lang.reflect.Field;
|
||||
import java.lang.reflect.Modifier;
|
||||
import java.util.Locale;
|
||||
import net.minecraft.core.IRegistry;
|
||||
import net.minecraft.core.registries.Registries;
|
||||
import net.minecraft.resources.MinecraftKey;
|
||||
@@ -25,7 +26,7 @@ public class StructureTest extends AbstractTestingBase {
|
||||
}
|
||||
|
||||
String name = field.getName();
|
||||
assertNotNull(Registry.STRUCTURE.get(NamespacedKey.fromString(name.toLowerCase())), "No structure for field name " + name);
|
||||
assertNotNull(Registry.STRUCTURE.get(NamespacedKey.fromString(name.toLowerCase(Locale.ROOT))), "No structure for field name " + name);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -36,7 +37,7 @@ public class StructureTest extends AbstractTestingBase {
|
||||
MinecraftKey minecraftKey = structureBuiltInRegistries.getKey(structure);
|
||||
|
||||
try {
|
||||
Structure bukkit = (Structure) Structure.class.getField(minecraftKey.getPath().toUpperCase()).get(null);
|
||||
Structure bukkit = (Structure) Structure.class.getField(minecraftKey.getPath().toUpperCase(Locale.ROOT)).get(null);
|
||||
|
||||
assertEquals(minecraftKey, CraftNamespacedKey.toMinecraft(bukkit.getKey()), "Keys are not the same for " + minecraftKey);
|
||||
} catch (NoSuchFieldException e) {
|
||||
|
||||
@@ -3,6 +3,7 @@ package org.bukkit.generator.structure;
|
||||
import static org.junit.jupiter.api.Assertions.*;
|
||||
import java.lang.reflect.Field;
|
||||
import java.lang.reflect.Modifier;
|
||||
import java.util.Locale;
|
||||
import net.minecraft.core.registries.BuiltInRegistries;
|
||||
import net.minecraft.resources.MinecraftKey;
|
||||
import org.bukkit.NamespacedKey;
|
||||
@@ -24,7 +25,7 @@ public class StructureTypeTest extends AbstractTestingBase {
|
||||
}
|
||||
|
||||
String name = field.getName();
|
||||
assertNotNull(Registry.STRUCTURE_TYPE.get(NamespacedKey.fromString(name.toLowerCase())), "No enchantment for field name " + name);
|
||||
assertNotNull(Registry.STRUCTURE_TYPE.get(NamespacedKey.fromString(name.toLowerCase(Locale.ROOT))), "No enchantment for field name " + name);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -34,7 +35,7 @@ public class StructureTypeTest extends AbstractTestingBase {
|
||||
MinecraftKey minecraftKey = BuiltInRegistries.STRUCTURE_TYPE.getKey(structureType);
|
||||
|
||||
try {
|
||||
StructureType bukkit = (StructureType) StructureType.class.getField(minecraftKey.getPath().toUpperCase()).get(null);
|
||||
StructureType bukkit = (StructureType) StructureType.class.getField(minecraftKey.getPath().toUpperCase(Locale.ROOT)).get(null);
|
||||
|
||||
assertEquals(minecraftKey, CraftNamespacedKey.toMinecraft(bukkit.getKey()), "Keys are not the same for " + minecraftKey);
|
||||
} catch (NoSuchFieldException e) {
|
||||
|
||||
@@ -5,6 +5,7 @@ import java.lang.reflect.Field;
|
||||
import java.lang.reflect.Modifier;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import net.minecraft.core.IRegistry;
|
||||
import net.minecraft.core.registries.Registries;
|
||||
import net.minecraft.resources.MinecraftKey;
|
||||
@@ -48,7 +49,7 @@ public class RegistryConstantsTest extends AbstractTestingBase {
|
||||
}
|
||||
|
||||
String name = field.getName();
|
||||
NamespacedKey key = NamespacedKey.fromString(name.toLowerCase());
|
||||
NamespacedKey key = NamespacedKey.fromString(name.toLowerCase(Locale.ROOT));
|
||||
if (registry.get(key) == null) {
|
||||
excessKeys.add(key);
|
||||
}
|
||||
@@ -67,7 +68,7 @@ public class RegistryConstantsTest extends AbstractTestingBase {
|
||||
|
||||
try {
|
||||
@SuppressWarnings("unchecked")
|
||||
T bukkitObject = (T) clazz.getField(minecraftKey.getPath().toUpperCase()).get(null);
|
||||
T bukkitObject = (T) clazz.getField(minecraftKey.getPath().toUpperCase(Locale.ROOT)).get(null);
|
||||
|
||||
assertEquals(minecraftKey, CraftNamespacedKey.toMinecraft(bukkitObject.getKey()), "Keys are not the same for " + minecraftKey);
|
||||
} catch (NoSuchFieldException e) {
|
||||
|
||||
Reference in New Issue
Block a user