PurgeLimiterTest.php 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. <?php declare(strict_types=1);
  2. use PHPUnit\Framework\TestCase;
  3. use PrivateBin\Data\Filesystem;
  4. use PrivateBin\Persistence\PurgeLimiter;
  5. class PurgeLimiterTest extends TestCase
  6. {
  7. private $_path;
  8. public function setUp(): void
  9. {
  10. /* Setup Routine */
  11. $this->_path = sys_get_temp_dir() . DIRECTORY_SEPARATOR . 'privatebin_data';
  12. if (!is_dir($this->_path)) {
  13. mkdir($this->_path);
  14. }
  15. PurgeLimiter::setStore(
  16. new Filesystem(['dir' => $this->_path])
  17. );
  18. }
  19. public function tearDown(): void
  20. {
  21. /* Tear Down Routine */
  22. Helper::rmDir($this->_path);
  23. }
  24. public function testLimit()
  25. {
  26. // initialize it
  27. PurgeLimiter::setLimit(1);
  28. PurgeLimiter::canPurge();
  29. // try setting it
  30. $this->assertEquals(false, PurgeLimiter::canPurge());
  31. sleep(2);
  32. $this->assertEquals(true, PurgeLimiter::canPurge());
  33. // disable it
  34. PurgeLimiter::setLimit(0);
  35. PurgeLimiter::canPurge();
  36. $this->assertEquals(true, PurgeLimiter::canPurge());
  37. }
  38. }