refactor(wpmc S7): tighten tests + cleanup bootstrap shims
tests / phpunit (push) Has been cancelled

- PluginBootS7Test idempotency: assertTrue(class_exists) instead of assertTrue(true)
- ZipArchiveBuildTest: try/finally cleanup + unzip exit-code check
- bootstrap.php: drop unused PUC shims (wp_remote_post, transient*)
- CHANGELOG.md: header references Keep a Changelog (was: mirrors readme.txt)

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
Vladimir Bryzgalov
2026-05-17 12:31:07 +05:00
parent 3f08bf6a5e
commit 43815dea2d
4 changed files with 44 additions and 55 deletions
+39 -32
View File
@@ -25,40 +25,47 @@ final class ZipArchiveBuildTest extends BaseTestCase
exec($cmd, $out, $rc);
self::assertSame(0, $rc, 'git archive failed: ' . implode("\n", $out));
exec('unzip -l ' . escapeshellarg($zipPath), $listing);
$joined = implode("\n", $listing);
try {
$listing = [];
$unzipRc = 0;
exec('unzip -l ' . escapeshellarg($zipPath), $listing, $unzipRc);
self::assertSame(0, $unzipRc, 'unzip -l failed (is unzip installed?)');
$joined = implode("\n", $listing);
$required = [
'wp-multi-city/wp-multi-city.php',
'wp-multi-city/includes/lib/plugin-update-checker/plugin-update-checker.php',
'wp-multi-city/wp-plugin-info.json',
'wp-multi-city/readme.txt',
'wp-multi-city/README.md',
];
foreach ($required as $path) {
self::assertStringContainsString($path, $joined, "missing in archive: {$path}");
$required = [
'wp-multi-city/wp-multi-city.php',
'wp-multi-city/includes/lib/plugin-update-checker/plugin-update-checker.php',
'wp-multi-city/wp-plugin-info.json',
'wp-multi-city/readme.txt',
'wp-multi-city/README.md',
];
foreach ($required as $path) {
self::assertStringContainsString($path, $joined, "missing in archive: {$path}");
}
$forbidden = [
'tests/',
'docs/',
'composer.json',
'phpunit.xml.dist',
'patchwork.json',
'release.sh',
'CLAUDE.md',
'.gitattributes',
'.gitea/',
];
foreach ($forbidden as $path) {
self::assertStringNotContainsString(
'wp-multi-city/' . $path,
$joined,
"dev file leaked into archive: {$path}"
);
}
} finally {
if (file_exists($zipPath)) {
unlink($zipPath);
}
}
$forbidden = [
'tests/',
'docs/',
'composer.json',
'phpunit.xml.dist',
'patchwork.json',
'release.sh',
'CLAUDE.md',
'.gitattributes',
'.gitea/',
];
foreach ($forbidden as $path) {
self::assertStringNotContainsString(
'wp-multi-city/' . $path,
$joined,
"dev file leaked into archive: {$path}"
);
}
unlink($zipPath);
}
public function test_wp_plugin_info_json_is_valid(): void