BxDolDbTest.php 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. <?php
  2. use PHPUnit\Framework\Attributes\DataProvider;
  3. /**
  4. * Test Antispam module
  5. */
  6. class BxDolDbTest extends BxDolTestCase
  7. {
  8. #[DataProvider('providerForIsValidFieldName')]
  9. public function testIsValidFieldName($s, $bRes, $bStrict = false)
  10. {
  11. $this->assertEquals($bRes, (bool)BxDolDb::getInstance()->isValidFieldName($s, $bStrict));
  12. }
  13. static public function providerForIsValidFieldName()
  14. {
  15. return array(
  16. array('', false),
  17. array(' ', false),
  18. array('`', false),
  19. array('name', true),
  20. array('имя', true),
  21. array('name ', false),
  22. array("na\0me", false),
  23. array('na`me1', false),
  24. array('na``me2', true),
  25. array('1234a', true),
  26. array('12345', false),
  27. array('💡', false),
  28. array('id;', true),
  29. array('`id`', false),
  30. array('table`.`id', true),
  31. array('name', true, true),
  32. array('имя', false, true),
  33. array('id;', false, true),
  34. array('na``me2', false, true),
  35. array('table`.`id', false, true),
  36. array('12345', true, true),
  37. array('', false, true),
  38. );
  39. }
  40. #[DataProvider('providerForIsValidOperator')]
  41. public function testIsValidOperator($s, $bRes)
  42. {
  43. $this->assertSame($bRes, BxDolDb::getInstance()->isValidOperator($s));
  44. }
  45. static public function providerForIsValidOperator()
  46. {
  47. return [
  48. ['=', true],
  49. ['like', true],
  50. ['LIKE', true],
  51. [' in ', true],
  52. ['NOT IN', true],
  53. ['OR 1=1', false],
  54. [';DROP', false],
  55. ['', false],
  56. ['UNION', false],
  57. ];
  58. }
  59. }