organizer_plat/notes_editor_api/tsrc/unittest_noteseditorplugin/src/unittest_noteseditorplugin.cpp
author hgs
Mon, 28 Jun 2010 15:22:02 +0530
changeset 45 b6db4fd4947b
child 55 2c54b51f39c4
permissions -rw-r--r--
201025
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
45
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
hgs
parents:
diff changeset
     3
* All rights reserved.
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
hgs
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
hgs
parents:
diff changeset
     8
*
hgs
parents:
diff changeset
     9
* Initial Contributors:
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
hgs
parents:
diff changeset
    11
*
hgs
parents:
diff changeset
    12
* Contributors:
hgs
parents:
diff changeset
    13
*
hgs
parents:
diff changeset
    14
* Description:
hgs
parents:
diff changeset
    15
*
hgs
parents:
diff changeset
    16
*/
hgs
parents:
diff changeset
    17
hgs
parents:
diff changeset
    18
// System include
hgs
parents:
diff changeset
    19
#include <QtTest/QtTest>
hgs
parents:
diff changeset
    20
#include <HbMainWindow>
hgs
parents:
diff changeset
    21
#include <NotesEditorInterface>
hgs
parents:
diff changeset
    22
#include <AgendaUtil>
hgs
parents:
diff changeset
    23
#include <AgendaEntry>
hgs
parents:
diff changeset
    24
hgs
parents:
diff changeset
    25
// User includes
hgs
parents:
diff changeset
    26
#include "unittest_noteseditorplugin.h"
hgs
parents:
diff changeset
    27
hgs
parents:
diff changeset
    28
hgs
parents:
diff changeset
    29
/*!
hgs
parents:
diff changeset
    30
	\class TestNotesEditorPlugin
hgs
parents:
diff changeset
    31
hgs
parents:
diff changeset
    32
	Unit test clas for Notes Editor Plugin apis
hgs
parents:
diff changeset
    33
 */
hgs
parents:
diff changeset
    34
hgs
parents:
diff changeset
    35
hgs
parents:
diff changeset
    36
/*!
hgs
parents:
diff changeset
    37
	Constructor
hgs
parents:
diff changeset
    38
 */
hgs
parents:
diff changeset
    39
hgs
parents:
diff changeset
    40
TestNotesEditorPlugin::TestNotesEditorPlugin()
hgs
parents:
diff changeset
    41
{
hgs
parents:
diff changeset
    42
}
hgs
parents:
diff changeset
    43
hgs
parents:
diff changeset
    44
/*!
hgs
parents:
diff changeset
    45
	Destructor
hgs
parents:
diff changeset
    46
 */
hgs
parents:
diff changeset
    47
TestNotesEditorPlugin::~TestNotesEditorPlugin()
hgs
parents:
diff changeset
    48
{
hgs
parents:
diff changeset
    49
}
hgs
parents:
diff changeset
    50
hgs
parents:
diff changeset
    51
/*!
hgs
parents:
diff changeset
    52
	Initialise before calling the test case
hgs
parents:
diff changeset
    53
 */
hgs
parents:
diff changeset
    54
void TestNotesEditorPlugin::init()
hgs
parents:
diff changeset
    55
{
hgs
parents:
diff changeset
    56
}
hgs
parents:
diff changeset
    57
hgs
parents:
diff changeset
    58
/*!
hgs
parents:
diff changeset
    59
	Do cleanup after each test case
hgs
parents:
diff changeset
    60
 */
hgs
parents:
diff changeset
    61
void TestNotesEditorPlugin::cleanup()
hgs
parents:
diff changeset
    62
{
hgs
parents:
diff changeset
    63
}
hgs
parents:
diff changeset
    64
hgs
parents:
diff changeset
    65
/*!
hgs
parents:
diff changeset
    66
	Test the api NotesEditor::NotesEditor()
hgs
parents:
diff changeset
    67
 */
hgs
parents:
diff changeset
    68
hgs
parents:
diff changeset
    69
void TestNotesEditorPlugin::testPluginLoadUnLoad()
hgs
parents:
diff changeset
    70
{
hgs
parents:
diff changeset
    71
	QDir dir(NOTES_EDITOR_PLUGIN_PATH);
hgs
parents:
diff changeset
    72
	QString pluginName = dir.absoluteFilePath(NOTES_EDITOR_PLUGIN_NAME);
hgs
parents:
diff changeset
    73
hgs
parents:
diff changeset
    74
	// Create NotesEditor object
hgs
parents:
diff changeset
    75
	QPluginLoader *pluginLoader = new QPluginLoader(pluginName);
hgs
parents:
diff changeset
    76
hgs
parents:
diff changeset
    77
	// Load the plugin
hgs
parents:
diff changeset
    78
	QVERIFY(pluginLoader->load());
hgs
parents:
diff changeset
    79
hgs
parents:
diff changeset
    80
	QObject *plugin = qobject_cast<QObject*> (pluginLoader->instance());
hgs
parents:
diff changeset
    81
hgs
parents:
diff changeset
    82
	NotesEditorInterface* interface =
hgs
parents:
diff changeset
    83
			qobject_cast<NotesEditorInterface*>(plugin);
hgs
parents:
diff changeset
    84
hgs
parents:
diff changeset
    85
	QVERIFY(interface);
hgs
parents:
diff changeset
    86
hgs
parents:
diff changeset
    87
	// Unload the plugin
hgs
parents:
diff changeset
    88
	QVERIFY(pluginLoader->unload());
hgs
parents:
diff changeset
    89
	delete pluginLoader;
hgs
parents:
diff changeset
    90
}
hgs
parents:
diff changeset
    91
hgs
parents:
diff changeset
    92
/*!
hgs
parents:
diff changeset
    93
	Test the api NotesEditorInterface::edit(const QString &string)
hgs
parents:
diff changeset
    94
 */
hgs
parents:
diff changeset
    95
