From: Jari Jarvi Date: Fri, 11 Jun 2010 09:09:59 +0000 (+0300) Subject: Added missing model.h and some tests for remotelist X-Git-Url: https://vcs.maemo.org/git/?p=irwi;a=commitdiff_plain;h=03d4767dd2b9284e9cfea0c98e429d589f9d2b45 Added missing model.h and some tests for remotelist --- diff --git a/src/model.h b/src/model.h new file mode 100644 index 0000000..0b0b127 --- /dev/null +++ b/src/model.h @@ -0,0 +1,23 @@ +#ifndef _MODEL_H_ +#define _MODEL_H_ + +struct Model +{ + Model(const QString &name, const QString &file) + : name(name) + , file(file) + { + } + + Model(const Model &m) + : name(m.name) + , file(m.file) + { + } + + QString name; + QString file; +}; + +#endif // _MODEL_H_ + diff --git a/src/remotelist.cpp b/src/remotelist.cpp index e5352bf..7cfd34d 100644 --- a/src/remotelist.cpp +++ b/src/remotelist.cpp @@ -26,11 +26,11 @@ RemoteList::RemoteList(const QString &xmlFile) parse(xmlFile); } -RemoteList::RemoteList(QIODevice in) +RemoteList::RemoteList(QIODevice &in) { QDomDocument doc; - doc.setContent(&in); - parse(doc); + if (doc.setContent(&in)) + parse(doc); } RemoteList::~RemoteList() @@ -56,12 +56,12 @@ bool RemoteList::isValid() return valid; } -QList RemoteList::letters() +QStringList RemoteList::letters() { return mfgMap.keys(); } -QStringList RemoteList::manufacturers(const QChar &letter) +QStringList RemoteList::manufacturers(const QString &letter) { return mfgMap.value(letter); } @@ -107,9 +107,9 @@ void RemoteList::parse(QDomDocument &doc) } } + // TODO: more error handling valid = (mfgMap.size() > 0 && - modelMap.size() > 0 && - mfgMap.values().size() == modelMap.keys().size()); + modelMap.size() > 0); } QStringList RemoteList::parseMfgs(QDomElement &charEl) diff --git a/src/remotelist.h b/src/remotelist.h index a1249f5..4650c09 100644 --- a/src/remotelist.h +++ b/src/remotelist.h @@ -14,7 +14,7 @@ public: RemoteList(const RemoteList &); RemoteList(QDomDocument &); RemoteList(const QString &xmlFile); - RemoteList(QIODevice); + RemoteList(QIODevice &); ~RemoteList(); void setContent(QDomDocument &); @@ -32,7 +32,6 @@ private: void parse(QDomDocument &doc); QStringList parseMfgs(QDomElement &charEl); QList parseModels(QDomElement &mfgEl); - void printMaps(); private: bool valid; diff --git a/ut/ut_remotelist/notxml b/ut/ut_remotelist/notxml new file mode 100644 index 0000000..9d1eb4c --- /dev/null +++ b/ut/ut_remotelist/notxml @@ -0,0 +1,2 @@ +This is just a plain text file. + diff --git a/ut/ut_remotelist/remotes.xml b/ut/ut_remotelist/remotes.xml new file mode 100644 index 0000000..30266da --- /dev/null +++ b/ut/ut_remotelist/remotes.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ut/ut_remotelist/ut_remotelist.cpp b/ut/ut_remotelist/ut_remotelist.cpp index 16b9daa..b8dac76 100644 --- a/ut/ut_remotelist/ut_remotelist.cpp +++ b/ut/ut_remotelist/ut_remotelist.cpp @@ -5,6 +5,22 @@ void Ut_RemoteList::initTestCase() { + // TODO rewrite + validLetters << "L" << "M" << "P" << "T"; + + QStringList ll; + ll << "Lg" << "Leadtek"; + + validMfgs.insert(validLetters.at(0), ll); + validMfgs.insert(validLetters.at(1), QStringList("Microsoft")); + validMfgs.insert(validLetters.at(2), QStringList("Philips")); + validMfgs.insert(validLetters.at(3), QStringList("Topfield")); + + validModels.insert("Lg", QStringList("AKB69680403")); + validModels.insert("Leadtek", QStringList("Y04G0004")); + validModels.insert("Microsoft", QStringList("Xbox360")); + validModels.insert("Philips", QStringList("15PF4121")); + validModels.insert("Topfield", QStringList("PVR5000")); } void Ut_RemoteList::cleanupTestCase() @@ -27,24 +43,39 @@ void Ut_RemoteList::testIsValid() void Ut_RemoteList::testIsValid_InvalidFile() { -// RemoteList subject("notxmlfile"); -// QCOMPARE(subject.isValid(), false); + RemoteList subject("notxml"); + QCOMPARE(subject.isValid(), false); } void Ut_RemoteList::testIsValid_FileNotFound() { -// RemoteList subject("thisdoesnotexist"); -// QCOMPARE(subject.isValid(), false); + RemoteList subject("thisdoesnotexist"); + QCOMPARE(subject.isValid(), false); } void Ut_RemoteList::testLetters() { + QStringList letters = RemoteList("remotes.xml").letters(); + QCOMPARE(validLetters.size(), letters.size()); + for (int i = 0; i < letters.size(); ++i) + { + QCOMPARE(validLetters.at(i), letters.at(i)); + } } void Ut_RemoteList::testManufacturers() { + RemoteList subject("remotes.xml"); + for (int i = 0; i < validMfgs.keys().size(); ++i) + { + for (int j = 0; j < validMfgs.value(validLetters.at(i)).size(); ++j) + { + QCOMPARE(validMfgs.value(validLetters.at(i)).at(j), + subject.manufacturers(validLetters.at(i)).at(j)); + } + } } void Ut_RemoteList::testModels() @@ -53,8 +84,6 @@ void Ut_RemoteList::testModels() } - - QTEST_MAIN(Ut_RemoteList) diff --git a/ut/ut_remotelist/ut_remotelist.h b/ut/ut_remotelist/ut_remotelist.h index 939e234..0560529 100644 --- a/ut/ut_remotelist/ut_remotelist.h +++ b/ut/ut_remotelist/ut_remotelist.h @@ -2,6 +2,8 @@ #define _UT_REMOTELIST_H_ #include +#include +#include class Ut_RemoteList: public QObject { @@ -19,6 +21,11 @@ private slots: void testLetters(); void testManufacturers(); void testModels(); + +private: + QStringList validLetters; + QMap validMfgs; + QMap validModels; }; #endif // UT_REMOTELIST_H