*/
public function getAvailableAddons(): array
{
- return $this->proxy->getAvailableAddons();
+ $files = glob($this->getAddonPath() . '/*/');
+
+ if (!is_array($files)) {
+ return [];
+ }
+
+ $addons = [];
+
+ foreach ($files as $file) {
+ if (!is_dir($file)) {
+ continue;
+ }
+
+ $addonId = basename($file);
+
+ $addonInfo = $this->getAddonInfo($addonId);
+
+ if (
+ $this->config->get('system', 'show_unsupported_addons')
+ || strtolower($addonInfo->getStatus()) !== 'unsupported'
+ || $this->isAddonEnabled($addonId)
+ ) {
+ $addons[] = $addonId;
+ }
+ }
+
+ return $addons;
}
/**
$this->assertSame(['addonwithadminsettings'], $addonManagerHelper->getEnabledAddonsWithAdminSettings());
}
+
+ public function testGetAvailableAddons(): void
+ {
+ $addonManagerHelper = new AddonManagerHelper(
+ __DIR__ . '/../../../Util/addons',
+ $this->createStub(originalClassName: IManageConfigValues::class),
+ $this->createStub(Profiler::class)
+ );
+
+ $this->assertSame(['helloaddon'], $addonManagerHelper->getAvailableAddons());
+ }
}