2
* Copyright (c) 2007 Boudewijn Rempt <boud@valdyas.org>
4
* This program is free software; you can redistribute it and/or modify
5
* it under the terms of the GNU General Public License as published by
6
* the Free Software Foundation; either version 2 of the License, or
7
* (at your option) any later version.
9
* This program is distributed in the hope that it will be useful,
10
* but WITHOUT ANY WARRANTY; without even the implied warranty of
11
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
* GNU General Public License for more details.
14
* You should have received a copy of the GNU General Public License
15
* along with this program; if not, write to the Free Software
16
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
19
#include "KoPropertiesTest.h"
21
#include <qtest_kde.h>
22
#include <KoProperties.h>
24
void KoPropertiesTest::testDeserialization()
28
props.setProperty("bla", "bla");
30
QVERIFY(!props.load(test));
31
QVERIFY(!props.isEmpty());
32
QVERIFY(props.stringProperty("bla") == "bla");
34
test = "<bla>asdsadasjk</bla>";
35
QVERIFY(props.load(test));
36
QVERIFY(props.isEmpty());
38
props.setProperty("bla", "bla");
39
test = "<bla>asdsadasjk</";
40
QVERIFY(!props.load(test));
41
QVERIFY(!props.isEmpty());
42
QVERIFY(props.stringProperty("bla") == "bla");
46
void KoPropertiesTest::testRoundTrip()
49
props.setProperty("string", "string");
50
props.setProperty("xmlstring", "<xml>bla</xml>");
51
props.setProperty("xmlstring2", "<xml>&adsa</xml>");
52
props.setProperty("cdata", "<![CDATA[blabla]]>");
53
props.setProperty("int", 10);
54
props.setProperty("bool", false);
55
props.setProperty("qreal", 1.38);
57
QString stored = props.store();
58
KoProperties restored;
59
restored.load(stored);
61
QVERIFY(restored.stringProperty("string") == "string");
62
QVERIFY(restored.stringProperty("xmlstring") == "<xml>bla</xml>");
63
QVERIFY(restored.stringProperty("xmlstring2") == "<xml>&adsa</xml>");
64
QVERIFY(restored.stringProperty("cdata") == "<![CDATA[blabla]]>");
65
QVERIFY(restored.intProperty("int") == 10);
66
QVERIFY(restored.boolProperty("bool") == false);
67
QVERIFY(restored.doubleProperty("qreal") == 1.38);
71
void KoPropertiesTest::testProperties()
74
QVERIFY(props.isEmpty());
76
QString visible = "visible";
77
QVERIFY(!props.value(visible).isValid());
79
props.setProperty("visible", "bla");
80
QVERIFY(props.value("visible") == "bla");
81
QVERIFY(props.stringProperty("visible", "blabla") == "bla");
83
props.setProperty("bool", true);
84
QVERIFY(props.boolProperty("bool", false) == true);
85
props.setProperty("bool", false);
86
QVERIFY(props.boolProperty("bool", true) == false);
88
props.setProperty("qreal", 1.0);
89
QVERIFY(props.doubleProperty("qreal", 2.0) == 1.0);
90
props.setProperty("qreal", 2.0);
91
QVERIFY(props.doubleProperty("qreal", 1.0) == 2.0);
93
props.setProperty("int", 1);
94
QVERIFY(props.intProperty("int", 2) == 1);
95
props.setProperty("int", 2);
96
QVERIFY(props.intProperty("int", 1) == 2);
99
QVERIFY(props.property("sdsadsakldjsajd", v) == false);
100
QVERIFY(!v.isValid());
101
QVERIFY(props.property("visible", v) == true);
102
QVERIFY(v.isValid());
105
QVERIFY(!props.isEmpty());
106
QVERIFY(props.contains("visible"));
107
QVERIFY(!props.contains("adsajkdsakj dsaieqwewqoie"));
108
QVERIFY(props.contains(visible));
111
QMapIterator<QString, QVariant> iter = props.propertyIterator();
112
while (iter.hasNext()) {
120
bool checkProps(const KoProperties & props)
122
return (props.value("bla") == 1);
125
void KoPropertiesTest::testPassAround()
128
props.setProperty("bla", 1);
129
QVERIFY(checkProps(props));
131
KoProperties props2 = props;
132
QVERIFY(checkProps(props2));
134
KoProperties props3(props);
136
props3.setProperty("bla", 3);
137
QVERIFY(props3.value("bla") == 3);
139
QVERIFY(checkProps(props));
140
QVERIFY(checkProps(props2));
144
QTEST_KDEMAIN(KoPropertiesTest, NoGUI)
145
#include <KoPropertiesTest.moc>