camerauis/cameraxui/cxengine/tsrc/unit/unittest_cxesettingsmodelimp/unittest_cxesettingsmodelimp.cpp
changeset 19 d9aefe59d544
child 37 64817133cd1d
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/camerauis/cameraxui/cxengine/tsrc/unit/unittest_cxesettingsmodelimp/unittest_cxesettingsmodelimp.cpp	Fri Apr 16 14:51:30 2010 +0300
@@ -0,0 +1,300 @@
+/*
+ * Copyright (c) 2009 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 <QTest>
+
+#include "cxeerror.h"
+#include "e32err.h"
+#include "cxenamespace.h"
+#include "cxesettingsmodelimp.h"
+#include "cxefakesettingsstore.h"
+#include "unittest_cxesettingsmodelimp.h"
+
+// constants
+static const char* INVALID_KEY = "invalid key";
+static const char* EMPTY_KEY = "";
+
+UnitTestCxeSettingsModelImp::UnitTestCxeSettingsModelImp()
+{
+}
+
+UnitTestCxeSettingsModelImp::~UnitTestCxeSettingsModelImp()
+{
+}
+
+// Run before each individual test case
+void UnitTestCxeSettingsModelImp::init()
+{
+    CxeSettingsStore *fakeSettingsStore = new CxeFakeSettingsStore();
+    mSettingsModel = new CxeSettingsModelImp(fakeSettingsStore);
+}
+
+// Run after each individual test case
+void UnitTestCxeSettingsModelImp::cleanup()
+{
+    delete mSettingsModel;
+    mSettingsModel = NULL;
+}
+
+// test case to test Setting Values
+// 1. default values of setting keys
+// 2. set values to setting keys
+// 3. checking if set values are set correctly
+// 4. covers also cases where we test with invalid cases
+void UnitTestCxeSettingsModelImp::testSettingValues()
+{
+    CxeError::Id error;
+    QVariant result;
+
+    // case 0: check default value of a real setting for e.g. FNAME_IMAGE_COUNTER
+    error = mSettingsModel->getSettingValue(CxeSettingIds::FNAME_IMAGE_COUNTER, result);
+    QVERIFY(error == CxeError::None);
+    QCOMPARE(result.toInt(), 0);
+
+    // case 1: setting a value to a valid key
+    error = mSettingsModel->set(CxeSettingIds::FNAME_IMAGE_COUNTER, 12);
+    QVERIFY(error == CxeError::None);
+
+    // case 2: testing if the value set is right to sharpness key
+    error = mSettingsModel->getSettingValue(CxeSettingIds::FNAME_IMAGE_COUNTER, result);
+    QVERIFY(error == CxeError::None);
+    QCOMPARE(result.toInt(), 12);
+
+    // case 3: trying to set a value to an invalid key which doesnt exit
+    error = mSettingsModel->set(INVALID_KEY, QVariant(10));
+    QVERIFY(error == CxeError::NotFound);
+
+    // case 4: trying to get a value from invalid key
+    error = mSettingsModel->getSettingValue(INVALID_KEY, result);
+    QVERIFY(error == CxeError::NotFound);
+
+    // case 5: try with an empty string
+    error = mSettingsModel->set(EMPTY_KEY, QVariant(10));
+    QVERIFY(error == CxeError::NotFound);
+
+    // case 6: try with an empty string
+    error = mSettingsModel->getSettingValue(EMPTY_KEY, result);
+    QVERIFY(error == CxeError::NotFound);
+}
+
+// test case to test RuntimeKeys
+// 1. default values of runtime keys
+// 2. try set values to runtime keys
+// 3. covers also cases where we test with invalid cases
+void UnitTestCxeSettingsModelImp::testRuntimeValues()
+{
+    CxeError::Id error;
+    QVariant result;
+    QVariantList values;
+
+    // case 1: check the default value of runtime
+    error = mSettingsModel->getRuntimeValue(CxeRuntimeKeys::PRIMARY_CAMERA_CAPTURE_KEYS, result);
+    QVERIFY(error == CxeError::None);
+    // checking value
+    if( error == CxeError::None ) {
+        values = qVariantValue<QList<QVariant> >(result);
+        QCOMPARE(values[0].toInt(), 1);
+    }
+
+    // case 2: trying to get a value from invalid key
+    error = mSettingsModel->getRuntimeValue(INVALID_KEY, result);
+    QVERIFY(error == CxeError::NotFound);
+
+    // case 3: trying to set a value to a runtime key
+    error = mSettingsModel->set(CxeRuntimeKeys::PRIMARY_CAMERA_CAPTURE_KEYS, 10);
+    QVERIFY(error == CxeError::NotFound);
+
+    // case 4: try with an empty string
+    error = mSettingsModel->set(EMPTY_KEY, 10);
+    QVERIFY(error == CxeError::NotFound);
+
+    // case 5: try with an empty string
+    error = mSettingsModel->getRuntimeValue(EMPTY_KEY, result);
+    QVERIFY(error == CxeError::NotFound);
+
+}
+
+
+// test case to test Image scene Setting Values
+// 1. default values of setting keys
+// 2. set values to setting keys
+// 3. checking if set values are set correctly
+// 4. covers also cases where we test with invalid cases
+void UnitTestCxeSettingsModelImp::testImageSceneSettingValues()
+{
+    CxeError::Id error;
+    QVariant result;
+    // testing for image mode settings
+    mSettingsModel->cameraModeChanged(Cxe::ImageMode);
+
+    // case 0: check sharpness default value
+    error = mSettingsModel->getSettingValue(CxeSettingIds::SHARPNESS, result);
+    QVERIFY(error == CxeError::None);
+    QCOMPARE(result.toInt(), 0);
+
+    // case 1: setting a value to a valid key
+    error = mSettingsModel->set(CxeSettingIds::SHARPNESS, 100);
+    QVERIFY(error == CxeError::None);
+
+    // case 2: testing if the value set is right to sharpness key
+    error = mSettingsModel->getSettingValue(CxeSettingIds::SHARPNESS, result);
+    QVERIFY(error == CxeError::None);
+    QCOMPARE(result.toInt(), 100);
+
+    // case 3: trying to set a value to an invalid key which doesnt exit
+    error = mSettingsModel->set(INVALID_KEY, 10);
+    QVERIFY(error == CxeError::NotFound);
+
+    // case 4: trying to get a value from invalid key
+    error = mSettingsModel->getSettingValue(INVALID_KEY, result);
+    QVERIFY(error == CxeError::NotFound);
+
+    // case 5: try with an empty string
+    error = mSettingsModel->set(EMPTY_KEY, 10);
+    QVERIFY(error == CxeError::NotFound);
+
+    // case 6: try with an empty string
+    error = mSettingsModel->getSettingValue(EMPTY_KEY, result);
+    QVERIFY(error == CxeError::NotFound);
+}
+
+
+// test case to test Image scene Setting Values
+// 1. default values of setting keys
+// 2. set values to setting keys
+// 3. checking if set values are set correctly
+// 4. covers also cases where we test with invalid cases
+void UnitTestCxeSettingsModelImp::testVideoSceneSettingValues()
+{
+    CxeError::Id error;
+    QVariant result;
+    // testing for image mode settings
+    mSettingsModel->cameraModeChanged(Cxe::VideoMode);
+
+    // case 0: check colortone default value
+    error = mSettingsModel->getSettingValue(CxeSettingIds::COLOR_TONE, result);
+    QVERIFY(error == CxeError::None);
+    QVERIFY(result.toInt() == Cxe::ColortoneNormal);
+
+    error = mSettingsModel->set(CxeSettingIds::COLOR_TONE, Cxe::ColortoneNegative);
+    QVERIFY(error == CxeError::None);
+
+    // case 2: testing if the value set to invalid sharpness key
+    error = mSettingsModel->getSettingValue(CxeSettingIds::COLOR_TONE, result);
+    QVERIFY(error == CxeError::None);
+    QVERIFY(result.toInt() == Cxe::ColortoneNegative);
+
+    // case 1: setting a value to a invalid key
+    error = mSettingsModel->set(CxeSettingIds::SHARPNESS, 100);
+    QVERIFY(error == CxeError::NotFound);
+
+    // case 2: testing if the value set to invalid sharpness key
+    error = mSettingsModel->getSettingValue(CxeSettingIds::SHARPNESS, result);
+    QVERIFY(error == CxeError::NotFound);
+
+
+    // case 3: trying to set a value to an invalid key which doesnt exit
+    error = mSettingsModel->set(INVALID_KEY, 10);
+    QVERIFY(error == CxeError::NotFound);
+
+    // case 4: trying to get a value from invalid key
+    error = mSettingsModel->getSettingValue(INVALID_KEY, result);
+    QVERIFY(error == CxeError::NotFound);
+
+    // case 5: try with an empty string
+    error = mSettingsModel->set(EMPTY_KEY, 10);
+    QVERIFY(error == CxeError::NotFound);
+
+    // case 6: try with an empty string
+    error = mSettingsModel->getSettingValue(EMPTY_KEY, result);
+    QVERIFY(error == CxeError::NotFound);
+}
+
+
+
+// test case to test ImageScene
+// 1. default values of image scene
+// 2. try set new image scene and checking if its succesful
+// 3. covers also cases where we test with invalid cases
+void UnitTestCxeSettingsModelImp::testImageScene()
+{
+    CxeScene result;
+    CxeError::Id error;
+    // case 1: check the default image scene sharpness value
+    result = mSettingsModel->currentImageScene();
+    QVERIFY(result[CxeSettingIds::SCENE_ID] == CxeSettingIds::IMAGE_SCENE_AUTO);
+    QVERIFY(result[CxeSettingIds::SHARPNESS] == Cxe::SharpnessNormal);
+
+    QString key = CxeSettingIds::IMAGE_SCENE_PORTRAIT;
+
+    // case 2: trying to set a new image scene
+    error = mSettingsModel->setImageScene(key);
+    QVERIFY(error == CxeError::None);
+
+    // case 3: testing if NIGHT image scene is set correctly. checking its sharpness value
+    result = mSettingsModel->currentImageScene();
+    QVERIFY(result[CxeSettingIds::SCENE_ID] == key);
+    QVERIFY(result[CxeSettingIds::SHARPNESS] == Cxe::SharpnessSoft);
+
+    // case 3: trying to set a image scene with invalid value
+    error = mSettingsModel->setImageScene(INVALID_KEY);
+    QVERIFY(error == CxeError::NotFound);
+
+    // case 4: try with an empty string
+    error = mSettingsModel->setImageScene(EMPTY_KEY);
+    QVERIFY(error == CxeError::NotFound);
+
+}
+
+
+// test case to test VideoScene
+// 1. default values of video scene
+// 2. try set new video scene and checking if its succesful
+// 3. covers also cases where we test with invalid cases
+void UnitTestCxeSettingsModelImp::testVideoScene()
+{
+    CxeScene result;
+    CxeError::Id error;
+    // case 1: check the default image scene
+    result = mSettingsModel->currentVideoScene();
+    QVERIFY(result[CxeSettingIds::SCENE_ID] == CxeSettingIds::VIDEO_SCENE_AUTO);
+    QVERIFY(result[CxeSettingIds::FRAME_RATE] == 0);
+
+    QString key = CxeSettingIds::VIDEO_SCENE_LOWLIGHT;
+
+    // case 2: trying to set a new image scene
+    error = mSettingsModel->setVideoScene(key);
+    QVERIFY(error == CxeError::None);
+
+    // case 3: testing if NIGHT image scene is set correctly
+    result = mSettingsModel->currentVideoScene();
+    QVERIFY(result[CxeSettingIds::SCENE_ID] == key);
+    QVERIFY(result[CxeSettingIds::FRAME_RATE] == 15);
+
+    // case 3: trying to set a image scene with invalid value
+    error = mSettingsModel->setVideoScene(INVALID_KEY);
+    QVERIFY(error == CxeError::NotFound);
+
+    // case 4: try with an empty string
+    error = mSettingsModel->setVideoScene(EMPTY_KEY);
+    QVERIFY(error == CxeError::NotFound);
+
+}
+
+
+// main() function non-GUI testing
+QTEST_APPLESS_MAIN(UnitTestCxeSettingsModelImp)
+;