Lines Matching full:pattern
66 // Test 1: Pattern Validation - Valid Patterns
67 $runner->addTest('Pattern Validation - Valid Simple Pattern', function() {
73 $runner->addTest('Pattern Validation - Valid Complex Pattern', function() {
79 $runner->addTest('Pattern Validation - Valid Namespace Pattern', function() {
85 // Test 2: Pattern Validation - Invalid Patterns
86 $runner->addTest('Pattern Validation - Invalid Syntax', function() {
92 $runner->addTest('Pattern Validation - ReDoS Protection', function() {
98 $runner->addTest('Pattern Validation - Another ReDoS Pattern', function() {
104 $runner->addTest('Pattern Validation - ReDoS Simple Plus Pattern', function() {
110 $runner->addTest('Pattern Validation - ReDoS Simple Star Pattern', function() {
116 $runner->addTest('Pattern Validation - Length Limit', function() {
123 $runner->addTest('Pattern Validation - Line Number Reporting', function() {
129 // Test 3: Pattern Matching
130 $runner->addTest('Pattern Matching - Exact Match', function() {
135 $runner->addTest('Pattern Matching - No Match', function() {
140 $runner->addTest('Pattern Matching - Complex Pattern Match', function() {
145 $runner->addTest('Pattern Matching - Complex Pattern No Match', function() {
150 $runner->addTest('Pattern Matching - Partial Match', function() {
155 $runner->addTest('Pattern Matching - Case Sensitive', function() {
211 // Pattern with forward slashes should be properly escaped
217 // Test unicode pattern matching
235 $runner->addTest('Edge Cases - Empty Pattern', function() {
247 $runner->addTest('Edge Cases - Whitespace Pattern', function() {
261 $pattern = '^users:[^:]+:start$'; variable
262 return $plugin->matchesPattern($pattern, 'users:john:start') === true &&
263 $plugin->matchesPattern($pattern, 'users:mary:start') === true &&
264 $plugin->matchesPattern($pattern, 'users:admin:profile') === false;
269 $pattern = '^admin:.*$'; variable
270 return $plugin->matchesPattern($pattern, 'admin:config') === true &&
271 $plugin->matchesPattern($pattern, 'admin:users:list') === true &&
272 $plugin->matchesPattern($pattern, 'public:page') === false;
275 $runner->addTest('Real-world - File Extension Pattern', function() {
277 $pattern = '\.txt$'; variable
278 return $plugin->matchesPattern($pattern, 'document.txt') === true &&
279 $plugin->matchesPattern($pattern, 'image.png') === false;