功能:完善终端认证恢复、选择页及策略和指标采集
This commit is contained in:
1 parent
d87fa47e24
commit
eef485306f
22 files changed
+904
-151
No files matched your search
@@ -0,0 +1,33 @@
|
||||
#include <QtTest>
|
||||
#include <QTemporaryDir>
|
||||
#include <QFile>
|
||||
#include <QJsonDocument>
|
||||
#include "terminal_policy.h"
|
||||
class TerminalPolicyTest : public QObject {
|
||||
Q_OBJECT
|
||||
private slots:
|
||||
void durableBeforeRuntime() {
|
||||
QTemporaryDir dir; const QString path=dir.path()+"/policy.json";int calls=0;
|
||||
QJsonObject p{{"policyProtocol",1},{"configVersion",2},{"deploymentId","dispatch_1"},
|
||||
{"heartbeatInterval",30},{"commandPollInterval",5},{"desktopRefreshInterval",20},{"deviceToken","must-not-persist"}};
|
||||
auto apply=[&](int h,int c,int r){
|
||||
QFile file(path); QVERIFY(file.open(QIODevice::ReadOnly));
|
||||
const auto disk=QJsonDocument::fromJson(file.readAll()).object();
|
||||
QCOMPARE(disk.value("configVersion").toInt(),2);QVERIFY(!disk.contains("deviceToken"));
|
||||
QCOMPARE(h,30);QCOMPARE(c,5);QCOMPARE(r,20);++calls;
|
||||
};
|
||||
QCOMPARE(vdi::applyTerminalPolicy(p,path,apply),QString());QCOMPARE(calls,1);
|
||||
const auto original=QFileInfo(path).size();
|
||||
for (const auto key:{"heartbeatInterval","commandPollInterval","desktopRefreshInterval","policyProtocol","configVersion"}) {
|
||||
auto bad=p;bad[key]=1.5;
|
||||
QCOMPARE(vdi::applyTerminalPolicy(bad,path,apply),QString("invalid_policy"));
|
||||
}
|
||||
auto bad=p;bad["heartbeatInterval"]=90;
|
||||
QCOMPARE(vdi::applyTerminalPolicy(bad,path,apply),QString("invalid_policy"));
|
||||
QCOMPARE(QFileInfo(path).size(),original);QCOMPARE(calls,1);
|
||||
QCOMPARE(vdi::applyTerminalPolicy(p,dir.path()+"/missing/policy.json",apply),QString("persist_failed"));
|
||||
QCOMPARE(vdi::applyTerminalPolicy(p,path,{}),QString("runtime_unavailable"));QCOMPARE(calls,1);
|
||||
}
|
||||
};
|
||||
QTEST_GUILESS_MAIN(TerminalPolicyTest)
|
||||
#include "test_terminal_policy.moc"
|
||||
Reference in new issue
Block a user