filter.php 3.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. <?php
  2. class filterTest extends PHPUnit_Framework_TestCase
  3. {
  4. public function testFilterStripsSlashesDeeply()
  5. {
  6. $this->assertEquals(
  7. array("f'oo", "b'ar", array("fo'o", "b'ar")),
  8. filter::stripslashes_deep(array("f\\'oo", "b\\'ar", array("fo\\'o", "b\\'ar")))
  9. );
  10. }
  11. public function testFilterMakesSizesHumanlyReadable()
  12. {
  13. $this->assertEquals('1 B', filter::size_humanreadable(1));
  14. $this->assertEquals('1 000 B', filter::size_humanreadable(1000));
  15. $this->assertEquals('1.00 kiB', filter::size_humanreadable(1024));
  16. $this->assertEquals('1.21 kiB', filter::size_humanreadable(1234));
  17. $exponent = 1024;
  18. $this->assertEquals('1 000.00 kiB', filter::size_humanreadable(1000 * $exponent));
  19. $this->assertEquals('1.00 MiB', filter::size_humanreadable(1024 * $exponent));
  20. $this->assertEquals('1.21 MiB', filter::size_humanreadable(1234 * $exponent));
  21. $exponent *= 1024;
  22. $this->assertEquals('1 000.00 MiB', filter::size_humanreadable(1000 * $exponent));
  23. $this->assertEquals('1.00 GiB', filter::size_humanreadable(1024 * $exponent));
  24. $this->assertEquals('1.21 GiB', filter::size_humanreadable(1234 * $exponent));
  25. $exponent *= 1024;
  26. $this->assertEquals('1 000.00 GiB', filter::size_humanreadable(1000 * $exponent));
  27. $this->assertEquals('1.00 TiB', filter::size_humanreadable(1024 * $exponent));
  28. $this->assertEquals('1.21 TiB', filter::size_humanreadable(1234 * $exponent));
  29. $exponent *= 1024;
  30. $this->assertEquals('1 000.00 TiB', filter::size_humanreadable(1000 * $exponent));
  31. $this->assertEquals('1.00 PiB', filter::size_humanreadable(1024 * $exponent));
  32. $this->assertEquals('1.21 PiB', filter::size_humanreadable(1234 * $exponent));
  33. $exponent *= 1024;
  34. $this->assertEquals('1 000.00 PiB', filter::size_humanreadable(1000 * $exponent));
  35. $this->assertEquals('1.00 EiB', filter::size_humanreadable(1024 * $exponent));
  36. $this->assertEquals('1.21 EiB', filter::size_humanreadable(1234 * $exponent));
  37. $exponent *= 1024;
  38. $this->assertEquals('1 000.00 EiB', filter::size_humanreadable(1000 * $exponent));
  39. $this->assertEquals('1.00 ZiB', filter::size_humanreadable(1024 * $exponent));
  40. $this->assertEquals('1.21 ZiB', filter::size_humanreadable(1234 * $exponent));
  41. $exponent *= 1024;
  42. $this->assertEquals('1 000.00 ZiB', filter::size_humanreadable(1000 * $exponent));
  43. $this->assertEquals('1.00 YiB', filter::size_humanreadable(1024 * $exponent));
  44. $this->assertEquals('1.21 YiB', filter::size_humanreadable(1234 * $exponent));
  45. }
  46. public function testPasteIdValidation()
  47. {
  48. $this->assertTrue(filter::is_valid_paste_id('a242ab7bdfb2581a'), 'valid paste id');
  49. $this->assertFalse(filter::is_valid_paste_id('foo'), 'invalid hex values');
  50. $this->assertFalse(filter::is_valid_paste_id('../bar/baz'), 'path attack');
  51. }
  52. public function testSlowEquals()
  53. {
  54. $this->assertTrue(filter::slow_equals('foo', 'foo'), 'same string');
  55. $this->assertFalse(filter::slow_equals('foo', true), 'string and boolean');
  56. $this->assertFalse(filter::slow_equals('foo', 0), 'string and integer');
  57. $this->assertFalse(filter::slow_equals('123foo', 123), 'string and integer');
  58. $this->assertFalse(filter::slow_equals('123foo', '123'), 'different strings');
  59. $this->assertFalse(filter::slow_equals('6', ' 6'), 'strings with space');
  60. $this->assertFalse(filter::slow_equals('4.2', '4.20'), 'floats as strings');
  61. $this->assertFalse(filter::slow_equals('1e3', '1000'), 'integers as strings');
  62. $this->assertFalse(filter::slow_equals('9223372036854775807', '9223372036854775808'), 'large integers as strings');
  63. $this->assertFalse(filter::slow_equals('61529519452809720693702583126814', '61529519452809720000000000000000'), 'larger integers as strings');
  64. }
  65. }