aboutsummaryrefslogtreecommitdiffstats
path: root/tests/auto/qmldom/errormessage/tst_qmldomerrormessage.cpp
blob: 0ca1091a18cfe2b4c5a09090287b83694f03d715 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
// Copyright (C) 2020 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only

#include "tst_qmldomerrormessage.h"
#include <QtQmlDom/private/qqmldomerrormessage_p.h>

#include <QtTest/QtTest>
#include <QTextStream>
#include <QDebug>

#include <limits>


QT_BEGIN_NAMESPACE
namespace QQmlJS {
namespace Dom {

static ErrorGroups myErrors(){
    static ErrorGroups res = {{NewErrorGroup("StaticAnalysis"), NewErrorGroup("FancyDetector")}};
    return res;
}

constexpr const char *myError0 = "my.company.error0";

void registerMyError() {
    ErrorMessage::msg(myError0, myErrors().warning(u"Error number 0"));
}

static auto myError1 = ErrorMessage::msg("my.company.error1", myErrors().warning(u"Error number 1"));
static auto myError2 = ErrorMessage::msg("my.company.error2", myErrors().error(u"Error number 2 on %1"));

void TestErrorMessage::testError()
{
    registerMyError();
    auto err0 = ErrorMessage::load(myError0);
    QCOMPARE(err0.errorId, QLatin1String(myError0));
    QCOMPARE(err0.message, dumperToString(u"Error number 0"));
    QCOMPARE(err0.level, ErrorLevel::Warning);
    auto err1 = ErrorMessage::load(QLatin1String("my.company.error1"));
    QCOMPARE(err1.errorId, myError1);
    QCOMPARE(err1.message, dumperToString(u"Error number 1"));
    QCOMPARE(err1.level, ErrorLevel::Warning);
    auto err1bis = ErrorMessage::load("my.company.error1");
    QCOMPARE(err1bis.errorId, myError1);
    QCOMPARE(err1bis.message, dumperToString(u"Error number 1"));
    QCOMPARE(err1bis.level, ErrorLevel::Warning);
    auto err2 = ErrorMessage::load(myError2, QLatin1String("extra info"));
    QCOMPARE(err2.errorId, myError2);
    QCOMPARE(err2.message, dumperToString(u"Error number 2 on extra info"));
    QCOMPARE(err2.level, ErrorLevel::Error);
}

}
}
QT_END_NAMESPACE

#ifndef NO_QTEST_MAIN
QTEST_MAIN(QQmlJS::Dom::TestErrorMessage)
#endif