You've already forked Arcturus-Morningstar-Extended
mirror of
https://github.com/duckietm/Arcturus-Morningstar-Extended.git
synced 2026-06-20 07:26:18 +00:00
Merge pull request #231 from simoleo89/fix/navigator-inputs
fix(navigator): bound search inputs
This commit is contained in:
+21
@@ -0,0 +1,21 @@
|
||||
package com.eu.habbo.messages.incoming.navigator;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
|
||||
class NavigatorInputGuardTest {
|
||||
@Test
|
||||
void searchValuesAreTrimmedAndBounded() {
|
||||
assertEquals("", NavigatorInputGuard.normalizeSearch(null));
|
||||
assertEquals("rare", NavigatorInputGuard.normalizeSearch(" rare "));
|
||||
assertEquals(NavigatorInputGuard.MAX_SEARCH_LENGTH, NavigatorInputGuard.normalizeSearch("a".repeat(100)).length());
|
||||
}
|
||||
|
||||
@Test
|
||||
void savedSearchValuesUseLargerBound() {
|
||||
assertEquals("", NavigatorInputGuard.normalizeSavedSearchValue(null));
|
||||
assertEquals("owner:duckie", NavigatorInputGuard.normalizeSavedSearchValue(" owner:duckie "));
|
||||
assertEquals(NavigatorInputGuard.MAX_SAVED_SEARCH_LENGTH, NavigatorInputGuard.normalizeSavedSearchValue("a".repeat(400)).length());
|
||||
}
|
||||
}
|
||||
+37
@@ -0,0 +1,37 @@
|
||||
package com.eu.habbo.messages.incoming.navigator;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Path;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||
|
||||
class NavigatorSearchInputContractTest {
|
||||
@Test
|
||||
void classicSearchNormalizesInputAndPassesUnprefixedQueriesToManagers() throws Exception {
|
||||
String source = Files.readString(Path.of("src/main/java/com/eu/habbo/messages/incoming/navigator/SearchRoomsEvent.java"));
|
||||
|
||||
assertTrue(source.contains("NavigatorInputGuard.normalizeSearch(this.packet.readString())"),
|
||||
"classic room search must normalize raw client text before cache or manager lookups");
|
||||
assertTrue(source.contains("getRoomsForHabbo(query)"),
|
||||
"owner search must pass only the unprefixed owner query");
|
||||
assertTrue(source.contains("getRoomsWithTag(query)"),
|
||||
"tag search must pass only the unprefixed tag query");
|
||||
assertTrue(source.contains("getGroupRoomsWithName(query)"),
|
||||
"group search must pass only the unprefixed group query");
|
||||
assertTrue(source.contains("buildCacheKey(prefix, query)"),
|
||||
"classic room search must cache using normalized prefix/query pairs");
|
||||
}
|
||||
|
||||
@Test
|
||||
void savedAndTagSearchesNormalizeText() throws Exception {
|
||||
String saved = Files.readString(Path.of("src/main/java/com/eu/habbo/messages/incoming/navigator/AddSavedSearchEvent.java"));
|
||||
String tag = Files.readString(Path.of("src/main/java/com/eu/habbo/messages/incoming/navigator/SearchRoomsByTagEvent.java"));
|
||||
|
||||
assertTrue(saved.contains("NavigatorInputGuard.normalizeSavedSearchValue"),
|
||||
"saved searches must trim and bound search code/filter values");
|
||||
assertTrue(tag.contains("NavigatorInputGuard.normalizeSearch"),
|
||||
"tag search must trim and bound tag values");
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user