1 #include "ut_remotelist.h"
5 void Ut_RemoteList::initTestCase()
8 mfgs << "Lg" << "Leadtek" << "Microsoft" << "Philips" << "Topfield";
10 for (int i = 0; i < mfgs.size(); ++i)
12 QChar letter = mfgs.at(i).at(0);
15 for (int j = 0; j < mfgs.size(); ++j)
17 if (mfgs.at(j).at(0) == letter)
20 validMfgs.insert(letter, l);
25 validModels.insert("Lg", QList<Model>());
26 validModels["Lg"].append(Model("AKB69680403", "AKB69680_00"));
28 validModels.insert("Leadtek", QList<Model>());
29 validModels["Leadtek"].append(Model("Y04G0004", "Y04G0004_00"));
31 validModels.insert("Microsoft", QList<Model>());
32 validModels["Microsoft"].append(Model("Xbox360", "Xbox360_00"));
34 validModels.insert("Philips", QList<Model>());
35 validModels["Philips"].append(Model("15PF4121", "15PF4121_00"));
36 validModels["Philips"].append(Model("modelname", "filename"));
38 validModels.insert("Topfield", QList<Model>());
39 validModels["Topfield"].append(Model("PVR5000", "PVR_5000_00"));
44 void Ut_RemoteList::cleanupTestCase()
48 void Ut_RemoteList::createDocument()
50 QDomElement root = document.createElement("db");
51 document.appendChild(root);
53 for (int i = 0; i < validMfgs.keys().size(); ++i)
55 QChar letter = validMfgs.keys().at(i).at(0);
56 QDomElement charEl = document.createElement("char");
57 charEl.setAttribute("id", letter);
58 createMfgElements(letter, charEl);
59 root.appendChild(charEl);
63 void Ut_RemoteList::createMfgElements(QChar &letter, QDomElement &parent)
65 for (int i = 0; i < validMfgs[letter].size(); ++i)
67 QString mfg = validMfgs[letter].at(i);
68 QDomElement mfgEl = document.createElement("mfg");
69 mfgEl.setAttribute("id", mfg);
70 createModelElements(mfg, mfgEl);
71 parent.appendChild(mfgEl);
75 void Ut_RemoteList::createModelElements(const QString &mfg, QDomElement &parent)
77 for (int i = 0; i < validModels[mfg].size(); ++i)
79 Model m = validModels[mfg].at(i);
80 QDomElement modelEl = document.createElement("model");
81 modelEl.setAttribute("file", m.file);
82 modelEl.setAttribute("name", m.name);
83 parent.appendChild(modelEl);
87 void Ut_RemoteList::testIsValid()
89 RemoteList subject(document);
90 QCOMPARE(subject.isValid(), true);
93 void Ut_RemoteList::testIsValid_setContent()
96 QCOMPARE(subject.isValid(), false);
97 subject.setContent(document);
98 QCOMPARE(subject.isValid(), true);
101 void Ut_RemoteList::testLetters()
103 RemoteList subject(document);
104 compareLetters(subject);
107 void Ut_RemoteList::testManufacturers()
109 RemoteList subject(document);
110 compareManufacturers(subject);
113 void Ut_RemoteList::testModels()
115 RemoteList subject(document);
116 compareModels(subject);
119 void Ut_RemoteList::testLetters_setContent()
122 subject.setContent(document);
123 compareLetters(subject);
126 void Ut_RemoteList::testManufacturers_setContent()
129 subject.setContent(document);
130 compareManufacturers(subject);
133 void Ut_RemoteList::testModels_setContent()
136 subject.setContent(document);
137 compareModels(subject);
140 void Ut_RemoteList::compareLetters(RemoteList &subject)
142 QStringList letters = subject.letters();
143 QStringList validLetters = validMfgs.keys();
145 QCOMPARE(validLetters.size(), letters.size());
147 for (int i = 0; i < letters.size(); ++i)
149 QCOMPARE(validLetters.at(i), letters.at(i));
153 void Ut_RemoteList::compareManufacturers(RemoteList &subject)
155 for (int i = 0; i < validMfgs.keys().size(); ++i)
157 QString letter = validMfgs.keys().at(i);
158 for (int j = 0; j < validMfgs.value(letter).size(); ++j)
160 QCOMPARE(validMfgs.value(letter).at(j),
161 subject.manufacturers(letter).at(j));
166 void Ut_RemoteList::compareModels(RemoteList &subject)
168 for (int i = 0; i < validModels.keys().size(); ++i)
170 QString mfg = validModels.keys().at(i);
171 for (int j = 0; j < validModels.value(mfg).size(); ++j)
173 QCOMPARE(validModels.value(mfg).at(j).name,
174 subject.models(mfg).at(j).name);
175 QCOMPARE(validModels.value(mfg).at(j).file,
176 subject.models(mfg).at(j).file);
182 QTEST_MAIN(Ut_RemoteList)