setAllowedCapabilities(['edit_pages']); $assertTrue($dataSources->restCanRead() === true, 'Editor must be able to read data source REST endpoints.'); $assertTrue($dataSources->restCanManage() === true, 'Editor must be able to manage data source REST endpoints.'); $setupDeniedHtml = $capture(static function () use ($setup): void { $setup->render(); }); $assertContains('Permission denied', $setupDeniedHtml, 'Setup (editor)'); // Administrator policy: setup/settings allowed via manage_options. $wp->setAllowedCapabilities(['manage_options']); $setupAdminHtml = $capture(static function () use ($setup): void { $setup->render(); }); $assertContains('FECA Mailshots Setup', $setupAdminHtml, 'Setup (admin)'); // No-capability baseline: operational data-source endpoints denied. $wp->setAllowedCapabilities([]); $assertTrue($dataSources->restCanRead() === false, 'User without edit_pages must not read data source REST endpoints.'); $assertTrue($dataSources->restCanManage() === false, 'User without edit_pages must not manage data source REST endpoints.'); echo "Access control policy integration test passed\n";