diff --git a/module/product/test/lib/product.unittest.class.php b/module/product/test/lib/product.unittest.class.php index 374d4aa29a..240a96a3fd 100644 --- a/module/product/test/lib/product.unittest.class.php +++ b/module/product/test/lib/product.unittest.class.php @@ -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; + } + } } diff --git a/module/product/test/zen/saveandmodifycookie4browse.php b/module/product/test/zen/saveandmodifycookie4browse.php new file mode 100755 index 0000000000..7ade000380 --- /dev/null +++ b/module/product/test/zen/saveandmodifycookie4browse.php @@ -0,0 +1,31 @@ +#!/usr/bin/env php +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'); \ No newline at end of file