// bootstrap in the functional configuration since the theme manager is context-dependent require_once dirname(__FILE__) . '/../../bootstrap/unit.php'; require_once dirname(__FILE__) . '/../../bootstrap/functional.php'; $t = new lime_test(31); $t->info('1 - Test some basics of getting themes, theme objects'); // we'll use this to test the theme object $themeConfig = array('layout' => 'testing'); $theme = new sfTheme($themeConfig); $manager = new sfThemeManager($context); $t->is($manager->getThemes(), array(), '->getThemes() returns an empty array to start.'); $manager = new sfThemeManager($context, array('test_theme' => $themeConfig)); $t->is($manager->getThemes(), array('test_theme' => $themeConfig), 'Themes can be set via the constructor.'); $manager = new sfThemeManager($context); $manager->addTheme('test_theme', $themeConfig); $t->is($manager->getThemes(), array('test_theme' => $themeConfig), 'Themes can be set via addTheme() passing in an array.'); $t->is($manager->getThemeObject('test_theme')->getConfig(), $theme->getConfig(), '->getThemeObject() returns the correct theme object'); $manager = new sfThemeManager($context); $manager->addTheme('test_theme', $theme); $t->is($manager->getThemes(), array('test_theme' => $themeConfig), 'Themes can be set via addTheme() passing in an sfTheme object.'); $t->is($manager->getThemeObject('test_theme'), $theme, '->getThemeObject() returns the correct theme object'); $t->info(' 1.1 - Trying to retrieve a non-existent theme object throws an exception'); try { $manager->getThemeObject('fake'); $t->fail('No exception thrown'); } catch (sfException $e) { $t->pass($e->getMessage()); } $t->info(' 1.2 - Play with the current theme'); $t->is($manager->getCurrentTheme(), false, '->getCurrentTheme() returns false when there is no theme set'); $t->is($manager->getCurrentThemeObject(), false, '->getCurrentThemeObject() return false when there is no theme set'); $t->info('2 - Set some themes and see what happens');
<?php require_once dirname(__FILE__) . '/../../bootstrap/unit.php'; $t = new lime_test(6); $configuration = array('layout' => 'my_layout', 'stylesheets' => array('main.css'), 'javascripts' => array('main.js')); $theme = new sfTheme($configuration); $t->is($theme->getLayout(), $configuration['layout'], '->getLayout() return my_layout'); $t->is($theme->getStylesheets(), $configuration['stylesheets'], '->getStyleseets() returns correct value'); $t->is($theme->getJavascripts(), $configuration['javascripts'], '->getJavascripts() returns correct value'); $t->is($theme->getCallables(), array(), '->getCallables() returns correct value'); $t->is($theme->getConfig('layout', 'ignored'), $configuration['layout'], '->getConfig() returns correct value for existing config value'); $t->is($theme->getConfig('fake', 'test_default'), 'test_default', '->getConfig() returns default value for non-existant config value');