Changeset View
Changeset View
Standalone View
Standalone View
autotests/testconfigserializer.cpp
Show All 19 Lines | |||||
20 | #include <QObject> | 20 | #include <QObject> | ||
21 | #include <QtTest> | 21 | #include <QtTest> | ||
22 | 22 | | |||
23 | #include "../src/types.h" | 23 | #include "../src/types.h" | ||
24 | #include "../src/configserializer_p.h" | 24 | #include "../src/configserializer_p.h" | ||
25 | #include "../src/screen.h" | 25 | #include "../src/screen.h" | ||
26 | #include "../src/mode.h" | 26 | #include "../src/mode.h" | ||
27 | #include "../src/output.h" | 27 | #include "../src/output.h" | ||
28 | #include "../src/edid.h" | ||||
28 | 29 | | |||
29 | class TestConfigSerializer : public QObject | 30 | class TestConfigSerializer : public QObject | ||
30 | { | 31 | { | ||
31 | Q_OBJECT | 32 | Q_OBJECT | ||
32 | 33 | | |||
33 | public: | 34 | public: | ||
34 | TestConfigSerializer() | 35 | TestConfigSerializer() | ||
35 | { | 36 | { | ||
▲ Show 20 Lines • Show All 46 Lines • ▼ Show 20 Line(s) | 64 | { | |||
82 | arr = KScreen::ConfigSerializer::serializeList<int>(intList); | 83 | arr = KScreen::ConfigSerializer::serializeList<int>(intList); | ||
83 | QCOMPARE(arr.size(), intList.size()); | 84 | QCOMPARE(arr.size(), intList.size()); | ||
84 | 85 | | |||
85 | for (int i = 0; i < arr.size(); ++i) { | 86 | for (int i = 0; i < arr.size(); ++i) { | ||
86 | QCOMPARE(arr.at(i).toInt(), intList[i]); | 87 | QCOMPARE(arr.at(i).toInt(), intList[i]); | ||
87 | } | 88 | } | ||
88 | } | 89 | } | ||
89 | 90 | | |||
91 | void testSerializeQuaterion() | ||||
92 | { | ||||
93 | QQuaternion quaternion(0.123f, 0.456f, 0.789f, 1.234f); | ||||
94 | QJsonObject obj = KScreen::ConfigSerializer::serializeQuaternion(quaternion); | ||||
95 | QVERIFY(!obj.isEmpty()); | ||||
96 | | ||||
97 | QCOMPARE(static_cast<float>(obj[QLatin1String("x")].toDouble()), quaternion.x()); | ||||
98 | QCOMPARE(static_cast<float>(obj[QLatin1String("y")].toDouble()), quaternion.y()); | ||||
99 | QCOMPARE(static_cast<float>(obj[QLatin1String("z")].toDouble()), quaternion.z()); | ||||
100 | QCOMPARE(static_cast<float>(obj[QLatin1String("scalar")].toDouble()), quaternion.scalar()); | ||||
101 | } | ||||
102 | | ||||
90 | void testSerializeScreen() | 103 | void testSerializeScreen() | ||
91 | { | 104 | { | ||
92 | KScreen::ScreenPtr screen(new KScreen::Screen); | 105 | KScreen::ScreenPtr screen(new KScreen::Screen); | ||
93 | screen->setId(12); | 106 | screen->setId(12); | ||
94 | screen->setMinSize(QSize(360, 360)); | 107 | screen->setMinSize(QSize(360, 360)); | ||
95 | screen->setMaxSize(QSize(8192, 8192)); | 108 | screen->setMaxSize(QSize(8192, 8192)); | ||
96 | screen->setCurrentSize(QSize(3600, 1280)); | 109 | screen->setCurrentSize(QSize(3600, 1280)); | ||
97 | screen->setMaxActiveOutputsCount(3); | 110 | screen->setMaxActiveOutputsCount(3); | ||
▲ Show 20 Lines • Show All 45 Lines • ▼ Show 20 Line(s) | 148 | { | |||
143 | 156 | | |||
144 | KScreen::OutputPtr output(new KScreen::Output); | 157 | KScreen::OutputPtr output(new KScreen::Output); | ||
145 | output->setId(60); | 158 | output->setId(60); | ||
146 | output->setName(QStringLiteral("LVDS-0")); | 159 | output->setName(QStringLiteral("LVDS-0")); | ||
147 | output->setType(KScreen::Output::Panel); | 160 | output->setType(KScreen::Output::Panel); | ||
148 | output->setIcon(QString()); | 161 | output->setIcon(QString()); | ||
149 | output->setModes(modes); | 162 | output->setModes(modes); | ||
150 | output->setPos(QPoint(1280, 0)); | 163 | output->setPos(QPoint(1280, 0)); | ||
164 | output->setScale(2.0); | ||||
151 | output->setSize(mode->size()); | 165 | output->setSize(mode->size()); | ||
152 | output->setRotation(KScreen::Output::None); | 166 | output->setRotation(KScreen::Output::None); | ||
153 | output->setCurrentModeId(QStringLiteral("1")); | 167 | output->setCurrentModeId(QStringLiteral("1")); | ||
154 | output->setPreferredModes(QStringList() << QStringLiteral("1")); | 168 | output->setPreferredModes(QStringList() << QStringLiteral("1")); | ||
155 | output->setConnected(true); | 169 | output->setConnected(true); | ||
156 | output->setEnabled(true); | 170 | output->setEnabled(true); | ||
157 | output->setPrimary(true); | 171 | output->setPrimary(true); | ||
158 | output->setClones(QList<int>() << 50 << 60); | 172 | output->setClones(QList<int>() << 50 << 60); | ||
159 | output->setSizeMm(QSize(310, 250)); | 173 | output->setSizeMm(QSize(310, 250)); | ||
160 | 174 | | |||
161 | const QJsonObject obj = KScreen::ConfigSerializer::serializeOutput(output); | 175 | const QJsonObject obj = KScreen::ConfigSerializer::serializeOutput(output); | ||
162 | QVERIFY(!obj.isEmpty()); | 176 | QVERIFY(!obj.isEmpty()); | ||
163 | 177 | | |||
164 | QCOMPARE(obj[QLatin1String("id")].toInt(), output->id()); | 178 | QCOMPARE(obj[QLatin1String("id")].toInt(), output->id()); | ||
165 | QCOMPARE(obj[QLatin1String("name")].toString(), output->name()); | 179 | QCOMPARE(obj[QLatin1String("name")].toString(), output->name()); | ||
166 | QCOMPARE(static_cast<KScreen::Output::Type>(obj[QLatin1String("type")].toInt()), output->type()); | 180 | QCOMPARE(static_cast<KScreen::Output::Type>(obj[QLatin1String("type")].toInt()), output->type()); | ||
167 | QCOMPARE(obj[QLatin1String("icon")].toString(), output->icon()); | 181 | QCOMPARE(obj[QLatin1String("icon")].toString(), output->icon()); | ||
168 | const QJsonArray arr = obj[QLatin1String("modes")].toArray(); | 182 | const QJsonArray arr = obj[QLatin1String("modes")].toArray(); | ||
169 | QCOMPARE(arr.size(), output->modes().count()); | 183 | QCOMPARE(arr.size(), output->modes().count()); | ||
184 | QCOMPARE(obj[QLatin1String("scale")].toDouble(), output->scale()); | ||||
170 | 185 | | |||
171 | QJsonObject pos = obj[QLatin1String("pos")].toObject(); | 186 | QJsonObject pos = obj[QLatin1String("pos")].toObject(); | ||
172 | QCOMPARE(pos[QLatin1String("x")].toInt(), output->pos().x()); | 187 | QCOMPARE(pos[QLatin1String("x")].toInt(), output->pos().x()); | ||
173 | QCOMPARE(pos[QLatin1String("y")].toInt(), output->pos().y()); | 188 | QCOMPARE(pos[QLatin1String("y")].toInt(), output->pos().y()); | ||
174 | const QJsonObject size = obj[QLatin1String("size")].toObject(); | 189 | const QJsonObject size = obj[QLatin1String("size")].toObject(); | ||
175 | QCOMPARE(size[QLatin1String("width")].toInt(), output->size().width()); | 190 | QCOMPARE(size[QLatin1String("width")].toInt(), output->size().width()); | ||
176 | QCOMPARE(size[QLatin1String("height")].toInt(), output->size().height()); | 191 | QCOMPARE(size[QLatin1String("height")].toInt(), output->size().height()); | ||
177 | 192 | | |||
178 | QCOMPARE(static_cast<KScreen::Output::Rotation>(obj[QLatin1String("rotation")].toInt()), output->rotation()); | 193 | QCOMPARE(static_cast<KScreen::Output::Rotation>(obj[QLatin1String("rotation")].toInt()), output->rotation()); | ||
179 | QCOMPARE(obj[QLatin1String("currentModeId")].toString(), output->currentModeId()); | 194 | QCOMPARE(obj[QLatin1String("currentModeId")].toString(), output->currentModeId()); | ||
180 | QCOMPARE(obj[QLatin1String("connected")].toBool(), output->isConnected()); | 195 | QCOMPARE(obj[QLatin1String("connected")].toBool(), output->isConnected()); | ||
181 | QCOMPARE(obj[QLatin1String("enabled")].toBool(), output->isEnabled()); | 196 | QCOMPARE(obj[QLatin1String("enabled")].toBool(), output->isEnabled()); | ||
182 | QCOMPARE(obj[QLatin1String("primary")].toBool(), output->isPrimary()); | 197 | QCOMPARE(obj[QLatin1String("primary")].toBool(), output->isPrimary()); | ||
183 | const QJsonArray clones = obj[QLatin1String("clones")].toArray(); | 198 | const QJsonArray clones = obj[QLatin1String("clones")].toArray(); | ||
184 | QCOMPARE(clones.size(), output->clones().count()); | 199 | QCOMPARE(clones.size(), output->clones().count()); | ||
185 | for (int i = 0; i < clones.size(); ++i) { | 200 | for (int i = 0; i < clones.size(); ++i) { | ||
186 | QCOMPARE(clones[i].toInt(), output->clones()[i]); | 201 | QCOMPARE(clones[i].toInt(), output->clones()[i]); | ||
187 | } | 202 | } | ||
188 | const QJsonObject sizeMm = obj[QLatin1String("sizeMM")].toObject(); | 203 | const QJsonObject sizeMm = obj[QLatin1String("sizeMM")].toObject(); | ||
189 | QCOMPARE(sizeMm[QLatin1String("width")].toInt(), output->sizeMm().width()); | 204 | QCOMPARE(sizeMm[QLatin1String("width")].toInt(), output->sizeMm().width()); | ||
190 | QCOMPARE(sizeMm[QLatin1String("height")].toInt(), output->sizeMm().height()); | 205 | QCOMPARE(sizeMm[QLatin1String("height")].toInt(), output->sizeMm().height()); | ||
206 | // EDID is null so nothing should've been serialized | ||||
207 | QVERIFY(!obj.contains(QLatin1String("edid"))); | ||||
208 | } | ||||
209 | | ||||
210 | void testSerializeEdid() | ||||
211 | { | ||||
212 | const QByteArray raw = "AP///////wAQrBbwTExLQQ4WAQOANCB46h7Frk80sSYOUFSlSwCBgKlA0QBxTwEBAQEBAQEBKDyAoHCwI0AwIDYABkQhAAAaAAAA/wBGNTI1TTI0NUFLTEwKAAAA/ABERUxMIFUyNDEwCiAgAAAA/QA4TB5REQAKICAgICAgAToCAynxUJAFBAMCBxYBHxITFCAVEQYjCQcHZwMMABAAOC2DAQAA4wUDAQI6gBhxOC1AWCxFAAZEIQAAHgEdgBhxHBYgWCwlAAZEIQAAngEdAHJR0B4gbihVAAZEIQAAHowK0Iog4C0QED6WAAZEIQAAGAAAAAAAAAAAAAAAAAAAPg=="; | ||||
213 | KScreen::Edid edid(QByteArray::fromBase64(raw)); | ||||
214 | | ||||
215 | const auto obj = KScreen::ConfigSerializer::serializeEdid(&edid); | ||||
216 | QCOMPARE(obj[QLatin1String("name")].toString(), QStringLiteral("DELL U2410")); | ||||
217 | QCOMPARE(obj[QLatin1String("vendor")].toString(), QStringLiteral("Dell Inc.")); | ||||
218 | QCOMPARE(obj[QLatin1String("serial")].toString(), QStringLiteral("F525M245AKLL")); | ||||
219 | QCOMPARE(obj[QLatin1String("eisaId")].toString(), QStringLiteral("")); | ||||
220 | QCOMPARE(obj[QLatin1String("hash")].toString(), QStringLiteral("be55eeb5fcc1e775f321c1ae3aa02ef0")); | ||||
221 | QCOMPARE(obj[QLatin1String("pnpId")].toString(), QStringLiteral("DEL")); | ||||
222 | QCOMPARE(obj[QLatin1String("width")].toInt(), 52); | ||||
223 | QCOMPARE(obj[QLatin1String("height")].toInt(), 32); | ||||
224 | QCOMPARE(obj[QLatin1String("gamma")].toDouble(), 2.f); | ||||
191 | } | 225 | } | ||
192 | }; | 226 | }; | ||
193 | 227 | | |||
194 | QTEST_MAIN(TestConfigSerializer) | 228 | QTEST_MAIN(TestConfigSerializer) | ||
195 | 229 | | |||
196 | #include "testconfigserializer.moc" | 230 | #include "testconfigserializer.moc" |