* [misc] Fix unit tests for chartModel::isClickable() method
🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -1150,4 +1150,54 @@ class chartTest
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Test isClickable method.
|
||||
*
|
||||
* @param int $chartID
|
||||
* @param string $action
|
||||
* @access public
|
||||
* @return mixed
|
||||
*/
|
||||
public function isClickableTest(int $chartID, string $action)
|
||||
{
|
||||
// 创建模拟的chart对象
|
||||
$chart = $this->mockGetChartById($chartID);
|
||||
|
||||
if($chart === false) {
|
||||
return false; // 图表不存在
|
||||
}
|
||||
|
||||
$result = chartModel::isClickable($chart, $action);
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Mock getChartById method.
|
||||
*
|
||||
* @param int $chartID
|
||||
* @access private
|
||||
* @return object|false
|
||||
*/
|
||||
private function mockGetChartById(int $chartID)
|
||||
{
|
||||
// 模拟图表数据,基于实际的内置图表ID范围
|
||||
$mockCharts = array(
|
||||
// 不存在的图表
|
||||
32 => false,
|
||||
|
||||
// 内置图表(在ID范围内)
|
||||
10020 => (object)array('id' => 10020, 'builtin' => 1),
|
||||
1050 => (object)array('id' => 1050, 'builtin' => 1),
|
||||
10100 => (object)array('id' => 10100, 'builtin' => 1),
|
||||
|
||||
// 自定义图表(不在内置范围内)
|
||||
5000 => (object)array('id' => 5000, 'builtin' => 0),
|
||||
8000 => (object)array('id' => 8000, 'builtin' => 0),
|
||||
);
|
||||
|
||||
return isset($mockCharts[$chartID]) ? $mockCharts[$chartID] : false;
|
||||
}
|
||||
}
|
||||
Regular → Executable
+15
-13
@@ -1,30 +1,32 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
|
||||
/**
|
||||
|
||||
title=测试 chartModel::isClickable();
|
||||
timeout=0
|
||||
cid=1
|
||||
|
||||
- 测试内置报表的设计按钮是否不可点击 @false
|
||||
- 测试内置报表的编辑按钮是否不可点击 @false
|
||||
- 测试内置报表的删除按钮是否不可点击 @false
|
||||
- 测试非内置报表的设计按钮是否可点击 @false
|
||||
- 测试非内置报表的编辑按钮是否可点击 @false
|
||||
- 测试非内置报表的删除按钮是否可点击 @false
|
||||
- 测试不存在的图表按钮是否不可点击 @0
|
||||
- 测试内置图表的设计按钮是否不可点击 @0
|
||||
- 测试内置图表的编辑按钮是否不可点击 @0
|
||||
- 测试内置图表的删除按钮是否不可点击 @0
|
||||
- 测试自定义图表的设计按钮是否可点击 @1
|
||||
- 测试自定义图表的编辑按钮是否可点击 @1
|
||||
- 测试自定义图表的删除按钮是否可点击 @1
|
||||
|
||||
*/
|
||||
|
||||
include dirname(__FILE__, 5) . '/test/lib/init.php';
|
||||
include dirname(__FILE__, 2) . '/lib/chart.unittest.class.php';
|
||||
|
||||
zenData('user')->gen(5);
|
||||
su('admin');
|
||||
|
||||
$chart = new chartTest();
|
||||
r($chart->isClickableTest(32, 'design')) && p() && e('false'); //测试不存在的报表的设计按钮是否不可点击
|
||||
r($chart->isClickableTest(32, 'edit')) && p() && e('false'); //测试不存在的报表的编辑按钮是否不可点击
|
||||
r($chart->isClickableTest(32, 'delete')) && p() && e('false'); //测试不存在的报表的删除按钮是否不可点击
|
||||
r($chart->isClickableTest(10020, 'design')) && p() && e('false'); //测试内置报表的设计按钮是否可点击
|
||||
r($chart->isClickableTest(10020, 'edit')) && p() && e('false'); //测试内置报表的编辑按钮是否可点击
|
||||
r($chart->isClickableTest(10020, 'delete')) && p() && e('false'); //测试内置报表的删除按钮是否可点击
|
||||
r($chart->isClickableTest(32, 'design')) && p() && e('0'); //测试不存在的图表按钮是否不可点击
|
||||
r($chart->isClickableTest(10020, 'design')) && p() && e('0'); //测试内置图表的设计按钮是否不可点击
|
||||
r($chart->isClickableTest(10020, 'edit')) && p() && e('0'); //测试内置图表的编辑按钮是否不可点击
|
||||
r($chart->isClickableTest(10020, 'delete')) && p() && e('0'); //测试内置图表的删除按钮是否不可点击
|
||||
r($chart->isClickableTest(5000, 'design')) && p() && e('1'); //测试自定义图表的设计按钮是否可点击
|
||||
r($chart->isClickableTest(5000, 'edit')) && p() && e('1'); //测试自定义图表的编辑按钮是否可点击
|
||||
r($chart->isClickableTest(5000, 'delete')) && p() && e('1'); //测试自定义图表的删除按钮是否可点击
|
||||
Reference in New Issue
Block a user