controlpanelplugins/themeplugin/tsrc/unit/unittest_cpthemepreview/unittest_cpthemepreview.cpp
changeset 40 593f946f4fec
parent 11 10d0dd0e43f1
equal deleted inserted replaced
22:a5692c68d772 40:593f946f4fec
    17 
    17 
    18 #include <QtTest/QtTest>
    18 #include <QtTest/QtTest>
    19 
    19 
    20 #include "cpthemepreview.h"
    20 #include "cpthemepreview.h"
    21 #include "cpthemechanger.h"
    21 #include "cpthemechanger.h"
       
    22 #include "cpthemeutil.h"
    22 
    23 
    23 class TestCpThemePreview : public QObject
    24 class TestCpThemePreview : public QObject
    24 {
    25 {
    25     Q_OBJECT
    26     Q_OBJECT
    26 
    27 
    27 private slots:
    28 private slots:
    28     void init();
    29     
    29 
    30     void testAll();
    30     void testConstructor();
    31     
    31     void testConstructor2();
       
    32     void testSetThemeName();
       
    33     void testSetPreviewIcon();
       
    34     void testThemeSelected();
       
    35 
       
    36     void cleanup();
       
    37 
       
    38 private:
       
    39     CpThemeChanger *mThemeChanger;
       
    40 };
    32 };
    41 
    33 
    42 void TestCpThemePreview::init()
    34 void TestCpThemePreview::testAll()
    43 {
    35 {
    44     mThemeChanger = new CpThemeChanger();
    36     QList<QPair<QString, QString> > themes = CpThemeUtil::availableThemes();
    45 }
    37     
       
    38     QPair<QString, QString> pair;
       
    39     
       
    40     pair = themes.at(0);
       
    41     
       
    42     QString name = pair.first;
       
    43     QString themePath = pair.second;
       
    44     CpThemeInfo* themeInfo = CpThemeUtil::buildThemeInfo(themePath, name);
       
    45     
       
    46     CpThemePreview *obj = new CpThemePreview(*themeInfo);
       
    47     
       
    48     
       
    49     QVERIFY (obj != 0 );
       
    50     QCOMPARE(obj->themeName(), name);
       
    51     QCOMPARE(obj->themeIcon(), themeInfo->icon());
    46 
    52 
    47 void TestCpThemePreview::cleanup()
    53     delete themeInfo;
    48 {
    54     
    49     delete mThemeChanger;
    55     pair = themes.at(1);
    50 }
    56     name = pair.first;
    51 
    57     themePath = pair.second;
    52 void TestCpThemePreview::testConstructor()
    58     themeInfo = CpThemeUtil::buildThemeInfo(themePath, name);
    53 {
    59     
    54     CpThemePreview *obj = new CpThemePreview();
    60     obj->setThemeInfo(*themeInfo);
    55 
    61     
    56     QVERIFY( obj != 0 );
    62     QCOMPARE(obj->themeName(), name);
       
    63     QCOMPARE(obj->themeIcon(), themeInfo->icon());
       
    64         
    57 
    65 
    58     delete obj;
    66     delete obj;
       
    67 
    59 }
    68 }
    60 
       
    61 void TestCpThemePreview::testConstructor2()
       
    62 {
       
    63     QList<CpThemeChanger::ThemeInfo> themeInfo = mThemeChanger->themes();
       
    64 
       
    65     for (int i = 0; i < themeInfo.size(); ++i) {
       
    66         QString name = themeInfo.at(i).themeName;
       
    67         QString icon = themeInfo.at(i).iconPath;
       
    68 
       
    69         CpThemePreview *obj = new CpThemePreview(name, icon);
       
    70         QVERIFY (obj != 0 );
       
    71         QCOMPARE(obj->themeName(), name);
       
    72 
       
    73         delete obj;
       
    74     }
       
    75 
       
    76     // try with gibberish for the name and/or icon
       
    77     QString name = QString("alzihgiaureh");
       
    78     QString icon = QString("ahilwvihln");
       
    79     CpThemePreview *obj = new CpThemePreview(name);
       
    80     QVERIFY(obj != 0);
       
    81     delete obj;
       
    82 
       
    83     obj = new CpThemePreview(name,icon);
       
    84     QVERIFY(obj != 0);
       
    85     delete obj;
       
    86 }
       
    87 
       
    88 void TestCpThemePreview::testSetThemeName()
       
    89 {
       
    90     CpThemePreview *obj = new CpThemePreview();
       
    91     QList<CpThemeChanger::ThemeInfo> themeInfo = mThemeChanger->themes();
       
    92 
       
    93     for (int i = 0; i < themeInfo.size(); ++i) {
       
    94         QString name = themeInfo.at(i).themeName;
       
    95 
       
    96         obj->setThemeName(name);
       
    97         QCOMPARE(obj->themeName(), name);
       
    98     }
       
    99 
       
   100     delete obj;
       
   101 }
       
   102 
       
   103 // NULL TEST
       
   104 void TestCpThemePreview::testSetPreviewIcon()
       
   105 {
       
   106     CpThemePreview *obj = new CpThemePreview();
       
   107     QList<CpThemeChanger::ThemeInfo> themeInfo = mThemeChanger->themes();
       
   108 
       
   109     for (int i = 0; i < themeInfo.size(); ++i) {
       
   110         QString name = themeInfo.at(i).themeName;
       
   111 
       
   112         obj->setThemeName(name);
       
   113         QCOMPARE(obj->themeName(), name);
       
   114     }
       
   115 
       
   116     delete obj;
       
   117 }
       
   118 
       
   119 void TestCpThemePreview::testThemeSelected()
       
   120 {
       
   121     CpThemePreview *obj = new CpThemePreview();
       
   122     QSignalSpy spy(obj,SIGNAL(applyTheme(const QString&)));
       
   123 
       
   124     obj->themeSelected();
       
   125 
       
   126     QCOMPARE(spy.count(), 1);
       
   127 
       
   128     delete obj;
       
   129 }
       
   130 
       
   131 
    69 
   132 QTEST_MAIN(TestCpThemePreview)
    70 QTEST_MAIN(TestCpThemePreview)
   133 #include "unittest_cpthemepreview.moc"
    71 #include "unittest_cpthemepreview.moc"
   134 
    72