/** * Returns the theme controller object, which is responsible for figuring * out what theme should be used based on a variety of variables * * @return sfThemeController */ public function getThemeController() { if ($this->_themeController === null) { $this->_themeController = sfThemeController::createInstance(); } return $this->_themeController; }
<?php // Bringing in functional to have context for the createInstance() method require_once dirname(__FILE__) . '/../../bootstrap/unit.php'; require_once dirname(__FILE__) . '/../../bootstrap/functional.php'; $t = new lime_test(4); $t->info('1 - Test the basics, like getOptions()'); $controller = new sfThemeController(array('test' => 'foo')); $t->is($controller->getOption('test', 'ignore'), 'foo', '->getOption() returns existent options'); $t->is($controller->getOption('fake', 'default'), 'default', '->getOption() returns the default for nonexistent options'); $t->info('2 - Test the createInstance() method'); $controller = sfThemeController::createInstance(); $t->is(get_class($controller), 'sfThemeTestController', 'Class is sfThemeTestController, as set in app.yml'); $t->is($controller->getOption('default_theme'), 'app_test', 'Controller options were loaded correctly');