znt/module/instance/test/model/savebackupsettings.php

115 lines
3.6 KiB
PHP
Executable file
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/usr/bin/env php
<?php
/**
title=测试 instanceModel::saveBackupSettings();
timeout=0
cid=16815
- 步骤1正常禁用自动备份 @1
- 步骤2正常启用自动备份 @1
- 步骤3超出范围的保留天数属性message @请输入1~30之间的整数
- 步骤4无效时间格式属性message @无效的时间
- 步骤5边界值测试 @1
*/
// 1. 导入依赖(路径固定,不可修改)
include dirname(__FILE__, 5) . '/test/lib/init.php';
include dirname(__FILE__, 2) . '/lib/model.class.php';
// 2. zendata数据准备根据需要配置
$instance = zenData('instance');
$instance->id->range('1-5');
$instance->name->range('test-instance{5}');
$instance->chart->range('zentao,gitlab,jenkins,sonarqube,nexus3');
$instance->status->range('running{3},stopped{2}');
$instance->space->range('1-5');
$instance->autoBackup->range('0{3},1{2}');
$instance->backupKeepDays->range('1{2},7{2},30{1}');
$instance->deleted->range('0');
$instance->gen(5);
$cron = zenData('cron');
$cron->id->range('1-10');
$cron->m->range('0-59:R');
$cron->h->range('0-23:R');
$cron->dom->range('*');
$cron->mon->range('*');
$cron->dow->range('*');
$cron->command->range('moduleName=instance&methodName=cronBackup&instanceID=1,moduleName=instance&methodName=cronBackup&instanceID=2,other-command{8}');
$cron->remark->range('Backup Instance 1,Backup Instance 2,Other Task{8}');
$cron->type->range('zentao{2},system{8}');
$cron->status->range('normal{8},stop{2}');
$cron->gen(10);
// 3. 用户登录(选择合适角色)
su('admin');
// 4. 创建测试实例(变量名与模块名一致)
$instanceTest = new instanceModelTest();
// 模拟POST数据设置
global $_POST;
// 5. 强制要求必须包含至少5个测试步骤
// 测试步骤1正常保存备份设置禁用自动备份
$_POST = array(
'autoBackup' => '0',
'backupTime' => '1:00',
'backupCycle' => '1',
'backupKeepDays' => '7'
);
$instance1 = new stdClass();
$instance1->id = 1;
$instance1->backupKeepDays = 7;
r($instanceTest->saveBackupSettingsTest($instance1)) && p() && e('1'); // 步骤1正常禁用自动备份
// 测试步骤2正常保存备份设置启用自动备份
$_POST = array(
'autoBackup' => '1',
'backupTime' => '02:30',
'backupCycle' => '1',
'backupKeepDays' => '7'
);
$instance2 = new stdClass();
$instance2->id = 2;
$instance2->backupKeepDays = 7;
r($instanceTest->saveBackupSettingsTest($instance2)) && p() && e('1'); // 步骤2正常启用自动备份
// 测试步骤3无效的备份保留天数超出范围
$_POST = array(
'autoBackup' => '1',
'backupTime' => '1:00',
'backupCycle' => '1',
'backupKeepDays' => '50'
);
$instance3 = new stdClass();
$instance3->id = 3;
$instance3->backupKeepDays = 7;
r($instanceTest->saveBackupSettingsTest($instance3)) && p('message') && e('请输入1~30之间的整数'); // 步骤3超出范围的保留天数
// 测试步骤4无效的备份时间格式
$_POST = array(
'autoBackup' => '1',
'backupTime' => '25:80',
'backupCycle' => '1',
'backupKeepDays' => '7'
);
$instance4 = new stdClass();
$instance4->id = 4;
$instance4->backupKeepDays = 7;
r($instanceTest->saveBackupSettingsTest($instance4)) && p('message') && e('无效的时间'); // 步骤4无效时间格式
// 测试步骤5边界值测试保留天数为30天
$_POST = array(
'autoBackup' => '1',
'backupTime' => '23:59',
'backupCycle' => '1',
'backupKeepDays' => '30'
);
$instance5 = new stdClass();
$instance5->id = 5;
$instance5->backupKeepDays = 1;
r($instanceTest->saveBackupSettingsTest($instance5)) && p() && e('1'); // 步骤5边界值测试