+ [misc] Add unit tests for productZen::saveAndModifyCookie4Browse() method

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
liugang
2025-09-15 15:09:59 +08:00
co-authored by Claude
parent 286e2efd04
commit 7b7e672a88
2 changed files with 74 additions and 0 deletions
@@ -3364,4 +3364,47 @@ class productTest
return $result === null ? 'success' : $result;
}
/**
* Test saveAndModifyCookie4Browse method.
*
* @param int $productID
* @param string $branch
* @param int $param
* @param string $browseType
* @param string $orderBy
* @access public
* @return int
*/
public function saveAndModifyCookie4BrowseTest(int $productID, string $branch, int $param, string $browseType, string $orderBy): int
{
global $tester;
try {
$productZen = new productZen();
$productZen->loadModel('product');
// 模拟app对象和cookie
$productZen->app = (object)array('tab' => 'product');
$productZen->cookie = (object)array(
'preProductID' => $productID == 2 ? 1 : $productID,
'preBranch' => $branch == 'dev' ? 'main' : $branch
);
// 设置初始cookie状态
$_COOKIE['preProductID'] = (string)($productID == 2 ? 1 : $productID);
$_COOKIE['preBranch'] = $branch == 'dev' ? 'main' : $branch;
$_COOKIE['storyModule'] = '0';
$method = $this->objectZen->getMethod('saveAndModifyCookie4Browse');
$method->setAccessible(true);
$method->invokeArgs($productZen, array($productID, $branch, $param, $browseType, $orderBy));
if(dao::isError()) return 0;
return 1;
} catch (Exception $e) {
return 0;
}
}
}
+31
View File
@@ -0,0 +1,31 @@
#!/usr/bin/env php
<?php
/**
title=测试 productZen::saveAndModifyCookie4Browse();
timeout=0
cid=0
- 执行productTest模块的saveAndModifyCookie4BrowseTest方法,参数是1, 'main', 0, '', 'id_desc' @1
- 执行productTest模块的saveAndModifyCookie4BrowseTest方法,参数是2, 'main', 0, '', 'id_desc' @1
- 执行productTest模块的saveAndModifyCookie4BrowseTest方法,参数是1, 'main', 10, 'bymodule', 'id_desc' @1
- 执行productTest模块的saveAndModifyCookie4BrowseTest方法,参数是1, 'dev', 0, 'bybranch', 'id_desc' @1
- 执行productTest模块的saveAndModifyCookie4BrowseTest方法,参数是1, 'main', 5, 'bymodule', 'id_desc' @1
*/
include dirname(__FILE__, 5) . '/test/lib/init.php';
include dirname(__FILE__, 2) . '/lib/product.unittest.class.php';
zenData('product')->loadYaml('product', false, 2)->gen(10);
su('admin');
$productTest = new productTest();
r($productTest->saveAndModifyCookie4BrowseTest(1, 'main', 0, '', 'id_desc')) && p() && e('1');
r($productTest->saveAndModifyCookie4BrowseTest(2, 'main', 0, '', 'id_desc')) && p() && e('1');
r($productTest->saveAndModifyCookie4BrowseTest(1, 'main', 10, 'bymodule', 'id_desc')) && p() && e('1');
r($productTest->saveAndModifyCookie4BrowseTest(1, 'dev', 0, 'bybranch', 'id_desc')) && p() && e('1');
r($productTest->saveAndModifyCookie4BrowseTest(1, 'main', 5, 'bymodule', 'id_desc')) && p() && e('1');