From cdbc58f12127d248e4ae1f522ba6893caad48260 Mon Sep 17 00:00:00 2001 From: liugang Date: Tue, 9 Sep 2025 09:22:22 +0800 Subject: [PATCH] + [misc] Add unit tests for programModel::checkPriv() method MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ๐Ÿค– Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --- .../test/lib/program.unittest.class.php | 15 ++++++ module/program/test/model/checkpriv.php | 51 +++++++++++++++++++ 2 files changed, 66 insertions(+) create mode 100755 module/program/test/model/checkpriv.php diff --git a/module/program/test/lib/program.unittest.class.php b/module/program/test/lib/program.unittest.class.php index c80c605883..fc4ac920aa 100644 --- a/module/program/test/lib/program.unittest.class.php +++ b/module/program/test/lib/program.unittest.class.php @@ -623,4 +623,19 @@ class programTest return $result; } + + /** + * Test checkPriv method. + * + * @param int $programID + * @access public + * @return bool + */ + public function checkPrivTest(int $programID): bool + { + $result = $this->program->checkPriv($programID); + if(dao::isError()) return dao::getError(); + + return $result; + } } diff --git a/module/program/test/model/checkpriv.php b/module/program/test/model/checkpriv.php new file mode 100755 index 0000000000..ef201cee5e --- /dev/null +++ b/module/program/test/model/checkpriv.php @@ -0,0 +1,51 @@ +#!/usr/bin/env php +id->range('1-10'); +$program->type->range('program{5},project{5}'); +$program->name->range('้กน็›ฎ้›†1,้กน็›ฎ้›†2,้กน็›ฎ้›†3,้กน็›ฎ้›†4,้กน็›ฎ้›†5,้กน็›ฎ1,้กน็›ฎ2,้กน็›ฎ3,้กน็›ฎ4,้กน็›ฎ5'); +$program->status->range('wait{3},doing{4},suspended{2},closed{1}'); +$program->deleted->range('0{9},1{1}'); +$program->gen(10); + +$user = zenData('user'); +$user->id->range('1-5'); +$user->account->range('admin,user1,user2,user3,user4'); +$user->password->range('123456{5}'); +$user->role->range('admin{1},qa{2},dev{1},pm{1}'); +$user->deleted->range('0{5}'); +$user->gen(5); + +$userview = zenData('userview'); +$userview->account->range('admin,user1,user2,user3,user4'); +$userview->programs->range('1,2,3,2,3,1,1,2,3,4'); +$userview->gen(5); + +su('admin'); + +global $tester; +$tester->loadModel('program'); + +r($tester->program->checkPriv(1)) && p() && e('1'); // ็ฎก็†ๅ‘˜็”จๆˆท้ชŒ่ฏๆœ‰ๆ•ˆ้กน็›ฎ้›†ๆƒ้™ +su('user1'); +r($tester->program->checkPriv(2)) && p() && e('1'); // ๆ™ฎ้€š็”จๆˆท้ชŒ่ฏๆœ‰ๆƒ้™็š„้กน็›ฎ้›† +r($tester->program->checkPriv(5)) && p() && e('0'); // ๆ™ฎ้€š็”จๆˆท้ชŒ่ฏๆ— ๆƒ้™็š„้กน็›ฎ้›† +r($tester->program->checkPriv(0)) && p() && e('0'); // ้ชŒ่ฏ็ฉบIDๆˆ–0็š„้กน็›ฎ้›† +r($tester->program->checkPriv(-1)) && p() && e('0'); // ้ชŒ่ฏ่ดŸๆ•ฐID็š„้กน็›ฎ้›† \ No newline at end of file