PurgeLimiterTest.php 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  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::setStore(
  15. Filesystem::getInstance(array('dir' => $this->_path))
  16. );
  17. }
  18. public function tearDown()
  19. {
  20. /* Tear Down Routine */
  21. Helper::rmDir($this->_path);
  22. }
  23. public function testLimit()
  24. {
  25. // initialize it
  26. PurgeLimiter::setLimit(1);
  27. PurgeLimiter::canPurge();
  28. // try setting it
  29. $this->assertEquals(false, PurgeLimiter::canPurge());
  30. sleep(2);
  31. $this->assertEquals(true, PurgeLimiter::canPurge());
  32. // disable it
  33. PurgeLimiter::setLimit(0);
  34. PurgeLimiter::canPurge();
  35. $this->assertEquals(true, PurgeLimiter::canPurge());
  36. }
  37. }