/**
  * Delete Expired Captcha Images for specific website
  *
  * @param \Magento\Captcha\Helper\Data $helper
  * @param \Magento\Store\Model\Website|null $website
  * @param \Magento\Store\Model\Store|null $store
  * @return void
  */
 protected function _deleteExpiredImagesForWebsite(\Magento\Captcha\Helper\Data $helper, \Magento\Store\Model\Website $website = null, \Magento\Store\Model\Store $store = null)
 {
     $expire = time() - $helper->getConfig('timeout', $store) * 60;
     $imageDirectory = $this->_mediaDirectory->getRelativePath($helper->getImgDir($website));
     foreach ($this->_mediaDirectory->read($imageDirectory) as $filePath) {
         if ($this->_mediaDirectory->isFile($filePath) && pathinfo($filePath, PATHINFO_EXTENSION) == 'png' && $this->_mediaDirectory->stat($filePath)['mtime'] < $expire) {
             $this->_mediaDirectory->delete($filePath);
         }
     }
 }
 /**
  * @covers \Magento\Captcha\Model\DefaultModel::getImgDir
  * @covers \Magento\Captcha\Helper\Data::getImgDir
  */
 public function testGetImgDir()
 {
     $dirWriteMock = $this->getMock('Magento\\Framework\\Filesystem\\Directory\\Write', ['changePermissions', 'create', 'getAbsolutePath'], [], '', false);
     $this->_filesystem->expects($this->once())->method('getDirectoryWrite')->with(DirectoryList::MEDIA)->will($this->returnValue($dirWriteMock));
     $dirWriteMock->expects($this->once())->method('getAbsolutePath')->with('/captcha/base')->will($this->returnValue(TESTS_TEMP_DIR . '/captcha/base'));
     $this->assertFileNotExists(TESTS_TEMP_DIR . '/captcha');
     $result = $this->helper->getImgDir();
     $this->assertStringStartsWith(TESTS_TEMP_DIR, $result);
     $this->assertStringEndsWith('captcha/base/', $result);
 }
 /**
  * Get captcha image directory
  *
  * @return string
  */
 public function getImgDir()
 {
     return $this->_captchaData->getImgDir();
 }