void TestNotesEditorPlugin::testEditingNoteWithText()
hgs
parents:
diff changeset
    96
{
hgs
parents:
diff changeset
    97
	HbMainWindow window;
hgs
parents:
diff changeset
    98
	window.show();
hgs
parents:
diff changeset
    99
hgs
parents:
diff changeset
   100
	QDir dir(NOTES_EDITOR_PLUGIN_PATH);
hgs
parents:
diff changeset
   101
	QString pluginName = dir.absoluteFilePath(NOTES_EDITOR_PLUGIN_NAME);
hgs
parents:
diff changeset
   102
hgs
parents:
diff changeset
   103
	// Create plugin loader.
hgs
parents:
diff changeset
   104
	QPluginLoader *pluginLoader = new QPluginLoader(pluginName);
hgs
parents:
diff changeset
   105
hgs
parents:
diff changeset
   106
	// Load the plugin.
hgs
parents:
diff changeset
   107
	QVERIFY(pluginLoader->load());
hgs
parents:
diff changeset
   108
hgs
parents:
diff changeset
   109
	QObject *plugin = qobject_cast<QObject*> (pluginLoader->instance());
hgs
parents:
diff changeset
   110
	NotesEditorInterface* interface =
hgs
parents:
diff changeset
   111
			qobject_cast<NotesEditorInterface*>(plugin);
hgs
parents:
diff changeset
   112
hgs
parents:
diff changeset
   113
	QString noteText("Test editing of Note by providing text(QString)");
hgs
parents:
diff changeset
   114
	// Call edit using the text.
hgs
parents:
diff changeset
   115
	interface->edit(noteText);
hgs
parents:
diff changeset
   116
hgs
parents:
diff changeset
   117
	// Wait for Editor to launch.
hgs
parents:
diff changeset
   118
	QTest::qWait(2000);
hgs
parents:
diff changeset
   119
hgs
parents:
diff changeset
   120
	// Call close on editor by saving the note
hgs
parents:
diff changeset
   121
	ulong id = interface->close(NotesEditorInterface::CloseWithSave);
hgs
parents:
diff changeset
   122
	QVERIFY(id);
hgs
parents:
diff changeset
   123
hgs
parents:
diff changeset
   124
	// Create agenda Utility.
hgs
parents:
diff changeset
   125
	AgendaUtil *agendaUtil = new AgendaUtil();
hgs
parents:
diff changeset
   126
	// Wait for completion of instance view/entryview creation.
hgs
parents:
diff changeset
   127
	QTest::qWait(1);
hgs
parents:
diff changeset
   128
	QVERIFY(agendaUtil);
hgs
parents:
diff changeset
   129
hgs
parents:
diff changeset
   130
	// Fetch the entry using the id.
hgs
parents:
diff changeset
   131
	AgendaEntry entry = agendaUtil->fetchById(id);
hgs
parents:
diff changeset
   132
hgs
parents:
diff changeset
   133
	QString entryDescription = entry.description();
hgs
parents:
diff changeset
   134
	int compareResult = noteText.compare(entryDescription);
hgs
parents:
diff changeset
   135
hgs
parents:
diff changeset
   136
	QVERIFY(!compareResult);
hgs
parents:
diff changeset
   137
hgs
parents:
diff changeset
   138
	// cleanup
hgs
parents:
diff changeset
   139
	delete agendaUtil;
hgs
parents:
diff changeset
   140
hgs
parents:
diff changeset
   141
	// Unload the plugin.
hgs
parents:
diff changeset
   142
	QVERIFY(pluginLoader->unload());
hgs
parents:
diff changeset
   143
	delete pluginLoader;
hgs
parents:
diff changeset
   144
}
hgs
parents:
diff changeset
   145
hgs
parents:
diff changeset
   146
/*!
hgs
parents:
diff changeset
   147
	Test the api NotesEditor::edit(const QFile &handle)
hgs
parents:
diff changeset
   148
 */
hgs
parents:
diff changeset
   149
void TestNotesEditorPlugin::testEditingNoteWithFileHandle()
hgs
parents:
diff changeset
   150
{
hgs
parents:
diff changeset
   151
	// Nothing yet
hgs
parents:
diff changeset
   152
}
hgs
parents:
diff changeset
   153
hgs
parents:
diff changeset
   154
/*!
hgs
parents:
diff changeset
   155
	Test the api NotesEditor::edit(AgendaEntry entry)
hgs
parents:
diff changeset
   156
 */
hgs
parents:
diff changeset
   157
void TestNotesEditorPlugin::testEditingNoteWithAgendaEntry()
hgs
parents:
diff changeset
   158
{
hgs
parents:
diff changeset
   159
	HbMainWindow window;
hgs
parents:
diff changeset
   160
	window.show();
hgs
parents:
diff changeset
   161
hgs
parents:
diff changeset
   162
	QDir dir(NOTES_EDITOR_PLUGIN_PATH);
hgs
parents:
diff changeset
   163
	QString pluginName = dir.absoluteFilePath(NOTES_EDITOR_PLUGIN_NAME);
hgs
parents:
diff changeset
   164
hgs
parents:
diff changeset
   165
	// Create plugin loader.
hgs
parents:
diff changeset
   166
	QPluginLoader *pluginLoader = new QPluginLoader(pluginName);
hgs
parents:
diff changeset
   167
hgs
parents:
diff changeset
   168
	// Load the plugin.
hgs
parents:
diff changeset
   169
	QVERIFY(pluginLoader->load());
hgs
parents:
diff changeset
   170
hgs
parents:
diff changeset
   171
	QObject *plugin = qobject_cast<QObject*> (pluginLoader->instance());
hgs
parents:
diff changeset
   172
	NotesEditorInterface* interface =
hgs
parents:
diff changeset
   173
			qobject_cast<NotesEditorInterface*>(plugin);
hgs
parents:
diff changeset
   174
hgs
parents:
diff changeset
   175
	AgendaEntry entry;
hgs
parents:
diff changeset
   176
	entry.setType(AgendaEntry::TypeNote);
hgs
parents:
diff changeset
   177
	entry.setDescription(QString("Test Editing Note by providing Agenda Entry"));
hgs
parents:
diff changeset
   178
hgs
parents:
diff changeset
   179
	// Call edit on agenda entry
hgs
parents:
diff changeset
   180
	interface->edit(entry);
hgs
parents:
diff changeset
   181
hgs
parents:
diff changeset
   182
	// Wait for Editor to launch.
hgs
parents:
diff changeset
   183
	QTest::qWait(2000);
hgs
parents:
diff changeset
   184
hgs
parents:
diff changeset
   185
	ulong id = interface->close(NotesEditorInterface::CloseWithSave);
hgs
parents:
diff changeset
   186
hgs
parents:
diff changeset
   187
	AgendaUtil *agendaUtil = new AgendaUtil();
hgs
parents:
diff changeset
   188
	// Wait for completion of instance view/entryview creation.
hgs
parents:
diff changeset
   189
	QTest::qWait(1);
hgs
parents:
diff changeset
   190
	QVERIFY(agendaUtil);
hgs
parents:
diff changeset
   191
hgs
parents:
diff changeset
   192
	// Compare the description after saving.
hgs
parents:
diff changeset
   193
	AgendaEntry afterSave = agendaUtil->fetchById(id);
hgs
parents:
diff changeset
   194
	QCOMPARE(afterSave.description(), entry.description());
hgs
parents:
diff changeset
   195
hgs
parents:
diff changeset
   196
	// cleanup.
hgs
parents:
diff changeset
   197
	delete agendaUtil;
hgs
parents:
diff changeset
   198
hgs
parents:
diff changeset
   199
	// Unload the plugin.
hgs
parents:
diff changeset
   200
	QVERIFY(pluginLoader->unload());
hgs
parents:
diff changeset
   201
	delete pluginLoader;
hgs
parents:
diff changeset
   202
}
hgs
parents:
diff changeset
   203
hgs
parents:
diff changeset
   204
/*!
hgs
parents:
diff changeset
   205
	Test the api NotesEditor::edit(ulong id)
hgs
parents:
diff changeset
   206
 */
hgs
parents:
diff changeset
   207
