diff --git a/module/datatable/test/lib/datatable.unittest.class.php b/module/datatable/test/lib/datatable.unittest.class.php
index a2b8cf51a2..cc93213ef9 100644
--- a/module/datatable/test/lib/datatable.unittest.class.php
+++ b/module/datatable/test/lib/datatable.unittest.class.php
@@ -43,20 +43,37 @@ class datatableTest
*
* @param array $data
* @access public
- * @return void
+ * @return mixed
*/
public function printHeadTest($data)
{
+ // 设置应用环境以避免方法名为空的问题
+ if(!$this->objectModel->app->getMethodName()) {
+ $this->objectModel->app->methodName = 'browse';
+ }
+
ob_start();
$this->objectModel->printHead($data['cols'], $data['orderBy'], $data['vars'], $data['checkBox']);
$head = ob_get_clean();
- $isTh = strpos($head, '
show) return strlen($head);
+
+ // 对于显示的列,检查特定的输出内容
+ $col = $data['cols'];
+ if($col->id == 'actions') {
+ // actions列应该包含actions文本
+ return strpos($head, 'actions') !== false ? 1 : 0;
+ } elseif(isset($col->sort) && $col->sort == 'no') {
+ // 不可排序列应该直接显示标题,不含排序链接
+ return (strpos($head, ' | id == 'id' && $data['checkBox']) {
+ // id列且开启复选框应该包含复选框
+ return strpos($head, 'checkbox-primary') !== false ? 1 : 0;
+ } else {
+ // 普通列应该包含th标签
+ return strpos($head, ' | id = 'title';
+$normalCol->show = true;
+$normalCol->width = '200px';
+$normalCol->title = '标题';
+$normalCol->fixed = 'no';
+
+// 隐藏列配置
+$hiddenCol = new stdClass();
+$hiddenCol->id = 'hidden';
+$hiddenCol->show = false;
+$hiddenCol->width = '100px';
+$hiddenCol->title = '隐藏列';
+
+// actions列配置
+$actionsCol = new stdClass();
+$actionsCol->id = 'actions';
+$actionsCol->show = true;
+$actionsCol->width = '120px';
+$actionsCol->title = '操作';
+
+// id列配置(带复选框)
+$idCol = new stdClass();
+$idCol->id = 'id';
+$idCol->show = true;
+$idCol->width = '90px';
+$idCol->title = 'ID';
+$idCol->sort = 'yes';
+
+// 不可排序列配置
+$noSortCol = new stdClass();
+$noSortCol->id = 'status';
+$noSortCol->show = true;
+$noSortCol->width = '100px';
+$noSortCol->title = '状态';
+$noSortCol->sort = 'no';
+
+// 5. 强制要求:必须包含至少5个测试步骤
+r($datatableTest->printHeadTest(array('cols' => $normalCol, 'orderBy' => 'id_desc', 'vars' => 'productID=1', 'checkBox' => true))) && p() && e('1'); // 步骤1:正常列配置
+r($datatableTest->printHeadTest(array('cols' => $hiddenCol, 'orderBy' => '', 'vars' => '', 'checkBox' => false))) && p() && e('0'); // 步骤2:隐藏列配置
+r($datatableTest->printHeadTest(array('cols' => $actionsCol, 'orderBy' => '', 'vars' => '', 'checkBox' => false))) && p() && e('1'); // 步骤3:actions列配置
+r($datatableTest->printHeadTest(array('cols' => $idCol, 'orderBy' => 'id_desc', 'vars' => 'productID=1', 'checkBox' => true))) && p() && e('1'); // 步骤4:id列带复选框
+r($datatableTest->printHeadTest(array('cols' => $noSortCol, 'orderBy' => 'id_desc', 'vars' => 'productID=1', 'checkBox' => true))) && p() && e('1'); // 步骤5:不可排序列
\ No newline at end of file
|