mirror of
https://github.com/kamilwylegala/cakephp2-php8.git
synced 2024-11-15 11:28:25 +00:00
updating Dispatcher::baseUrl() and added tests, fixes #3527
git-svn-id: https://svn.cakephp.org/repo/branches/1.2.x.x@5952 3807eeeb-6ff5-0310-8944-8be069107fe0
This commit is contained in:
parent
0b217acd18
commit
23467f8800
2 changed files with 42 additions and 15 deletions
|
@ -411,19 +411,17 @@ class Dispatcher extends Object {
|
||||||
if (!$baseUrl) {
|
if (!$baseUrl) {
|
||||||
$base = dirname(env('PHP_SELF'));
|
$base = dirname(env('PHP_SELF'));
|
||||||
|
|
||||||
if (in_array($base, array(DS, '.'))) {
|
|
||||||
$base = '';
|
|
||||||
}
|
|
||||||
if ($base == '') {
|
|
||||||
$this->webroot = '/';
|
|
||||||
return $base;
|
|
||||||
}
|
|
||||||
if ($webroot === 'webroot' && $webroot === basename($base)) {
|
if ($webroot === 'webroot' && $webroot === basename($base)) {
|
||||||
$base = dirname($base);
|
$base = dirname($base);
|
||||||
}
|
}
|
||||||
if ($dir === 'app' && $dir === basename($base)) {
|
if ($dir === 'app' && $dir === basename($base)) {
|
||||||
$base = dirname($base);
|
$base = dirname($base);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (in_array($base, array(DS, '.'))) {
|
||||||
|
$base = '';
|
||||||
|
}
|
||||||
|
|
||||||
$this->webroot = $base .'/';
|
$this->webroot = $base .'/';
|
||||||
return $base;
|
return $base;
|
||||||
}
|
}
|
||||||
|
@ -646,9 +644,11 @@ class Dispatcher extends Object {
|
||||||
$filename = CACHE . 'views' . DS . convertSlash($url) . '_index.php';
|
$filename = CACHE . 'views' . DS . convertSlash($url) . '_index.php';
|
||||||
}
|
}
|
||||||
if (file_exists($filename)) {
|
if (file_exists($filename)) {
|
||||||
uses('controller' . DS . 'component', DS . 'view' . DS . 'view');
|
if (!class_exists('View')) {
|
||||||
$v = null;
|
uses('controller' . DS . 'component', DS . 'view' . DS . 'view');
|
||||||
$view = new View($v);
|
}
|
||||||
|
$controller = null;
|
||||||
|
$view = new View($controller);
|
||||||
$view->renderCache($filename, getMicrotime());
|
$view->renderCache($filename, getMicrotime());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -142,6 +142,24 @@ class SomePostsController extends AppController {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
class TestCachedPagesController extends AppController {
|
||||||
|
|
||||||
|
var $name = 'TestCachedPages';
|
||||||
|
var $uses = array();
|
||||||
|
|
||||||
|
var $helpers = array('Cache');
|
||||||
|
|
||||||
|
var $cacheAction = array('index'=> '+2 sec', 'nocache'=>'+2 sec');
|
||||||
|
|
||||||
|
function index() {
|
||||||
|
$this->render(null, null, LIBS . 'view' . DS . 'templates' . DS . 'pages' . DS . 'home.ctp');
|
||||||
|
}
|
||||||
|
|
||||||
|
function nocache() {
|
||||||
|
//$this->cacheAction = '+2 sec';
|
||||||
|
$this->render(null, null, CAKE . 'tests' . DS . 'cases' . DS . 'libs' . DS . 'view' . DS . 'templates' . DS . 'nocache.ctp');
|
||||||
|
}
|
||||||
|
}
|
||||||
/**
|
/**
|
||||||
* Short description for class.
|
* Short description for class.
|
||||||
*
|
*
|
||||||
|
@ -248,7 +266,7 @@ class DispatcherTest extends UnitTestCase {
|
||||||
|
|
||||||
function testBaseUrlAndWebrootWithModRewrite() {
|
function testBaseUrlAndWebrootWithModRewrite() {
|
||||||
$Dispatcher =& new Dispatcher();
|
$Dispatcher =& new Dispatcher();
|
||||||
|
|
||||||
$Dispatcher->base = false;
|
$Dispatcher->base = false;
|
||||||
$_SERVER['DOCUMENT_ROOT'] = '/cake/repo/branches';
|
$_SERVER['DOCUMENT_ROOT'] = '/cake/repo/branches';
|
||||||
$_SERVER['SCRIPT_FILENAME'] = '/cake/repo/branches/1.2.x.x/app/webroot/index.php';
|
$_SERVER['SCRIPT_FILENAME'] = '/cake/repo/branches/1.2.x.x/app/webroot/index.php';
|
||||||
|
@ -258,7 +276,7 @@ class DispatcherTest extends UnitTestCase {
|
||||||
$this->assertEqual($expected, $result);
|
$this->assertEqual($expected, $result);
|
||||||
$expectedWebroot = '/1.2.x.x/';
|
$expectedWebroot = '/1.2.x.x/';
|
||||||
$this->assertEqual($expectedWebroot, $Dispatcher->webroot);
|
$this->assertEqual($expectedWebroot, $Dispatcher->webroot);
|
||||||
|
|
||||||
$Dispatcher->base = false;
|
$Dispatcher->base = false;
|
||||||
$_SERVER['DOCUMENT_ROOT'] = '/cake/repo/branches/1.2.x.x/app/webroot';
|
$_SERVER['DOCUMENT_ROOT'] = '/cake/repo/branches/1.2.x.x/app/webroot';
|
||||||
$_SERVER['SCRIPT_FILENAME'] = '/cake/repo/branches/1.2.x.x/app/webroot/index.php';
|
$_SERVER['SCRIPT_FILENAME'] = '/cake/repo/branches/1.2.x.x/app/webroot/index.php';
|
||||||
|
@ -268,7 +286,17 @@ class DispatcherTest extends UnitTestCase {
|
||||||
$this->assertEqual($expected, $result);
|
$this->assertEqual($expected, $result);
|
||||||
$expectedWebroot = '/';
|
$expectedWebroot = '/';
|
||||||
$this->assertEqual($expectedWebroot, $Dispatcher->webroot);
|
$this->assertEqual($expectedWebroot, $Dispatcher->webroot);
|
||||||
|
|
||||||
|
$Dispatcher->base = false;
|
||||||
|
$_SERVER['DOCUMENT_ROOT'] = '/cake/repo/branches/1.2.x.x/test/';
|
||||||
|
$_SERVER['SCRIPT_FILENAME'] = '/cake/repo/branches/1.2.x.x/test/webroot/index.php';
|
||||||
|
$_SERVER['PHP_SELF'] = '/webroot/index.php';
|
||||||
|
$result = $Dispatcher->baseUrl();
|
||||||
|
$expected = '';
|
||||||
|
$this->assertEqual($expected, $result);
|
||||||
|
$expectedWebroot = '/';
|
||||||
|
$this->assertEqual($expectedWebroot, $Dispatcher->webroot);
|
||||||
|
|
||||||
$Dispatcher->base = false;;
|
$Dispatcher->base = false;;
|
||||||
$_SERVER['DOCUMENT_ROOT'] = '/some/apps/where';
|
$_SERVER['DOCUMENT_ROOT'] = '/some/apps/where';
|
||||||
$_SERVER['SCRIPT_FILENAME'] = '/some/apps/where/app/webroot/index.php';
|
$_SERVER['SCRIPT_FILENAME'] = '/some/apps/where/app/webroot/index.php';
|
||||||
|
@ -278,7 +306,7 @@ class DispatcherTest extends UnitTestCase {
|
||||||
$this->assertEqual($expected, $result);
|
$this->assertEqual($expected, $result);
|
||||||
$expectedWebroot = '/some/apps/where/';
|
$expectedWebroot = '/some/apps/where/';
|
||||||
$this->assertEqual($expectedWebroot, $Dispatcher->webroot);
|
$this->assertEqual($expectedWebroot, $Dispatcher->webroot);
|
||||||
|
|
||||||
|
|
||||||
Configure::write('App.dir', 'auth');
|
Configure::write('App.dir', 'auth');
|
||||||
|
|
||||||
|
@ -692,7 +720,6 @@ class DispatcherTest extends UnitTestCase {
|
||||||
$this->assertIdentical($expected, $controller->params['pass']);
|
$this->assertIdentical($expected, $controller->params['pass']);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function tearDown() {
|
function tearDown() {
|
||||||
$_GET = $this->_get;
|
$_GET = $this->_get;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue