Merge branch 'master' of https://gitlab.zcorp.cc/easycorp/zentaopms into release/zentaopms_18.3
This commit is contained in:
@@ -0,0 +1,4 @@
|
||||
./.git
|
||||
./build
|
||||
./Jenkinsfile
|
||||
./Makefile
|
||||
@@ -1,68 +0,0 @@
|
||||
stages:
|
||||
- sonarqube
|
||||
- unit-test
|
||||
- ui-test
|
||||
- package
|
||||
- cleanup-packages
|
||||
- notify
|
||||
|
||||
program-static-analysis:
|
||||
stage: sonarqube
|
||||
image:
|
||||
name: sonarsource/sonar-scanner-cli:latest
|
||||
entrypoint: [""]
|
||||
variables:
|
||||
SONAR_USER_HOME: "${CI_PROJECT_DIR}/.sonar" # Defines the location of the analysis task cache
|
||||
GIT_DEPTH: "0" # Tells git to fetch all the branches of the project, required by the analysis task
|
||||
cache:
|
||||
key: "${CI_JOB_NAME}"
|
||||
paths:
|
||||
- .sonar/cache
|
||||
script:
|
||||
- sonar-scanner -Dsonar.inclusions=$(git diff --name-only HEAD~1|tr '\n' ',') -Dsonar.analysis.user=${GITLAB_USER_LOGIN}
|
||||
allow_failure: true
|
||||
only:
|
||||
- master # or the name of your main branch
|
||||
|
||||
unit-test:
|
||||
stage: unit-test
|
||||
script:
|
||||
- "/home/gitlab-runner/bin/zentao-unittest.sh ${CI_PROJECT_DIR}"
|
||||
allow_failure: true
|
||||
only:
|
||||
- master
|
||||
- merge_requests
|
||||
|
||||
ui-test:
|
||||
stage: ui-test
|
||||
script:
|
||||
- "/home/gitlab-runner/bin/zentao-uitest.sh ${CI_PROJECT_DIR}"
|
||||
allow_failure: true
|
||||
only:
|
||||
- master
|
||||
- merge_requests
|
||||
|
||||
package:
|
||||
stage: package
|
||||
script:
|
||||
- make cizip
|
||||
allow_failure: true
|
||||
only:
|
||||
- master
|
||||
|
||||
cleanup-packages:
|
||||
stage: cleanup-packages
|
||||
script:
|
||||
- make clean
|
||||
when: on_failure
|
||||
only:
|
||||
- master
|
||||
|
||||
notify:
|
||||
stage: notify
|
||||
script:
|
||||
- "/home/gitlab-runner/bin/ci-notify.php"
|
||||
when: on_success
|
||||
only:
|
||||
- master
|
||||
- merge_requests
|
||||
@@ -0,0 +1,15 @@
|
||||
FROM hub.qucheng.com/ci/zentao-ztf:latest
|
||||
|
||||
# Install zentao
|
||||
ARG VERSION
|
||||
ENV ZENTAO_VER=${VERSION}
|
||||
ENV EASYSOFT_APP_NAME="ZenTao $ZENTAO_VER"
|
||||
|
||||
ARG MYSQL_HOST
|
||||
ARG MYSQL_PASSWORD
|
||||
ENV MYSQL_HOST=${MYSQL_HOST}
|
||||
ENV MYSQL_PASSWORD=${MYSQL_PASSWORD}
|
||||
|
||||
SHELL ["/bin/bash", "-c"]
|
||||
# Copy ZenTao
|
||||
COPY --chown=33:33 . /apps/zentao/
|
||||
+300
@@ -0,0 +1,300 @@
|
||||
pipeline {
|
||||
agent {
|
||||
kubernetes {
|
||||
inheritFrom "build-docker code-scan xuanim mysql-server"
|
||||
}
|
||||
}
|
||||
|
||||
environment {
|
||||
ZENTAO_VERSION = """${sh(
|
||||
returnStdout: true,
|
||||
script: 'cat VERSION'
|
||||
).trim()}"""
|
||||
MYSQL_SERVER_HOST = """${sh(
|
||||
returnStdout: true,
|
||||
script: 'hostname -I'
|
||||
).trim()}"""
|
||||
MYSQL_ROOT_PASSWORD = 'pass4ci'
|
||||
|
||||
MIDDLE_IMAGE_REPO = "hub.qc.oop.cc/zentao-ztf"
|
||||
MIDDLE_IMAGE_TAG = """${sh(
|
||||
returnStdout: true,
|
||||
script: 'echo $BUILD_ID'
|
||||
).trim()}"""
|
||||
}
|
||||
|
||||
stages {
|
||||
stage("checkout code") {
|
||||
steps {
|
||||
echo "checkout code success"
|
||||
}
|
||||
}
|
||||
|
||||
stage('Sonar Scanner') {
|
||||
parallel {
|
||||
stage('SonarQube') {
|
||||
steps {
|
||||
container('sonar') {
|
||||
withSonarQubeEnv('sonarqube') {
|
||||
sh 'git config --global --add safe.directory $(pwd)'
|
||||
sh 'sonar-scanner -Dsonar.inclusions=$(git diff --name-only HEAD~1|tr "\\n" ",") -Dsonar.analysis.user=$(git show -s --format=%an)'
|
||||
}
|
||||
}
|
||||
}
|
||||
post {
|
||||
success {
|
||||
container('xuanimbot') {
|
||||
sh 'git config --global --add safe.directory $(pwd)'
|
||||
sh '/usr/local/bin/xuanimbot --users "$(git show -s --format=%cn)" --title "sonar scanner" --url "https://sonar.qc.oop.cc/dashboard?id=zentaopms&branch=${GIT_BRANCH}" --content "sonar scanner success" --debug --custom'
|
||||
}
|
||||
}
|
||||
failure {
|
||||
container('xuanimbot') {
|
||||
sh 'git config --global --add safe.directory $(pwd)'
|
||||
sh '/usr/local/bin/xuanimbot --users "$(git show -s --format=%cn)" --title "sonar scanner" --url "https://sonar.qc.oop.cc/dashboard?id=zentaopms&branch=${GIT_BRANCH}" --content "sonar scanner failure" --debug --custom'
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
stage('Build Image') {
|
||||
steps {
|
||||
container('docker') {
|
||||
sh 'docker build --pull . -f Dockerfile.test --build-arg VERSION=${ZENTAO_VERSION} --build-arg MIRROR=true --build-arg MYSQL_HOST=${MYSQL_SERVER_HOST} --build-arg MYSQL_PASSWORD=${MYSQL_ROOT_PASSWORD} -t ${MIDDLE_IMAGE_REPO}:${MIDDLE_IMAGE_TAG}'
|
||||
sh 'docker push ${MIDDLE_IMAGE_REPO}:${MIDDLE_IMAGE_TAG}'
|
||||
}
|
||||
}
|
||||
post {
|
||||
success {
|
||||
echo 'build image success'
|
||||
}
|
||||
failure {
|
||||
container('xuanimbot') {
|
||||
sh 'git config --global --add safe.directory $(pwd)'
|
||||
sh '/usr/local/bin/xuanimbot --users "$(git show -s --format=%cn)" --title "build image" --url "${RUN_DISPLAY_URL}" --content "Build unit test image failure" --debug --custom'
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
stage('Unit Test'){
|
||||
stages{
|
||||
stage('Init') {
|
||||
agent {
|
||||
kubernetes {
|
||||
inheritFrom "xuanim"
|
||||
containerTemplate {
|
||||
name "zentao"
|
||||
image "${MIDDLE_IMAGE_REPO}:${MIDDLE_IMAGE_TAG}"
|
||||
command "sleep"
|
||||
args "99d"
|
||||
}
|
||||
}
|
||||
}
|
||||
options { skipDefaultCheckout() }
|
||||
|
||||
steps {
|
||||
container('zentao') {
|
||||
sh 'initdb.php ; /apps/zentao/test/ztest init'
|
||||
}
|
||||
}
|
||||
post {
|
||||
success {
|
||||
sh 'echo "stage unit init success"'
|
||||
}
|
||||
failure {
|
||||
container('xuanimbot') {
|
||||
sh 'git config --global --add safe.directory $(pwd)'
|
||||
sh '/usr/local/bin/xuanimbot --users "$(git show -s --format=%cn)" --title "unittest init" --url "${RUN_DISPLAY_URL}" --content "Unit test database initialization failed" --debug --custom'
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
stage('Run') {
|
||||
parallel {
|
||||
stage('UnitTest P1') {
|
||||
agent {
|
||||
kubernetes {
|
||||
inheritFrom "xuanim"
|
||||
containerTemplate {
|
||||
name "zentao1"
|
||||
image "${MIDDLE_IMAGE_REPO}:${MIDDLE_IMAGE_TAG}"
|
||||
command "sleep"
|
||||
args "99d"
|
||||
}
|
||||
}
|
||||
}
|
||||
options { skipDefaultCheckout() }
|
||||
|
||||
steps {
|
||||
container('zentao1') {
|
||||
sh 'initdb.php config'
|
||||
sh '/apps/zentao/test/ztest extract ; /apps/zentao/test/ztest P1 | tee /apps/zentao/test/p1.log'
|
||||
sh 'pipeline-unittest.sh /apps/zentao/test/p1.log'
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
stage('UnitTest P2') {
|
||||
agent {
|
||||
kubernetes {
|
||||
inheritFrom "xuanim"
|
||||
containerTemplate {
|
||||
name "zentao2"
|
||||
image "${MIDDLE_IMAGE_REPO}:${MIDDLE_IMAGE_TAG}"
|
||||
command "sleep"
|
||||
args "99d"
|
||||
}
|
||||
}
|
||||
}
|
||||
options { skipDefaultCheckout() }
|
||||
|
||||
steps {
|
||||
container('zentao2') {
|
||||
sh 'initdb.php config'
|
||||
sh '/apps/zentao/test/ztest extract ; /apps/zentao/test/ztest P2 | tee /apps/zentao/test/p2.log'
|
||||
sh 'pipeline-unittest.sh /apps/zentao/test/p2.log'
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
stage('UnitTest P3') {
|
||||
agent {
|
||||
kubernetes {
|
||||
inheritFrom "xuanim"
|
||||
containerTemplate {
|
||||
name "zentao3"
|
||||
image "${MIDDLE_IMAGE_REPO}:${MIDDLE_IMAGE_TAG}"
|
||||
command "sleep"
|
||||
args "99d"
|
||||
}
|
||||
}
|
||||
}
|
||||
options { skipDefaultCheckout() }
|
||||
|
||||
steps {
|
||||
container('zentao3') {
|
||||
sh 'initdb.php config'
|
||||
sh '/apps/zentao/test/ztest extract ; /apps/zentao/test/ztest P3 | tee /apps/zentao/test/p3.log'
|
||||
sh 'pipeline-unittest.sh /apps/zentao/test/p3.log'
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
stage('UnitTest P4') {
|
||||
agent {
|
||||
kubernetes {
|
||||
inheritFrom "xuanim"
|
||||
containerTemplate {
|
||||
name "zentao4"
|
||||
image "${MIDDLE_IMAGE_REPO}:${MIDDLE_IMAGE_TAG}"
|
||||
command "sleep"
|
||||
args "99d"
|
||||
}
|
||||
}
|
||||
}
|
||||
options { skipDefaultCheckout() }
|
||||
|
||||
steps {
|
||||
container('zentao4') {
|
||||
sh 'initdb.php config'
|
||||
sh '/apps/zentao/test/ztest extract ; /apps/zentao/test/ztest P4 | tee /apps/zentao/test/p4.log '
|
||||
sh 'pipeline-unittest.sh /apps/zentao/test/p4.log'
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
stage('UnitTest P5') {
|
||||
agent {
|
||||
kubernetes {
|
||||
inheritFrom "xuanim"
|
||||
containerTemplate {
|
||||
name "zentao5"
|
||||
image "${MIDDLE_IMAGE_REPO}:${MIDDLE_IMAGE_TAG}"
|
||||
command "sleep"
|
||||
args "99d"
|
||||
}
|
||||
}
|
||||
}
|
||||
options { skipDefaultCheckout() }
|
||||
|
||||
steps {
|
||||
container('zentao5') {
|
||||
sh 'initdb.php config'
|
||||
sh '/apps/zentao/test/ztest extract ; /apps/zentao/test/ztest P5 | tee /apps/zentao/test/p5.log'
|
||||
sh 'pipeline-unittest.sh /apps/zentao/test/p5.log'
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
stage('UnitTest P6') {
|
||||
agent {
|
||||
kubernetes {
|
||||
inheritFrom "xuanim"
|
||||
containerTemplate {
|
||||
name "zentao6"
|
||||
image "${MIDDLE_IMAGE_REPO}:${MIDDLE_IMAGE_TAG}"
|
||||
command "sleep"
|
||||
args "99d"
|
||||
}
|
||||
}
|
||||
}
|
||||
options { skipDefaultCheckout() }
|
||||
|
||||
steps {
|
||||
container('zentao6') {
|
||||
sh 'initdb.php config'
|
||||
sh '/apps/zentao/test/ztest extract ; /apps/zentao/test/ztest P6 | tee /apps/zentao/test/p6.log'
|
||||
sh 'pipeline-unittest.sh /apps/zentao/test/p6.log'
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
stage('UnitTest P7') {
|
||||
agent {
|
||||
kubernetes {
|
||||
inheritFrom "xuanim"
|
||||
containerTemplate {
|
||||
name "zentao7"
|
||||
image "${MIDDLE_IMAGE_REPO}:${MIDDLE_IMAGE_TAG}"
|
||||
command "sleep"
|
||||
args "99d"
|
||||
}
|
||||
}
|
||||
}
|
||||
options { skipDefaultCheckout() }
|
||||
|
||||
steps {
|
||||
container('zentao7') {
|
||||
sh 'initdb.php config'
|
||||
sh '/apps/zentao/test/ztest extract ; /apps/zentao/test/ztest P7 | tee /apps/zentao/test/p7.log'
|
||||
sh 'pipeline-unittest.sh /apps/zentao/test/p7.log'
|
||||
}
|
||||
}
|
||||
}
|
||||
} // End Parallel
|
||||
}
|
||||
}
|
||||
post{
|
||||
success{
|
||||
container('xuanimbot') {
|
||||
sh 'git config --global --add safe.directory /home/jenkins/agent/workspace/pangu_pangu_xuanimbot_master'
|
||||
sh '/usr/local/bin/xuanimbot --users "$(git show -s --format=%cn)" --title "unittest" --url "${RUN_DISPLAY_URL}" --content "Unit test passed" --debug --custom'
|
||||
}
|
||||
}
|
||||
failure{
|
||||
container('xuanimbot') {
|
||||
sh 'git config --global --add safe.directory $(pwd)'
|
||||
sh '/usr/local/bin/xuanimbot --users "$(git show -s --format=%cn)" --title "unittest" --url "${RUN_DISPLAY_URL}" --content "Unit test failed" --debug --custom'
|
||||
}
|
||||
}
|
||||
}
|
||||
}//End unittest
|
||||
|
||||
} // End Root Stages
|
||||
} // End pipeline
|
||||
@@ -1,5 +1,4 @@
|
||||
<?php
|
||||
$config->task->customBatchCreateFields .= ',lane,region';
|
||||
$config->task->custom->batchCreateFields .= ',lane,region';
|
||||
$config->task->datatable->defaultField = array('id', 'pri', 'name', 'status', 'assignedTo', 'lane', 'finishedBy', 'estimate', 'consumed', 'left', 'progress', 'deadline', 'actions');
|
||||
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
<?php js::set('addChildTask', $lang->task->addChildTask);?>
|
||||
<?php js::set('isonlybody', isonlybody())?>
|
||||
<?php js::set('regionID', $regionID);?>
|
||||
<?php js::set('requiredFields', $config->task->create->requiredFields);?>
|
||||
<style>.c-lane,.c-region{width:150px;}</style>
|
||||
<div id="mainContent" class="main-content fade">
|
||||
<div class="main-header clearfix">
|
||||
@@ -48,11 +49,7 @@
|
||||
}
|
||||
foreach(explode(',', $config->task->create->requiredFields) as $field)
|
||||
{
|
||||
if($field)
|
||||
{
|
||||
$requiredFields[$field] = '';
|
||||
if(strpos(",{$config->task->customBatchCreateFields},", ",{$field},") !== false) $visibleFields[$field] = '';
|
||||
}
|
||||
if($field) $requiredFields[$field] = '';
|
||||
}
|
||||
$colspan = count($visibleFields) + 3;
|
||||
?>
|
||||
@@ -62,20 +59,20 @@
|
||||
<thead>
|
||||
<tr>
|
||||
<th class='c-id'><?php echo $lang->idAB;?></th>
|
||||
<th class='c-module<?php echo zget($visibleFields, 'module', ' hidden') . zget($requiredFields, 'module', '', ' required');?>'><?php echo $lang->task->module?></th>
|
||||
<th class='c-module<?php echo zget($visibleFields, 'module', ' hidden') . zget($requiredFields, 'module', '', ' required');?> moduleBox'><?php echo $lang->task->module?></th>
|
||||
<?php if($execution->type != 'ops'):?>
|
||||
<th class='c-story<?php echo zget($visibleFields, 'story', ' hidden') . zget($requiredFields, 'story', '', ' required');?>'><?php echo $lang->task->story;?></th>
|
||||
<th class='c-story<?php echo zget($visibleFields, 'story', ' hidden') . zget($requiredFields, 'story', '', ' required');?> storyBox'><?php echo $lang->task->story;?></th>
|
||||
<?php endif;?>
|
||||
<th class='c-name required has-btn'><?php echo $lang->task->name;?></span></th>
|
||||
<th class='c-region required<?php echo zget($visibleFields, 'region', ' hidden');?>'><?php echo $lang->task->region;?></th>
|
||||
<th class='c-lane required<?php echo zget($visibleFields, 'lane', ' hidden');?>'><?php echo $lang->task->lane;?></th>
|
||||
<th class='c-region required<?php echo zget($visibleFields, 'region', ' hidden');?> regionBox'><?php echo $lang->task->region;?></th>
|
||||
<th class='c-lane required<?php echo zget($visibleFields, 'lane', ' hidden');?> laneBox'><?php echo $lang->task->lane;?></th>
|
||||
<th class='c-type required'><?php echo $lang->typeAB;?></span></th>
|
||||
<th class='c-assigned<?php echo zget($visibleFields, 'assignedTo', ' hidden') . zget($requiredFields, 'assignedTo', '', ' required');?>'><?php echo $lang->task->assignedTo;?></th>
|
||||
<th class='c-estimate<?php echo zget($visibleFields, 'estimate', ' hidden') . zget($requiredFields, 'estimate', '', ' required');?>'><?php echo $lang->task->estimateAB;?></th>
|
||||
<th class='c-date<?php echo zget($visibleFields, 'estStarted', ' hidden') . zget($requiredFields, 'estStarted', '', ' required');?>'><?php echo $lang->task->estStarted;?></th>
|
||||
<th class='c-date<?php echo zget($visibleFields, 'deadline', ' hidden') . zget($requiredFields, 'deadline', '', ' required');?>'><?php echo $lang->task->deadline;?></th>
|
||||
<th class='c-desc<?php echo zget($visibleFields, 'desc', ' hidden') . zget($requiredFields, 'desc', '', ' required');?>'><?php echo $lang->task->desc;?></th>
|
||||
<th class='c-pri<?php echo zget($visibleFields, 'pri', ' hidden') . zget($requiredFields, 'pri', '', ' required');?>'><?php echo $lang->task->pri;?></th>
|
||||
<th class='c-estimate<?php echo zget($visibleFields, 'estimate', ' hidden') . zget($requiredFields, 'estimate', '', ' required');?> estimateBox'><?php echo $lang->task->estimateAB;?></th>
|
||||
<th class='c-date<?php echo zget($visibleFields, 'estStarted', ' hidden') . zget($requiredFields, 'estStarted', '', ' required');?> estStartedBox'><?php echo $lang->task->estStarted;?></th>
|
||||
<th class='c-date<?php echo zget($visibleFields, 'deadline', ' hidden') . zget($requiredFields, 'deadline', '', ' required');?> deadlineBox'><?php echo $lang->task->deadline;?></th>
|
||||
<th class='c-desc<?php echo zget($visibleFields, 'desc', ' hidden') . zget($requiredFields, 'desc', '', ' required');?> descBox'><?php echo $lang->task->desc;?></th>
|
||||
<th class='c-pri<?php echo zget($visibleFields, 'pri', ' hidden') . zget($requiredFields, 'pri', '', ' required');?> priBox'><?php echo $lang->task->pri;?></th>
|
||||
<?php
|
||||
$extendFields = $this->task->getFlowExtendFields();
|
||||
foreach($extendFields as $extendField) echo "<th class='w-100px'>{$extendField->name}</th>";
|
||||
@@ -106,12 +103,12 @@
|
||||
<?php $pri = 3;?>
|
||||
<tr>
|
||||
<td class='text-center'><?php echo $i;?></td>
|
||||
<td <?php echo zget($visibleFields, 'module', "class='hidden'")?> style='overflow:visible'>
|
||||
<td class="<?php echo zget($visibleFields, 'module', 'hidden')?> moduleBox" style='overflow:visible'>
|
||||
<?php echo html::select("module[$i]", $modules, $moduleID, "class='form-control chosen' onchange='setStories(this.value, $execution->id, $i)'")?>
|
||||
<?php echo html::hidden("parent[$i]", $parent);?>
|
||||
</td>
|
||||
<?php if($execution->type != 'ops'):?>
|
||||
<td <?php echo zget($visibleFields, 'story', "class='hidden'");?> style='overflow: visible'>
|
||||
<td class="<?php echo zget($visibleFields, 'story', 'hidden');?> storyBox" style='overflow: visible'>
|
||||
<div class='input-group'>
|
||||
<?php echo html::select("story[$i]", $stories, $currentStory, "class='form-control chosen' onchange='setStoryRelated($i)'");?>
|
||||
<span class='input-group-btn'>
|
||||
@@ -134,12 +131,12 @@
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
<td <?php echo zget($visibleFields, 'region', "class='hidden'")?> style='overflow:visible'><?php echo html::select("region[$i]", $regionList, isset($regionID) ? $regionID : '', "class='form-control chosen' onchange='loadLaneGroup(this.value, $i)'");?></td>
|
||||
<td <?php echo zget($visibleFields, 'lane', "class='hidden'")?> style='overflow:visible'><?php echo html::select("lane[$i]", $lanes, '', "class='form-control chosen'");?></td>
|
||||
<td class="<?php echo zget($visibleFields, 'region', 'hidden');?> regionBox" style='overflow:visible'><?php echo html::select("region[$i]", $regionList, isset($regionID) ? $regionID : '', "class='form-control chosen' onchange='loadLaneGroup(this.value, $i)'");?></td>
|
||||
<td class="<?php echo zget($visibleFields, 'lane', 'hidden');?> laneBox" style='overflow:visible'><?php echo html::select("lane[$i]", $lanes, '', "class='form-control chosen'");?></td>
|
||||
<td><?php echo html::select("type[$i]", $lang->task->typeList, $type, "class='form-control chosen'");?></td>
|
||||
<td <?php echo zget($visibleFields, 'assignedTo', "class='hidden'")?> style='overflow:visible'><?php echo html::select("assignedTo[$i]", $members, $member, "class='form-control chosen'");?></td>
|
||||
<td <?php echo zget($visibleFields, 'estimate', "class='hidden'")?>><?php echo html::input("estimate[$i]", '', "class='form-control text-center'");?></td>
|
||||
<td <?php echo zget($visibleFields, 'estStarted', "class='hidden'")?>>
|
||||
<td class="<?php echo zget($visibleFields, 'assignedTo', 'hidden')?> assignedToBox" style='overflow:visible'><?php echo html::select("assignedTo[$i]", $members, $member, "class='form-control chosen'");?></td>
|
||||
<td class="<?php echo zget($visibleFields, 'estimate', 'hidden')?> estimateBox"><?php echo html::input("estimate[$i]", '', "class='form-control text-center'");?></td>
|
||||
<td class="<?php echo zget($visibleFields, 'estStarted', 'hidden')?> estStartedBox">
|
||||
<div class='input-group'>
|
||||
<?php
|
||||
echo html::input("estStarted[$i]", '', "class='form-control text-center form-date' onkeyup='toggleCheck(this)'");
|
||||
@@ -147,7 +144,7 @@
|
||||
?>
|
||||
</div>
|
||||
</td>
|
||||
<td <?php echo zget($visibleFields, 'deadline', "class='hidden'")?>>
|
||||
<td class="<?php echo zget($visibleFields, 'deadline', 'hidden')?> deadlineBox">
|
||||
<div class='input-group'>
|
||||
<?php
|
||||
echo html::input("deadline[$i]", '', "class='form-control text-center form-date' onkeyup='toggleCheck(this)'");
|
||||
@@ -155,8 +152,8 @@
|
||||
?>
|
||||
</div>
|
||||
</td>
|
||||
<td <?php echo zget($visibleFields, 'desc', "class='hidden'")?>><?php echo html::textarea("desc[$i]", '', "rows='1' class='form-control autosize'");?></td>
|
||||
<td <?php echo zget($visibleFields, 'pri', "class='hidden'")?>><?php echo html::select("pri[$i]", (array)$lang->task->priList, $pri, 'class=form-control');?></td>
|
||||
<td class="<?php echo zget($visibleFields, 'desc', 'hidden')?> descBox"><?php echo html::textarea("desc[$i]", '', "rows='1' class='form-control autosize'");?></td>
|
||||
<td class="<?php echo zget($visibleFields, 'pri', 'hidden')?> priBox"><?php echo html::select("pri[$i]", (array)$lang->task->priList, $pri, 'class=form-control');?></td>
|
||||
<?php foreach($extendFields as $extendField) echo "<td" . (($extendField->control == 'select' or $extendField->control == 'multi-select') ? " style='overflow:visible'" : '') . ">" . $this->loadModel('flow')->getFieldControl($extendField, '', $extendField->field . "[$i]") . "</td>";?>
|
||||
</tr>
|
||||
<?php endfor;?>
|
||||
@@ -177,11 +174,11 @@
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class='text-center'>%s</td>
|
||||
<td <?php echo zget($visibleFields, 'module', "class='hidden'")?> style='overflow:visible'>
|
||||
<td class="<?php echo zget($visibleFields, 'module', 'hidden')?> moduleBox" style='overflow:visible'>
|
||||
<?php echo html::select("module[%s]", $modules, $moduleID, "class='form-control chosen' onchange='setStories(this.value, $execution->id, \"%s\")'")?>
|
||||
<?php echo html::hidden("parent[%s]", $parent);?>
|
||||
</td>
|
||||
<td <?php echo zget($visibleFields, 'story', "class='hidden'");?> style='overflow: visible'>
|
||||
<td class="<?php echo zget($visibleFields, 'story', 'hidden');?> storyBox" style='overflow: visible'>
|
||||
<div class='input-group'>
|
||||
<?php echo html::select("story[%s]", $stories, $currentStory, "class='form-control chosen' onchange='setStoryRelated(\"%s\")'");?>
|
||||
<span class='input-group-btn'>
|
||||
@@ -203,12 +200,12 @@
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
<td <?php echo zget($visibleFields, 'region', "class='hidden'")?> style='overflow:visible'><?php echo html::select("region[%s]", $regionList, isset($regionID) ? $regionID : '', "class='form-control chosen' onchange='loadLaneGroup(this.value, $i)'");?></td>
|
||||
<td <?php echo zget($visibleFields, 'lane', "class='hidden'")?> style='overflow:visible'><?php echo html::select("lane[%s]", $lanes, '', "class='form-control chosen'");?></td>
|
||||
<td class="<?php echo zget($visibleFields, 'region', 'hidden');?> regionBox" style='overflow:visible'><?php echo html::select("region[%s]", $regionList, isset($regionID) ? $regionID : '', "class='form-control chosen' onchange='loadLaneGroup(this.value, $i)'");?></td>
|
||||
<td class="<?php echo zget($visibleFields, 'lane', 'hidden');?> laneBox" style='overflow:visible'><?php echo html::select("lane[%s]", $lanes, '', "class='form-control chosen'");?></td>
|
||||
<td><?php echo html::select("type[%s]", $lang->task->typeList, $type, 'class="form-control"');?></td>
|
||||
<td <?php echo zget($visibleFields, 'assignedTo', "class='hidden'")?> style='overflow:visible'><?php echo html::select("assignedTo[%s]", $members, $member, "class='form-control chosen'");?></td>
|
||||
<td <?php echo zget($visibleFields, 'estimate', "class='hidden'")?>><?php echo html::input("estimate[%s]", '', "class='form-control text-center'");?></td>
|
||||
<td <?php echo zget($visibleFields, 'estStarted', "class='hidden'")?>>
|
||||
<td class="<?php echo zget($visibleFields, 'assignedTo', 'hidden');?> assignedToBox" style='overflow:visible'><?php echo html::select("assignedTo[%s]", $members, $member, "class='form-control chosen'");?></td>
|
||||
<td class="<?php echo zget($visibleFields, 'estimate', 'hidden');?> estimateBox"><?php echo html::input("estimate[%s]", '', "class='form-control text-center'");?></td>
|
||||
<td class="<?php echo zget($visibleFields, 'estStarted', 'hidden');?> estStartedBox">
|
||||
<div class='input-group'>
|
||||
<?php
|
||||
echo html::input("estStarted[%s]", '', "class='form-control text-center form-date' onkeyup='toggleCheck(this)'");
|
||||
@@ -216,15 +213,15 @@
|
||||
?>
|
||||
</div>
|
||||
</td>
|
||||
<td <?php echo zget($visibleFields, 'deadline', "class='hidden'")?>>
|
||||
<td class="<?php echo zget($visibleFields, 'deadline', 'hidden')?> deadlineBox">
|
||||
<div class='input-group'>
|
||||
<?php
|
||||
echo html::input("deadline[%s]", '', "class='form-control text-center form-date' onkeyup='toggleCheck(this)'");
|
||||
echo "<span class='input-group-addon deadlineBox'><input type='checkbox' name='deadlineDitto[%s]' id='deadlineDitto%s' checked/>{$lang->task->ditto}</span>";
|
||||
?>
|
||||
</div>
|
||||
<td <?php echo zget($visibleFields, 'desc', "class='hidden'")?>><?php echo html::textarea("desc[%s]", '', "rows='1' class='form-control autosize'");?></td>
|
||||
<td <?php echo zget($visibleFields, 'pri', "class='hidden'")?>><?php echo html::select("pri[%s]", (array)$lang->task->priList, $pri, 'class=form-control');?></td>
|
||||
<td class="<?php echo zget($visibleFields, 'desc', 'hidden')?> descBox"><?php echo html::textarea("desc[%s]", '', "rows='1' class='form-control autosize'");?></td>
|
||||
<td class="<?php echo zget($visibleFields, 'pri', 'hidden')?> priBox"><?php echo html::select("pri[%s]", (array)$lang->task->priList, $pri, 'class=form-control');?></td>
|
||||
<?php foreach($extendFields as $extendField) echo "<td" . (($extendField->control == 'select' or $extendField->control == 'multi-select') ? " style='overflow:visible'" : '') . ">" . $this->loadModel('flow')->getFieldControl($extendField, '', $extendField->field . "[%s]") . "</td>";?>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
||||
@@ -65,7 +65,7 @@ $config->action->majorList['project'] = array('opened', 'edited');
|
||||
$config->action->majorList['execution'] = array('opened', 'edited');
|
||||
|
||||
$config->action->needGetProjectType = 'build,task,bug,case,testcase,caselib,testtask,testsuite,testreport,doc,issue,release,risk,design,opportunity,trainplan,gapanalysis,researchplan,researchreport,';
|
||||
$config->action->needGetRelateField = ',story,productplan,release,task,build,bug,testcase,case,testtask,testreport,doc,doclib,issue,risk,opportunity,trainplan,gapanalysis,team,whitelist,researchplan,researchreport,meeting,kanbanlane,kanbancolumn,module,review,';
|
||||
$config->action->needGetRelateField = ',branch,story,productplan,release,task,build,bug,testcase,case,testtask,testreport,doc,doclib,issue,risk,opportunity,trainplan,gapanalysis,team,whitelist,researchplan,researchreport,meeting,kanbanlane,kanbancolumn,module,review,';
|
||||
$config->action->noLinkModules = ',doclib,module,webhook,gitlab,gitea,gogs,sonarqube,pipeline,jenkins,kanban,kanbanspace,kanbancolumn,kanbanlane,kanbanregion,kanbancard,execution,project,traincategory,apistruct,program,product,user,entry,repo,';
|
||||
$config->action->ignoreObjectType4Dynamic = 'kanbanregion,kanbanlane,kanbancolumn';
|
||||
|
||||
|
||||
@@ -236,8 +236,7 @@ class doc extends control
|
||||
|
||||
$response['message'] = $this->lang->saveSuccess;
|
||||
$response['result'] = 'success';
|
||||
$response['closeModal'] = true;
|
||||
$response['callback'] = "redirectParentWindow($hasLibPriv, $libID, $objectID)";
|
||||
$response['locate'] = 'parent';
|
||||
return $this->send($response);
|
||||
}
|
||||
|
||||
|
||||
@@ -47,4 +47,12 @@ function initModuleTree()
|
||||
$(this).parent().addClass('active');
|
||||
$(this).parent().parent().parent().addClass('active');
|
||||
})
|
||||
|
||||
$firstModule = $('#moduleTree li a:not([data-has-children="true"])');
|
||||
if($firstModule.length)
|
||||
{
|
||||
$firstModule = $firstModule.eq(0);
|
||||
$firstModule.closest('li.has-list').addClass('open in');
|
||||
$firstModule.trigger('click');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -51,6 +51,14 @@ $(function()
|
||||
{
|
||||
if(!$(this).hasClass('active')) $(this).removeClass('text-primary');
|
||||
});
|
||||
|
||||
var $firstBtn = $('a[target="editWin"]');
|
||||
if($firstBtn.length)
|
||||
{
|
||||
$firstBtn = $firstBtn.eq(0);
|
||||
$firstBtn.trigger('click');
|
||||
$(parent.document).find('#editWin').attr('src', $firstBtn.attr('href'));
|
||||
}
|
||||
});
|
||||
</script>
|
||||
<iframe frameborder='0' name='hiddenwin' id='hiddenwin' scrolling='no' class='hidden'></iframe>
|
||||
|
||||
@@ -1311,6 +1311,27 @@ class executionModel extends model
|
||||
unset($execution->end);
|
||||
}
|
||||
|
||||
if($this->post->readjustTime && $oldExecution->grade > 1)
|
||||
{
|
||||
$parent = $this->getByID($oldExecution->parent);
|
||||
$begin = $execution->begin;
|
||||
$end = $execution->end;
|
||||
$parentBegin = $parent->begin;
|
||||
$parentEnd = $parent->end;
|
||||
|
||||
if($begin < $parentBegin)
|
||||
{
|
||||
dao::$errors["message"][] = sprintf($this->lang->execution->errorLetterParent, $parentBegin);
|
||||
}
|
||||
|
||||
if($end > $parentEnd)
|
||||
{
|
||||
dao::$errors["message"][] = sprintf($this->lang->execution->errorGreaterParent, $parentEnd);
|
||||
}
|
||||
}
|
||||
|
||||
if(dao::isError()) return false;
|
||||
|
||||
$execution = $this->loadModel('file')->processImgURL($execution, $this->config->execution->editor->activate['id'], $this->post->uid);
|
||||
$this->dao->update(TABLE_EXECUTION)->data($execution)
|
||||
->autoCheck()
|
||||
|
||||
@@ -733,7 +733,7 @@ class fileModel extends model
|
||||
$line = str_replace('""', '"', $line);
|
||||
|
||||
/* if only one column then line is the data. */
|
||||
if(strpos($line, ',') === false and $line[0] != '"' and $col == -1)
|
||||
if(strpos($line, ',') === false and isset($line[0]) and $line[0] != '"' and $col == -1)
|
||||
{
|
||||
$data[$row][0] = trim($line, '"');
|
||||
}
|
||||
|
||||
+7
-5
@@ -1112,11 +1112,12 @@ class myModel extends model
|
||||
{
|
||||
if($checkExists) return true;
|
||||
$story = new stdclass();
|
||||
$story->id = $data->id;
|
||||
$story->title = $data->title;
|
||||
$story->type = 'story';
|
||||
$story->time = $data->openedDate;
|
||||
$story->status = $data->status;
|
||||
$story->id = $data->id;
|
||||
$story->title = $data->title;
|
||||
$story->type = 'story';
|
||||
$story->storyType = $data->type;
|
||||
$story->time = $data->openedDate;
|
||||
$story->status = $data->status;
|
||||
$stories[$story->id] = $story;
|
||||
}
|
||||
|
||||
@@ -1435,6 +1436,7 @@ class myModel extends model
|
||||
$review->status = $objectType == 'attend' ? $object->reviewStatus : ((isset($object->status) and !isset($flows[$objectType])) ? $object->status : 'done');
|
||||
if(strpos($review->result, ',') !== false) list($review->result) = explode(',', $review->result);
|
||||
|
||||
if($objectType == 'story') $review->storyType = $object->type;
|
||||
if($review->type == 'review') $review->type = 'projectreview';
|
||||
if($review->type == 'case') $review->type = 'testcase';
|
||||
$review->title = '';
|
||||
|
||||
@@ -57,7 +57,7 @@
|
||||
|
||||
$typeName = '';
|
||||
if(isset($lang->{$review->type}->common)) $typeName = $lang->{$review->type}->common;
|
||||
if($type == 'story') $typeName = $lang->SRCommon;
|
||||
if($type == 'story') $typeName = $review->storyType == 'story' ? $lang->SRCommon : $lang->URCommon;
|
||||
if($review->type == 'projectreview') $typeName = $lang->project->common;
|
||||
if(isset($flows[$review->type])) $typeName = $flows[$review->type];
|
||||
|
||||
|
||||
@@ -1275,6 +1275,7 @@ class productModel extends model
|
||||
public function getProjectPairsByProduct($productID, $branch = 0, $appendProject = 0, $status = '', $param = '')
|
||||
{
|
||||
$product = $this->getById($productID);
|
||||
if(empty($product)) return array();
|
||||
|
||||
return $this->dao->select('t2.id, t2.name')->from(TABLE_PROJECTPRODUCT)->alias('t1')
|
||||
->leftJoin(TABLE_PROJECT)->alias('t2')->on('t1.project = t2.id')
|
||||
|
||||
@@ -3626,7 +3626,7 @@ class storyModel extends model
|
||||
}
|
||||
|
||||
$this->dao->sqlobj->sql = $query;
|
||||
return $this->mergePlanTitle($productID, $stories, $branch, $type);
|
||||
return $this->mergePlanTitle($productID, $stories, $branch, $storyType);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -4996,7 +4996,7 @@ class storyModel extends model
|
||||
}
|
||||
else
|
||||
{
|
||||
$storyLink = helper::createLink('story', 'view', "storyID=$story->id&version=0¶m={$this->session->project}&storyType=$story->type");
|
||||
$storyLink = helper::createLink('story', 'view', "storyID=$story->id&version=0¶m={$this->session->execution}&storyType=$story->type");
|
||||
}
|
||||
}
|
||||
elseif($tab == 'execution')
|
||||
@@ -5168,7 +5168,7 @@ class storyModel extends model
|
||||
{
|
||||
$showBranch = isset($this->config->product->browse->showBranch) ? $this->config->product->browse->showBranch : 1;
|
||||
}
|
||||
$titleHtml = $story->title;
|
||||
$titleHtml = '';
|
||||
if($storyType == 'requirement' and $story->type == 'story') $titleHtml = '<span class="label label-badge label-light">SR</span> ';
|
||||
if($story->parent > 0 and isset($story->parentName)) $titleHtml = "{$story->parentName} / ";
|
||||
if(isset($branches[$story->branch]) and $showBranch and $this->config->vision == 'rnd') $titleHtml = "<span class='label label-outline label-badge' title={$branches[$story->branch]}>{$branches[$story->branch]}</span> ";
|
||||
|
||||
@@ -104,9 +104,9 @@ function copyStoryTitle(num)
|
||||
endPosition = storyTitle.lastIndexOf('[');
|
||||
storyTitle = storyTitle.substr(startPosition, endPosition - startPosition);
|
||||
|
||||
$('#name\\[' + num + '\\]').val(storyTitle);
|
||||
$('#estimate\\[' + num + '\\]').val($('#storyEstimate' + num).val());
|
||||
$('#desc\\[' + num + '\\]').val(($('#storyDesc' + num).val()).replace(/<[^>]+>/g,'').replace(/(\n)+\n/g, "\n").replace(/^\n/g, '').replace(/\t/g, ''));
|
||||
$('#name' + num).val(storyTitle);
|
||||
$('#estimate' + num).val($('#storyEstimate' + num).val());
|
||||
$('#desc' + num).val(($('#storyDesc' + num).val()).replace(/<[^>]+>/g,'').replace(/(\n)+\n/g, "\n").replace(/^\n/g, '').replace(/\t/g, ''));
|
||||
|
||||
var storyPri = $('#storyPri' + num).val();
|
||||
if(storyPri == 0) $('#pri' + num ).val('3');
|
||||
|
||||
@@ -7622,12 +7622,19 @@ class upgradeModel extends model
|
||||
if($project->status == 'closed') $this->action->create('project', $projectID, 'closedbysystem');
|
||||
|
||||
$project->id = $projectID;
|
||||
$this->createProjectDocLib($project);
|
||||
if($fromMode == 'classic')
|
||||
{
|
||||
$this->dao->update(TABLE_PROJECT)->set('multiple')->eq('0')->where('id')->eq($sprint->id)->exec();
|
||||
$this->dao->update(TABLE_DOCLIB)->set('project')->eq($projectID)->set('type')->eq('project')->set('execution')->eq(0)->where('execution')->eq($sprint->id)->andWhere('type')->eq('execution')->exec();
|
||||
$this->dao->update(TABLE_DOC)->set('project')->eq($projectID)->set('execution')->eq(0)->where('execution')->eq($sprint->id)->exec();
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->createProjectDocLib($project);
|
||||
}
|
||||
|
||||
$productIdList = $this->dao->select('product')->from(TABLE_PROJECTPRODUCT)->where('project')->eq($sprint->id)->fetchPairs();
|
||||
$this->processMergedData($programID, $projectID, '', $productIdList, array($sprint->id));
|
||||
|
||||
if($fromMode == 'classic') $this->dao->update(TABLE_PROJECT)->set('multiple')->eq('0')->where('id')->eq($sprint->id)->exec();
|
||||
}
|
||||
|
||||
$this->fixProjectPath($programID);
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
sonar.projectKey=zentaopms
|
||||
sonar.sourceEncoding=UTF-8
|
||||
sonar.qualitygate.wait=true
|
||||
sonar.coverage.exclusions=**/*.*
|
||||
sonar.inclusions=**/**.php
|
||||
sonar.exclusions=**/*.bak,**/*.sql,**/*.js,**/*.css,**/*.yaml,**/*.zip,**/*.out
|
||||
|
||||
+120
-109
@@ -3,119 +3,130 @@ $builder = new stdclass();
|
||||
|
||||
$builder->company = array('rows' => 2, 'extends' => array('company'));
|
||||
$builder->user = array('rows' => 1000, 'extends' => array('user'));
|
||||
$builder->todo = array('rows' => 2000, 'extends' => array('todo'));
|
||||
$builder->todocycle = array('rows' => 5, 'extends' => array('todo','todocycle'));
|
||||
$builder->effort = array('rows' => 100, 'extends' => array('effort'));
|
||||
$builder->usergroup = array('rows' => 600, 'extends' => array('usergroup'));
|
||||
$builder->usercontact = array('rows' => 61, 'extends' => array('usercontact'));
|
||||
$builder->userview = array('rows' => 400, 'extends' => array('userview'));
|
||||
$builder->dept = array('rows' => 100, 'extends' => array('dept'));
|
||||
$builder->action = array('rows' => 100, 'extends' => array('action'));
|
||||
$builder->history = array('rows' => 100, 'extends' => array('history'));
|
||||
$builder->file = array('rows' => 100, 'extends' => array('file'));
|
||||
$builder->score = array('rows' => 100, 'extends' => array('score'));
|
||||
$builder->extension = array('rows' => 10, 'extends' => array('extension'));
|
||||
//$builder->todo = array('rows' => 2000, 'extends' => array('todo'));
|
||||
//$builder->todocycle = array('rows' => 5, 'extends' => array('todo','todocycle'));
|
||||
//$builder->effort = array('rows' => 100, 'extends' => array('effort'));
|
||||
//$builder->usergroup = array('rows' => 600, 'extends' => array('usergroup'));
|
||||
//$builder->usercontact = array('rows' => 61, 'extends' => array('usercontact'));
|
||||
//$builder->userview = array('rows' => 400, 'extends' => array('userview'));
|
||||
//$builder->action = array('rows' => 100, 'extends' => array('action'));
|
||||
//$builder->history = array('rows' => 100, 'extends' => array('history'));
|
||||
//$builder->file = array('rows' => 100, 'extends' => array('file'));
|
||||
//$builder->score = array('rows' => 100, 'extends' => array('score'));
|
||||
//$builder->extension = array('rows' => 10, 'extends' => array('extension'));
|
||||
|
||||
$builder->program = array('rows' => 10, 'extends' => array('project', 'program'));
|
||||
$builder->project = array('rows' => 90, 'extends' => array('project', 'project'));
|
||||
$builder->sprint = array('rows' => 600, 'extends' => array('project', 'execution'));
|
||||
$builder->projectalone = array('rows' => 20, 'extends' => array('project', 'projectalone'));
|
||||
$builder->pipeline = array('rows' => 5, 'extends' => array('pipeline'));
|
||||
$builder->repo = array('rows' => 1, 'extends' => array('repo'));
|
||||
$builder->job = array('rows' => 2, 'extends' => array('job'));
|
||||
$builder->mr = array('rows' => 1, 'extends' => array('mr'));
|
||||
|
||||
$builder->story = array('rows' => 400, 'extends' => array('story'));
|
||||
$builder->childstory = array('rows' => 50, 'extends' => array('story','childstory'));
|
||||
$builder->storyreview = array('rows' => 100, 'extends' => array('storyreview'));
|
||||
$builder->storymodule = array('rows' => 800, 'extends' => array('module','storymodule'));
|
||||
$builder->storymoduleson = array('rows' => 400, 'extends' => array('module','storymoduleson'));
|
||||
$builder->storyplan = array('rows' => 400, 'extends' => array('planstory'));
|
||||
$builder->storystage = array('rows' => 450, 'extends' => array('storystage'));
|
||||
$builder->storyspec = array('rows' => 570, 'extends' => array('storyspec'));
|
||||
$builder->storyestimate = array('rows' => 6, 'extends' => array('storyestimate'));
|
||||
$builder->relation = array('rows' => 12, 'extends' => array('relation'));
|
||||
$builder->task = array('rows' => 600, 'extends' => array('task','task'));
|
||||
$builder->taskmore = array('rows' => 300, 'extends' => array('task','moretask'));
|
||||
$builder->taskspec = array('rows' => 600, 'extends' => array('taskspec'));
|
||||
$builder->taskmodule = array('rows' => 1800, 'extends' => array('module','taskmodule'));
|
||||
$builder->taskmoduleson = array('rows' => 600, 'extends' => array('module','taskmoduleson'));
|
||||
$builder->taskestimate = array('rows' => 600, 'extends' => array('taskestimate'));
|
||||
$builder->taskson = array('rows' => 10, 'extends' => array('task', 'taskson'));
|
||||
$builder->case = array('rows' => 400, 'extends' => array('case'));
|
||||
$builder->libcase = array('rows' => 10, 'extends' => array('case','libcase'));
|
||||
$builder->unitcase = array('rows' => 150, 'extends' => array('case','unitcase'));
|
||||
$builder->casestep = array('rows' => 400, 'extends' => array('casestep'));
|
||||
$builder->casemodule = array('rows' => 100, 'extends' => array('module', 'casemodule'));
|
||||
$builder->casemoduleson = array('rows' => 200, 'extends' => array('module', 'casemoduleson'));
|
||||
$builder->bug = array('rows' => 300, 'extends' => array('bug'));
|
||||
$builder->morebug = array('rows' => 15, 'extends' => array('bug','morebug'));
|
||||
$builder->bugmodule = array('rows' => 100, 'extends' => array('module','bugmodule'));
|
||||
$builder->bugmoduleson = array('rows' => 200, 'extends' => array('module','bugmoduleson'));
|
||||
$builder->feedback = array('rows' => 100, 'extends' => array('feedback'));
|
||||
$builder->feedbackmodule = array('rows' => 100, 'extends' => array('module','feedbackmodule'));
|
||||
$builder->feedbackmoduleson = array('rows' => 200, 'extends' => array('module','feedbackmoduleson'));
|
||||
|
||||
$builder->testtask = array('rows' => 100, 'extends' => array('testtask'));
|
||||
$builder->testresult = array('rows' => 70, 'extends' => array('testresult'));
|
||||
$builder->testrun = array('rows' => 70, 'extends' => array('testrun'));
|
||||
$builder->testreport = array('rows' => 10, 'extends' => array('testreport'));
|
||||
$builder->testsuite = array('rows' => 201, 'extends' => array('testsuite'));
|
||||
$builder->suitecase = array('rows' => 400, 'extends' => array('suitecase'));
|
||||
|
||||
$builder->product = array('rows' => 100, 'extends' => array('product'));
|
||||
$builder->productalone = array('rows' => 20, 'extends' => array('product','productalone'));
|
||||
$builder->productline = array('rows' => 20, 'extends' => array('module', 'productline'));
|
||||
$builder->productplan = array('rows' => 70, 'extends' => array('productplan'));
|
||||
$builder->productsonplan = array('rows' => 10, 'extends' => array('productplan', 'productsonplan'));
|
||||
$builder->branch = array('rows' => 240, 'extends' => array('branch'));
|
||||
$builder->projectproduct = array('rows' => 200, 'extends' => array('projectproduct'));
|
||||
$builder->projectproductalone = array('rows' => 28, 'extends' => array('projectproduct','projectproductalone'));
|
||||
$builder->projectstory = array('rows' => 200, 'extends' => array('projectstory'));
|
||||
$builder->projectcase = array('rows' => 400, 'extends' => array('projectcase'));
|
||||
$builder->executionstory = array('rows' => 180, 'extends' => array('projectstory','executionstory'));
|
||||
|
||||
$builder->kanbanspace = array('rows' => 50, 'extends' => array('kanbanspace'));
|
||||
$builder->kanban = array('rows' => 100, 'extends' => array('kanban'));
|
||||
$builder->kanbanregion = array('rows' => 100, 'extends' => array('kanbanregion','kanbanregion'));
|
||||
$builder->kanbangroup = array('rows' => 100, 'extends' => array('kanbangroup','kanbangroup'));
|
||||
$builder->kanbanlane = array('rows' => 100, 'extends' => array('kanbanlane','kanbanlane'));
|
||||
$builder->kanbancolumn = array('rows' => 400, 'extends' => array('kanbancolumn','kanbancolumn'));
|
||||
$builder->kanbancard = array('rows' => 1000, 'extends' => array('kanbancard','kanbancard'));
|
||||
$builder->kanbancell = array('rows' => 400, 'extends' => array('kanbancell','kanbancell'));
|
||||
|
||||
$builder->kanbanregionproject = array('rows' => 180, 'extends' => array('kanbanregion','kanbanregionproject'));
|
||||
$builder->kanbangroupproject = array('rows' => 540, 'extends' => array('kanbangroup','kanbangroupproject'));
|
||||
$builder->kanbanlaneproject = array('rows' => 540, 'extends' => array('kanbanlane','kanbanlaneproject'));
|
||||
$builder->kanbancolumnproject = array('rows' => 4860, 'extends' => array('kanbancolumn','kanbancolumnproject'));
|
||||
$builder->kanbancellproject = array('rows' => 4860, 'extends' => array('kanbancell','kanbancellproject'));
|
||||
|
||||
|
||||
$builder->team = array('rows' => 400, 'extends' => array('team'));
|
||||
$builder->teamtask = array('rows' => 20, 'extends' => array('team', 'teamtask'));
|
||||
$builder->stakeholder = array('rows' => 1, 'extends' => array('stakeholder'));
|
||||
$builder->expect = array('rows' => 270, 'extends' => array('expect'));
|
||||
$builder->stageson = array('rows' => 30, 'extends' => array('project', 'executionson'));
|
||||
|
||||
$builder->doclib = array('rows' => 910, 'extends' => array('doclib'));
|
||||
$builder->doc = array('rows' => 900, 'extends' => array('doc'));
|
||||
$builder->doccontent = array('rows' => 910, 'extends' => array('doccontent'));
|
||||
$builder->docmodule = array('rows' => 100, 'extends' => array('module','docmodule'));
|
||||
$builder->docmoduleon = array('rows' => 200, 'extends' => array('module','docmoduleson'));
|
||||
|
||||
$builder->build = array('rows' => 20, 'extends' => array('build'));
|
||||
$builder->release = array('rows' => 10, 'extends' => array('release'));
|
||||
$builder->design = array('rows' => 120, 'extends' => array('design'));
|
||||
$builder->designspec = array('rows' => 120, 'extends' => array('designspec'));
|
||||
|
||||
$builder->stage = array('rows' => 6, 'extends' => array('stage'));
|
||||
$builder->webhook = array('rows' => 7, 'extends' => array('webhook'));
|
||||
$builder->entry = array('rows' => 1, 'extends' => array('entry'));
|
||||
$builder->log = array('rows' => 10, 'extends' => array('log'));
|
||||
$builder->weeklyreport = array('rows' => 10, 'extends' => array('weeklyreport'));
|
||||
$builder->metting = array('rows' => 10, 'extends' => array('meeting'));
|
||||
$builder->usertpl = array('rows' => 10, 'extends' => array('usertpl'));
|
||||
|
||||
$builder->pipeline = array('rows' => 5, 'extends' => array('pipeline'));
|
||||
$builder->holiday = array('rows' => 100, 'extends' => array('holiday'));
|
||||
$builder->repo = array('rows' => 1, 'extends' => array('repo'));
|
||||
$builder->job = array('rows' => 2, 'extends' => array('job'));
|
||||
$builder->mr = array('rows' => 1, 'extends' => array('mr'));
|
||||
$builder->oauth = array('rows' => 100, 'extends' => array('oauth'));
|
||||
$builder->notify = array('rows' => 10, 'extends' => array('notify'));
|
||||
//$builder->todo = array('rows' => 2000, 'extends' => array('todo'));
|
||||
//$builder->todocycle = array('rows' => 5, 'extends' => array('todo','todocycle'));
|
||||
//$builder->effort = array('rows' => 100, 'extends' => array('effort'));
|
||||
//$builder->usergroup = array('rows' => 600, 'extends' => array('usergroup'));
|
||||
//$builder->usercontact = array('rows' => 61, 'extends' => array('usercontact'));
|
||||
//$builder->userview = array('rows' => 400, 'extends' => array('userview'));
|
||||
//$builder->action = array('rows' => 100, 'extends' => array('action'));
|
||||
//$builder->history = array('rows' => 100, 'extends' => array('history'));
|
||||
//$builder->file = array('rows' => 100, 'extends' => array('file'));
|
||||
//$builder->score = array('rows' => 100, 'extends' => array('score'));
|
||||
//$builder->extension = array('rows' => 10, 'extends' => array('extension'));
|
||||
//$builder->story = array('rows' => 400, 'extends' => array('story'));
|
||||
//$builder->childstory = array('rows' => 50, 'extends' => array('story','childstory'));
|
||||
//$builder->storyreview = array('rows' => 100, 'extends' => array('storyreview'));
|
||||
//$builder->storymodule = array('rows' => 800, 'extends' => array('module','storymodule'));
|
||||
//$builder->storymoduleson = array('rows' => 400, 'extends' => array('module','storymoduleson'));
|
||||
//$builder->storyplan = array('rows' => 400, 'extends' => array('planstory'));
|
||||
//$builder->storystage = array('rows' => 450, 'extends' => array('storystage'));
|
||||
//$builder->storyspec = array('rows' => 570, 'extends' => array('storyspec'));
|
||||
//$builder->storyestimate = array('rows' => 6, 'extends' => array('storyestimate'));
|
||||
//$builder->relation = array('rows' => 12, 'extends' => array('relation'));
|
||||
//$builder->task = array('rows' => 600, 'extends' => array('task','task'));
|
||||
//$builder->taskmore = array('rows' => 300, 'extends' => array('task','moretask'));
|
||||
//$builder->taskspec = array('rows' => 600, 'extends' => array('taskspec'));
|
||||
//$builder->taskmodule = array('rows' => 1800, 'extends' => array('module','taskmodule'));
|
||||
//$builder->taskmoduleson = array('rows' => 600, 'extends' => array('module','taskmoduleson'));
|
||||
//$builder->taskestimate = array('rows' => 600, 'extends' => array('taskestimate'));
|
||||
//$builder->taskson = array('rows' => 10, 'extends' => array('task', 'taskson'));
|
||||
//$builder->case = array('rows' => 400, 'extends' => array('case'));
|
||||
//$builder->libcase = array('rows' => 10, 'extends' => array('case','libcase'));
|
||||
//$builder->unitcase = array('rows' => 150, 'extends' => array('case','unitcase'));
|
||||
//$builder->casestep = array('rows' => 400, 'extends' => array('casestep'));
|
||||
//$builder->casemodule = array('rows' => 100, 'extends' => array('module', 'casemodule'));
|
||||
//$builder->casemoduleson = array('rows' => 200, 'extends' => array('module', 'casemoduleson'));
|
||||
//$builder->bug = array('rows' => 300, 'extends' => array('bug'));
|
||||
//$builder->morebug = array('rows' => 15, 'extends' => array('bug','morebug'));
|
||||
//$builder->bugmodule = array('rows' => 100, 'extends' => array('module','bugmodule'));
|
||||
//$builder->bugmoduleson = array('rows' => 200, 'extends' => array('module','bugmoduleson'));
|
||||
//$builder->feedback = array('rows' => 100, 'extends' => array('feedback'));
|
||||
//$builder->feedbackmodule = array('rows' => 100, 'extends' => array('module','feedbackmodule'));
|
||||
//$builder->feedbackmoduleson = array('rows' => 200, 'extends' => array('module','feedbackmoduleson'));
|
||||
//
|
||||
//$builder->testtask = array('rows' => 100, 'extends' => array('testtask'));
|
||||
//$builder->testresult = array('rows' => 70, 'extends' => array('testresult'));
|
||||
//$builder->testrun = array('rows' => 70, 'extends' => array('testrun'));
|
||||
//$builder->testreport = array('rows' => 10, 'extends' => array('testreport'));
|
||||
//$builder->testsuite = array('rows' => 201, 'extends' => array('testsuite'));
|
||||
//$builder->suitecase = array('rows' => 400, 'extends' => array('suitecase'));
|
||||
//
|
||||
//$builder->product = array('rows' => 100, 'extends' => array('product'));
|
||||
//$builder->productalone = array('rows' => 20, 'extends' => array('product','productalone'));
|
||||
//$builder->productline = array('rows' => 20, 'extends' => array('module', 'productline'));
|
||||
//$builder->productplan = array('rows' => 70, 'extends' => array('productplan'));
|
||||
//$builder->productsonplan = array('rows' => 10, 'extends' => array('productplan', 'productsonplan'));
|
||||
//$builder->branch = array('rows' => 240, 'extends' => array('branch'));
|
||||
//$builder->projectproduct = array('rows' => 200, 'extends' => array('projectproduct'));
|
||||
//$builder->projectproductalone = array('rows' => 28, 'extends' => array('projectproduct','projectproductalone'));
|
||||
//$builder->projectstory = array('rows' => 200, 'extends' => array('projectstory'));
|
||||
//$builder->projectcase = array('rows' => 400, 'extends' => array('projectcase'));
|
||||
//$builder->executionstory = array('rows' => 180, 'extends' => array('projectstory','executionstory'));
|
||||
//
|
||||
//$builder->kanbanspace = array('rows' => 50, 'extends' => array('kanbanspace'));
|
||||
//$builder->kanban = array('rows' => 100, 'extends' => array('kanban'));
|
||||
//$builder->kanbanregion = array('rows' => 100, 'extends' => array('kanbanregion','kanbanregion'));
|
||||
//$builder->kanbangroup = array('rows' => 100, 'extends' => array('kanbangroup','kanbangroup'));
|
||||
//$builder->kanbanlane = array('rows' => 100, 'extends' => array('kanbanlane','kanbanlane'));
|
||||
//$builder->kanbancolumn = array('rows' => 400, 'extends' => array('kanbancolumn','kanbancolumn'));
|
||||
//$builder->kanbancard = array('rows' => 1000, 'extends' => array('kanbancard','kanbancard'));
|
||||
//$builder->kanbancell = array('rows' => 400, 'extends' => array('kanbancell','kanbancell'));
|
||||
//
|
||||
//$builder->kanbanregionproject = array('rows' => 180, 'extends' => array('kanbanregion','kanbanregionproject'));
|
||||
//$builder->kanbangroupproject = array('rows' => 540, 'extends' => array('kanbangroup','kanbangroupproject'));
|
||||
//$builder->kanbanlaneproject = array('rows' => 540, 'extends' => array('kanbanlane','kanbanlaneproject'));
|
||||
//$builder->kanbancolumnproject = array('rows' => 4860, 'extends' => array('kanbancolumn','kanbancolumnproject'));
|
||||
//$builder->kanbancellproject = array('rows' => 4860, 'extends' => array('kanbancell','kanbancellproject'));
|
||||
//
|
||||
//
|
||||
//$builder->team = array('rows' => 400, 'extends' => array('team'));
|
||||
//$builder->teamtask = array('rows' => 20, 'extends' => array('team', 'teamtask'));
|
||||
//$builder->stakeholder = array('rows' => 1, 'extends' => array('stakeholder'));
|
||||
//$builder->expect = array('rows' => 270, 'extends' => array('expect'));
|
||||
//$builder->stageson = array('rows' => 30, 'extends' => array('project', 'executionson'));
|
||||
//
|
||||
//$builder->doclib = array('rows' => 910, 'extends' => array('doclib'));
|
||||
//$builder->doc = array('rows' => 900, 'extends' => array('doc'));
|
||||
//$builder->doccontent = array('rows' => 910, 'extends' => array('doccontent'));
|
||||
//$builder->docmodule = array('rows' => 100, 'extends' => array('module','docmodule'));
|
||||
//$builder->docmoduleon = array('rows' => 200, 'extends' => array('module','docmoduleson'));
|
||||
//
|
||||
//$builder->build = array('rows' => 20, 'extends' => array('build'));
|
||||
//$builder->release = array('rows' => 10, 'extends' => array('release'));
|
||||
//$builder->design = array('rows' => 120, 'extends' => array('design'));
|
||||
//$builder->designspec = array('rows' => 120, 'extends' => array('designspec'));
|
||||
//
|
||||
//$builder->stage = array('rows' => 6, 'extends' => array('stage'));
|
||||
//$builder->webhook = array('rows' => 7, 'extends' => array('webhook'));
|
||||
//$builder->entry = array('rows' => 1, 'extends' => array('entry'));
|
||||
//$builder->log = array('rows' => 10, 'extends' => array('log'));
|
||||
//$builder->weeklyreport = array('rows' => 10, 'extends' => array('weeklyreport'));
|
||||
//$builder->metting = array('rows' => 10, 'extends' => array('meeting'));
|
||||
//$builder->usertpl = array('rows' => 10, 'extends' => array('usertpl'));
|
||||
//
|
||||
//$builder->holiday = array('rows' => 100, 'extends' => array('holiday'));
|
||||
//$builder->oauth = array('rows' => 100, 'extends' => array('oauth'));
|
||||
//$builder->notify = array('rows' => 10, 'extends' => array('notify'));
|
||||
|
||||
@@ -32,26 +32,26 @@ class Processor
|
||||
{
|
||||
$this->dao->begin();
|
||||
|
||||
$this->initBassicSql();
|
||||
//$this->initBassicSql();
|
||||
$this->initDept();
|
||||
$this->initUser();
|
||||
$this->initProgram();
|
||||
$this->initProduct();
|
||||
$this->initPlan();
|
||||
//$this->initProduct();
|
||||
//$this->initPlan();
|
||||
$this->initProject();
|
||||
$this->initBuild();
|
||||
$this->initTask();
|
||||
//$this->initBuild();
|
||||
//$this->initTask();
|
||||
$this->initExecution();
|
||||
$this->initRelease();
|
||||
$this->initStakeholder();
|
||||
$this->initUserquery();
|
||||
$this->initMessage();
|
||||
$this->initUpdateKanban();
|
||||
$this->initStory();
|
||||
$this->initBug();
|
||||
$this->initTest();
|
||||
$this->initTodo();
|
||||
$this->initSonPlan();
|
||||
//$this->initRelease();
|
||||
//$this->initStakeholder();
|
||||
//$this->initUserquery();
|
||||
//$this->initMessage();
|
||||
//$this->initUpdateKanban();
|
||||
//$this->initStory();
|
||||
//$this->initBug();
|
||||
//$this->initTest();
|
||||
//$this->initTodo();
|
||||
//$this->initSonPlan();
|
||||
|
||||
$this->dao->commit();
|
||||
}
|
||||
|
||||
+11
-1
@@ -46,6 +46,15 @@ function ztfRun($dir)
|
||||
global $config;
|
||||
|
||||
$ztfPath = RUNTIME_ROOT . 'ztf';
|
||||
$modelPath = TEST_BASEHPATH . '/model';
|
||||
|
||||
$runTestPath = '';
|
||||
if(is_array($dir))
|
||||
{
|
||||
foreach($dir as $model) $runTestPath .= " $modelPath/$model";
|
||||
}
|
||||
|
||||
if($runTestPath) $dir = $runTestPath;
|
||||
$command = "$ztfPath $dir";
|
||||
system($command);
|
||||
}
|
||||
@@ -62,7 +71,8 @@ function ztfExtract($dir)
|
||||
global $config;
|
||||
|
||||
$ztfPath = RUNTIME_ROOT . 'ztf';
|
||||
$command = "$ztfPath extract $dir";
|
||||
$testPath = TEST_BASEHPATH;
|
||||
$command = "$ztfPath extract $testPath/$dir";
|
||||
system($command);
|
||||
}
|
||||
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/action.class.php';
|
||||
$db->switchDB();
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
@@ -34,4 +33,3 @@ r($action->createTest($objectTypeList[2], $objectIDList[0], $actionTypeList[2]))
|
||||
r($action->createTest($objectTypeList[3], $objectIDList[0], $actionTypeList[3])) && p('objectType,objectId,action,comment') && e('bug,,closed,'); // 测试创建bug 1 closed动态
|
||||
r($action->createTest($objectTypeList[4], $objectIDList[0], $actionTypeList[4], $comment)) && p('objectType,objectId,action,comment') && e('story,,comments,测试备注'); // 测试创建story 1 comment动态
|
||||
r($action->createTest($objectTypeList[2], $objectIDList[0], $actionTypeList[5], '', '', $actor)) && p() && e('0'); // 测试创建游客 logout动态
|
||||
$db->restoreDB();
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
---
|
||||
title: zt_action
|
||||
author: auto_getbyid
|
||||
version: "1.0"
|
||||
fields:
|
||||
- field: id
|
||||
range: 101-105
|
||||
- field: objectType
|
||||
range: product,story,productplan,release,project
|
||||
- field: action
|
||||
range: common,extra,opened,created,changed
|
||||
- field: comment
|
||||
range: 1-5
|
||||
prefix: 这是一个系统日志测试备注
|
||||
...
|
||||
@@ -0,0 +1,68 @@
|
||||
-- MySQL dump 10.19 Distrib 10.3.34-MariaDB, for debian-linux-gnu (x86_64)
|
||||
--
|
||||
-- Host: 127.0.0.1 Database: zentao1243
|
||||
-- ------------------------------------------------------
|
||||
-- Server version 5.7.36
|
||||
|
||||
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
|
||||
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
|
||||
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
|
||||
/*!40101 SET NAMES utf8mb4 */;
|
||||
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
|
||||
/*!40103 SET TIME_ZONE='+00:00' */;
|
||||
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
|
||||
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
|
||||
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
|
||||
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
|
||||
|
||||
--
|
||||
-- Table structure for table `zt_action`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `zt_action`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
CREATE TABLE `zt_action` (
|
||||
`id` int(9) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`objectType` varchar(30) NOT NULL DEFAULT '',
|
||||
`objectID` mediumint(8) unsigned NOT NULL DEFAULT '0',
|
||||
`product` text NOT NULL,
|
||||
`project` mediumint(8) unsigned NOT NULL,
|
||||
`execution` mediumint(8) unsigned NOT NULL,
|
||||
`actor` varchar(100) NOT NULL DEFAULT '',
|
||||
`action` varchar(80) NOT NULL DEFAULT '',
|
||||
`date` datetime NOT NULL,
|
||||
`comment` text NOT NULL,
|
||||
`extra` text,
|
||||
`read` enum('0','1') NOT NULL DEFAULT '0',
|
||||
`vision` varchar(10) NOT NULL DEFAULT 'rnd',
|
||||
`efforted` tinyint(1) NOT NULL DEFAULT '0',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `date` (`date`),
|
||||
KEY `actor` (`actor`),
|
||||
KEY `project` (`execution`),
|
||||
KEY `objectID` (`objectID`),
|
||||
KEY `action` (`action`)
|
||||
) ENGINE=MyISAM AUTO_INCREMENT=420 DEFAULT CHARSET=utf8;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
|
||||
--
|
||||
-- Dumping data for table `zt_action`
|
||||
--
|
||||
|
||||
LOCK TABLES `zt_action` WRITE;
|
||||
/*!40000 ALTER TABLE `zt_action` DISABLE KEYS */;
|
||||
INSERT INTO `zt_action` VALUES (101,'product',0,'',0,0,'','common','0000-00-00 00:00:00','这是一个系统日志测试备注1',NULL,'0','rnd',0),(102,'story',0,'',0,0,'','extra','0000-00-00 00:00:00','这是一个系统日志测试备注2',NULL,'0','rnd',0),(103,'productplan',0,'',0,0,'','opened','0000-00-00 00:00:00','这是一个系统日志测试备注3',NULL,'0','rnd',0),(104,'release',0,'',0,0,'','created','0000-00-00 00:00:00','这是一个系统日志测试备注4',NULL,'0','rnd',0),(105,'project',0,'',0,0,'','changed','0000-00-00 00:00:00','这是一个系统日志测试备注5',NULL,'0','rnd',0);
|
||||
/*!40000 ALTER TABLE `zt_action` ENABLE KEYS */;
|
||||
UNLOCK TABLES;
|
||||
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
|
||||
|
||||
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
|
||||
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
|
||||
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
|
||||
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
|
||||
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
|
||||
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
|
||||
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
|
||||
|
||||
-- Dump completed on 2022-11-17 8:52:10
|
||||
@@ -2,7 +2,6 @@
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/action.class.php';
|
||||
$db->switchDB();
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
@@ -22,4 +21,3 @@ $action = new actionTest();
|
||||
r($action->deleteByTypeTest('')) && p() && e('1'); // 测试删除object为空动态
|
||||
r($action->deleteByTypeTest('story')) && p() && e('1'); // 测试删除objectType为story的动态
|
||||
r($action->deleteByTypeTest('test')) && p() && e('1'); // 测试删除objectType为不存在的test的动态
|
||||
$db->restoreDB();
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/action.class.php';
|
||||
$db->switchDB();
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
@@ -18,4 +17,3 @@ pid=1
|
||||
$action = new actionTest();
|
||||
|
||||
r($action->hideAllTest()) && p('0:extra;1:extra;2:extra') && e('2;2;2'); // 隐藏回收站全部信息
|
||||
$db->restoreDB();
|
||||
@@ -2,7 +2,6 @@
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/action.class.php';
|
||||
$db->switchDB();
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
@@ -25,4 +24,3 @@ r($action->hideOneTest($actionIDList[0])) && p('extra') && e('2'); // 隐藏acti
|
||||
r($action->hideOneTest($actionIDList[1])) && p('extra') && e('2'); // 隐藏action 87
|
||||
r($action->hideOneTest($actionIDList[2])) && p('extra') && e('2'); // 隐藏已隐藏action 9
|
||||
r($action->hideOneTest($actionIDList[3])) && p('extra') && e('1'); // 隐藏非删除action 1
|
||||
$db->restoreDB();
|
||||
@@ -2,7 +2,6 @@
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/action.class.php';
|
||||
$db->switchDB();
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
@@ -35,4 +34,3 @@ r($action->logHistoryTest($actionIDList[1], $changes2)) && p('0:field,old,new')
|
||||
r($action->logHistoryTest($actionIDList[2], $changes3)) && p('0:field,old,new') && e('name,name1,name2'); // 测试新增actionID 10003 历史记录
|
||||
r($action->logHistoryTest($actionIDList[3], $changes4)) && p('0:field,old,new') && e('code,code1,code2'); // 测试新增actionID 10004 历史记录
|
||||
r($action->logHistoryTest($actionIDList[4], $changes5)) && p('0:field,old,new') && e('assignedTo,test2,test1'); // 测试新增actionID 10005 历史记录
|
||||
$db->restoreDB();
|
||||
@@ -2,7 +2,6 @@
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/action.class.php';
|
||||
$db->switchDB();
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
@@ -29,4 +28,3 @@ r($action->readTest($objectType[1], $objectID[1])) && p('0:objectType,objectID,r
|
||||
r($action->readTest($objectType[2], $objectID[2])) && p('0:objectType,objectID,read') && e('productplan,3,1'); // 测试对action 3 进行阅读操作
|
||||
r($action->readTest($objectType[3], $objectID[3])) && p('0:objectType,objectID,read') && e('release,4,1'); // 测试对action 4 进行阅读操作
|
||||
r($action->readTest($objectType[4], $objectID[4])) && p('0:objectType,objectID,read') && e('project,5,1'); // 测试对action 5 进行阅读操作
|
||||
$db->restoreDB();
|
||||
@@ -2,7 +2,6 @@
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/action.class.php';
|
||||
$db->switchDB();
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
@@ -36,4 +35,3 @@ r($action->saveIndexTest($objectTypeList[1], $objectIdList[0], $actionTypeList[1
|
||||
r($action->saveIndexTest($objectTypeList[1], $objectIdList[1], $actionTypeList[1])) && p() && e('1'); // 测试保存stroyId为1, action为created的数据
|
||||
r($action->saveIndexTest($objectTypeList[1], $objectIdList[2], $actionTypeList[1])) && p() && e('1'); // 测试保存stroyId为100000, action为created的数据
|
||||
r($action->saveIndexTest($objectTypeList[2], $objectIdList[2], $actionTypeList[2])) && p() && e('1'); // 测试保存不存在类型的数据
|
||||
$db->restoreDB();
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/action.class.php';
|
||||
$db->switchDB();
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
@@ -25,4 +24,3 @@ r($action->undeleteTest($actionIDList[0])) && p('extra') && e('0'); // 测试还
|
||||
r($action->undeleteTest($actionIDList[1])) && p('extra') && e('0'); // 测试还原action 87
|
||||
r($action->undeleteTest($actionIDList[2])) && p('extra') && e('0'); // 测试还原action 9
|
||||
r($action->undeleteTest($actionIDList[3])) && p('extra') && e('1'); // 测试还原未删除action 1
|
||||
$db->restoreDB();
|
||||
@@ -2,7 +2,6 @@
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/action.class.php';
|
||||
$db->switchDB();
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
@@ -28,4 +27,3 @@ r($action->updateCommentTest($actionIDList[1], $commentList[1])) && p('comment')
|
||||
r($action->updateCommentTest($actionIDList[2], $commentList[2])) && p('comment') && e('备注3'); // 测试更新action 3的备注
|
||||
r($action->updateCommentTest($actionIDList[3], $commentList[3])) && p('comment') && e('备注4'); // 测试更新action 4的备注
|
||||
r($action->updateCommentTest($actionIDList[4], $commentList[4])) && p('comment') && e('备注5'); // 测试更新action 5的备注
|
||||
$db->restoreDB();
|
||||
@@ -2,7 +2,6 @@
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/api.class.php';
|
||||
$db->switchDB();
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
@@ -53,4 +52,3 @@ r($api->createTest($normalApi)) && p('lib') && e('920');
|
||||
r($api->createTest($emptyLibApi)) && p('lib:0') && e('『所属接口库』不能为空。'); //测试没有lib创建api
|
||||
r($api->createTest($emptyTitleApi)) && p('title:0') && e('『接口名称』不能为空。'); //测试没有title创建api
|
||||
r($api->createTest($emptyPathApi)) && p('path:0') && e('『请求路径』不能为空。'); //测试没有path创建api
|
||||
$db->restoreDB();
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/api.class.php';
|
||||
$db->switchDB();
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
@@ -37,4 +36,3 @@ $normalStruct->addedDate = helper::now();
|
||||
|
||||
r($api->createStructTest($normalStruct)) && p('name') && e('struct'); //创建数据结构
|
||||
r($api->createStructTest($emptyNameStruct)) && p('name:0') && e('『结构名』不能为空。'); //创建没有结构名的数据结构
|
||||
$db->restoreDB();
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/api.class.php';
|
||||
$db->switchDB();
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
@@ -17,4 +16,3 @@ pid=1
|
||||
|
||||
global $tester;
|
||||
r($api->deleteReleaseTest(1, 1)) && p('id') && e('1'); //删除一个发布
|
||||
$db->restoreDB();
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/api.class.php';
|
||||
$db->switchDB();
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
@@ -59,4 +58,3 @@ $editApi = $editData;
|
||||
$apiInfo = $api->createTest($normalApi, false);
|
||||
|
||||
r($api->updateTest($apiInfo->id, $editApi)) && p('0:new') && e('edittestapi'); //修改一个刚创建的api
|
||||
$db->restoreDB();
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/api.class.php';
|
||||
$db->switchDB();
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
@@ -42,4 +41,3 @@ $emptyNameEditStruct['name'] = '';
|
||||
$struct = $api->createStructTest($normalStruct, false);
|
||||
r($api->updateStructTest($struct->id, $normalEditStruct, false)) && p('0:new') && e('editStruct'); //正常的修改
|
||||
r($api->updateStructTest($struct->id, $emptyNameEditStruct)) && p('name:0') && e('『结构名』不能为空。'); //没有名称的修改
|
||||
$db->restoreDB();
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/block.class.php';
|
||||
$db->switchDB();
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
@@ -59,4 +58,3 @@ r($dataList[6]) && p("blockData:module;blockData:type") && e('qa;');
|
||||
r($dataList[7]) && p("blockInited;blockversion") && e('1;2'); // 获取空区块版本
|
||||
r($dataList[7]) && p("blockData") && e('0'); // 获取空区块数据
|
||||
|
||||
$db->restoreDB();
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/block.class.php';
|
||||
$db->switchDB();
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
@@ -55,4 +54,3 @@ r($block->saveTest($changeTitle, $blockID[0], $source, $changeTitle->modules))
|
||||
r($block->saveTest($changeModules, $blockID[0], $source, $changeModules->modules)) && p('title,module,grid,block') && e('我的贡献,my,8,dynamic'); // 测试修改block 模块
|
||||
r($block->saveTest($changeBlock, $blockID[1], $source, $changeBlock->modules, $changeBlock->moduleBlock)) && p('title,module,grid,block') && e('项目统计,projectteam,8,projectteam'); // 测试修改block 区块
|
||||
r($block->saveTest($changeParams, $blockID[2], $source, $changeParams->modules, $changeParams->moduleBlock)) && p('title,module,grid,block') && e('未关闭的产品,statistic,8,statistic'); // 测试修改block 变量
|
||||
$db->restoreDB();
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/branch.class.php';
|
||||
$db->switchDB();
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
@@ -30,4 +29,3 @@ r($branch->activateTest($branchID[2])) && p('id,status') && e('6,active'); //
|
||||
r($branch->activateTest($branchID[3])) && p('id,status') && e('8,active'); // 测试激活分支 8
|
||||
r($branch->activateTest($branchID[4])) && p('id,status') && e('10,active'); // 测试激活分支 10
|
||||
r($branch->activateTest($branchID[5])) && p('id,status') && e('1,active'); // 测试激活分支 1
|
||||
$db->restoreDB();
|
||||
@@ -2,7 +2,6 @@
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/branch.class.php';
|
||||
$db->switchDB();
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
@@ -26,4 +25,3 @@ $branch = new branchTest();
|
||||
r($branch->batchUpdateTest($changeName)) && p('field,old,new') && e('name,分支9,修改分支9的名称'); // 测试批量更新名称
|
||||
r($branch->batchUpdateTest($changeDesc)) && p('field,old,new') && e('desc,,修改分支9的描述'); // 测试批量更新描述
|
||||
r($branch->batchUpdateTest($changeStatus)) && p('field,old,new') && e('status,active,closed'); // 测试批量更新状态
|
||||
$db->restoreDB();
|
||||
@@ -2,7 +2,6 @@
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/branch.class.php';
|
||||
$db->switchDB();
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
@@ -31,4 +30,3 @@ r($branch->closeTest($branchID[3])) && p('id,status') && e('4,closed'); // 测
|
||||
r($branch->closeTest($branchID[4])) && p('id,status') && e('5,closed'); // 测试关闭branchID 5
|
||||
r($branch->closeTest($branchID[5])) && p('id,status') && e('6,closed'); // 测试关闭branchID 6
|
||||
r($branch->closeTest($branchID[0])) && p('id,status') && e('1,closed'); // 测试重复关闭branchID 1
|
||||
$db->restoreDB();
|
||||
@@ -2,7 +2,6 @@
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/branch.class.php';
|
||||
$db->switchDB();
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
@@ -34,4 +33,3 @@ r($branch->createTest($productID, $branch2)) && p('name,desc') && e('新建
|
||||
r($branch->createTest($productID, $repeatName1)) && p() && e('分支名称已存在'); // 测试新建 重名新建分支1
|
||||
r($branch->createTest($productID, $repeatName2)) && p() && e('分支名称已存在'); // 测试新建 重名分支1
|
||||
r($branch->createTest($productID, $emptyName)) && p() && e('『名称』不能为空。'); // 测试新建 名称为空的分支
|
||||
$db->restoreDB();
|
||||
@@ -2,7 +2,6 @@
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/branch.class.php';
|
||||
$db->switchDB();
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
@@ -28,4 +27,3 @@ r($branch->linkBranch4ProjectTest($productID[1])) && p() && e('4'); // 测试关
|
||||
r($branch->linkBranch4ProjectTest($productID[2])) && p() && e('4'); // 测试关联产品 43 的分支到项目
|
||||
r($branch->linkBranch4ProjectTest($productID[3])) && p() && e('4'); // 测试关联产品 44 的分支到项目
|
||||
r($branch->linkBranch4ProjectTest($productID[4])) && p() && e('4'); // 测试关联产品 45 的分支到项目
|
||||
$db->restoreDB();
|
||||
@@ -2,7 +2,6 @@
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/branch.class.php';
|
||||
$db->switchDB();
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
@@ -41,4 +40,3 @@ $branch = new branchTest();
|
||||
r($branch->mergeBranchTest($productID[0], $mergedBranches[0], $mergeBranch1)) && p() && e('2'); // 测试合并分支 1 到 分支 2
|
||||
r($branch->mergeBranchTest($productID[0], $mergedBranches[1], $mergeBranch2)) && p() && e('2'); // 测试合并分支 2 到 新建分支
|
||||
r($branch->mergeBranchTest($productID[1], $mergedBranches[2], $mergeBranch3)) && p() && e('12'); // 测试合并分支 3 4 到 主干
|
||||
$db->restoreDB();
|
||||
@@ -2,7 +2,6 @@
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/branch.class.php';
|
||||
$db->switchDB();
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
@@ -27,4 +26,3 @@ r($branch->setDefaultTest($productIdList[0], $branchIdList[0])) && p()
|
||||
r($branch->setDefaultTest($productIdList[0], $branchIdList[1])) && p('name,default') && e('分支1,1'); // 测试将productID 0, branchID 1的分支设为默认分支
|
||||
r($branch->setDefaultTest($productIdList[1], $branchIdList[0])) && p() && e('主干'); // 测试将productID 41, branchID 0的分支设为默认分支
|
||||
r($branch->setDefaultTest($productIdList[1], $branchIdList[1])) && p('name,default') && e('分支1,1'); // 测试将productID 41, branchID 0的分支设为默认分支
|
||||
$db->restoreDB();
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/branch.class.php';
|
||||
$db->switchDB();
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
@@ -34,4 +33,3 @@ r($branch->sortTest($branches[0], $order)) && p() && e('2,1'); // 测试产品 4
|
||||
r($branch->sortTest($branches[1], $order)) && p() && e('4,3'); // 测试产品 42 order 排序
|
||||
r($branch->sortTest($branches[2], $order)) && p() && e('6,5'); // 测试产品 43 order 排序
|
||||
r($branch->sortTest($branches[3], $order)) && p() && e('8,7'); // 测试产品 44 order 排序
|
||||
$db->restoreDB();
|
||||
@@ -2,7 +2,6 @@
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/branch.class.php';
|
||||
$db->switchDB();
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
@@ -25,4 +24,3 @@ r($branch->unlinkBranch4ProjectTest($productIDList[0])) && p() && e('0'); // 测
|
||||
r($branch->unlinkBranch4ProjectTest($productIDList[1])) && p() && e('0'); // 测试产品 42 转为普通产品接触分支关联
|
||||
r($branch->unlinkBranch4ProjectTest($productIDList[2])) && p() && e('0'); // 测试产品 43 转为普通产品接触分支关联
|
||||
r($branch->unlinkBranch4ProjectTest($productIDList[3])) && p() && e('0'); // 测试产品 44 45 转为普通产品接触分支关联
|
||||
$db->restoreDB();
|
||||
@@ -2,7 +2,6 @@
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/branch.class.php';
|
||||
$db->switchDB();
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
@@ -31,4 +30,3 @@ r($branch->updateTest($changeStatus)) && p('0:field,old,new') && e('status,activ
|
||||
r($branch->updateTest($changeDesc)) && p('0:field,old,new') && e('desc,,修改后的分支1描述'); // 测试修改分支描述
|
||||
r($branch->updateTest($emptyName)) && p('name:0') && e('『名称』不能为空。'); // 测试修改分支名称
|
||||
r($branch->updateTest($repeatName)) && p('name:0') && e('分支名称已存在'); // 测试修改分支名称
|
||||
$db->restoreDB();
|
||||
@@ -2,7 +2,6 @@
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php'; su('admin');
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/bug.class.php';
|
||||
$db->switchDB();
|
||||
|
||||
/**
|
||||
|
||||
@@ -28,4 +27,3 @@ r($bug->activateObject($bugIDList[2])) && p('field,old,new') && e('activatedCoun
|
||||
r($bug->activateObject($bugIDList[3])) && p('field,old,new') && e('activatedCount,0,1'); // 测试激活状态为resolved的bug52
|
||||
r($bug->activateObject($bugIDList[4])) && p('field,old,new') && e('activatedCount,0,1'); // 测试激活状态为closed的bug81
|
||||
r($bug->activateObject($bugIDList[5])) && p('field,old,new') && e('activatedCount,0,1'); // 测试激活状态为closed的bug82
|
||||
$db->restoreDB();
|
||||
@@ -2,7 +2,6 @@
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/bug.class.php';
|
||||
$db->switchDB();
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
@@ -36,4 +35,3 @@ r($bug->assignTest($bugIDlist[2],$bug3)) && p('0:field,old,new') && e('assigned
|
||||
r($bug->assignTest($bugIDlist[3],$bug4)) && p('0:field,old,new') && e('assignedTo,admin,user95'); // 指派bugID为4的bug
|
||||
r($bug->assignTest($bugIDlist[4],$bug51)) && p('0:field,old,new') && e('assignedTo,dev1,user96'); // 指派bugID为51的bug
|
||||
r($bug->assignTest($bugIDlist[5],$bug81)) && p() && e('0'); // 指派人不发生变化的bug
|
||||
$db->restoreDB();
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/bug.class.php';
|
||||
$db->switchDB();
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
@@ -19,4 +18,3 @@ $bugIDList = array('1' => '1', '52' => '53', '82' => '82');
|
||||
|
||||
$bug = new bugTest();
|
||||
r($bug->batchActivateObject($bugIDList)) && p('53:status;82:status') && e('active;active'); // 测试批量激活bug
|
||||
$db->restoreDB();
|
||||
@@ -2,7 +2,6 @@
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/bug.class.php';
|
||||
$db->switchDB();
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
@@ -49,4 +48,3 @@ r($bug->batchChangeBranchTest($bugIDList3, $branchList3[2], $bugIDList3[2])) &&
|
||||
r($bug->batchChangeBranchTest($bugIDList4, $branchList4[0], $bugIDList4[0])) && p() && e('0'); // 修改分支为主干 未发生变化
|
||||
r($bug->batchChangeBranchTest($bugIDList4, $branchList4[1], $bugIDList4[1])) && p('0:field,old,new') && e('branch,0,37'); // 修改分支为分支37
|
||||
r($bug->batchChangeBranchTest($bugIDList4, $branchList4[2], $bugIDList4[2])) && p('0:field,old,new') && e('branch,37,38'); // 修改分支为分支38
|
||||
$db->restoreDB();
|
||||
@@ -2,7 +2,6 @@
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/bug.class.php';
|
||||
$db->switchDB();
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
@@ -70,4 +69,3 @@ r($bug->batchChangeModuleTest($bugIDList4, $moduleList[2], $bugIDList4[0])) && p
|
||||
r($bug->batchChangeModuleTest($bugIDList4, $moduleList[3], $bugIDList4[1])) && p('0:field,old,new') && e('module,9,10'); // 修改bug2 3模块为10
|
||||
r($bug->batchChangeModuleTest($bugIDList4, $moduleList[4], $bugIDList4[0])) && p('0:field,old,new') && e('module,10,11'); // 修改bug2 3模块为11
|
||||
r($bug->batchChangeModuleTest($bugIDList4, $moduleList[4], $bugIDList4[1])) && p() && e('0'); // 修改bug2 3模块为11 未发生变化
|
||||
$db->restoreDB();
|
||||
@@ -2,7 +2,6 @@
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/bug.class.php';
|
||||
$db->switchDB();
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
@@ -46,4 +45,3 @@ r($bug->batchChangePlanTest($bugIDList3, $planList[2], $bugIDList3[2])) && p('0:
|
||||
r($bug->batchChangePlanTest($bugIDList4, $planList[0], $bugIDList4[0])) && p() && e('0'); // 修改计划为0 未发生变化
|
||||
r($bug->batchChangePlanTest($bugIDList4, $planList[1], $bugIDList4[1])) && p('0:field,old,new') && e('plan,0,1'); // 修改计划为计划1
|
||||
r($bug->batchChangePlanTest($bugIDList4, $planList[2], $bugIDList4[2])) && p('0:field,old,new') && e('plan,1,2'); // 修改计划为计划2
|
||||
$db->restoreDB();
|
||||
@@ -2,7 +2,6 @@
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/bug.class.php';
|
||||
$db->switchDB();
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
@@ -23,4 +22,3 @@ $bugIDlist2 = array('2', '7');
|
||||
$bug = new bugTest();
|
||||
r($bug->batchConfirmTest($bugIDlist1)) && p() && e(',1,1,1,1,1'); // 批量确认1 3 4 51 81
|
||||
r($bug->batchConfirmTest($bugIDlist2)) && p() && e(',1,1'); // 批量确认2 7
|
||||
$db->restoreDB();
|
||||
@@ -2,7 +2,6 @@
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/bug.class.php';
|
||||
$db->switchDB();
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
@@ -44,4 +43,3 @@ r($bug->batchCreateObject($productID, $normal_create3)) && p('2:title,openedBu
|
||||
r($bug->batchCreateObject($productID, $normal_create1)) && p() && e('0'); // 测试短时间内重复批量创建bug
|
||||
r($bug->batchCreateObject($productID, $exception_create)) && p('message:0') && e("『影响版本』不能为空。"); // 测试异常创建bug
|
||||
|
||||
$db->restoreDB();
|
||||
@@ -2,7 +2,6 @@
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/bug.class.php';
|
||||
$db->switchDB();
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
@@ -44,4 +43,3 @@ r($bug->batchResolveTest($bugIDList6, $resolutionList[5], $bugIDList6[0])) && p(
|
||||
r($bug->batchResolveTest($bugIDList7, $resolutionList[6], $bugIDList7[0])) && p('0:field,old,new;3:field,old,new') && e('resolution,,willnotfix;status,active,resolved'); // 解决bug19 20 21,解决方式为willnotfix
|
||||
r($bug->batchResolveTest($bugIDList8, $resolutionList[7], $bugIDList8[0])) && p('0:field,old,new;3:field,old,new') && e('resolution,,tostory;status,active,resolved'); // 解决bug22 23 24,解决方式为tostory
|
||||
r($bug->batchResolveTest($bugIDList8, $resolutionList[7], $bugIDList8[0])) && p('0:field,old,new;3:field,old,new') && e('0'); // 解决bug状态为resolve的bug
|
||||
$db->restoreDB();
|
||||
@@ -2,7 +2,6 @@
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/bug.class.php';
|
||||
$db->switchDB();
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
@@ -26,4 +25,3 @@ $bug = new bugTest();
|
||||
r($bug->batchUpdateObject($bugIDList, $title[$bugIDList[0]], $type[$bugIDList[0]], $bugIDList[0])) && p('0:field,old,new;1:field,old,new') && e('type,codeerror,config;title,BUG1,批量修改bug一'); // 测试批量修改bug1
|
||||
r($bug->batchUpdateObject($bugIDList, $title[$bugIDList[1]], $type[$bugIDList[1]], $bugIDList[1])) && p('0:field,old,new;1:field,old,new') && e('type,config,install;title,BUG2,批量修改bug二'); // 测试批量修改bug2
|
||||
r($bug->batchUpdateObject($bugIDList, $title[$bugIDList[2]], $type[$bugIDList[2]], $bugIDList[2])) && p('0:field,old,new;1:field,old,new') && e('type,install,security;title,BUG3,批量修改bug三'); // 测试批量修改bug3
|
||||
$db->restoreDB();
|
||||
@@ -2,7 +2,6 @@
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php'; su('admin');
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/bug.class.php';
|
||||
$db->switchDB();
|
||||
|
||||
/**
|
||||
|
||||
@@ -28,4 +27,3 @@ r($bug->closeObject($bugIDList[2])) && p('0:field,old,new;1:field,old,new') && e
|
||||
r($bug->closeObject($bugIDList[3])) && p('0:field,old,new;1:field,old,new') && e('assignedTo,dev1,closed;status,resolved,closed'); // 测试关闭状态为resolved的bug52
|
||||
r($bug->closeObject($bugIDList[4])) && p('0:field,old,new;1:field,old,new') && e('assignedTo,dev1,closed;status,active,closed'); // 测试关闭状态为closed的bug81
|
||||
r($bug->closeObject($bugIDList[5])) && p('0:field,old,new;1:field,old,new') && e('assignedTo,dev1,closed;status,active,closed'); // 测试关闭状态为closed的bug82
|
||||
$db->restoreDB();
|
||||
@@ -2,7 +2,6 @@
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/bug.class.php';
|
||||
$db->switchDB();
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
@@ -33,4 +32,3 @@ r($bug->confirmTest($bugIDlist[1],$bug3)) && p('0:field,old,new;1:field,old,new'
|
||||
r($bug->confirmTest($bugIDlist[2],$bug4)) && p('0:field,old,new') && e('assignedTo,admin,user95'); // 确认已确认的bug
|
||||
r($bug->confirmTest($bugIDlist[3],$bug5)) && p('0:field,old,new;1:field,old,new') && e('status,resolved,active;pri,3,2'); // 确认优先级变化的bug
|
||||
r($bug->confirmTest($bugIDlist[4],$bug8)) && p('0:field,old,new') && e('status,closed,active'); // 确认bug
|
||||
$db->restoreDB();
|
||||
@@ -2,7 +2,6 @@
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/bug.class.php';
|
||||
$db->switchDB();
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
@@ -53,4 +52,3 @@ r($bug->createObject($b_notitle)) && p('title:0') && e('『Bug标题
|
||||
r($bug->createObject($b_nobuild)) && p('openedBuild:0') && e('『影响版本』不能为空。'); // 测试不输入影响版本创建bug
|
||||
r($bug->createObject($b_assign)) && p('assignedTo') && e('user92'); // 测试指派人bug
|
||||
|
||||
$db->restoreDB();
|
||||
@@ -2,7 +2,6 @@
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/bug.class.php';
|
||||
$db->switchDB();
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
@@ -50,4 +49,3 @@ r($bug->createBugFromGitlabIssueTest($bug4, $executionID)) && p('severity')
|
||||
r($bug->createBugFromGitlabIssueTest($bug5, $executionID)) && p('title:0') && e('『Bug标题』不能为空。'); // 测试创建没有标题 来源于gitlab issue的异常bug
|
||||
r($bug->createBugFromGitlabIssueTest($bug1, $executionID)) && p('task') && e('0'); // 测试短时间内重复创建来源于gitlab issue的bug
|
||||
|
||||
$db->restoreDB();
|
||||
@@ -2,7 +2,6 @@
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/bug.class.php';
|
||||
$db->switchDB();
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
@@ -33,4 +32,3 @@ r($bug->linkBugToBuildTest($bugIDList2, $buildList[1])) && p('bugs') && e('3,4'
|
||||
r($bug->linkBugToBuildTest($bugIDList3, $buildList[2])) && p('bugs') && e('5,6'); // 把bug 5 6关联到build 5
|
||||
r($bug->linkBugToBuildTest($bugIDList4, $buildList[0])) && p('bugs') && e('1,2,7,8'); // 把bug 5 6关联到build 1
|
||||
r($bug->linkBugToBuildTest($bugIDList5, $buildList[0])) && p('bugs') && e('1,2,7,8,9,10'); // 把bug 5 6关联到build 1
|
||||
$db->restoreDB();
|
||||
@@ -2,7 +2,6 @@
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/bug.class.php';
|
||||
$db->switchDB();
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
@@ -47,4 +46,3 @@ r($bug->resolveTest($bugIDList[4],$bug5)) && p('0:field,old,new;3:field,old,n
|
||||
r($bug->resolveTest($bugIDList[5],$bug6)) && p('0:field,old,new;3:field,old,new') && e('resolvedBuild,,trunk;resolution,,postponed'); // 解决原因为延期处理的bug
|
||||
r($bug->resolveTest($bugIDList[6],$bug7)) && p('0:field,old,new;3:field,old,new') && e('resolvedBuild,,trunk;resolution,,willnotfix'); // 解决原因为不予解决的bug
|
||||
r($bug->resolveTest($bugIDList[7],$bug51)) && p('0:field,old,new;3:field,old,new') && e('resolvedBuild,,trunk;confirmed,0,1'); // 解决已解决的bug
|
||||
$db->restoreDB();
|
||||
@@ -2,7 +2,6 @@
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php'; su('admin');
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/bug.class.php';
|
||||
$db->switchDB();
|
||||
|
||||
/**
|
||||
|
||||
@@ -32,4 +31,3 @@ r($bug->updateObject($projectIdList[0], $t_uptype)) && p('0:field,old,new')
|
||||
r($bug->updateObject($projectIdList[0], $t_typetitle)) && p('0:field,old,new;1:field,old,new') && e('title,john,jack;type,config,install'); // 测试更新bug名称和类型
|
||||
r($bug->updateObject($projectIdList[0], $t_untitle)) && p() && e('没有数据更新'); // 测试不更改bug名称
|
||||
r($bug->updateObject($projectIdList[0], $t_untype)) && p() && e('没有数据更新'); // 测试不更改bug类型
|
||||
$db->restoreDB();
|
||||
@@ -2,7 +2,6 @@
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/build.class.php';
|
||||
$db->switchDB();
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
@@ -24,4 +23,3 @@ $build = new buildTest();
|
||||
r($build->batchUnlinkBugTest($buildIDList[0],$bugs)) && p('1:bugs,project') && e(',11');//批量解除项目版本bug
|
||||
r($build->batchUnlinkBugTest($buildIDList[1],$bugs)) && p('11:bugs,execution') && e(',101');//批量解除执行版本bug
|
||||
|
||||
$db->restoreDB();
|
||||
@@ -2,7 +2,6 @@
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/build.class.php';
|
||||
$db->switchDB();
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
@@ -23,4 +22,3 @@ $build = new buildTest();
|
||||
r($build->batchUnlinkStoryTest($buildIDList[0],$stories)) && p('1:stories,project') && e(',11'); //批量解除项目版本需求
|
||||
r($build->batchUnlinkStoryTest($buildIDList[1],$stories)) && p('11:stories,execution') && e(',101'); //批量解除执行版本需求
|
||||
|
||||
$db->restoreDB();
|
||||
@@ -2,7 +2,6 @@
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/build.class.php';
|
||||
$db->switchDB();
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
@@ -43,4 +42,3 @@ r($build->createTest($executionIDList[0], $noName)) && p('name:0') &
|
||||
r($build->createTest($executionIDList[0], $noProduct)) && p('product:0') && e('『产品』不能为空。'); //产品为空测试
|
||||
r($build->createTest($executionIDList[0], $noBuilder)) && p('builder:0') && e('『构建者』不能为空。'); //构建者为空测试
|
||||
|
||||
$db->restoreDB();
|
||||
@@ -2,7 +2,6 @@
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/build.class.php';
|
||||
$db->switchDB();
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
@@ -30,4 +29,3 @@ r($build->linkBugTest($buildIDList[0], $nomalBuglink)) && p('1:bugs,project')
|
||||
r($build->linkBugTest($buildIDList[1], $nomalBuglink)) && p('11:bugs,execution') && e(',311,301,101');//执行版本链接bug
|
||||
r($build->linkBugTest($buildIDList[0], $noBuglink)) && p('1:bugs') && e(',311,301,'); //不传bugID
|
||||
//
|
||||
$db->restoreDB();
|
||||
@@ -2,7 +2,6 @@
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/build.class.php';
|
||||
$db->switchDB();
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
@@ -28,4 +27,3 @@ r($build->linkStoryTest($buildIDList[0], $nomalStorylink)) && p('1:stories,proje
|
||||
r($build->linkStoryTest($buildIDList[1], $nomalStorylink)) && p('11:stories,execution') && e(',2,4,101');
|
||||
r($build->linkStoryTest($buildIDList[0], $noStorylink)) && p('1:stories') && e('');
|
||||
|
||||
$db->restoreDB();
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/build.class.php';
|
||||
$db->switchDB();
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
@@ -24,4 +23,3 @@ $build = new buildTest();
|
||||
r($build->unlinkBugTest($buildIDList[0],$bugs,$bugs[0])) && p('1:bugs,project') && e(',311,11'); //项目版本解除bug
|
||||
r($build->unlinkBugTest($buildIDList[1],$bugs,$bugs[1])) && p('11:bugs,execution') && e(',301,101'); //执行版本解除bug
|
||||
|
||||
$db->restoreDB();
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/build.class.php';
|
||||
$db->switchDB();
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
@@ -23,4 +22,3 @@ $build = new buildTest();
|
||||
r($build->unlinkStoryTest($buildIDList[0],$stories,$stories[0])) && p('1:stories,project') && e(',4,11'); //解除项目版本需求
|
||||
r($build->unlinkStoryTest($buildIDList[1],$stories,$stories[1])) && p('11:stories,execution') && e(',2,101'); //解除执行版本需求
|
||||
|
||||
$db->restoreDB();
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/build.class.php';
|
||||
$db->switchDB();
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
@@ -35,4 +34,3 @@ r($build->updateTest($buildIDList[0], $pathBuild)) && p('1:field,old,new')
|
||||
r($build->updateTest($buildIDList[0], $noName)) && p('name:0') && e('『名称编号』不能为空。'); //名称为空测试
|
||||
r($build->updateTest($buildIDList[0], $noBuilder)) && p('builder:0') && e('『构建者』不能为空。'); //构建者为空测试
|
||||
|
||||
$db->restoreDB();
|
||||
@@ -2,7 +2,6 @@
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/build.class.php';
|
||||
$db->switchDB();
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
@@ -37,4 +36,3 @@ r($executionLink) && p('311:resolvedBuild') && e('1'); //执行版本修
|
||||
r($noResolvedByLink) && p('302:resolvedBy') && e(''); //不设置解决人
|
||||
r($noBugs) && p() && e('0'); //不设置bugID
|
||||
|
||||
$db->restoreDB();
|
||||
@@ -2,7 +2,6 @@
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/caselib.class.php';
|
||||
$db->switchDB();
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
@@ -37,4 +36,3 @@ r($total) && p() && e('12'); // 添加两
|
||||
r($cases) && p('561:title,type') && e('测试导入添加1,performance'); // 添加数据之后查询新加用例的名称,用例类型
|
||||
r($cases) && p('562:title,type') && e('测试导入添加2,unit'); // 添加数据之后查询新加用例的名称,用例类型
|
||||
|
||||
$db->restoreDB();
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/caselib.class.php';
|
||||
$db->switchDB();
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
@@ -38,4 +37,3 @@ r($result2) && p('name') && e('测试用例库名称'); //测试添加的
|
||||
r($result2) && p('desc') && e('测试用例库描述'); //测试添加的描述信息
|
||||
r($result3) && p('name:0') && e('『名称』已经有『测试用例库名称』这条记录了。如果您确定该记录已删除,请到后台-系统-数据-回收站还原。'); //测试名称是空时候添加
|
||||
|
||||
$db->restoreDB();
|
||||
@@ -2,7 +2,6 @@
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/caselib.class.php';
|
||||
$db->switchDB();
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
@@ -42,4 +41,3 @@ r($total) && p() && e('12'); //添加
|
||||
r($cases) && p('561:title,keywords') && e('测试导入添加1,keywords1'); //添加数据之后查询新加用例的名称,关键字
|
||||
r($cases) && p('562:title,keywords') && e('测试导入添加2,keywords2'); //添加数据之后查询新加用例的名称,关键字
|
||||
|
||||
$db->restoreDB();
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/caselib.class.php';
|
||||
$db->switchDB();
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
@@ -20,4 +19,3 @@ $lib = $caselib->deleteTest(201);
|
||||
|
||||
r($lib) && p('deleted') && e('1'); //测试删除之后deleted值是否为1
|
||||
|
||||
$db->restoreDB();
|
||||
@@ -2,7 +2,6 @@
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/caselib.class.php';
|
||||
$db->switchDB();
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
@@ -31,4 +30,3 @@ r($lib1) && p('name:0') && e('『name』不能为空。'); //测试更新名称
|
||||
r($lib2) && p('name') && e('测试修改名称'); //测试更新之后名称信息
|
||||
r($lib2) && p('desc') && e('测试修改描述'); //测试更新之后描述信息
|
||||
|
||||
$db->restoreDB();
|
||||
@@ -2,7 +2,6 @@
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/company.class.php';
|
||||
$db->switchDB();
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
@@ -40,4 +39,3 @@ r($company->updateObject($companyID, $changeWebsite)) && p('website') && e('ww
|
||||
r($company->updateObject($companyID, $changeBackyard)) && p('backyard') && e('https://'); // 修改公司网址前缀
|
||||
r($company->updateObject($companyID, $changeGuest)) && p('guest') && e('1'); // 修改公司游客访问控制
|
||||
|
||||
$db->restoreDB();
|
||||
@@ -2,7 +2,6 @@
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/compile.class.php';
|
||||
$db->switchDB();
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
@@ -19,4 +18,3 @@ pid=1
|
||||
$compile = new compileTest();
|
||||
r($compile->createByJobTest('1', '123')) && p('0:name') && e('这是一个Job1'); //检查是否可以拿到通过id为1的job数据创建的compile
|
||||
r($compile->createByJobTest('3', '123')) && p('0:name') && e('0'); //检查是否可以拿到通过不存在的job数据创建的compile
|
||||
$db->restoreDB();
|
||||
@@ -2,7 +2,6 @@
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/cron.class.php';
|
||||
$db->switchDB();
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
@@ -25,4 +24,3 @@ $cronInfo = $tester->cron->getById($cronID);
|
||||
r($result) && p() && e('1'); //更新定时任务状态之后查看返回值
|
||||
r($cronInfo) && p('status') && e('stop'); //更新定时任务状态之后查看状态值
|
||||
|
||||
$db->restoreDB();
|
||||
@@ -2,7 +2,6 @@
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/cron.class.php';
|
||||
$db->switchDB();
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
@@ -24,4 +23,3 @@ $cronInfo = $tester->cron->getById($cronID);
|
||||
r($result) && p() && e('1'); // 更新之后查看返回值是否是1
|
||||
r($cronInfo) && p('status') && e('running'); // 更新之后查看状态值是否是running
|
||||
|
||||
$db->restoreDB();
|
||||
@@ -2,7 +2,6 @@
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/cron.class.php';
|
||||
$db->switchDB();
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
@@ -36,4 +35,3 @@ r($result1[0]) && p() && e('『命令』不能为空'); //命
|
||||
r($result2) && p('command,type') && e('test comand,zentao');//添加之后对比添加数据信息
|
||||
r($result2) && p('m,h,dom,mon,dow') && e('55,23,30,12,6'); //添加之后对比添加数据信息
|
||||
|
||||
$db->restoreDB();
|
||||
@@ -2,7 +2,6 @@
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/cron.class.php';
|
||||
$db->switchDB();
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
@@ -30,4 +29,3 @@ $tester->dao->update(TABLE_CONFIG)->set('id')->eq($id)->where( 'id')->eq($config
|
||||
r($config1) && p('value') && e('stop'); //修改配置项之后查看更新信息
|
||||
r($config2) && p('value') && e('run'); //修改配置项之后查看更新信息
|
||||
|
||||
$db->restoreDB();
|
||||
@@ -2,7 +2,6 @@
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/cron.class.php';
|
||||
$db->switchDB();
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
@@ -23,4 +22,3 @@ $parse = $cron->parseCronTest($crons);
|
||||
r($parse) && p('19:command') && e('moduleName=measurement&methodName=execCrontabQueue');//获取id为19的定时任务的定时信息和命令信息
|
||||
r($parse) && p('15:command') && e('moduleName=execution&methodName=computeTaskEffort'); //获取id为15的定时任务的定时信息和命令信息
|
||||
|
||||
$db->restoreDB();
|
||||
@@ -2,7 +2,6 @@
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/cron.class.php';
|
||||
$db->switchDB();
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
@@ -37,4 +36,3 @@ r($result1[0]) && p() && e('『命令』不能为空'); //命
|
||||
r($result2) && p('command,type') && e('test comand,zentao');//更新之后对比更新数据信息
|
||||
r($result2) && p('m,h,dom,mon,dow') && e('55,23,30,12,6'); //更新之后对比更新数据信息
|
||||
|
||||
$db->restoreDB();
|
||||
@@ -2,7 +2,6 @@
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/custom.class.php';
|
||||
$db->switchDB();
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
@@ -35,4 +34,3 @@ r($custom->deleteItemsTest($paramString[2])) && p() && e('0'); //测试参数
|
||||
r($custom->deleteItemsTest($paramString[3])) && p() && e('0'); //测试参数为lang,key,section
|
||||
r($custom->deleteItemsTest($paramString[4])) && p() && e('0'); //测试参数为lang,key,section,module
|
||||
r($custom->deleteItemsTest($paramString[5])) && p() && e('0'); //测试参数为lang,key,section,module,vision
|
||||
$db->restoreDB();
|
||||
@@ -2,7 +2,6 @@
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/custom.class.php';
|
||||
$db->switchDB();
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
@@ -48,4 +47,3 @@ r($custom->prepareSQLTest($paramString[2], $method[1])) && p() &&
|
||||
r($custom->prepareSQLTest($paramString[3], $method[1])) && p() && e('0'); //测试method为delete,paramString参数为lang,key,section
|
||||
r($custom->prepareSQLTest($paramString[4], $method[1])) && p() && e('0'); //测试method为delete,paramString参数为lang,key,section,module
|
||||
r($custom->prepareSQLTest($paramString[5], $method[1])) && p() && e('0'); //测试method为delete,paramString参数为lang,key,section,module,vision
|
||||
$db->restoreDB();
|
||||
@@ -2,7 +2,6 @@
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/custom.class.php';
|
||||
$db->switchDB();
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
@@ -147,4 +146,3 @@ r($custom->saveRequiredFieldsTest($moduleName[5], $requiredFields['testcaseField
|
||||
r($custom->saveRequiredFieldsTest($moduleName[5], $requiredFields['testcaseFields6'], $fieldsType[0])) && p('value') && e('stage,story,title,type'); //测试moduleName为testcase,requiredFields中的create,edit各存在多个值
|
||||
r($custom->saveRequiredFieldsTest($moduleName[3], $requiredFields['taskFields6'], $fieldsType[2])) && p('value') && e('comment,realStarted,finishedDate,currentConsumed');//测试moduleName为task,requiredFields中的finish存在一个值
|
||||
|
||||
$db->restoreDB();
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/custom.class.php';
|
||||
$db->switchDB();
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
@@ -23,4 +22,3 @@ $custom = new customTest();
|
||||
r($custom->setConceptTest($sprintConcept[0])) && p('id') && e('45'); //测试sprintConcept值为0,编辑为产品 - 项目
|
||||
r($custom->setConceptTest($sprintConcept[1])) && p('id') && e('45'); //测试sprintConcept值为1,编辑为产品 - 迭代
|
||||
r($custom->setConceptTest($sprintConcept[2])) && p('id') && e('45'); //测试sprintConcept值为2,编辑为产品 - 冲刺
|
||||
$db->restoreDB();
|
||||
@@ -2,7 +2,6 @@
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/custom.class.php';
|
||||
$db->switchDB();
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
@@ -34,4 +33,3 @@ r($custom->setItemTest($path[3], $value[0])) && p('lang,module,key,value') && e(
|
||||
r($custom->setItemTest($path[3], $value[1])) && p('lang,module,key,value') && e('zh-cn,story,feature,'); //测试path中.出现的个数为3,value为空,能保存
|
||||
r($custom->setItemTest($path[4], $value[0])) && p('lang,module,key,value') && e('zh-cn,story,feature,功能'); //测试path中.出现的个数为4,value正常存在,能保存
|
||||
r($custom->setItemTest($path[4], $value[1])) && p('lang,module,key,value') && e('zh-cn,story,feature,'); //测试path中.出现的个数为5,value为空,能保存
|
||||
$db->restoreDB();
|
||||
@@ -2,7 +2,6 @@
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/custom.class.php';
|
||||
$db->switchDB();
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
@@ -27,4 +26,3 @@ $custom = new customTest();
|
||||
r($custom->setURAndSRTest($SRName[0])) && p() && e('1'); //测试SRName值为空
|
||||
r($custom->setURAndSRTest($SRName[1])) && p() && e('1'); //测试SRName值有一个
|
||||
r($custom->setURAndSRTest($SRName[2])) && p() && e('1'); //测试SRName值有多个
|
||||
$db->restoreDB();
|
||||
@@ -2,7 +2,6 @@
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/custom.class.php';
|
||||
$db->switchDB();
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
@@ -31,4 +30,3 @@ r($custom->updateURAndSRTest($key[1], $SRName[0])) && p() && e('0');
|
||||
r($custom->updateURAndSRTest($key[1], $SRName[1])) && p() && e('0'); //测试修改key为0,SRName值更改为软件需求
|
||||
r($custom->updateURAndSRTest($key[1], $SRName[2])) && p() && e('0'); //测试修改key为0,SRName值更改为软件需求1
|
||||
|
||||
$db->restoreDB();
|
||||
@@ -0,0 +1,30 @@
|
||||
---
|
||||
title: zt_project
|
||||
author: auto_getbyid
|
||||
version: "1.0"
|
||||
fields:
|
||||
- field: id
|
||||
range: 1-5
|
||||
- field: name
|
||||
range: 项目1,项目2,迭代1,迭代2,迭代3
|
||||
- field: type
|
||||
range: project{2},sprint,waterfall,kanban
|
||||
- field: status
|
||||
range: doing{3},closed,doing
|
||||
- field: parent
|
||||
range: 0,0,1,1,2
|
||||
- field: grade
|
||||
range: 2{2},1{3}
|
||||
- field: path
|
||||
range: 1,2,`1,3`,`1,4`,`2,5`
|
||||
prefix: ','
|
||||
postfix: ','
|
||||
- field: begin
|
||||
range: 20230102 000000:0
|
||||
type: timestamp
|
||||
format: YY/MM/DD
|
||||
- field: end
|
||||
range: 20230212 000000:0
|
||||
type: timestamp
|
||||
format: YY/MM/DD
|
||||
...
|
||||
@@ -0,0 +1,113 @@
|
||||
-- MySQL dump 10.19 Distrib 10.3.38-MariaDB, for debian-linux-gnu (x86_64)
|
||||
--
|
||||
-- Host: 127.0.0.1 Database: zentaopms01
|
||||
-- ------------------------------------------------------
|
||||
-- Server version 10.3.37-MariaDB-0ubuntu0.20.04.1
|
||||
|
||||
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
|
||||
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
|
||||
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
|
||||
/*!40101 SET NAMES utf8mb4 */;
|
||||
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
|
||||
/*!40103 SET TIME_ZONE='+00:00' */;
|
||||
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
|
||||
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
|
||||
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
|
||||
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
|
||||
|
||||
--
|
||||
-- Table structure for table `zt_project`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `zt_project`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
CREATE TABLE `zt_project` (
|
||||
`id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`project` mediumint(8) NOT NULL DEFAULT 0,
|
||||
`model` char(30) NOT NULL,
|
||||
`type` char(30) NOT NULL DEFAULT 'sprint',
|
||||
`lifetime` char(30) NOT NULL DEFAULT '',
|
||||
`budget` varchar(30) NOT NULL DEFAULT '0',
|
||||
`budgetUnit` char(30) NOT NULL DEFAULT 'CNY',
|
||||
`attribute` varchar(30) NOT NULL DEFAULT '',
|
||||
`percent` float unsigned NOT NULL DEFAULT 0,
|
||||
`milestone` enum('0','1') NOT NULL DEFAULT '0',
|
||||
`output` text NOT NULL,
|
||||
`auth` char(30) NOT NULL,
|
||||
`parent` mediumint(8) unsigned NOT NULL DEFAULT 0,
|
||||
`path` varchar(255) NOT NULL,
|
||||
`grade` tinyint(3) unsigned NOT NULL,
|
||||
`name` varchar(90) NOT NULL,
|
||||
`code` varchar(45) NOT NULL,
|
||||
`hasProduct` tinyint(1) unsigned NOT NULL DEFAULT 1,
|
||||
`begin` date NOT NULL,
|
||||
`end` date NOT NULL,
|
||||
`realBegan` date NOT NULL,
|
||||
`realEnd` date NOT NULL,
|
||||
`days` smallint(5) unsigned NOT NULL,
|
||||
`status` varchar(10) NOT NULL,
|
||||
`subStatus` varchar(30) NOT NULL DEFAULT '',
|
||||
`pri` enum('1','2','3','4') NOT NULL DEFAULT '1',
|
||||
`desc` mediumtext NOT NULL,
|
||||
`version` smallint(6) NOT NULL,
|
||||
`parentVersion` smallint(6) NOT NULL,
|
||||
`planDuration` int(11) NOT NULL,
|
||||
`realDuration` int(11) NOT NULL,
|
||||
`openedBy` varchar(30) NOT NULL DEFAULT '',
|
||||
`openedDate` datetime NOT NULL,
|
||||
`openedVersion` varchar(20) NOT NULL,
|
||||
`lastEditedBy` varchar(30) NOT NULL DEFAULT '',
|
||||
`lastEditedDate` datetime NOT NULL,
|
||||
`closedBy` varchar(30) NOT NULL DEFAULT '',
|
||||
`closedDate` datetime NOT NULL,
|
||||
`canceledBy` varchar(30) NOT NULL DEFAULT '',
|
||||
`canceledDate` datetime NOT NULL,
|
||||
`suspendedDate` date NOT NULL,
|
||||
`PO` varchar(30) NOT NULL DEFAULT '',
|
||||
`PM` varchar(30) NOT NULL DEFAULT '',
|
||||
`QD` varchar(30) NOT NULL DEFAULT '',
|
||||
`RD` varchar(30) NOT NULL DEFAULT '',
|
||||
`team` varchar(90) NOT NULL,
|
||||
`acl` char(30) NOT NULL DEFAULT 'open',
|
||||
`whitelist` text NOT NULL,
|
||||
`order` mediumint(8) unsigned NOT NULL,
|
||||
`vision` varchar(10) NOT NULL DEFAULT 'rnd',
|
||||
`division` enum('0','1') NOT NULL DEFAULT '1',
|
||||
`displayCards` smallint(6) NOT NULL DEFAULT 0,
|
||||
`fluidBoard` enum('0','1') NOT NULL DEFAULT '0',
|
||||
`multiple` enum('0','1') NOT NULL DEFAULT '1',
|
||||
`colWidth` smallint(4) NOT NULL DEFAULT 264,
|
||||
`minColWidth` smallint(4) NOT NULL DEFAULT 200,
|
||||
`maxColWidth` smallint(4) NOT NULL DEFAULT 384,
|
||||
`deleted` enum('0','1') NOT NULL DEFAULT '0',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `parent` (`parent`),
|
||||
KEY `begin` (`begin`),
|
||||
KEY `end` (`end`),
|
||||
KEY `status` (`status`),
|
||||
KEY `acl` (`acl`),
|
||||
KEY `order` (`order`)
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=751 DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
|
||||
--
|
||||
-- Dumping data for table `zt_project`
|
||||
--
|
||||
|
||||
LOCK TABLES `zt_project` WRITE;
|
||||
/*!40000 ALTER TABLE `zt_project` DISABLE KEYS */;
|
||||
INSERT INTO `zt_project` VALUES (1,0,'','project','','0','CNY','',0,'0','','',0,',1,',2,'项目1','',1,'2023-01-02','2023-02-12','0000-00-00','0000-00-00',0,'doing','','1','',0,0,0,0,'','0000-00-00 00:00:00','','','0000-00-00 00:00:00','','0000-00-00 00:00:00','','0000-00-00 00:00:00','0000-00-00','','','','','','open','',0,'rnd','1',0,'0','1',264,200,384,'0'),(2,0,'','project','','0','CNY','',0,'0','','',0,',2,',2,'项目2','',1,'2023-01-02','2023-02-12','0000-00-00','0000-00-00',0,'doing','','1','',0,0,0,0,'','0000-00-00 00:00:00','','','0000-00-00 00:00:00','','0000-00-00 00:00:00','','0000-00-00 00:00:00','0000-00-00','','','','','','open','',0,'rnd','1',0,'0','1',264,200,384,'0'),(3,0,'','sprint','','0','CNY','',0,'0','','',1,',1,3,',1,'迭代1','',1,'2023-01-02','2023-02-12','0000-00-00','0000-00-00',0,'doing','','1','',0,0,0,0,'','0000-00-00 00:00:00','','','0000-00-00 00:00:00','','0000-00-00 00:00:00','','0000-00-00 00:00:00','0000-00-00','','','','','','open','',0,'rnd','1',0,'0','1',264,200,384,'0'),(4,0,'','waterfall','','0','CNY','',0,'0','','',1,',1,4,',1,'迭代2','',1,'2023-01-02','2023-02-12','0000-00-00','0000-00-00',0,'closed','','1','',0,0,0,0,'','0000-00-00 00:00:00','','','0000-00-00 00:00:00','','0000-00-00 00:00:00','','0000-00-00 00:00:00','0000-00-00','','','','','','open','',0,'rnd','1',0,'0','1',264,200,384,'0'),(5,0,'','kanban','','0','CNY','',0,'0','','',2,',2,5,',1,'迭代3','',1,'2023-01-02','2023-02-12','0000-00-00','0000-00-00',0,'doing','','1','',0,0,0,0,'','0000-00-00 00:00:00','','','0000-00-00 00:00:00','','0000-00-00 00:00:00','','0000-00-00 00:00:00','0000-00-00','','','','','','open','',0,'rnd','1',0,'0','1',264,200,384,'0');
|
||||
/*!40000 ALTER TABLE `zt_project` ENABLE KEYS */;
|
||||
UNLOCK TABLES;
|
||||
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
|
||||
|
||||
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
|
||||
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
|
||||
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
|
||||
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
|
||||
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
|
||||
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
|
||||
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
|
||||
|
||||
-- Dump completed on 2023-02-23 15:18:07
|
||||
@@ -2,7 +2,6 @@
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/dept.class.php';
|
||||
$db->switchDB();
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
@@ -20,4 +19,3 @@ $deptID = '11';
|
||||
$dept = new deptTest();
|
||||
r($dept->deleteTest($deptID)) && p() && e('99'); //删除后统计数量
|
||||
|
||||
$db->restoreDB();
|
||||
@@ -2,7 +2,6 @@
|
||||
<?php
|
||||
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
|
||||
include dirname(dirname(dirname(__FILE__))) . '/class/dept.class.php';
|
||||
$db->switchDB();
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
@@ -29,4 +28,3 @@ r($dept->manageChildTest('', $depts, $count[0])) && p('1')
|
||||
r($dept->manageChildTest('', $depts, $count[1])) && p() && e('3'); //无父级部门下添加子级部门统计
|
||||
r($dept->manageChildTest($parentDeptID, $depts = array(), $count[0])) && p() && e('0'); //无部门名称
|
||||
|
||||
$db->restoreDB();
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user