#!/usr/bin/env php rawModule = 'extension'; $app->rawMethod = 'browse'; $extensionTest = new extensionZenTest(); // 获取测试路径 $extensionModel = $tester->loadModel('extension'); $pkgRoot = $extensionModel->pkgRoot; // 步骤1: 测试preinstall钩子文件存在的情况 $ext1 = 'test_hook_preinstall'; $hookDir1 = $pkgRoot . $ext1 . DS . 'hook' . DS; if(!is_dir($hookDir1)) mkdir($hookDir1, 0777, true); $preinstallFile = $hookDir1 . 'preinstall.php'; file_put_contents($preinstallFile, 'getHookFileTest($ext1, 'preinstall'); r($result1 !== false && strpos($result1, 'preinstall.php') !== false) && p() && e('1'); if(file_exists($preinstallFile)) unlink($preinstallFile); if(is_dir($hookDir1)) rmdir($hookDir1); if(is_dir($pkgRoot . $ext1)) rmdir($pkgRoot . $ext1); // 步骤2: 测试postinstall钩子文件存在的情况 $ext2 = 'test_hook_postinstall'; $hookDir2 = $pkgRoot . $ext2 . DS . 'hook' . DS; if(!is_dir($hookDir2)) mkdir($hookDir2, 0777, true); $postinstallFile = $hookDir2 . 'postinstall.php'; file_put_contents($postinstallFile, 'getHookFileTest($ext2, 'postinstall'); r($result2 !== false && strpos($result2, 'postinstall.php') !== false) && p() && e('1'); if(file_exists($postinstallFile)) unlink($postinstallFile); if(is_dir($hookDir2)) rmdir($hookDir2); if(is_dir($pkgRoot . $ext2)) rmdir($pkgRoot . $ext2); // 步骤3: 测试钩子文件不存在的情况 $ext3 = 'test_hook_notexist'; $hookDir3 = $pkgRoot . $ext3 . DS . 'hook' . DS; if(!is_dir($hookDir3)) mkdir($hookDir3, 0777, true); $result3 = $extensionTest->getHookFileTest($ext3, 'preuninstall'); r($result3) && p() && e('0'); if(is_dir($hookDir3)) rmdir($hookDir3); if(is_dir($pkgRoot . $ext3)) rmdir($pkgRoot . $ext3); // 步骤4: 测试插件目录不存在的情况 $ext4 = 'test_hook_nodir'; $result4 = $extensionTest->getHookFileTest($ext4, 'postuninstall'); r($result4) && p() && e('0'); // 步骤5: 测试hook目录不存在但插件目录存在的情况 $ext5 = 'test_hook_nohookdir'; $extDir5 = $pkgRoot . $ext5 . DS; if(!is_dir($extDir5)) mkdir($extDir5, 0777, true); $result5 = $extensionTest->getHookFileTest($ext5, 'preinstall'); r($result5) && p() && e('0'); if(is_dir($extDir5)) rmdir($extDir5);