void TestNotesEditorPlugin::testEditingNoteWithId()
hgs
parents:
diff changeset
   208
{
hgs
parents:
diff changeset
   209
	HbMainWindow window;
hgs
parents:
diff changeset
   210
	window.show();
hgs
parents:
diff changeset
   211
hgs
parents:
diff changeset
   212
	QDir dir(NOTES_EDITOR_PLUGIN_PATH);
hgs
parents:
diff changeset
   213
	QString pluginName = dir.absoluteFilePath(NOTES_EDITOR_PLUGIN_NAME);
hgs
parents:
diff changeset
   214
hgs
parents:
diff changeset
   215
	// Create plugin loader.
hgs
parents:
diff changeset
   216
	QPluginLoader *pluginLoader = new QPluginLoader(pluginName);
hgs
parents:
diff changeset
   217
hgs
parents:
diff changeset
   218
	// Load the plugin.
hgs
parents:
diff changeset
   219
	QVERIFY(pluginLoader->load());
hgs
parents:
diff changeset
   220
hgs
parents:
diff changeset
   221
	QObject *plugin = qobject_cast<QObject*> (pluginLoader->instance());
hgs
parents:
diff changeset
   222
	NotesEditorInterface* interface =
hgs
parents:
diff changeset
   223
			qobject_cast<NotesEditorInterface*>(plugin);
hgs
parents:
diff changeset
   224
hgs
parents:
diff changeset
   225
	AgendaUtil *agendaUtil = new AgendaUtil();
hgs
parents:
diff changeset
   226
	// Wait for completion of instance view/entryview creation.
hgs
parents:
diff changeset
   227
	QTest::qWait(1);
hgs
parents:
diff changeset
   228
hgs
parents:
diff changeset
   229
	QVERIFY(agendaUtil);
hgs
parents:
diff changeset
   230
hgs
parents:
diff changeset
   231
	AgendaEntry entry;
hgs
parents:
diff changeset
   232
	entry.setType(AgendaEntry::TypeNote);
hgs
parents:
diff changeset
   233
	entry.setDescription(
hgs
parents:
diff changeset
   234
			QString("Test Editing of Note by providing entry local Id"));
hgs
parents:
diff changeset
   235
hgs
parents:
diff changeset
   236
	ulong id = agendaUtil->addEntry(entry);
hgs
parents:
diff changeset
   237
hgs
parents:
diff changeset
   238
	interface->edit(id);
hgs
parents:
diff changeset
   239
hgs
parents:
diff changeset
   240
	// Wait for Editor to launch.
hgs
parents:
diff changeset
   241
	QTest::qWait(1000);
hgs
parents:
diff changeset
   242
hgs
parents:
diff changeset
   243
	ulong savedId = interface->close(NotesEditorInterface::CloseWithSave);
hgs
parents:
diff changeset
   244
hgs
parents:
diff changeset
   245
	// Compare the entry after saving. Using the old entry id since
hgs
parents:
diff changeset
   246
	// text is not modified in the editor. Wait can be increased to allow user
hgs
parents:
diff changeset
   247
	// to modify the text.
hgs
parents:
diff changeset
   248
	AgendaEntry afterSave = agendaUtil->fetchById(id);
hgs
parents:
diff changeset
   249
	QCOMPARE(afterSave.description(), entry.description());
hgs
parents:
diff changeset
   250
hgs
parents:
diff changeset
   251
	// cleanup.
hgs
parents:
diff changeset
   252
	delete agendaUtil;
hgs
parents:
diff changeset
   253
hgs
parents:
diff changeset
   254
	// Unload the plugin.
hgs
parents:
diff changeset
   255
	QVERIFY(pluginLoader->unload());
hgs
parents:
diff changeset
   256
	delete pluginLoader;
hgs
parents:
diff changeset
   257
}
hgs
parents:
diff changeset
   258
hgs
parents:
diff changeset
   259
hgs
parents:
diff changeset
   260
/*!
hgs
parents:
diff changeset
   261
	Test the api NotesEditor::edit(const QFile &handle)
hgs
parents:
diff changeset
   262
 */
hgs
parents:
diff changeset
   263
void TestNotesEditorPlugin::testEditingTodoWithFileHandle()
hgs
parents:
diff changeset
   264
{
hgs
parents:
diff changeset
   265
	// Nothing yet.
hgs
parents:
diff changeset
   266
}
hgs
parents:
diff changeset
   267
hgs
parents:
diff changeset
   268
/*!
hgs
parents:
diff changeset
   269
	Test the api NotesEditor::edit(AgendaEntry entry)
hgs
parents:
diff changeset
   270
 */
hgs
parents:
diff changeset
   271
void TestNotesEditorPlugin::testEditingTodoWithAgendaEntry()
hgs
parents:
diff changeset
   272
{
hgs
parents:
diff changeset
   273
	HbMainWindow mainWindow;
hgs
parents:
diff changeset
   274
	mainWindow.show();
hgs
parents:
diff changeset
   275
hgs
parents:
diff changeset
   276
	QDir dir(NOTES_EDITOR_PLUGIN_PATH);
hgs
parents:
diff changeset
   277
	QString pluginName = dir.absoluteFilePath(NOTES_EDITOR_PLUGIN_NAME);
hgs
parents:
diff changeset
   278
hgs
parents:
diff changeset
   279
	// Create plugin loader.
hgs
parents:
diff changeset
   280
	QPluginLoader *pluginLoader = new QPluginLoader(pluginName);
hgs
parents:
diff changeset
   281
hgs
parents:
diff changeset
   282
	// Load the plugin.
hgs
parents:
diff changeset
   283
	QVERIFY(pluginLoader->load());
hgs
parents:
diff changeset
   284
hgs
parents:
diff changeset
   285
	QObject *plugin = qobject_cast<QObject*> (pluginLoader->instance());
hgs
parents:
diff changeset
   286
	NotesEditorInterface* interface =
hgs
parents:
diff changeset
   287
			qobject_cast<NotesEditorInterface*>(plugin);
hgs
parents:
diff changeset
   288
hgs
parents:
diff changeset
   289
	AgendaUtil *agendaUtil = new AgendaUtil();
hgs
parents:
diff changeset
   290
	// Wait for completion of instance view/entryview creation.
hgs
parents:
diff changeset
   291
	QTest::qWait(1);
hgs
parents:
diff changeset
   292
	QVERIFY(agendaUtil);
hgs
parents:
diff changeset
   293
hgs
parents:
diff changeset
   294
	// Create a agenda entry with type to-do
hgs
parents:
diff changeset
   295
	AgendaEntry entry;
hgs
parents:
diff changeset
   296
	entry.setType(AgendaEntry::TypeTodo);
hgs
parents:
diff changeset
   297
	entry.setSummary(QString("Test Editing of Todo by providing AgendaEntry"));
hgs
parents:
diff changeset
   298
	entry.setDescription(QString("@QTest Framework."));
hgs
parents:
diff changeset
   299
	entry.setStartAndEndTime(
hgs
parents:
diff changeset
   300
			QDateTime::currentDateTime(),QDateTime::currentDateTime());
hgs
parents:
diff changeset
   301
	entry.setStatus(AgendaEntry::TodoNeedsAction);
hgs
parents:
diff changeset
   302
	entry.setPriority(2);
hgs
parents:
diff changeset
   303
hgs
parents:
diff changeset
   304
	ulong id = agendaUtil->addEntry(entry);
hgs
parents:
diff changeset
   305
hgs
parents:
diff changeset
   306
	AgendaEntry storedEntry = agendaUtil->fetchById(id);
hgs
parents:
diff changeset
   307
hgs
parents:
diff changeset
   308
	// Call edit on agenda entry
hgs
parents:
diff changeset
   309
	interface->edit(storedEntry);
hgs
parents:
diff changeset
   310
hgs
parents:
diff changeset
   311
	// Wait for Editor to launch.
hgs
parents:
diff changeset
   312
	QTest::qWait(3000);
hgs
parents:
diff changeset
   313
hgs
parents:
diff changeset
   314
	ulong afterSaveId = interface->close(NotesEditorInterface::CloseWithSave);
hgs
parents:
diff changeset
   315
hgs
parents:
diff changeset
   316
	// Compare the entry after saving.
hgs
parents:
diff changeset
   317
	AgendaEntry afterSave = agendaUtil->fetchById(id);
hgs
parents:
diff changeset
   318
	QCOMPARE(afterSave.id(),id);
hgs
parents:
diff changeset
   319
	QCOMPARE(afterSave.type(),entry.type());
hgs
parents:
diff changeset
   320
	QCOMPARE(afterSave.summary(), entry.summary());
hgs
parents:
diff changeset
   321
	QCOMPARE(afterSave.description(), entry.description());
hgs
parents:
diff changeset
   322
hgs
parents:
diff changeset
   323
	// cleanup.
hgs
parents:
diff changeset
   324
	delete agendaUtil;
hgs
parents:
diff changeset
   325
hgs
parents:
diff changeset
   326
	// Unload the plugin.
hgs
parents:
diff changeset
   327
	QVERIFY(pluginLoader->unload());
hgs
parents:
diff changeset
   328
	delete pluginLoader;
hgs
parents:
diff changeset
   329
}
hgs
parents:
diff changeset
   330
