feat: Divi tools write library entries; global ones with dry run, confirm and backup (E2, F2)
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -113,4 +113,33 @@ final class LibraryAccessTest extends TestCase
|
||||
self::assertSame($missing->get_error_data(), $refusal->get_error_data());
|
||||
}
|
||||
}
|
||||
|
||||
public function testEditingNeedsSaveLibraryAPublishedItemAWritableGroupAndForGlobalsEditGlobalLibrary(): void
|
||||
{
|
||||
LibraryFixtures::given([
|
||||
LibraryFixtures::item(1057),
|
||||
LibraryFixtures::item(1059),
|
||||
LibraryFixtures::item(1055, ['post_status' => 'trash']),
|
||||
]);
|
||||
|
||||
self::assertInstanceOf(WP_Post::class, LibraryFixtures::access()->item(1057, true));
|
||||
self::assertToolError(LibraryFixtures::access(['save_library'])->item(1057, true), 'forbidden');
|
||||
$readonly = LibraryFixtures::access([], false)->item(1057, true);
|
||||
self::assertToolError($readonly, 'forbidden');
|
||||
self::assertStringContainsString('Divi-Bibliothek', $readonly->get_error_message());
|
||||
self::assertToolError(LibraryFixtures::access()->item(1055, true), 'validation_failed');
|
||||
self::assertInstanceOf(WP_Post::class, LibraryFixtures::access()->item(1059, true));
|
||||
self::assertToolError(LibraryFixtures::access(['edit_global_library'])->item(1059, true), 'forbidden');
|
||||
self::assertInstanceOf(WP_Post::class, LibraryFixtures::access(['edit_global_library'])->item(1057, true));
|
||||
}
|
||||
|
||||
public function testEditingNeedsEditPostOnTheEntryAndReadOnlyStillReads(): void
|
||||
{
|
||||
LibraryFixtures::given([LibraryFixtures::item(1057)], ['edit_post']);
|
||||
self::assertToolError(LibraryFixtures::access()->item(1057, true), 'forbidden');
|
||||
|
||||
LibraryFixtures::given([LibraryFixtures::item(1057)]);
|
||||
self::assertInstanceOf(WP_Post::class, LibraryFixtures::access([], false)->item(1057, false));
|
||||
self::assertNull(LibraryFixtures::access()->writableGate());
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user