Check that the directory cache exists

This commit is contained in:
Francis Besset 2011-09-10 18:51:04 +02:00
parent 5dc84ef088
commit d0cc3e8bd2
5 changed files with 66 additions and 5 deletions

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
vendor

View File

@ -72,6 +72,10 @@ class Cache
static public function setDirectory($directory)
{
if (!is_dir($directory)) {
mkdir($directory, 0777, true);
}
self::iniSet('soap.wsdl_cache_dir', $directory);
}

View File

@ -36,11 +36,19 @@ class SoapRequestTest extends \PHPUnit_Framework_TestCase
public function testSetDirectory()
{
Cache::setDirectory('/foo');
$this->assertEquals('/foo', Cache::getDirectory());
\vfsStream::setup('Fixtures');
Cache::setDirectory('/bar');
$this->assertEquals('/bar', Cache::getDirectory());
$this->assertFalse(\vfsStreamWrapper::getRoot()->hasChild('foo'));
$dir = \vfsStream::url('Fixtures/foo');
Cache::setDirectory($dir);
$this->assertEquals($dir, Cache::getDirectory());
$this->assertTrue(\vfsStreamWrapper::getRoot()->hasChild('foo'));
$this->assertFalse(\vfsStreamWrapper::getRoot()->hasChild('bar'));
$dir = \vfsStream::url('Fixtures/bar');
Cache::setDirectory($dir);
$this->assertEquals($dir, Cache::getDirectory());
$this->assertTrue(\vfsStreamWrapper::getRoot()->hasChild('bar'));
}
public function testSetLifetime()

View File

@ -11,11 +11,18 @@ spl_autoload_register(function($class) {
return true;
}
} else if (0 === strpos($class, 'BeSimple\SoapCommon\\')) {
} elseif (0 === strpos($class, 'BeSimple\SoapCommon\\')) {
$path = __DIR__.'/../src/'.($class = strtr($class, '\\', '/')).'.php';
if (file_exists($path) && is_readable($path)) {
require_once $path;
return true;
}
} elseif (0 === strpos($class, 'vfsStream')) {
$path = __DIR__.'/../vendor/vfsStream/src/main/php/org/bovigo/vfs/'.$class.'.php';
if (file_exists($path) && is_readable($path)) {
require_once $path;
return true;
}
}

41
vendors.php Executable file
View File

@ -0,0 +1,41 @@
#!/usr/bin/env php
<?php
/*
* This file is part of the BeSimpleSoapCommon.
*
* (c) Christian Kerl <christian-kerl@web.de>
* (c) Francis Besset <francis.besset@gmail.com>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
/*
CAUTION: This file installs the dependencies needed to run the BeSimpleSoapCommon test suite.
https://github.com/BeSimple/BeSimpleSoapCommon
*/
if (!is_dir($vendorDir = dirname(__FILE__).'/vendor')) {
mkdir($vendorDir, 0777, true);
}
$deps = array(
array('vfsStream', 'https://github.com/mikey179/vfsStream.git', 'RELEASE-0.10.1'),
);
foreach ($deps as $dep) {
list($name, $url, $rev) = $dep;
echo "> Installing/Updating $name\n";
$installDir = $vendorDir.'/'.$name;
if (!is_dir($installDir)) {
system(sprintf('git clone %s %s', escapeshellarg($url), escapeshellarg($installDir)));
}
system(sprintf('cd %s && git fetch origin && git reset --hard %s', escapeshellarg($installDir), escapeshellarg($rev)));
}