camerauis/cameraxui/cxengine/tsrc/unit/unittest_cxesettingsmodelimp/unittest_cxesettingsmodelimp.cpp
--- /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)
+;