PermissionsTestCase.php in Zircon Profile 8.0
File
vendor/mikey179/vfsStream/src/test/php/org/bovigo/vfs/PermissionsTestCase.php
View source
<?php
namespace org\bovigo\vfs;
class PermissionsTestCase extends \PHPUnit_Framework_TestCase {
private $root;
public function setup() {
$structure = array(
'test_directory' => array(
'test.file' => '',
),
);
$this->root = vfsStream::setup('root', null, $structure);
}
public function canNotChangePermissionWhenDirectoryNotWriteable() {
$this->root
->getChild('test_directory')
->chmod(0444);
$this
->assertFalse(@chmod(vfsStream::url('root/test_directory/test.file'), 0777));
}
public function canNotChangePermissionWhenFileNotOwned() {
$this->root
->getChild('test_directory')
->getChild('test.file')
->chown(vfsStream::OWNER_USER_1);
$this
->assertFalse(@chmod(vfsStream::url('root/test_directory/test.file'), 0777));
}
public function canNotChangeOwnerWhenDirectoryNotWriteable() {
$this->root
->getChild('test_directory')
->chmod(0444);
$this
->assertFalse(@chown(vfsStream::url('root/test_directory/test.file'), vfsStream::OWNER_USER_2));
}
public function canNotChangeOwnerWhenFileNotOwned() {
$this->root
->getChild('test_directory')
->getChild('test.file')
->chown(vfsStream::OWNER_USER_1);
$this
->assertFalse(@chown(vfsStream::url('root/test_directory/test.file'), vfsStream::OWNER_USER_2));
}
public function canNotChangeGroupWhenDirectoryNotWriteable() {
$this->root
->getChild('test_directory')
->chmod(0444);
$this
->assertFalse(@chgrp(vfsStream::url('root/test_directory/test.file'), vfsStream::GROUP_USER_2));
}
public function canNotChangeGroupWhenFileNotOwned() {
$this->root
->getChild('test_directory')
->getChild('test.file')
->chown(vfsStream::OWNER_USER_1);
$this
->assertFalse(@chgrp(vfsStream::url('root/test_directory/test.file'), vfsStream::GROUP_USER_2));
}
public function touchOnNonWriteableDirectoryTriggersError() {
$this->root
->chmod(0555);
touch($this->root
->url() . '/touch.txt');
}
public function touchOnNonWriteableDirectoryDoesNotCreateFile() {
$this->root
->chmod(0555);
$this
->assertFalse(@touch($this->root
->url() . '/touch.txt'));
$this
->assertFalse($this->root
->hasChild('touch.txt'));
}
}