qtmeetings sources to Maemo garage
[qtmeetings] / tests / Domain / Configuration / Configuration / TestConfiguration.cpp
1 #include <QtTest/QtTest>
2 #include "Configuration.h"
3 #include "ConnectionSettings.h"
4 #include "DisplaySettings.h"
5 #include "StartupSettings.h"
6 #include "Room.h"
7 #include "TestConfiguration.h"
8
9 const QString sAdminPw = "admin";
10 const QString sUsername = "username";
11 const QString sServerPw = "password"; 
12 const QString sServerUrl = "jklexch01.ixonos.com";
13 const unsigned int sRefreshInterval = 30;
14 const DisplaySettings::DateFormat sDateFormat = DisplaySettings::LongDateFormat;
15 const DisplaySettings::TimeFormat sTimeFormat = DisplaySettings::TwelveHoursTimeFormat;
16 const DisplaySettings::DaysInSchedule sDaysInSchedule = DisplaySettings::WholeWeekInSchedule;
17 const QTime sDayStartsAt = QTime(6,0);
18 const QTime sDayEndsAt = QTime(18,0);
19 const int sScreensaver = 1;
20
21 const bool sIsPowersavingEnabled = false;
22 const QTime sTurnOnAt = QTime(5,45);
23 const QTime sTurnOffAt = QTime(18,15);
24
25
26
27 void TestConfiguration::initTestCase()
28 {
29         iConf = Configuration::instance();
30         QVERIFY( iConf != 0 );
31
32         // Set values to empty configuration
33         QList<Room*> testrooms;
34         testrooms.append( new Room( "Taurus", "meetingroom.taurus_jyv@ixonos.com" ) );
35         testrooms.append( new Room( "Pegasus", "meetingroom.pegasus_jyv@ixonos.com" ) );
36         testrooms.append( new Room( "Hercules", "meetingroom.hercules@ixonos.com" ) );
37         iConf->setRooms(testrooms);
38         iConf->setAdminPassword(sAdminPw);
39
40         // connection
41         iConf->connectionSettings()->setServerUrl(sServerUrl);
42         iConf->connectionSettings()->setUsername(sUsername);
43         iConf->connectionSettings()->setPassword(sServerPw);
44         iConf->connectionSettings()->setRefreshInterval(sRefreshInterval);
45         
46         // display
47         iConf->displaySettings()->setDateFormat(sDateFormat);
48         iConf->displaySettings()->setTimeFormat(sTimeFormat);
49         iConf->displaySettings()->setDayStartsAt(sDayStartsAt);
50         iConf->displaySettings()->setDayEndsAt(sDayEndsAt);
51         iConf->displaySettings()->setDaysInSchedule(sDaysInSchedule);
52         iConf->displaySettings()->setScreensaver(sScreensaver);
53         
54         // startup
55         iConf->startupSettings()->setPowersavingEnabled(sIsPowersavingEnabled);
56         iConf->startupSettings()->setTurnOnAt(sTurnOnAt);
57         iConf->startupSettings()->setTurnOffAt(sTurnOffAt);
58 }
59
60 void TestConfiguration::cleanupTestCase()
61 {
62         delete iConf;
63         iConf = NULL;
64 }
65
66 void TestConfiguration::init()
67 {
68 }
69
70 void TestConfiguration::cleanup()
71 {
72 }
73
74 void TestConfiguration::testInstance()
75 {
76         QCOMPARE( iConf, Configuration::instance() );
77 }
78
79 void TestConfiguration::testSave()
80 {
81         // Just check there is no crash
82         // The following testcases make sure the settings are saved correctly
83         iConf->save();
84 /*      
85         // delete old configuration 
86         delete iConf;
87         iConf = NULL;
88         // ...and create new instance
89         iConf = Configuration::instance();
90         QVERIFY( iConf != 0 ); */
91 }
92
93
94 void TestConfiguration::testDefaultRoom()
95 {
96         
97         Room* room = iConf->defaultRoom();
98         QVERIFY( room != 0 );
99         QCOMPARE( room->name(), QString("Taurus") );
100         QCOMPARE( room->address(), QString("meetingroom.taurus_jyv@ixonos.com") );
101 }
102
103 void TestConfiguration::testConnectionSettings()
104 {
105         ConnectionSettings* conn = iConf->connectionSettings();
106         QVERIFY( conn != 0 );
107         QCOMPARE( conn->serverUrl().toString(), sServerUrl );
108         QCOMPARE( conn->username(), sUsername );
109         QCOMPARE( conn->password(), sServerPw );
110         QCOMPARE( conn->refreshInterval(), sRefreshInterval );
111 }
112
113 void TestConfiguration::testLanguageCode()
114 {
115         QCOMPARE( iConf->languageCode(), QString( "EN" ) );
116 }
117
118 void TestConfiguration::testRooms()
119 {
120         QList<Room*> testrooms;
121         testrooms.append( new Room( "Taurus", "meetingroom.taurus_jyv@ixonos.com" ) );
122         testrooms.append( new Room( "Pegasus", "meetingroom.pegasus_jyv@ixonos.com" ) );
123         testrooms.append( new Room( "Hercules", "meetingroom.hercules@ixonos.com" ) );
124         
125         QList<Room*> rooms = iConf->rooms();
126         QVERIFY( rooms.count() == 3 );
127         QCOMPARE( rooms[0], iConf->defaultRoom() );
128         for ( int i = 0; i < rooms.count(); i++ )
129         {
130                 Room* room = rooms[i];
131                 Room* testroom = testrooms[i];
132                 QCOMPARE( room->name(), testroom->name() );
133                 QCOMPARE( room->address(), testroom->address() );
134         }
135 }
136
137 void TestConfiguration::testStartupSettings()
138 {
139         StartupSettings *settings = iConf->startupSettings();
140
141         QVERIFY( settings->isPowersavingEnabled() == sIsPowersavingEnabled );
142         QCOMPARE( settings->turnOnAt(), sTurnOnAt );
143         QCOMPARE( settings->turnOffAt(), sTurnOffAt );
144 }
145
146 void TestConfiguration::testDisplaySettings()
147 {
148         DisplaySettings *settings = iConf->displaySettings();
149         
150         QVERIFY( settings->daysInSchedule() == sDaysInSchedule );
151         QCOMPARE( settings->dayStartsAt(), sDayStartsAt );
152         QCOMPARE( settings->dayEndsAt(), sDayEndsAt );
153         QCOMPARE( settings->dateFormat(), QString( "dddd d MMMM yyyy" ) );
154         QCOMPARE( settings->timeFormat(), QString( "hh:mm ap" ) );
155 }
156
157 void TestConfiguration::testAdminPassword()
158 {
159         QCryptographicHash *hash = new QCryptographicHash( QCryptographicHash::Md5 );
160         hash->addData( sAdminPw.toUtf8() );
161         QByteArray password = hash->result();
162         delete hash;
163
164         QCOMPARE( iConf->adminPassword(), QString( password ) );
165 }