Upload via GUI (452 Dateien)
This commit is contained in:
@@ -15,6 +15,16 @@ putenv('PLUGIN_SITE_STORAGE=' . $tmp . '/storage');
|
||||
putenv('PLUGIN_SITE_BASE_URL=https://plugins.example.test');
|
||||
putenv('PLUGIN_SITE_TESTING=1');
|
||||
|
||||
$cnf = $tmp . '/cnf';
|
||||
file_put_contents($cnf, "[req]
|
||||
distinguished_name=req_dn
|
||||
[req_dn]
|
||||
");
|
||||
$kp = openssl_pkey_new(['config' => $cnf, 'private_key_bits' => 2048, 'private_key_type' => OPENSSL_KEYTYPE_RSA]);
|
||||
openssl_pkey_export($kp, $privPem, null, ['config' => $cnf]);
|
||||
file_put_contents($tmp . '/sign.pem', $privPem);
|
||||
putenv('PLUGIN_SITE_SIGNING_KEY=' . $tmp . '/sign.pem');
|
||||
|
||||
require_once __DIR__ . '/fixtures/paths.php';
|
||||
$siteDir = website_dir_or_skip('plugin_website_apps');
|
||||
require_once $siteDir . '/inc/lib.php';
|
||||
@@ -60,6 +70,21 @@ $check(site_app_release('unbekannt') === null, 'unbekannte Plattform liefert nic
|
||||
$p = site_app_platforms();
|
||||
$check(isset($p['wordpress'], $p['chrome']) && $p['chrome']['file'] === 'deskhub-chrome-erweiterung.zip', 'Plattformliste enthält WordPress und Chrome');
|
||||
|
||||
// ── System-Update des Servers ────────────────────────────────────────────────
|
||||
$srv = fn(string $v) => $makeZip(['deskhub/version.php' => "<?php\ndefine('DESKHUB_VERSION', '{$v}');", 'deskhub/index.php' => '<?php // ' . $pad]);
|
||||
$check(site_zip_app_version('server', $srv('1.0.88')) === '1.0.88', 'Server-Paket: Version steht in version.php');
|
||||
$check(site_zip_app_version('server', $makeZip(['a.php' => '<?php // x'])) === null, 'ZIP ohne version.php ist kein DeskHub-Paket');
|
||||
$r = site_publish_app('server', $srv('1.0.88'), '', 'Neu: Plugin-Updates');
|
||||
$check($r['ok'] && $r['version'] === '1.0.88', 'System-Update wird veröffentlicht: ' . json_encode($r));
|
||||
$check(!site_publish_app('server', $makeZip(['a.php' => '<?php // ' . $pad]), '', '')['ok'], 'Paket ohne version.php wird abgelehnt');
|
||||
$check(site_publish_app('server', $srv('1.0.90'), '', '')['ok'] && site_publish_app('server', $srv('1.0.89'), '', '')['ok'], 'weitere Versionen werden angenommen');
|
||||
$vers = array_column(site_app_versions('server'), 'version');
|
||||
$check($vers === ['1.0.90', '1.0.89', '1.0.88'], 'Versionen werden neueste zuerst aufgelistet: ' . implode(',', $vers));
|
||||
$check(site_app_release('server')['version'] === '1.0.90', 'Aktuell ist die höchste Version');
|
||||
$sig = site_sign_update('v1.0.90', str_repeat('a', 64));
|
||||
$check($sig !== '' && openssl_verify("deskhub-update\n1.0.90\n" . str_repeat('a', 64), base64_decode($sig), openssl_pkey_get_details($kp)['key'], OPENSSL_ALGO_SHA256) === 1, 'Signatur passt zur Nachricht, die DeskHub prüft');
|
||||
$check(isset(site_app_platforms()['server']) && site_app_platforms()['server']['ext'] === 'zip', 'Plattformliste enthält den Server');
|
||||
|
||||
// ── Vorschaubild bleibt erhalten ─────────────────────────────────────────────
|
||||
$png = $tmp . '/vorschau.png';
|
||||
file_put_contents($png, base64_decode('iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mP8z8BQDwAEhQGAhKmMIQAAAABJRU5ErkJggg=='));
|
||||
|
||||
Reference in New Issue
Block a user