From: Eunki, Hong Date: Mon, 5 Feb 2024 03:51:24 +0000 (+0900) Subject: [Tizen] Fix mis-implementation for GetLinearEnumerationName X-Git-Tag: accepted/tizen/8.0/unified/20240208.163205^0 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=6a06312b1d3e79d3d7e4401036adc403e5311608;p=platform%2Fcore%2Fuifw%2Fdali-core.git [Tizen] Fix mis-implementation for GetLinearEnumerationName Let we fix mis-implementation of GetLinearEnumerationName, and add relative UTC for it. Change-Id: I77dc0b9ae3ca0f5fd563f12e8faaf4fc36549b97 Signed-off-by: Eunki, Hong --- diff --git a/automated-tests/src/dali/utc-Dali-Scripting.cpp b/automated-tests/src/dali/utc-Dali-Scripting.cpp index 3d543fa..3ae14f1 100644 --- a/automated-tests/src/dali/utc-Dali-Scripting.cpp +++ b/automated-tests/src/dali/utc-Dali-Scripting.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020 Samsung Electronics Co., Ltd. + * Copyright (c) 2024 Samsung Electronics Co., Ltd. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -490,6 +490,48 @@ int UtcDaliScriptingGetLinearEnumerationNameN(void) END_TEST; } +int UtcDaliScriptingGetLinearEnumerationNameP(void) +{ + const Scripting::StringEnum myTable[] = + { + {"ONE", 0}, + {"TWO", 1}, + {"THREE", 2}, + {"FOUR", 3}, + {"FIVE", 4}, + }; + const unsigned int myTableCount = sizeof(myTable) / sizeof(myTable[0]); + + for(uint32_t i = 0; i < myTableCount; ++i) + { + const char* value = GetLinearEnumerationName(static_cast(i), myTable, myTableCount); + // We know that myTable[i].string is result. But for make clear test, let we just iterate and found it + std::string expectName = "invalid"; + for(uint32_t j = 0; j < myTableCount; ++j) + { + if(myTable[j].value == static_cast(i)) + { + DALI_TEST_CHECK(i == j); + expectName = myTable[j].string; + break; + } + } + DALI_TEST_EQUALS(std::string(value), expectName, TEST_LOCATION); + } + + // Invalid case check + { + const char* value = GetLinearEnumerationName(static_cast(myTableCount), myTable, myTableCount); + DALI_TEST_CHECK(NULL == value); + } + { + const char* value = GetLinearEnumerationName(-1, myTable, myTableCount); + DALI_TEST_CHECK(NULL == value); + } + + END_TEST; +} + int UtcDaliScriptingGetEnumerationProperty(void) { /* diff --git a/dali/devel-api/scripting/scripting.h b/dali/devel-api/scripting/scripting.h index cc6a3f2..1e01c1d 100644 --- a/dali/devel-api/scripting/scripting.h +++ b/dali/devel-api/scripting/scripting.h @@ -2,7 +2,7 @@ #define DALI_SCRIPTING_H /* - * Copyright (c) 2020 Samsung Electronics Co., Ltd. + * Copyright (c) 2024 Samsung Electronics Co., Ltd. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -242,7 +242,7 @@ const char* GetEnumerationName(T value, const StringEnum* table, uint32_t tableC template const char* GetLinearEnumerationName(T value, const StringEnum* table, uint32_t tableCount) { - if(table && (value > 0 || value <= static_cast(tableCount))) + if(table && (value >= 0 && value < static_cast(tableCount))) { return table[value].string; }