| TestNew | Creates filter with default options | Allows all requests to pass through |
| TestMethods (allowed) | Filters by HTTP method - allowed method | Returns 200 OK for GET request |
| TestMethods (blocked) | Filters by HTTP method - blocked method | Returns 403 Forbidden for DELETE request |
| TestBlockPaths (allowed) | Blocks specific path patterns - allowed path | Returns 200 OK for root path |
| TestBlockPaths (admin) | Blocks admin paths with * wildcard | Returns 403 Forbidden for /admin/users |
| TestBlockPaths (deep) | Blocks deep paths with ** wildcard | Returns 403 Forbidden for /internal/deep/path |
| TestPaths (allowed) | Allows only specific path patterns | Returns 200 OK for /api/users |
| TestPaths (blocked) | Blocks paths not in allow list | Returns 403 Forbidden for /secret |
| TestHosts (allowed) | Filters by hostname - allowed host | Returns 200 OK for example.com |
| TestHosts (blocked) | Filters by hostname - blocked host | Returns 403 Forbidden for evil.com |
| TestBlockUserAgents (allowed) | Blocks specific user agents - allowed UA | Returns 200 OK for Mozilla/5.0 |
| TestBlockUserAgents (curl) | Blocks curl user agent pattern | Returns 403 Forbidden for curl/7.68.0 |
| TestBlockUserAgents (bot) | Blocks bot user agent pattern | Returns 403 Forbidden for Googlebot/2.1 |
| TestCustomFilter (passes) | Custom filter function returns true | Returns 200 OK when X-Secret header is valid |
| TestCustomFilter (fails) | Custom filter function returns false | Returns 403 Forbidden when X-Secret header missing |
| TestCustomOnBlock | Custom OnBlock handler | Returns 405 with JSON error message |
| TestBlockedHosts (allowed) | Blocks specific hosts - allowed host | Returns 200 OK for example.com |
| TestBlockedHosts (blocked) | Blocks specific hosts - blocked host | Returns 403 Forbidden for spam.com |
| TestGlobToRegex (/api/*) | Glob pattern with single wildcard | Matches /api/users but not /api/users/1 |
| TestGlobToRegex (/api/**) | Glob pattern with double wildcard | Matches /api/users/1 (nested paths) |
| TestGlobToRegex (*.txt) | File extension pattern | Matches file.txt but not file.json |
| TestGlobToRegex (/a?c) | Question mark single char match | Matches /abc |
| TestGlobToRegex (/a.b) | Dot character escaping | Matches literal /a.b |