| Línea 119... |
Línea 119... |
| 119 |
public function add_fake_plugin_info($record): void {
|
119 |
public function add_fake_plugin_info($record): void {
|
| 120 |
$this->load_present_plugins();
|
120 |
$this->load_present_plugins();
|
| Línea 121... |
Línea 121... |
| 121 |
|
121 |
|
| 122 |
$this->presentplugins[$record->type][$record->name] = $record;
|
122 |
$this->presentplugins[$record->type][$record->name] = $record;
|
| - |
|
123 |
}
|
| - |
|
124 |
|
| - |
|
125 |
/**
|
| - |
|
126 |
* Test-specific override allowing mock plugin types to provide their plugininfo at PATH/TYPE_plugininfo.php instead of the
|
| - |
|
127 |
* usual core location lib/classes/plugininfo.
|
| - |
|
128 |
*
|
| - |
|
129 |
* This is required to:
|
| - |
|
130 |
* a) prevent debugging calls during tests using deep mocked plugintypes, as their plugininfo can't be located without this
|
| - |
|
131 |
* override.
|
| - |
|
132 |
* b) ensure plugin_manager returns an instance of the fixture plugininfo class, during tests using deep mocked plugintypes.
|
| - |
|
133 |
* If no fixture plugininfo is found, plugin_manager will default to \core\pluginfo\general.
|
| - |
|
134 |
*
|
| - |
|
135 |
* @param string $type the plugintype.
|
| - |
|
136 |
* @return string the name of the plugininfo class.
|
| - |
|
137 |
*/
|
| - |
|
138 |
public static function resolve_plugininfo_class($type): string {
|
| - |
|
139 |
$allplugintypes = array_merge(
|
| - |
|
140 |
\core_component::get_plugin_types(),
|
| - |
|
141 |
\core_component::get_deprecated_plugin_types(),
|
| - |
|
142 |
\core_component::get_deleted_plugin_types()
|
| - |
|
143 |
);
|
| - |
|
144 |
|
| - |
|
145 |
// This is not a problem for mock plugins supporting subtypes, since subtype plugininfo class can be loaded, as expected,
|
| - |
|
146 |
// from the subtype root directory.
|
| - |
|
147 |
$issubtype = !is_null(\core_component::get_subtype_parent($type));
|
| - |
|
148 |
|
| - |
|
149 |
$path = $allplugintypes[$type];
|
| - |
|
150 |
if (!$issubtype && preg_match('/lib\/tests\/fixtures/', $path)) {
|
| - |
|
151 |
require_once("$path/{$type}_plugininfo.php");
|
| - |
|
152 |
return "{$type}_plugininfo";
|
| - |
|
153 |
}
|
| - |
|
154 |
|
| - |
|
155 |
return parent::resolve_plugininfo_class($type);
|
| 123 |
}
|
156 |
}
|