hgs
parents:
diff changeset
   331
/*!
hgs
parents:
diff changeset
   332
	Test the api NotesEditor::edit(ulong id)
hgs
parents:
diff changeset
   333
 */
hgs
parents:
diff changeset
   334
void TestNotesEditorPlugin::testEditingTodoWithId()
hgs
parents:
diff changeset
   335
{
hgs
parents:
diff changeset
   336
	HbMainWindow window;
hgs
parents:
diff changeset
   337
	window.show();
hgs
parents:
diff changeset
   338
hgs
parents:
diff changeset
   339
	QDir dir(NOTES_EDITOR_PLUGIN_PATH);
hgs
parents:
diff changeset
   340
	QString pluginName = dir.absoluteFilePath(NOTES_EDITOR_PLUGIN_NAME);
hgs
parents:
diff changeset
   341
hgs
parents:
diff changeset
   342
	// Create plugin loader.
hgs
parents:
diff changeset
   343
	QPluginLoader *pluginLoader = new QPluginLoader(pluginName);
hgs
parents:
diff changeset
   344
hgs
parents:
diff changeset
   345
	// Load the plugin.
hgs
parents:
diff changeset
   346
	QVERIFY(pluginLoader->load());
hgs
parents:
diff changeset
   347
hgs
parents:
diff changeset
   348
	QObject *plugin = qobject_cast<QObject*> (pluginLoader->instance());
hgs
parents:
diff changeset
   349
	NotesEditorInterface* interface =
hgs
parents:
diff changeset
   350
			qobject_cast<NotesEditorInterface*>(plugin);
hgs
parents:
diff changeset
   351
hgs
parents:
diff changeset
   352
	AgendaUtil *agendaUtil = new AgendaUtil();
hgs
parents:
diff changeset
   353
	// Wait for completion of instance view/entryview creation.
hgs
parents:
diff changeset
   354
	QTest::qWait(1);
hgs
parents:
diff changeset
   355
	QVERIFY(agendaUtil);
hgs
parents:
diff changeset
   356
hgs
parents:
diff changeset
   357
	// Create a agenda entry with type to-do
hgs
parents:
diff changeset
   358
	AgendaEntry entry;
hgs
parents:
diff changeset
   359
	entry.setType(AgendaEntry::TypeTodo);
hgs
parents:
diff changeset
   360
	entry.setSummary(
hgs
parents:
diff changeset
   361
			QString("Test Editing of Todo by providing entry local Id"));
hgs
parents:
diff changeset
   362
	entry.setDescription(QString("@QTest Framework"));
hgs
parents:
diff changeset
   363
	entry.setStartAndEndTime(
hgs
parents:
diff changeset
   364
			QDateTime::currentDateTime(),QDateTime::currentDateTime());
hgs
parents:
diff changeset
   365
	entry.setStatus(AgendaEntry::TodoNeedsAction);
hgs
parents:
diff changeset
   366
	entry.setPriority(2);
hgs
parents:
diff changeset
   367
hgs
parents:
diff changeset
   368
	ulong id = agendaUtil->addEntry(entry);
hgs
parents:
diff changeset
   369
	AgendaEntry storedEntry = agendaUtil->fetchById(id);
hgs
parents:
diff changeset
   370
hgs
parents:
diff changeset
   371
	// Call edit on agenda entry
hgs
parents:
diff changeset
   372
	interface->edit(storedEntry);
hgs
parents:
diff changeset
   373
hgs
parents:
diff changeset
   374
	// Wait for Editor to launch.
hgs
parents:
diff changeset
   375
	QTest::qWait(3000);
hgs
parents:
diff changeset
   376
hgs
parents:
diff changeset
   377
	ulong afterSaveId = interface->close(NotesEditorInterface::CloseWithSave);
hgs
parents:
diff changeset
   378
hgs
parents:
diff changeset
   379
	// Compare the entry after saving.
hgs
parents:
diff changeset
   380
	AgendaEntry afterSave = agendaUtil->fetchById(id);
hgs
parents:
diff changeset
   381
	QCOMPARE(afterSave.id(),id);
hgs
parents:
diff changeset
   382
	QCOMPARE(afterSave.type(),entry.type());
hgs
parents:
diff changeset
   383
	QCOMPARE(afterSave.summary(), entry.summary());
hgs
parents:
diff changeset
   384
	QCOMPARE(afterSave.description(), entry.description());
hgs
parents:
diff changeset
   385
hgs
parents:
diff changeset
   386
	// cleanup.
hgs
parents:
diff changeset
   387
	delete agendaUtil;
hgs
parents:
diff changeset
   388
hgs
parents:
diff changeset
   389
	// Unload the plugin.
hgs
parents:
diff changeset
   390
	QVERIFY(pluginLoader->unload());
hgs
parents:
diff changeset
   391
	delete pluginLoader;
hgs
parents:
diff changeset
   392
}
hgs
parents:
diff changeset
   393
hgs
parents:
diff changeset
   394
/*!
hgs
parents:
diff changeset
   395
	Test the api NotesEditor::create(CreateType type)
hgs
parents:
diff changeset
   396
 */
hgs
parents:
diff changeset
   397
