testgui.cpp
Go to the documentation of this file.
1 //
2 // QtMark JSON Library
3 //
4 // Copyright (C) 2015 Assured Information Security, Inc.
5 // Author: Rian Quinn <quinnr@ainfosec.com>
6 // Author: Rodney Forbes <forbesr@ainfosec.com>
7 //
8 // This library is free software; you can redistribute it and/or
9 // modify it under the terms of the GNU Lesser General Public
10 // License as published by the Free Software Foundation; either
11 // version 2.1 of the License, or (at your option) any later version.
12 //
13 // This library is distributed in the hope that it will be useful,
14 // but WITHOUT ANY WARRANTY; without even the implied warranty of
15 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 // Lesser General Public License for more details.
17 //
18 // You should have received a copy of the GNU Lesser General Public
19 // License along with this library; if not, write to the Free Software
20 // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
21 
22 #include <test.h>
23 
24 void TestJson::QMJsonGui_qsize(void)
25 {
26  auto value00 = QMPointer<QMJsonValue>(new QMJsonValue(QSize()));
27  auto value01 = QMPointer<QMJsonValue>(new QMJsonValue(QSize(-4, 8)));
28  auto value02 = QMPointer<QMJsonValue>(new QMJsonValue(QSize(4, -8)));
29 
30  auto ojson00 = value00->toJson(QMJsonFormat_Optimized, QMJsonSort_CaseSensitive);
31  auto ojson01 = value01->toJson(QMJsonFormat_Optimized, QMJsonSort_CaseSensitive);
32  auto ojson02 = value02->toJson(QMJsonFormat_Optimized, QMJsonSort_CaseSensitive);
33  auto pjson00 = value00->toJson(QMJsonFormat_Pretty, QMJsonSort_CaseSensitive);
34  auto pjson01 = value01->toJson(QMJsonFormat_Pretty, QMJsonSort_CaseSensitive);
35  auto pjson02 = value02->toJson(QMJsonFormat_Pretty, QMJsonSort_CaseSensitive);
36 
37  QVERIFY(QMJsonValue::fromJson(ojson00)->to<QSize>(QSize()) == QSize());
38  QVERIFY(QMJsonValue::fromJson(ojson01)->to<QSize>(QSize()) == QSize(-4, 8));
39  QVERIFY(QMJsonValue::fromJson(ojson02)->to<QSize>(QSize()) == QSize(4, -8));
40  QVERIFY(QMJsonValue::fromJson(pjson00)->to<QSize>(QSize()) == QSize());
41  QVERIFY(QMJsonValue::fromJson(pjson01)->to<QSize>(QSize()) == QSize(-4, 8));
42  QVERIFY(QMJsonValue::fromJson(pjson02)->to<QSize>(QSize()) == QSize(4, -8));
43 }
44 
45 void TestJson::QMJsonGui_qpoint(void)
46 {
47  auto value00 = QMPointer<QMJsonValue>(new QMJsonValue(QPoint()));
48  auto value01 = QMPointer<QMJsonValue>(new QMJsonValue(QPoint(-4, 8)));
49  auto value02 = QMPointer<QMJsonValue>(new QMJsonValue(QPoint(4, -8)));
50 
51  auto ojson00 = value00->toJson(QMJsonFormat_Optimized, QMJsonSort_CaseSensitive);
52  auto ojson01 = value01->toJson(QMJsonFormat_Optimized, QMJsonSort_CaseSensitive);
53  auto ojson02 = value02->toJson(QMJsonFormat_Optimized, QMJsonSort_CaseSensitive);
54  auto pjson00 = value00->toJson(QMJsonFormat_Pretty, QMJsonSort_CaseSensitive);
55  auto pjson01 = value01->toJson(QMJsonFormat_Pretty, QMJsonSort_CaseSensitive);
56  auto pjson02 = value02->toJson(QMJsonFormat_Pretty, QMJsonSort_CaseSensitive);
57 
58  QVERIFY(QMJsonValue::fromJson(ojson00)->to<QPoint>(QPoint()) == QPoint());
59  QVERIFY(QMJsonValue::fromJson(ojson01)->to<QPoint>(QPoint()) == QPoint(-4, 8));
60  QVERIFY(QMJsonValue::fromJson(ojson02)->to<QPoint>(QPoint()) == QPoint(4, -8));
61  QVERIFY(QMJsonValue::fromJson(pjson00)->to<QPoint>(QPoint()) == QPoint());
62  QVERIFY(QMJsonValue::fromJson(pjson01)->to<QPoint>(QPoint()) == QPoint(-4, 8));
63  QVERIFY(QMJsonValue::fromJson(pjson02)->to<QPoint>(QPoint()) == QPoint(4, -8));
64 }
65 
66 void TestJson::QMJsonGui_qrect(void)
67 {
68  auto value00 = QMPointer<QMJsonValue>(new QMJsonValue(QRect()));
69  auto value01 = QMPointer<QMJsonValue>(new QMJsonValue(QRect(-4, 8, 15, 16)));
70  auto value02 = QMPointer<QMJsonValue>(new QMJsonValue(QRect(4, -8, 15, 16)));
71 
72  auto ojson00 = value00->toJson(QMJsonFormat_Optimized, QMJsonSort_CaseSensitive);
73  auto ojson01 = value01->toJson(QMJsonFormat_Optimized, QMJsonSort_CaseSensitive);
74  auto ojson02 = value02->toJson(QMJsonFormat_Optimized, QMJsonSort_CaseSensitive);
75  auto pjson00 = value00->toJson(QMJsonFormat_Pretty, QMJsonSort_CaseSensitive);
76  auto pjson01 = value01->toJson(QMJsonFormat_Pretty, QMJsonSort_CaseSensitive);
77  auto pjson02 = value02->toJson(QMJsonFormat_Pretty, QMJsonSort_CaseSensitive);
78 
79  QVERIFY(QMJsonValue::fromJson(ojson00)->to<QRect>(QRect()) == QRect());
80  QVERIFY(QMJsonValue::fromJson(ojson01)->to<QRect>(QRect()) == QRect(-4, 8, 15, 16));
81  QVERIFY(QMJsonValue::fromJson(ojson02)->to<QRect>(QRect()) == QRect(4, -8, 15, 16));
82  QVERIFY(QMJsonValue::fromJson(pjson00)->to<QRect>(QRect()) == QRect());
83  QVERIFY(QMJsonValue::fromJson(pjson01)->to<QRect>(QRect()) == QRect(-4, 8, 15, 16));
84  QVERIFY(QMJsonValue::fromJson(pjson02)->to<QRect>(QRect()) == QRect(4, -8, 15, 16));
85 }
86 
87 void TestJson::QMJsonGui_qcolor(void)
88 {
89  auto color01 = QColor(Qt::blue).convertTo(QColor::Rgb);
90  auto color02 = QColor(Qt::blue).convertTo(QColor::Hsv);
91  auto color03 = QColor(Qt::blue).convertTo(QColor::Cmyk);
92  auto color04 = QColor(Qt::blue).convertTo(QColor::Hsl);
93 
94  auto value00 = QMPointer<QMJsonValue>(new QMJsonValue(QColor()));
95  auto value01 = QMPointer<QMJsonValue>(new QMJsonValue(color01));
96  auto value02 = QMPointer<QMJsonValue>(new QMJsonValue(color02));
97  auto value03 = QMPointer<QMJsonValue>(new QMJsonValue(color03));
98  auto value04 = QMPointer<QMJsonValue>(new QMJsonValue(color04));
99 
100  auto ojson00 = value00->toJson(QMJsonFormat_Optimized, QMJsonSort_CaseSensitive);
101  auto ojson01 = value01->toJson(QMJsonFormat_Optimized, QMJsonSort_CaseSensitive);
102  auto ojson02 = value02->toJson(QMJsonFormat_Optimized, QMJsonSort_CaseSensitive);
103  auto ojson03 = value03->toJson(QMJsonFormat_Optimized, QMJsonSort_CaseSensitive);
104  auto ojson04 = value04->toJson(QMJsonFormat_Optimized, QMJsonSort_CaseSensitive);
105  auto pjson00 = value00->toJson(QMJsonFormat_Pretty, QMJsonSort_CaseSensitive);
106  auto pjson01 = value01->toJson(QMJsonFormat_Pretty, QMJsonSort_CaseSensitive);
107  auto pjson02 = value02->toJson(QMJsonFormat_Pretty, QMJsonSort_CaseSensitive);
108  auto pjson03 = value03->toJson(QMJsonFormat_Pretty, QMJsonSort_CaseSensitive);
109  auto pjson04 = value04->toJson(QMJsonFormat_Pretty, QMJsonSort_CaseSensitive);
110 
111  QVERIFY(QMJsonValue::fromJson(ojson00)->to<QColor>(QColor()) == QColor());
112  QVERIFY(QMJsonValue::fromJson(ojson01)->to<QColor>(QColor()) == color01);
113  QVERIFY(QMJsonValue::fromJson(ojson02)->to<QColor>(QColor()) == color02);
114  QVERIFY(QMJsonValue::fromJson(ojson03)->to<QColor>(QColor()) == color03);
115  QVERIFY(QMJsonValue::fromJson(ojson04)->to<QColor>(QColor()) == color04);
116  QVERIFY(QMJsonValue::fromJson(pjson00)->to<QColor>(QColor()) == QColor());
117  QVERIFY(QMJsonValue::fromJson(pjson01)->to<QColor>(QColor()) == color01);
118  QVERIFY(QMJsonValue::fromJson(pjson02)->to<QColor>(QColor()) == color02);
119  QVERIFY(QMJsonValue::fromJson(pjson03)->to<QColor>(QColor()) == color03);
120  QVERIFY(QMJsonValue::fromJson(pjson04)->to<QColor>(QColor()) == color04);
121 }
122 
static QMPointer< QMJsonValue > fromJson(const QString &json)