PurgeLimiterTest.php 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. <?php
  2. use PrivateBin\Data\Filesystem;
  3. use PrivateBin\Persistence\PurgeLimiter;
  4. class PurgeLimiterTest extends PHPUnit_Framework_TestCase
  5. {
  6. private $_path;
  7. public function setUp()
  8. {
  9. /* Setup Routine */
  10. $this->_path = sys_get_temp_dir() . DIRECTORY_SEPARATOR . 'privatebin_data';
  11. if (!is_dir($this->_path)) {
  12. mkdir($this->_path);
  13. }
  14. PurgeLimiter::setPath($this->_path);
  15. PurgeLimiter::setStore(
  16. Filesystem::getInstance(array('dir' => $this->_path))
  17. );
  18. }
  19. public function tearDown()
  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. }