gluon-web-remote

Web remote Administration for big size of gluon routers
git clone git://archive.git.mtrnord.blog/MTRNord/gluon-web-remote.git
Log | Files | Refs | README

LockHandlerTest.php (2475B)


      1 <?php
      2 
      3 namespace Symfony\Component\Filesystem\Tests;
      4 
      5 use Symfony\Component\Filesystem\LockHandler;
      6 
      7 class LockHandlerTest extends \PHPUnit_Framework_TestCase
      8 {
      9     /**
     10      * @expectedException \Symfony\Component\Filesystem\Exception\IOException
     11      * @expectedExceptionMessage Failed to create "/a/b/c/d/e": mkdir(): Permission denied.
     12      */
     13     public function testConstructWhenRepositoryDoesNotExist()
     14     {
     15         if (!getenv('USER') || 'root' === getenv('USER')) {
     16             $this->markTestSkipped('This test will fail if run under superuser');
     17         }
     18         new LockHandler('lock', '/a/b/c/d/e');
     19     }
     20 
     21     /**
     22      * @expectedException \Symfony\Component\Filesystem\Exception\IOException
     23      * @expectedExceptionMessage The directory "/" is not writable.
     24      */
     25     public function testConstructWhenRepositoryIsNotWriteable()
     26     {
     27         if (!getenv('USER') || 'root' === getenv('USER')) {
     28             $this->markTestSkipped('This test will fail if run under superuser');
     29         }
     30         new LockHandler('lock', '/');
     31     }
     32 
     33     public function testConstructSanitizeName()
     34     {
     35         $lock = new LockHandler('<?php echo "% hello word ! %" ?>');
     36 
     37         $file = sprintf('%s/sf.-php-echo-hello-word-.4b3d9d0d27ddef3a78a64685dda3a963e478659a9e5240feaf7b4173a8f28d5f.lock', sys_get_temp_dir());
     38         // ensure the file does not exist before the lock
     39         @unlink($file);
     40 
     41         $lock->lock();
     42 
     43         $this->assertFileExists($file);
     44 
     45         $lock->release();
     46     }
     47 
     48     public function testLockRelease()
     49     {
     50         $name = 'symfony-test-filesystem.lock';
     51 
     52         $l1 = new LockHandler($name);
     53         $l2 = new LockHandler($name);
     54 
     55         $this->assertTrue($l1->lock());
     56         $this->assertFalse($l2->lock());
     57 
     58         $l1->release();
     59 
     60         $this->assertTrue($l2->lock());
     61         $l2->release();
     62     }
     63 
     64     public function testLockTwice()
     65     {
     66         $name = 'symfony-test-filesystem.lock';
     67 
     68         $lockHandler = new LockHandler($name);
     69 
     70         $this->assertTrue($lockHandler->lock());
     71         $this->assertTrue($lockHandler->lock());
     72 
     73         $lockHandler->release();
     74     }
     75 
     76     public function testLockIsReleased()
     77     {
     78         $name = 'symfony-test-filesystem.lock';
     79 
     80         $l1 = new LockHandler($name);
     81         $l2 = new LockHandler($name);
     82 
     83         $this->assertTrue($l1->lock());
     84         $this->assertFalse($l2->lock());
     85 
     86         $l1 = null;
     87 
     88         $this->assertTrue($l2->lock());
     89         $l2->release();
     90     }
     91 }