MDL-41663 Output: Allow subtype as a namespace level on it's own

This commit is contained in:
Damyon Wiese 2014-06-25 11:50:25 +08:00
parent 79046c2726
commit 1a1d3665dc
3 changed files with 58 additions and 6 deletions

View file

@ -66,10 +66,16 @@ class test_output_factory extends renderer_factory_base {
$searchtargets = array();
list($target, $suffix) = $this->get_target_suffix($target);
// Add all suffix versions first - to match the real search order.
foreach ($classnames as $classnamedetails) {
if ($classnamedetails['validwithoutprefix']) {
$newclassname = $classnamedetails['classname'] . $suffix;
$searchtargets[] = $newclassname;
}
}
// Add all non-suffixed versions now.
foreach ($classnames as $classnamedetails) {
if ($classnamedetails['validwithoutprefix']) {
$newclassname = $classnamedetails['classname'];
$searchtargets[] = $newclassname;
}

View file

@ -48,29 +48,33 @@ class core_outputfactories_testcase extends advanced_testcase {
$paths = $testfactory->get_standard_renderer_factory_search_paths('');
$this->assertSame($paths, array (
'\\core\\output\\renderer_cli',
'\\core\\output\\renderer',
'core_renderer_cli',
'\\core\\output\\renderer',
'core_renderer',
));
$paths = $testfactory->get_standard_renderer_factory_search_paths($component);
$this->assertSame($paths, array (
'\\mod_assign\\output\\renderer_cli',
'\\mod_assign\\output\\renderer',
'mod_assign_renderer_cli',
'\\mod_assign\\output\\renderer',
'mod_assign_renderer',
));
$paths = $testfactory->get_standard_renderer_factory_search_paths($component, $subtype);
$this->assertSame($paths, array (
'\\mod_assign\\output\\custom_renderer_cli',
'\\mod_assign\\output\\custom_renderer',
'\\mod_assign\\output\\custom\\renderer_cli',
'mod_assign_custom_renderer_cli',
'\\mod_assign\\output\\custom_renderer',
'\\mod_assign\\output\\custom\\renderer',
'mod_assign_custom_renderer',
));
$paths = $testfactory->get_standard_renderer_factory_search_paths($component, $subtype, $target);
$this->assertSame($paths, array (
'\\mod_assign\\output\\custom_renderer_ajax',
'\\mod_assign\\output\\custom_renderer',
'\\mod_assign\\output\\custom\\renderer_ajax',
'mod_assign_custom_renderer_ajax',
'\\mod_assign\\output\\custom_renderer',
'\\mod_assign\\output\\custom\\renderer',
'mod_assign_custom_renderer',
));
$paths = $testfactory->get_theme_overridden_renderer_factory_search_paths('');
@ -106,31 +110,43 @@ class core_outputfactories_testcase extends advanced_testcase {
$paths = $testfactory->get_theme_overridden_renderer_factory_search_paths($component, $subtype);
$this->assertSame($paths, array (
'theme_child\\output\\mod_assign\\custom_renderer_cli',
'theme_child\\output\\mod_assign\\custom\\renderer_cli',
'theme_child_mod_assign_custom_renderer_cli',
'theme_parent\\output\\mod_assign\\custom_renderer_cli',
'theme_parent\\output\\mod_assign\\custom\\renderer_cli',
'theme_parent_mod_assign_custom_renderer_cli',
'\\mod_assign\\output\\custom_renderer_cli',
'\\mod_assign\\output\\custom\\renderer_cli',
'mod_assign_custom_renderer_cli',
'theme_child\\output\\mod_assign\\custom_renderer',
'theme_child\\output\\mod_assign\\custom\\renderer',
'theme_child_mod_assign_custom_renderer',
'theme_parent\\output\\mod_assign\\custom_renderer',
'theme_parent\\output\\mod_assign\\custom\\renderer',
'theme_parent_mod_assign_custom_renderer',
'\\mod_assign\\output\\custom_renderer',
'\\mod_assign\\output\\custom\\renderer',
'mod_assign_custom_renderer',
));
$paths = $testfactory->get_theme_overridden_renderer_factory_search_paths($component, $subtype, $target);
$this->assertSame($paths, array (
'theme_child\\output\\mod_assign\\custom_renderer_ajax',
'theme_child\\output\\mod_assign\\custom\\renderer_ajax',
'theme_child_mod_assign_custom_renderer_ajax',
'theme_parent\\output\\mod_assign\\custom_renderer_ajax',
'theme_parent\\output\\mod_assign\\custom\\renderer_ajax',
'theme_parent_mod_assign_custom_renderer_ajax',
'\\mod_assign\\output\\custom_renderer_ajax',
'\\mod_assign\\output\\custom\\renderer_ajax',
'mod_assign_custom_renderer_ajax',
'theme_child\\output\\mod_assign\\custom_renderer',
'theme_child\\output\\mod_assign\\custom\\renderer',
'theme_child_mod_assign_custom_renderer',
'theme_parent\\output\\mod_assign\\custom_renderer',
'theme_parent\\output\\mod_assign\\custom\\renderer',
'theme_parent_mod_assign_custom_renderer',
'\\mod_assign\\output\\custom_renderer',
'\\mod_assign\\output\\custom\\renderer',
'mod_assign_custom_renderer',
));
}