znt/module/gitlab/test/zen/webhookparseobject.php

102 lines
3.1 KiB
PHP
Executable file

#!/usr/bin/env php
<?php
/**
title=测试 gitlabZen::webhookParseObject();
timeout=0
cid=16681
- 测试解析带bug标签的labels
- 属性type @bug
- 属性id @123
- 测试解析带story标签的labels
- 属性type @story
- 属性id @456
- 测试解析带task标签的labels
- 属性type @task
- 属性id @789
- 测试解析空labels数组 @0
- 测试解析无效格式标签的labels @0
- 测试解析混合标签
- 属性type @bug
- 属性id @999
- 测试解析多个zentao标签
- 属性type @story
- 属性id @222
- 测试解析标签ID为0的情况
- 属性type @task
- 属性id @0
*/
include dirname(__FILE__, 5) . '/test/lib/init.php';
include dirname(__FILE__, 2) . '/lib/zen.class.php';
su('admin');
/* 设置 methodName 避免 gitlab 控制器构造函数报错 */
global $app;
$app->setMethodName('test');
$gitlabTest = new gitlabZenTest();
/* 准备测试数据1:带bug标签的labels */
$labels1 = array();
$label1 = new stdclass;
$label1->title = 'zentao_bug/123';
$labels1[] = $label1;
/* 准备测试数据2:带story标签的labels */
$labels2 = array();
$label2 = new stdclass;
$label2->title = 'zentao_story/456';
$labels2[] = $label2;
/* 准备测试数据3:带task标签的labels */
$labels3 = array();
$label3 = new stdclass;
$label3->title = 'zentao_task/789';
$labels3[] = $label3;
/* 准备测试数据4:空labels数组 */
$labels4 = array();
/* 准备测试数据5:无效格式标签的labels */
$labels5 = array();
$label5 = new stdclass;
$label5->title = 'invalid_label_format';
$labels5[] = $label5;
/* 准备测试数据6:混合标签(包含bug标签和普通标签) */
$labels6 = array();
$label6a = new stdclass;
$label6a->title = 'normal_tag';
$labels6[] = $label6a;
$label6b = new stdclass;
$label6b->title = 'zentao_bug/999';
$labels6[] = $label6b;
/* 准备测试数据7:多个zentao标签(包含bug和story) */
$labels7 = array();
$label7a = new stdclass;
$label7a->title = 'zentao_bug/111';
$labels7[] = $label7a;
$label7b = new stdclass;
$label7b->title = 'zentao_story/222';
$labels7[] = $label7b;
/* 准备测试数据8:标签ID为0的情况 */
$labels8 = array();
$label8 = new stdclass;
$label8->title = 'zentao_task/0';
$labels8[] = $label8;
r($gitlabTest->webhookParseObjectTest($labels1)) && p('type,id') && e('bug,123'); // 测试解析带bug标签的labels
r($gitlabTest->webhookParseObjectTest($labels2)) && p('type,id') && e('story,456'); // 测试解析带story标签的labels
r($gitlabTest->webhookParseObjectTest($labels3)) && p('type,id') && e('task,789'); // 测试解析带task标签的labels
r($gitlabTest->webhookParseObjectTest($labels4)) && p() && e('0'); // 测试解析空labels数组
r($gitlabTest->webhookParseObjectTest($labels5)) && p() && e('0'); // 测试解析无效格式标签的labels
r($gitlabTest->webhookParseObjectTest($labels6)) && p('type,id') && e('bug,999'); // 测试解析混合标签
r($gitlabTest->webhookParseObjectTest($labels7)) && p('type,id') && e('story,222'); // 测试解析多个zentao标签
r($gitlabTest->webhookParseObjectTest($labels8)) && p('type,id') && e('task,0'); // 测试解析标签ID为0的情况