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