@@ -79,6 +79,23 @@ protected function buildUrlPatternAliased(VerbalExpressions $regex)
79
79
->endOfLine ();
80
80
}
81
81
82
+
83
+ public function testTest (){
84
+ $ regex = new VerbalExpressions ();
85
+ $ regex ->find ('regex ' );
86
+
87
+ $ this ->assertTrue ($ regex ->test ('testing regex string ' ));
88
+ $ this ->assertFalse ($ regex ->test ('testing string ' ));
89
+
90
+ $ regex ->stopAtFirst ();
91
+
92
+ $ this ->assertEquals (1 , $ regex ->test ('testing regex string ' ));
93
+ $ this ->assertFalse ($ regex ->test ('testing string ' ));
94
+ }
95
+
96
+ /**
97
+ * @depends testTest
98
+ */
82
99
public function testThenAfterStartOfLine ()
83
100
{
84
101
$ regex = new VerbalExpressions ();
@@ -265,4 +282,174 @@ public function testAnyOf()
265
282
$ this ->assertFalse ($ regex ->test ('' ));
266
283
$ this ->assertFalse ($ regex ->test (' ' ));
267
284
}
285
+
286
+
287
+ public function testGetRegex (){
288
+ $ regex = new VerbalExpressions ();
289
+ $ regex ->startOfLine ()
290
+ ->range (0 , 9 , 'a ' , 'z ' , 'A ' , 'Z ' )
291
+ ->multiple ('' );
292
+
293
+ $ this ->assertEquals ('/^[0-9a-zA-Z]+/m ' , $ regex ->getRegex ());
294
+ $ this ->assertEquals ('/^[0-9a-zA-Z]+/m ' , $ regex ->__toString ());
295
+ $ this ->assertEquals ('/^[0-9a-zA-Z]+/m ' , (string )$ regex );
296
+ $ this ->assertEquals ('/^[0-9a-zA-Z]+/m ' , $ regex . '' );
297
+ }
298
+
299
+ /**
300
+ * @depends testGetRegex
301
+ */
302
+ public function testGetRegex_multiple (){
303
+ $ regex = new VerbalExpressions ();
304
+ $ regex ->startOfLine ()
305
+ ->multiple ('regex ' );
306
+
307
+ $ this ->assertEquals ('/^regex+/m ' , $ regex ->getRegex ());
308
+ }
309
+
310
+ /**
311
+ * @expectedException InvalidArgumentException
312
+ */
313
+ public function testRange_throwsException (){
314
+ $ regex = new VerbalExpressions ();
315
+ $ regex ->range (1 , 2 , 3 );
316
+ }
317
+
318
+ /**
319
+ * @depends testGetRegex
320
+ */
321
+ public function testRange_lowercase ()
322
+ {
323
+ $ lowercaseAlpha = new VerbalExpressions ();
324
+ $ lowercaseAlpha ->range ('a ' , 'z ' )
325
+ ->multiple ('' );
326
+
327
+ $ lowercaseAlpha_all = new VerbalExpressions ();
328
+ $ lowercaseAlpha_all ->startOfLine ()
329
+ ->range ('a ' , 'z ' )
330
+ ->multiple ('' )
331
+ ->endOfLine ();
332
+
333
+ $ this ->assertEquals ('/[a-z]+/m ' , $ lowercaseAlpha ->getRegex ());
334
+ $ this ->assertEquals ('/^[a-z]+$/m ' , $ lowercaseAlpha_all ->getRegex ());
335
+
336
+ $ this ->assertTrue ($ lowercaseAlpha ->test ('a ' ));
337
+ $ this ->assertFalse ($ lowercaseAlpha ->test ('A ' ));
338
+ $ this ->assertTrue ($ lowercaseAlpha ->test ('alphabet ' ));
339
+ $ this ->assertTrue ($ lowercaseAlpha ->test ('Alphabet ' ));
340
+ $ this ->assertFalse ($ lowercaseAlpha_all ->test ('Alphabet ' ));
341
+ }
342
+
343
+ /**
344
+ * @depends testGetRegex
345
+ */
346
+ public function testRange_uppercase ()
347
+ {
348
+ $ uppercaseAlpha = new VerbalExpressions ();
349
+ $ uppercaseAlpha ->range ('A ' , 'Z ' )
350
+ ->multiple ('' );
351
+
352
+ $ uppercaseAlpha_all = new VerbalExpressions ();
353
+ $ uppercaseAlpha_all ->startOfLine ()
354
+ ->range ('A ' , 'Z ' )
355
+ ->multiple ('' )
356
+ ->endOfLine ();
357
+
358
+ $ this ->assertEquals ('/[A-Z]+/m ' , $ uppercaseAlpha ->getRegex ());
359
+ $ this ->assertEquals ('/^[A-Z]+$/m ' , $ uppercaseAlpha_all ->getRegex ());
360
+
361
+ $ this ->assertTrue ($ uppercaseAlpha ->test ('A ' ));
362
+ $ this ->assertFalse ($ uppercaseAlpha ->test ('a ' ));
363
+ $ this ->assertFalse ($ uppercaseAlpha ->test ('alphabet ' ));
364
+ $ this ->assertTrue ($ uppercaseAlpha ->test ('Alphabet ' ));
365
+ $ this ->assertTrue ($ uppercaseAlpha ->test ('ALPHABET ' ));
366
+ $ this ->assertFalse ($ uppercaseAlpha_all ->test ('Alphabet ' ));
367
+ $ this ->assertTrue ($ uppercaseAlpha_all ->test ('ALPHABET ' ));
368
+ }
369
+
370
+ /**
371
+ * @depends testGetRegex
372
+ */
373
+ public function testRange_numerical ()
374
+ {
375
+ $ zeroToNine = new VerbalExpressions ();
376
+ $ zeroToNine ->range (0 , 9 )
377
+ ->multiple ('' );
378
+
379
+ $ zeroToNine_all = new VerbalExpressions ();
380
+ $ zeroToNine_all ->startOfLine ()
381
+ ->range (0 , 9 )
382
+ ->multiple ('' )
383
+ ->endOfLine ();
384
+
385
+ $ this ->assertEquals ('/[0-9]+/m ' , $ zeroToNine ->getRegex ());
386
+ $ this ->assertEquals ('/^[0-9]+$/m ' , $ zeroToNine_all ->getRegex ());
387
+
388
+ $ this ->assertFalse ($ zeroToNine ->test ('alphabet ' ));
389
+ $ this ->assertTrue ($ zeroToNine ->test (0 ));
390
+ $ this ->assertTrue ($ zeroToNine ->test ('0 ' ));
391
+ $ this ->assertTrue ($ zeroToNine ->test (123 ));
392
+ $ this ->assertTrue ($ zeroToNine ->test ('123 ' ));
393
+ $ this ->assertTrue ($ zeroToNine ->test (1.23 ));
394
+ $ this ->assertTrue ($ zeroToNine ->test ('1.23 ' ));
395
+ $ this ->assertFalse ($ zeroToNine_all ->test (1.23 ));
396
+ $ this ->assertFalse ($ zeroToNine_all ->test ('1.23 ' ));
397
+ $ this ->assertTrue ($ zeroToNine ->test ('£123 ' ));
398
+ $ this ->assertFalse ($ zeroToNine_all ->test ('£123 ' ));
399
+ }
400
+
401
+ /**
402
+ * @depends testGetRegex
403
+ */
404
+ public function testRange_hexadecimal ()
405
+ {
406
+ $ hexadecimal = new VerbalExpressions ();
407
+ $ hexadecimal ->startOfLine ()
408
+ ->range (0 , 9 , 'a ' , 'f ' )
409
+ ->multiple ('' )
410
+ ->endOfLine ();
411
+
412
+ $ this ->assertEquals ('/^[0-9a-f]+$/m ' , $ hexadecimal ->getRegex ());
413
+
414
+ $ this ->assertFalse ($ hexadecimal ->test ('alphabet ' ));
415
+ $ this ->assertTrue ($ hexadecimal ->test ('deadbeef ' ));
416
+ $ this ->assertTrue ($ hexadecimal ->test (md5 ('' )));
417
+ $ this ->assertTrue ($ hexadecimal ->test (sha1 ('' )));
418
+ }
419
+
420
+ /**
421
+ * @depends testRange_hexadecimal
422
+ */
423
+ public function testRange_md5 (){
424
+ $ md5 = new VerbalExpressions ();
425
+ $ md5 ->startOfLine ()
426
+ ->range (0 , 9 , 'a ' , 'f ' )
427
+ ->limit (32 )
428
+ ->endOfLine ();
429
+
430
+ $ this ->assertEquals ('/^[0-9a-f]{32}$/m ' , $ md5 ->getRegex ());
431
+
432
+ $ this ->assertFalse ($ md5 ->test ('alphabet ' ));
433
+ $ this ->assertFalse ($ md5 ->test ('deadbeef ' ));
434
+ $ this ->assertTrue ($ md5 ->test (md5 ('' )));
435
+ $ this ->assertFalse ($ md5 ->test (sha1 ('' )));
436
+ }
437
+
438
+ /*
439
+ * @depends testRange_hexadecimal
440
+ */
441
+ public function testRange_sha1 (){
442
+ $ sha1 = new VerbalExpressions ();
443
+ $ sha1 ->startOfLine ()
444
+ ->range (0 , 9 , 'a ' , 'f ' )
445
+ ->limit (40 )
446
+ ->endOfLine ();
447
+
448
+ $ this ->assertEquals ('/^[0-9a-f]{40}$/m ' , $ sha1 ->getRegex ());
449
+
450
+ $ this ->assertFalse ($ sha1 ->test ('alphabet ' ));
451
+ $ this ->assertFalse ($ sha1 ->test ('deadbeef ' ));
452
+ $ this ->assertFalse ($ sha1 ->test (md5 ('' )));
453
+ $ this ->assertTrue ($ sha1 ->test (sha1 ('' )));
454
+ }
268
455
}
0 commit comments