assertTrue(class_exists($listenerClass)); $this->assertSame( 'sirsoft-board', ExtensionManager::resolveExtensionByFqcn($listenerClass) ); } public function test_module_lang_action_array_includes_board_specific_last_segments_ko(): void { $langFile = __DIR__.'/../../src/lang/ko/activity_log.php'; $this->assertFileExists($langFile); $lang = require $langFile; $this->assertArrayHasKey('action', $lang, '모듈 lang 에 action 배열이 신설되어야 함 (이슈 #317)'); $required = ['blind', 'blind_content', 'restore_content', 'delete_content', 'add_to_menu', 'bulk_apply']; foreach ($required as $key) { $this->assertArrayHasKey($key, $lang['action'], "ko: action.{$key} 누락"); $this->assertNotEmpty($lang['action'][$key]); } } public function test_module_lang_action_array_includes_board_specific_last_segments_en(): void { $langFile = __DIR__.'/../../src/lang/en/activity_log.php'; $this->assertFileExists($langFile); $lang = require $langFile; $this->assertArrayHasKey('action', $lang); $required = ['blind', 'blind_content', 'restore_content', 'delete_content', 'add_to_menu', 'bulk_apply']; foreach ($required as $key) { $this->assertArrayHasKey($key, $lang['action'], "en: action.{$key} missing"); $this->assertNotEmpty($lang['action'][$key]); } } }