void TestNotesEditorPlugin::testCreationOfNote()
hgs
parents:
diff changeset
   398
{
hgs
parents:
diff changeset
   399
	HbMainWindow window;
hgs
parents:
diff changeset
   400
	window.show();
hgs
parents:
diff changeset
   401
hgs
parents:
diff changeset
   402
	QDir dir(NOTES_EDITOR_PLUGIN_PATH);
hgs
parents:
diff changeset
   403
	QString pluginName = dir.absoluteFilePath(NOTES_EDITOR_PLUGIN_NAME);
hgs
parents:
diff changeset
   404
hgs
parents:
diff changeset
   405
	// Create plugin loader.
hgs
parents:
diff changeset
   406
	QPluginLoader *pluginLoader = new QPluginLoader(pluginName);
hgs
parents:
diff changeset
   407
hgs
parents:
diff changeset
   408
	// Load the plugin.
hgs
parents:
diff changeset
   409
	QVERIFY(pluginLoader->load());
hgs
parents:
diff changeset
   410
hgs
parents:
diff changeset
   411
	QObject *plugin = qobject_cast<QObject*> (pluginLoader->instance());
hgs
parents:
diff changeset
   412
	NotesEditorInterface* interface =
hgs
parents:
diff changeset
   413
			qobject_cast<NotesEditorInterface*>(plugin);
hgs
parents:
diff changeset
   414
hgs
parents:
diff changeset
   415
	interface->create(NotesEditorInterface::CreateNote);
hgs
parents:
diff changeset
   416
hgs
parents:
diff changeset
   417
	// Wait for Editor to launch.
hgs
parents:
diff changeset
   418
	QTest::qWait(3000);
hgs
parents:
diff changeset
   419
hgs
parents:
diff changeset
   420
	ulong afterSaveId = interface->close(NotesEditorInterface::CloseWithSave);
hgs
parents:
diff changeset
   421
hgs
parents:
diff changeset
   422
	// Note is not saved since description is empty
hgs
parents:
diff changeset
   423
	// TODO use key press events here
hgs
parents:
diff changeset
   424
hgs
parents:
diff changeset
   425
	QVERIFY(!afterSaveId);
hgs
parents:
diff changeset
   426
hgs
parents:
diff changeset
   427
	// Unload the plugin.
hgs
parents:
diff changeset
   428
	QVERIFY(pluginLoader->unload());
hgs
parents:
diff changeset
   429
	delete pluginLoader;
hgs
parents:
diff changeset
   430
}
hgs
parents:
diff changeset
   431
hgs
parents:
diff changeset
   432
/*!
hgs
parents:
diff changeset
   433
	Test the api NotesEditor::create(CreateType type)
hgs
parents:
diff changeset
   434
 */
hgs
parents:
diff changeset
   435
void TestNotesEditorPlugin::testCreationofTodo()
hgs
parents:
diff changeset
   436
{
hgs
parents:
diff changeset
   437
	HbMainWindow window;
hgs
parents:
diff changeset
   438
	window.show();
hgs
parents:
diff changeset
   439
hgs
parents:
diff changeset
   440
	QDir dir(NOTES_EDITOR_PLUGIN_PATH);
hgs
parents:
diff changeset
   441
	QString pluginName = dir.absoluteFilePath(NOTES_EDITOR_PLUGIN_NAME);
hgs
parents:
diff changeset
   442
hgs
parents:
diff changeset
   443
	// Create plugin loader.
hgs
parents:
diff changeset
   444
	QPluginLoader *pluginLoader = new QPluginLoader(pluginName);
hgs
parents:
diff changeset
   445
hgs
parents:
diff changeset
   446
	// Load the plugin.
hgs
parents:
diff changeset
   447
	QVERIFY(pluginLoader->load());
hgs
parents:
diff changeset
   448
hgs
parents:
diff changeset
   449
	QObject *plugin = qobject_cast<QObject*> (pluginLoader->instance());
hgs
parents:
diff changeset
   450
	NotesEditorInterface* interface =
hgs
parents:
diff changeset
   451
			qobject_cast<NotesEditorInterface*>(plugin);
hgs
parents:
diff changeset
   452
hgs
parents:
diff changeset
   453
	interface->create(NotesEditorInterface::CreateTodo);
hgs
parents:
diff changeset
   454
hgs
parents:
diff changeset
   455
	// TODO
hgs
parents:
diff changeset
   456
	// Needs key interaction to edit the fields in to-do editor.
hgs
parents:
diff changeset
   457
hgs
parents:
diff changeset
   458
	// Wait for Editor to launch.
hgs
parents:
diff changeset
   459
	QTest::qWait(3000);
hgs
parents:
diff changeset
   460
hgs
parents:
diff changeset
   461
	// Unload the plugin.
hgs
parents:
diff changeset
   462
	QVERIFY(pluginLoader->unload());
hgs
parents:
diff changeset
   463
	delete pluginLoader;
hgs
parents:
diff changeset
   464
}
hgs
parents:
diff changeset
   465
hgs
parents:
diff changeset
   466
/*!
hgs
parents:
diff changeset
   467
	Test the api NotesEditor::close(CloseType type);
hgs
parents:
diff changeset
   468
 */
hgs
parents:
diff changeset
   469
hgs
parents:
diff changeset
   470
void TestNotesEditorPlugin::testClosingOfNotesEditorWithSave()
hgs
parents:
diff changeset
   471
{
hgs
parents:
diff changeset
   472
	HbMainWindow window;
hgs
parents:
diff changeset
   473
	window.show();
hgs
parents:
diff changeset
   474
hgs
parents:
diff changeset
   475
	QDir dir(NOTES_EDITOR_PLUGIN_PATH);
hgs
parents:
diff changeset
   476
	QString pluginName = dir.absoluteFilePath(NOTES_EDITOR_PLUGIN_NAME);
hgs
parents:
diff changeset
   477
hgs
parents:
diff changeset
   478
	// Create plugin loader.
hgs
parents:
diff changeset
   479
	QPluginLoader *pluginLoader = new QPluginLoader(pluginName);
hgs
parents:
diff changeset
   480
hgs
parents:
diff changeset
   481
	// Load the plugin.
hgs
parents:
diff changeset
   482
	QVERIFY(pluginLoader->load());
hgs
parents:
diff changeset
   483
hgs
parents:
diff changeset
   484
	QObject *plugin = qobject_cast<QObject*> (pluginLoader->instance());
hgs
parents:
diff changeset
   485
	NotesEditorInterface* interface =
hgs
parents:
diff changeset
   486
			qobject_cast<NotesEditorInterface*>(plugin);
hgs
parents:
diff changeset
   487
hgs
parents:
diff changeset
   488
	QString noteText("Test Closing Of NotesEditor With Save");
hgs
parents:
diff changeset
   489
	// Call edit using the text.
hgs
parents:
diff changeset
   490
	interface->edit(noteText);
hgs
parents:
diff changeset
   491
hgs
parents:
diff changeset
   492
	// Wait for Editor to launch.
hgs
parents:
diff changeset
   493
	QTest::qWait(1000);
hgs
parents:
diff changeset
   494
hgs
parents:
diff changeset
   495
	// Call close on editor by saving the note
hgs
parents:
diff changeset
   496
	ulong id = interface->close(NotesEditorInterface::CloseWithSave);
hgs
parents:
diff changeset
   497
	QVERIFY(id);
hgs
parents:
diff changeset
   498
hgs
parents:
diff changeset
   499
	// Create agenda Utility.
hgs
parents:
diff changeset
   500
	AgendaUtil *agendaUtil = new AgendaUtil();
hgs
parents:
diff changeset
   501
	// Wait for completion of instance view/entryview creation.
hgs
parents:
diff changeset
   502
	QTest::qWait(1);
hgs
parents:
diff changeset
   503
	QVERIFY(agendaUtil);
hgs
parents:
diff changeset
   504
hgs
parents:
diff changeset
   505
	// Fetch the entry using the id
hgs
parents:
diff changeset
   506
	AgendaEntry entry = agendaUtil->fetchById(id);
hgs
parents:
diff changeset
   507
hgs
parents:
diff changeset
   508
	QCOMPARE(noteText,entry.description());
hgs
parents:
diff changeset
   509
hgs
parents:
diff changeset
   510
	// cleanup.
hgs
parents:
diff changeset
   511
	delete agendaUtil;
hgs
parents:
diff changeset
   512
hgs
parents:
diff changeset
   513
	// Unload the plugin.
hgs
parents:
diff changeset
   514
	QVERIFY(pluginLoader->unload());
hgs
parents:
diff changeset
   515
	delete pluginLoader;
hgs
parents:
diff changeset
   516
}
hgs
parents:
diff changeset
   517
