camerauis/cameraxui/cxengine/tsrc/unit/unittest_cxefilenamegeneratorsymbian/unittest_cxefilenamegeneratorsymbian.cpp
branchRCL_3
changeset 53 61bc0f252b2b
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/camerauis/cameraxui/cxengine/tsrc/unit/unittest_cxefilenamegeneratorsymbian/unittest_cxefilenamegeneratorsymbian.cpp	Tue Aug 31 15:03:46 2010 +0300
@@ -0,0 +1,141 @@
+/*
+* Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+#include <QDate>
+#include <QTest>
+#include <QDebug>
+
+#include "unittest_cxefilenamegeneratorsymbian.h"
+#include "cxefilenamegeneratorsymbian.h"
+#include "cxesettings.h"
+#include "cxefakesettings.h"
+
+namespace
+{
+    static const char* FILENAME_SUFFIX = "CxTest";
+}
+
+UnitTestCxeFilenameGeneratorSymbian::UnitTestCxeFilenameGeneratorSymbian()
+    : mFileNameGenerator(NULL), mFakeSettings(NULL), mMode(Cxe::ImageMode)
+{
+}
+
+UnitTestCxeFilenameGeneratorSymbian::~UnitTestCxeFilenameGeneratorSymbian()
+{
+    delete mFileNameGenerator;
+    delete mFakeSettings;
+}
+
+// Run before each individual test case
+void UnitTestCxeFilenameGeneratorSymbian::init()
+{
+    mFakeSettings = new CxeFakeSettings();
+    
+    mFakeSettings->set(CxeSettingIds::FNAME_MONTH_FOLDER, QDate::currentDate().toString("yyyyMM"));
+    mFakeSettings->set(CxeSettingIds::FNAME_IMAGE_COUNTER, 0);
+    mFakeSettings->set(CxeSettingIds::FNAME_VIDEO_COUNTER, 0);
+    mFakeSettings->set(CxeSettingIds::FNAME_FOLDER_SUFFIX, FILENAME_SUFFIX);
+
+    mFileNameGenerator = new CxeFilenameGeneratorSymbian(*mFakeSettings, mMode);
+    mFileNameGenerator->init(mMode);
+    }
+
+// Run after each individual test case
+void UnitTestCxeFilenameGeneratorSymbian::cleanup()
+{
+    delete mFileNameGenerator;
+    mFileNameGenerator = NULL;
+    delete mFakeSettings;
+    mFakeSettings = NULL;
+}
+
+void UnitTestCxeFilenameGeneratorSymbian::testStartNewImageFilenameSequence()
+{
+    mFileNameGenerator->startNewImageFilenameSequence();
+}
+
+void UnitTestCxeFilenameGeneratorSymbian::testNextImageFilenameInSequence()
+{
+    mFileNameGenerator->startNewImageFilenameSequence();
+    QString filename;
+    QString ext(".jpg");
+    CxeError::Id error = mFileNameGenerator->nextImageFilenameInSequence(filename, ext);
+    filename = removeDrive(filename);
+    QString reference(generateSequenceImageFileName(0, 0));
+
+    qDebug() << "UnitTestCxeFilenameGeneratorSymbian - Check generated sequence filename (root path removed)..";
+    qDebug() << "UnitTestCxeFilenameGeneratorSymbian - Generated: [" << filename << "]";
+    qDebug() << "UnitTestCxeFilenameGeneratorSymbian - Reference: [" << reference << "]";
+    QVERIFY(QString::compare(removeDrive(filename), reference, Qt::CaseInsensitive) == 0);
+}
+
+void UnitTestCxeFilenameGeneratorSymbian::testGenerateFilename()
+{
+    QString filename;
+    QString ext(".jpg");
+    CxeError::Id error = mFileNameGenerator->generateFilename(filename, ext);
+    filename = removeDrive(filename);
+    QString reference(generateImageFileName(0));
+    qDebug() << "UnitTestCxeFilenameGeneratorSymbian - Check generated filename (root path removed)..";
+    qDebug() << "UnitTestCxeFilenameGeneratorSymbian - Generated: [" << filename << "]";
+    qDebug() << "UnitTestCxeFilenameGeneratorSymbian - Reference: [" << reference << "]";
+    QVERIFY(QString::compare(filename, generateImageFileName(0), Qt::CaseInsensitive) == 0);
+}
+
+QString UnitTestCxeFilenameGeneratorSymbian::generateImageFileName(int counter)
+{
+    // get the file name suffix
+    //QString fileNameSuffix;
+    //qobject_cast<CxeSettings*>(mFakeSettings)->get(CxeSettingIds::FNAME_FOLDER_SUFFIX, fileNameSuffix);
+    //QString fileNameSuffix("");
+    //QString cleanedFileNameSuffix = fnFormat.arg(fileNameSuffix);
+
+    QString monthName = QDate::currentDate().toString("yyyyMM");
+    QString filename;
+    //filename.sprintf("\\Images\\Camera\\%s\\%sA0\\%04d%s.jpg", monthName.toAscii().data(), monthName.toAscii().data(), counter, fileNameSuffix);
+    filename.sprintf("\\Images\\Camera\\%s\\%sA0\\%04d.jpg", monthName.toAscii().data(), monthName.toAscii().data(), counter);
+    return filename;
+}
+
+QString UnitTestCxeFilenameGeneratorSymbian::generateSequenceImageFileName(int counter, int burstIndex)
+{
+    // For now, burst image names are created like normal unique names
+    QString filename = generateImageFileName(counter);
+    // get the file name suffix
+    /*QString fileNameSuffix;
+    qobject_cast<CxeSettings*>(mFakeSettings)->get(CxeSettingIds::FNAME_FOLDER_SUFFIX, fileNameSuffix);
+
+    QString monthName = QDate::currentDate().toString("yyyyMM");
+    QString filename;
+    filename.sprintf("\\Images\\Camera\\%s\\%sA0\\%04d%s(%02d).jpg", monthName.toAscii().data(), monthName.toAscii().data(), counter, fileNameSuffix, burstIndex);
+    */
+    return filename;
+}
+
+QString UnitTestCxeFilenameGeneratorSymbian::removeDrive(const QString &filename)
+{
+    // File name generator may return paths that point to C, E, or F drives.
+    // In order to simplify path verification, all drive letters are removed.
+
+    QString res = filename;
+    res.remove(QRegExp("^c:\\\\data", Qt::CaseInsensitive));
+    res.remove(QRegExp("^e:", Qt::CaseInsensitive));
+    res.remove(QRegExp("^f:", Qt::CaseInsensitive));
+    return res;
+}
+
+// main() function non-GUI testing
+QTEST_MAIN(UnitTestCxeFilenameGeneratorSymbian);