mirror of
https://github.com/yiisoft/yii2.git
synced 2026-03-04 06:24:36 +01:00
Fixes #14903: Fixed route with extra dashes is executed controller while it should not
This commit is contained in:
committed by
Alexander Makarov
parent
72b69e359a
commit
a559b9fa76
@@ -120,6 +120,33 @@ class ModuleTest extends TestCase
|
||||
$this->assertTrue($child->has('test'));
|
||||
$this->assertFalse($parent->has('test'));
|
||||
}
|
||||
|
||||
public function testCreateControllerByID()
|
||||
{
|
||||
$module = new TestModule('test');
|
||||
$module->controllerNamespace = 'yiiunit\framework\base';
|
||||
|
||||
$route = 'module-test';
|
||||
$this->assertInstanceOf(ModuleTestController::className(), $module->createControllerByID($route));
|
||||
|
||||
$route = 'module-test-';
|
||||
$this->assertNotInstanceOf(ModuleTestController::className(), $module->createControllerByID($route));
|
||||
|
||||
$route = '-module-test';
|
||||
$this->assertNotInstanceOf(ModuleTestController::className(), $module->createControllerByID($route));
|
||||
|
||||
$route = 'very-complex-name-test';
|
||||
$this->assertInstanceOf(VeryComplexNameTestController::className(), $module->createControllerByID($route));
|
||||
|
||||
$route = 'very-complex-name-test--';
|
||||
$this->assertNotInstanceOf(VeryComplexNameTestController::className(), $module->createControllerByID($route));
|
||||
|
||||
$route = '--very-complex-name-test';
|
||||
$this->assertNotInstanceOf(VeryComplexNameTestController::className(), $module->createControllerByID($route));
|
||||
|
||||
$route = 'very---complex---name---test';
|
||||
$this->assertNotInstanceOf(VeryComplexNameTestController::className(), $module->createControllerByID($route));
|
||||
}
|
||||
}
|
||||
|
||||
class TestModule extends \yii\base\Module
|
||||
@@ -141,3 +168,11 @@ class ModuleTestController extends Controller
|
||||
ModuleTest::$actionRuns[] = $this->action->uniqueId;
|
||||
}
|
||||
}
|
||||
|
||||
class VeryComplexNameTestController extends Controller
|
||||
{
|
||||
public function actionIndex()
|
||||
{
|
||||
ModuleTest::$actionRuns[] = $this->action->uniqueId;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user