hgs
parents:
diff changeset
   518
/*!
hgs
parents:
diff changeset
   519
	Test the api NotesEditor::close(CloseType type);
hgs
parents:
diff changeset
   520
 */
hgs
parents:
diff changeset
   521
void TestNotesEditorPlugin::testClosingOfNotesEditorWithoutSave()
hgs
parents:
diff changeset
   522
{
hgs
parents:
diff changeset
   523
	HbMainWindow window;
hgs
parents:
diff changeset
   524
	window.show();
hgs
parents:
diff changeset
   525
hgs
parents:
diff changeset
   526
	QDir dir(NOTES_EDITOR_PLUGIN_PATH);
hgs
parents:
diff changeset
   527
	QString pluginName = dir.absoluteFilePath(NOTES_EDITOR_PLUGIN_NAME);
hgs
parents:
diff changeset
   528
hgs
parents:
diff changeset
   529
	// Create plugin loader.
hgs
parents:
diff changeset
   530
	QPluginLoader *pluginLoader = new QPluginLoader(pluginName);
hgs
parents:
diff changeset
   531
hgs
parents:
diff changeset
   532
	// Load the plugin.
hgs
parents:
diff changeset
   533
	QVERIFY(pluginLoader->load());
hgs
parents:
diff changeset
   534
hgs
parents:
diff changeset
   535
	QObject *plugin = qobject_cast<QObject*> (pluginLoader->instance());
hgs
parents:
diff changeset
   536
	NotesEditorInterface* interface =
hgs
parents:
diff changeset
   537
			qobject_cast<NotesEditorInterface*>(plugin);
hgs
parents:
diff changeset
   538
hgs
parents:
diff changeset
   539
	QString noteText("Test Closing Of Notes Editor Without Save");
hgs
parents:
diff changeset
   540
	// Call edit using the text.
hgs
parents:
diff changeset
   541
	interface->edit(noteText);
hgs
parents:
diff changeset
   542
hgs
parents:
diff changeset
   543
	// Wait for Editor to launch.
hgs
parents:
diff changeset
   544
	QTest::qWait(1000);
hgs
parents:
diff changeset
   545
hgs
parents:
diff changeset
   546
	// Call close on editor by saving the note
hgs
parents:
diff changeset
   547
	ulong id = interface->close(NotesEditorInterface::CloseWithoutSave);
hgs
parents:
diff changeset
   548
	QVERIFY(!id);
hgs
parents:
diff changeset
   549
hgs
parents:
diff changeset
   550
	// Unload the plugin.
hgs
parents:
diff changeset
   551
	QVERIFY(pluginLoader->unload());
hgs
parents:
diff changeset
   552
	delete pluginLoader;
hgs
parents:
diff changeset
   553
}
hgs
parents:
diff changeset
   554
hgs
parents:
diff changeset
   555
/*!
hgs
parents:
diff changeset
   556
	Test the api NotesEditor::close(CloseType type);
hgs
parents:
diff changeset
   557
 */
hgs
parents:
diff changeset
   558
void TestNotesEditorPlugin::testClosingOfTodoEditorWithSave()
hgs
parents:
diff changeset
   559
{
hgs
parents:
diff changeset
   560
	HbMainWindow window;
hgs
parents:
diff changeset
   561
	window.show();
hgs
parents:
diff changeset
   562
hgs
parents:
diff changeset
   563
	QDir dir(NOTES_EDITOR_PLUGIN_PATH);
hgs
parents:
diff changeset
   564
	QString pluginName = dir.absoluteFilePath(NOTES_EDITOR_PLUGIN_NAME);
hgs
parents:
diff changeset
   565
hgs
parents:
diff changeset
   566
	// Create plugin loader.
hgs
parents:
diff changeset
   567
	QPluginLoader *pluginLoader = new QPluginLoader(pluginName);
hgs
parents:
diff changeset
   568
hgs
parents:
diff changeset
   569
	// Load the plugin.
hgs
parents:
diff changeset
   570
	QVERIFY(pluginLoader->load());
hgs
parents:
diff changeset
   571
hgs
parents:
diff changeset
   572
	QObject *plugin = qobject_cast<QObject*> (pluginLoader->instance());
hgs
parents:
diff changeset
   573
	NotesEditorInterface* interface =
hgs
parents:
diff changeset
   574
			qobject_cast<NotesEditorInterface*>(plugin);
hgs
parents:
diff changeset
   575
hgs
parents:
diff changeset
   576
	AgendaUtil *agendaUtil = new AgendaUtil();
hgs
parents:
diff changeset
   577
	// Wait for completion of instance view/entryview creation.
hgs
parents:
diff changeset
   578
	QTest::qWait(1);
hgs
parents:
diff changeset
   579
	QVERIFY(agendaUtil);
hgs
parents:
diff changeset
   580
hgs
parents:
diff changeset
   581
	// Create a agenda entry with type to-do
hgs
parents:
diff changeset
   582
	AgendaEntry entry;
hgs
parents:
diff changeset
   583
	entry.setType(AgendaEntry::TypeTodo);
hgs
parents:
diff changeset
   584
	entry.setSummary(
hgs
parents:
diff changeset
   585
			QString("Test Closing Of Todo Editor With Save"));
hgs
parents:
diff changeset
   586
	entry.setDescription(QString("@QTest Framework"));
hgs
parents:
diff changeset
   587
	entry.setStartAndEndTime(
hgs
parents:
diff changeset
   588
			QDateTime::currentDateTime(),QDateTime::currentDateTime());
hgs
parents:
diff changeset
   589
	entry.setStatus(AgendaEntry::TodoNeedsAction);
hgs
parents:
diff changeset
   590
	entry.setPriority(2);
hgs
parents:
diff changeset
   591
hgs
parents:
diff changeset
   592
	ulong id = agendaUtil->addEntry(entry);
hgs
parents:
diff changeset
   593
hgs
parents:
diff changeset
   594
	AgendaEntry storedEntry = agendaUtil->fetchById(id);
hgs
parents:
diff changeset
   595
	// Call edit on agenda entry
hgs
parents:
diff changeset
   596
	interface->edit(storedEntry);
hgs
parents:
diff changeset
   597
hgs
parents:
diff changeset
   598
	// Wait for Editor to launch.
hgs
parents:
diff changeset
   599
	QTest::qWait(1000);
hgs
parents:
diff changeset
   600
hgs
parents:
diff changeset
   601
	ulong afterSaveId = interface->close(NotesEditorInterface::CloseWithSave);
hgs
parents:
diff changeset
   602
hgs
parents:
diff changeset
   603
	AgendaEntry afterSave = agendaUtil->fetchById(id);
hgs
parents:
diff changeset
   604
	QCOMPARE(afterSave.id(),id);
hgs
parents:
diff changeset
   605
	QCOMPARE(afterSave.type(),entry.type());
hgs
parents:
diff changeset
   606
	QCOMPARE(afterSave.summary(), entry.summary());
hgs
parents:
diff changeset
   607
	QCOMPARE(afterSave.description(), entry.description());
hgs
parents:
diff changeset
   608
hgs
parents:
diff changeset
   609
	// cleanup.
hgs
parents:
diff changeset
   610
	delete agendaUtil;
hgs
parents:
diff changeset
   611
hgs
parents:
diff changeset
   612
	// Unload the plugin.
hgs
parents:
diff changeset
   613
	QVERIFY(pluginLoader->unload());
hgs
parents:
diff changeset
   614
	delete pluginLoader;
hgs
parents:
diff changeset
   615
}
hgs
parents:
diff changeset
   616
