#!/usr/bin/env php type->range('custom{3},product{3},project{2},api{2}'); $table->product->range('0{6},1{2},2{1},3{1}'); $table->project->range('0{6},1{2},2{1},3{1}'); $table->name->range('接口文档库{1},产品文档库{2},项目文档库{2},自定义文档库{3},测试文档库{2}'); $table->acl->range('open{5},private{3},custom{2}'); $table->deleted->range('0'); $table->gen(10); // 3. 用户登录(选择合适角色) su('admin'); // 4. 创建测试实例(变量名与模块名一致) $apiTest = new apiZenTest(); // 5. 🔴 强制要求:必须包含至少5个测试步骤 $libs = array(1 => (object)array('id' => 1, 'name' => '测试文档库', 'product' => 0, 'project' => 0)); r($apiTest->parseDocSpaceParamTest($libs, 1, 'custom', 1, 1, 'custom', 1, '')) && p('type,objectID,libID') && e('custom,1,1'); // 步骤1:无cookie情况 $cookieProduct = '{"type":"product","objectID":2,"libID":2,"moduleID":2,"browseType":"all","param":"test"}'; r($apiTest->parseDocSpaceParamTest($libs, 1, 'custom', 1, 1, 'custom', 1, $cookieProduct)) && p('type,objectID,libID') && e('product,2,2'); // 步骤2:product类型cookie $cookieProject = '{"type":"project","objectID":3,"libID":3,"moduleID":3,"browseType":"bymodule","param":""}'; r($apiTest->parseDocSpaceParamTest($libs, 1, 'custom', 1, 1, 'custom', 1, $cookieProject)) && p('type,objectID,libID') && e('project,3,3'); // 步骤3:project类型cookie $cookieInvalid = '{"type":"product","objectID":0}'; r($apiTest->parseDocSpaceParamTest($libs, 1, 'custom', 1, 1, 'custom', 1, $cookieInvalid)) && p('type,objectID,libID') && e('custom,1,1'); // 步骤4:无效cookie处理 $cookieBoundary = '{"type":"custom","objectID":999,"libID":999,"moduleID":0,"browseType":"all","param":""}'; r($apiTest->parseDocSpaceParamTest($libs, 1, 'custom', 1, 1, 'custom', 1, $cookieBoundary)) && p('type,objectID,libID') && e('custom,999,999'); // 步骤5:边界条件处理