mirror of
https://github.com/projectsend/projectsend.git
synced 2026-09-12 06:48:55 +00:00
6e47d76ba6
Client file sharing, rebuilt from the ground up: a private area per client, resumable uploads, folders, groups and categories, sharing with expiry dates and download limits, comments, file versions, an activity log, a REST API, and sixteen languages. This repository begins here. ProjectSend 2 was developed privately, and that development history is not published — the previous generation remains available, with its own history, at projectsend/legacy. Free software under the GNU General Public License v2, or (at your option) any later version.
32 lines
1.2 KiB
PHP
32 lines
1.2 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
use App\Modules\Platform\Capabilities\CapabilityRegistry;
|
|
use App\Modules\Platform\Capabilities\Edition;
|
|
use App\Modules\Platform\Theming\ThemeRegistry;
|
|
|
|
test('"default" always sorts first in available(), regardless of registration order', function () {
|
|
$registry = new ThemeRegistry;
|
|
$registry->register('zzz', 'ZZZ', 'zzz description');
|
|
$registry->register('aaa', 'AAA', 'aaa description');
|
|
$registry->register('default', 'Default', 'default description');
|
|
$registry->register('mmm', 'MMM', 'mmm description');
|
|
|
|
$keys = array_map(fn ($theme) => $theme->key, $registry->available(new CapabilityRegistry(Edition::Community)));
|
|
|
|
expect($keys)->toBe(['default', 'zzz', 'aaa', 'mmm']);
|
|
});
|
|
|
|
test('the rest keep their relative registration order behind "default"', function () {
|
|
$registry = new ThemeRegistry;
|
|
$registry->register('b', 'B', 'b description');
|
|
$registry->register('a', 'A', 'a description');
|
|
$registry->register('default', 'Default', 'default description');
|
|
$registry->register('c', 'C', 'c description');
|
|
|
|
$keys = array_map(fn ($theme) => $theme->key, $registry->available(new CapabilityRegistry(Edition::Community)));
|
|
|
|
expect($keys)->toBe(['default', 'b', 'a', 'c']);
|
|
});
|