hgs
parents:
diff changeset
   617
/*!
hgs
parents:
diff changeset
   618
	Test the api NotesEditor::close(CloseType type);
hgs
parents:
diff changeset
   619
 */
hgs
parents:
diff changeset
   620
void TestNotesEditorPlugin::testClosingOfTodoEditorWithoutSave()
hgs
parents:
diff changeset
   621
{
hgs
parents:
diff changeset
   622
	HbMainWindow window;
hgs
parents:
diff changeset
   623
	window.show();
hgs
parents:
diff changeset
   624
hgs
parents:
diff changeset
   625
	QDir dir(NOTES_EDITOR_PLUGIN_PATH);
hgs
parents:
diff changeset
   626
	QString pluginName = dir.absoluteFilePath(NOTES_EDITOR_PLUGIN_NAME);
hgs
parents:
diff changeset
   627
hgs
parents:
diff changeset
   628
	// Create plugin loader.
hgs
parents:
diff changeset
   629
	QPluginLoader *pluginLoader = new QPluginLoader(pluginName);
hgs
parents:
diff changeset
   630
hgs
parents:
diff changeset
   631
	// Load the plugin.
hgs
parents:
diff changeset
   632
	QVERIFY(pluginLoader->load());
hgs
parents:
diff changeset
   633
hgs
parents:
diff changeset
   634
	QObject *plugin = qobject_cast<QObject*> (pluginLoader->instance());
hgs
parents:
diff changeset
   635
	NotesEditorInterface* interface =
hgs
parents:
diff changeset
   636
			qobject_cast<NotesEditorInterface*>(plugin);
hgs
parents:
diff changeset
   637
hgs
parents:
diff changeset
   638
	AgendaUtil *agendaUtil = new AgendaUtil();
hgs
parents:
diff changeset
   639
	// Wait for completion of instance view/entryview creation.
hgs
parents:
diff changeset
   640
	QTest::qWait(1);
hgs
parents:
diff changeset
   641
	QVERIFY(agendaUtil);
hgs
parents:
diff changeset
   642
hgs
parents:
diff changeset
   643
	// Create a agenda entry with type to-do
hgs
parents:
diff changeset
   644
	AgendaEntry entry;
hgs
parents:
diff changeset
   645
	entry.setType(AgendaEntry::TypeTodo);
hgs
parents:
diff changeset
   646
	entry.setSummary(
hgs
parents:
diff changeset
   647
			QString("Test Closing Of Todo Editor Without Save"));
hgs
parents:
diff changeset
   648
	entry.setDescription(QString("@QTest framework"));
hgs
parents:
diff changeset
   649
	entry.setStartAndEndTime(
hgs
parents:
diff changeset
   650
			QDateTime::currentDateTime(),QDateTime::currentDateTime());
hgs
parents:
diff changeset
   651
	entry.setStatus(AgendaEntry::TodoNeedsAction);
hgs
parents:
diff changeset
   652
	entry.setPriority(2);
hgs
parents:
diff changeset
   653
hgs
parents:
diff changeset
   654
	ulong id = agendaUtil->addEntry(entry);
hgs
parents:
diff changeset
   655
hgs
parents:
diff changeset
   656
	AgendaEntry storedEntry = agendaUtil->fetchById(id);
hgs
parents:
diff changeset
   657
	// Call edit on agenda entry
hgs
parents:
diff changeset
   658
	interface->edit(storedEntry);
hgs
parents:
diff changeset
   659
hgs
parents:
diff changeset
   660
	// Wait for Editor to launch.
hgs
parents:
diff changeset
   661
	QTest::qWait(3000);
hgs
parents:
diff changeset
   662
hgs
parents:
diff changeset
   663
	ulong afterSaveId = interface->close(
hgs
parents:
diff changeset
   664
			NotesEditorInterface::CloseWithoutSave);
hgs
parents:
diff changeset
   665
	QVERIFY(!afterSaveId);
hgs
parents:
diff changeset
   666
hgs
parents:
diff changeset
   667
	// cleanup.
hgs
parents:
diff changeset
   668
	delete agendaUtil;
hgs
parents:
diff changeset
   669
hgs
parents:
diff changeset
   670
	// Unload the plugin.
hgs
parents:
diff changeset
   671
	QVERIFY(pluginLoader->unload());
hgs
parents:
diff changeset
   672
	delete pluginLoader;
hgs
parents:
diff changeset
   673
}
hgs
parents:
diff changeset
   674
hgs
parents:
diff changeset
   675
/*!
hgs
parents:
diff changeset
   676
	Test editing of note by owning agenda util.
hgs
parents:
diff changeset
   677
 */
hgs
parents:
diff changeset
   678
