Merge pull request #244 from simoleo89/fix/wired-user-condition-inputs

fix(wired): bound user condition inputs
This commit is contained in:
DuckieTM
2026-06-18 12:36:11 +02:00
committed by GitHub
5 changed files with 151 additions and 34 deletions
@@ -0,0 +1,33 @@
package com.eu.habbo.habbohotel.items.interactions.wired.conditions;
import com.eu.habbo.habbohotel.wired.core.WiredSourceUtil;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertFalse;
class WiredUserConditionInputGuardTest {
@Test
void badgeCodesAreBoundedAndSingleLine() {
assertEquals("", WiredUserConditionInputGuard.normalizeBadgeCode(null));
assertEquals("ACH Test", WiredUserConditionInputGuard.normalizeBadgeCode(" ACH\tTest\n"));
String normalized = WiredUserConditionInputGuard.normalizeBadgeCode("x".repeat(WiredUserConditionInputGuard.MAX_BADGE_CODE_LENGTH + 10));
assertEquals(WiredUserConditionInputGuard.MAX_BADGE_CODE_LENGTH, normalized.length());
assertFalse(normalized.contains("\n"));
}
@Test
void numericIdsAreNonNegativeAndCapped() {
assertEquals(0, WiredUserConditionInputGuard.normalizeEffectId(-1));
assertEquals(WiredUserConditionInputGuard.MAX_EFFECT_ID, WiredUserConditionInputGuard.normalizeEffectId(Integer.MAX_VALUE));
assertEquals(0, WiredUserConditionInputGuard.normalizeHandItemId(-1));
assertEquals(WiredUserConditionInputGuard.MAX_HAND_ITEM_ID, WiredUserConditionInputGuard.normalizeHandItemId(Integer.MAX_VALUE));
}
@Test
void unknownUserSourcesFallBackToTrigger() {
assertEquals(WiredSourceUtil.SOURCE_TRIGGER, WiredUserConditionInputGuard.normalizeUserSource(-1));
assertEquals(WiredSourceUtil.SOURCE_SELECTOR, WiredUserConditionInputGuard.normalizeUserSource(WiredSourceUtil.SOURCE_SELECTOR));
}
}