@Test
    void reserveSemicolonWhenAllowed() {
        // '%3B' is decoded into ';' when allowSemicolonInPathComponent is true.
        assertAccepted(forServer("/abc%3B?a=%3B", true), "/abc;", "a=%3B");
        assertAccepted(forServer("/abc%3B?a=%3B"), "/abc%3B", "a=%3B");

        assertAccepted(forServer("/abc%3B", true), "/abc;");
        assertAccepted(forServer("/abc%3B"), "/abc%3B");

        // Client always decodes '%3B' into ';'.
        assertAccepted(forClient("/abc%3B?a=%3B"), "/abc;", "a=%3B");
    }
{@link RequestTarget} treats the first `=` in a query parameter as `/` internally to simplify
the detection the logic. This test makes sure the `=` appeared later is not treated as `/`.
core/src/test/java/com/linecorp/armeria/internal/common/DefaultRequestTargetTest.java