void TestNotesEditorPlugin::testAgendaUtilEditingNoteWithText()
hgs
parents:
diff changeset
   679
{
hgs
parents:
diff changeset
   680
	HbMainWindow window;
hgs
parents:
diff changeset
   681
	window.show();
hgs
parents:
diff changeset
   682
hgs
parents:
diff changeset
   683
	QDir dir(NOTES_EDITOR_PLUGIN_PATH);
hgs
parents:
diff changeset
   684
	QString pluginName = dir.absoluteFilePath(NOTES_EDITOR_PLUGIN_NAME);
hgs
parents:
diff changeset
   685
hgs
parents:
diff changeset
   686
	// Create plugin loader.
hgs
parents:
diff changeset
   687
	QPluginLoader *pluginLoader = new QPluginLoader(pluginName);
hgs
parents:
diff changeset
   688
hgs
parents:
diff changeset
   689
	// Load the plugin.
hgs
parents:
diff changeset
   690
	QVERIFY(pluginLoader->load());
hgs
parents:
diff changeset
   691
hgs
parents:
diff changeset
   692
	QObject *plugin = qobject_cast<QObject*> (pluginLoader->instance());
hgs
parents:
diff changeset
   693
	NotesEditorInterface* interface =
hgs
parents:
diff changeset
   694
			qobject_cast<NotesEditorInterface*>(plugin);
hgs
parents:
diff changeset
   695
hgs
parents:
diff changeset
   696
	// Create agenda Utility.
hgs
parents:
diff changeset
   697
	AgendaUtil *agendaUtil = new AgendaUtil();
hgs
parents:
diff changeset
   698
	// Wait for completion of instance view/entryview creation.
hgs
parents:
diff changeset
   699
	QTest::qWait(1);
hgs
parents:
diff changeset
   700
	QVERIFY(agendaUtil);
hgs
parents:
diff changeset
   701
hgs
parents:
diff changeset
   702
	QString noteText("Test Editing of Note With Text by passing created "
hgs
parents:
diff changeset
   703
			"agenda util to notes editor plugin");
hgs
parents:
diff changeset
   704
	// Call edit using the text.
hgs
parents:
diff changeset
   705
	interface->edit(noteText, agendaUtil);
hgs
parents:
diff changeset
   706
hgs
parents:
diff changeset
   707
	// Call close on editor by saving the note
hgs
parents:
diff changeset
   708
	ulong id = interface->close(NotesEditorInterface::CloseWithSave);
hgs
parents:
diff changeset
   709
	QVERIFY(id);
hgs
parents:
diff changeset
   710
hgs
parents:
diff changeset
   711
	// Fetch the entry using the id
hgs
parents:
diff changeset
   712
	AgendaEntry entry = agendaUtil->fetchById(id);
hgs
parents:
diff changeset
   713
hgs
parents:
diff changeset
   714
	QString entryDescription = entry.description();
hgs
parents:
diff changeset
   715
	int compareResult = noteText.compare(entryDescription);
hgs
parents:
diff changeset
   716
hgs
parents:
diff changeset
   717
	QVERIFY(!compareResult);
hgs
parents:
diff changeset
   718
hgs
parents:
diff changeset
   719
	// cleanup.
hgs
parents:
diff changeset
   720
	delete agendaUtil;
hgs
parents:
diff changeset
   721
hgs
parents:
diff changeset
   722
	// Unload the plugin.
hgs
parents:
diff changeset
   723
	QVERIFY(pluginLoader->unload());
hgs
parents:
diff changeset
   724
	delete pluginLoader;
hgs
parents:
diff changeset
   725
}
hgs
parents:
diff changeset
   726
hgs
parents:
diff changeset
   727
/*!
hgs
parents:
diff changeset
   728
	Test editing to-do entry by owning agenda util.
hgs
parents:
diff changeset
   729
 */
hgs
parents:
diff changeset
   730
void TestNotesEditorPlugin::testAgendaUtilEditingTodoWithId()
hgs
parents:
diff changeset
   731
{
hgs
parents:
diff changeset
   732
	HbMainWindow window;
hgs
parents:
diff changeset
   733
	window.show();
hgs
parents:
diff changeset
   734
hgs
parents:
diff changeset
   735
	QDir dir(NOTES_EDITOR_PLUGIN_PATH);
hgs
parents:
diff changeset
   736
	QString pluginName = dir.absoluteFilePath(NOTES_EDITOR_PLUGIN_NAME);
hgs
parents:
diff changeset
   737
hgs
parents:
diff changeset
   738
	// Create plugin loader.
hgs
parents:
diff changeset
   739
	QPluginLoader *pluginLoader = new QPluginLoader(pluginName);
hgs
parents:
diff changeset
   740
hgs
parents:
diff changeset
   741
	// Load the plugin.
hgs
parents:
diff changeset
   742
	QVERIFY(pluginLoader->load());
hgs
parents:
diff changeset
   743
hgs
parents:
diff changeset
   744
	QObject *plugin = qobject_cast<QObject*> (pluginLoader->instance());
hgs
parents:
diff changeset
   745
	NotesEditorInterface* interface =
hgs
parents:
diff changeset
   746
			qobject_cast<NotesEditorInterface*>(plugin);
hgs
parents:
diff changeset
   747
hgs
parents:
diff changeset
   748
	AgendaUtil *agendaUtil = new AgendaUtil();
hgs
parents:
diff changeset
   749
	// Wait for completion of instance view/entryview creation.
hgs
parents:
diff changeset
   750
	QTest::qWait(1);
hgs
parents:
diff changeset
   751
hgs
parents:
diff changeset
   752
	QVERIFY(agendaUtil);
hgs
parents:
diff changeset
   753
hgs
parents:
diff changeset
   754
	AgendaEntry entry;
hgs
parents:
diff changeset
   755
	entry.setType(AgendaEntry::TypeNote);
hgs
parents:
diff changeset
   756
	entry.setDescription(
hgs
parents:
diff changeset
   757
			QString("Test Editing of Note by providing entry local Id"));
hgs
parents:
diff changeset
   758
hgs
parents:
diff changeset
   759
	ulong id = agendaUtil->addEntry(entry);
hgs
parents:
diff changeset
   760
hgs
parents:
diff changeset
   761
	// Edits to-do entry by providing entry id and agendautil.
hgs
parents:
diff changeset
   762
	interface->edit(id, agendaUtil);
hgs
parents:
diff changeset
   763
hgs
parents:
diff changeset
   764
	// Wait for Editor to launch.
hgs
parents:
diff changeset
   765
	QTest::qWait(1000);
hgs
parents:
diff changeset
   766
hgs
parents:
diff changeset
   767
	ulong savedId = interface->close(NotesEditorInterface::CloseWithSave);
hgs
parents:
diff changeset
   768
hgs
parents:
diff changeset
   769
	// Compare the entry after saving. Using the old entry id since
hgs
parents:
diff changeset
   770
	// text is not modified in the editor. Wait can be increased to allow user
hgs
parents:
diff changeset
   771
	// to modify the text.
hgs
parents:
diff changeset
   772
	AgendaEntry afterSave = agendaUtil->fetchById(id);
hgs
parents:
diff changeset
   773
	QCOMPARE(afterSave.description(), entry.description());
hgs
parents:
diff changeset
   774
hgs
parents:
diff changeset
   775
	// cleanup.
hgs
parents:
diff changeset
   776
	delete agendaUtil;
hgs
parents:
diff changeset
   777
hgs
parents:
diff changeset
   778
	// Unload the plugin.
hgs
parents:
diff changeset
   779
	QVERIFY(pluginLoader->unload());
hgs
parents:
diff changeset
   780
	delete pluginLoader;
hgs
parents:
diff changeset
   781
}
hgs
parents:
diff changeset
   782
// End of file	--Don't remove this.