str_starts_with($f, 'Bookmark')); self::assertSame( [], array_values($bookmarkFiles), 'Core lib/Repository/User/ still contains Bookmark files: ' . implode(', ', $bookmarkFiles) ); } public function testCoreNoLongerContainsBookmarkUrlNormalizer(): void { $root = dirname(__DIR__, 2); self::assertFileDoesNotExist( $root . '/lib/Support/BookmarkUrlNormalizer.php', 'BookmarkUrlNormalizer should live in modules/bookmarks/lib, not in Core lib/Support' ); } public function testCoreAuthLifecycleHasNoLegacyBookmarkSessionKeyWrites(): void { $file = dirname(__DIR__, 2) . '/lib/Service/Auth/AuthSessionTenantContextService.php'; $content = file_get_contents($file); self::assertIsString($content); self::assertStringNotContainsString('user_bookmarks', $content); self::assertStringNotContainsString('module.bookmarks.grouped', $content); } }