instance = new Super_Ajax_Search(); } // ── 1. Empty / Short Query Returns Error ────────────────────── public function test_empty_query_returns_error(): void { $method = $this->getPrivateMethod( 'perform_search' ); $result = $method->invoke( $this->instance, '', 0 ); $this->assertInstanceOf( WP_Error::class, $result ); $this->assertSame( 'query_too_short', $result->get_error_code() ); } public function test_single_char_query_returns_error(): void { $method = $this->getPrivateMethod( 'perform_search' ); $result = $method->invoke( $this->instance, 'a', 0 ); $this->assertInstanceOf( WP_Error::class, $result ); } // ── 2. Input Sanitization Against XSS ───────────────────────── public function test_sanitize_text_field_strips_tags(): void { $malicious = 'hello'; $clean = sanitize_text_field( $malicious ); $this->assertStringNotContainsString( ' our site for more info.'; $excerpt = $method->invoke( $this->instance, $content, 'site' ); $this->assertStringNotContainsString( '