From: Suyeon Hwang Date: Tue, 20 Jul 2021 02:33:41 +0000 (+0900) Subject: Make TC for 'vc_get_system_command_list()' X-Git-Tag: accepted/tizen/6.5/unified/20211028.123107~6 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=b30077d39d5bab1e6e2f838127c35589fbe9454d;p=platform%2Fcore%2Fuifw%2Fvoice-control.git Make TC for 'vc_get_system_command_list()' Change-Id: I21e3163e12f8eee92eedb1bd5c254f45674ceaea Signed-off-by: Suyeon Hwang --- diff --git a/tests/org.tizen.vc-unittests.xml b/tests/org.tizen.vc-unittests.xml index 663ba43..571a9e9 100644 --- a/tests/org.tizen.vc-unittests.xml +++ b/tests/org.tizen.vc-unittests.xml @@ -5,9 +5,11 @@ Voice Control unittests + http://tizen.org/privilege/recorder + http://tizen.org/privilege/voicecontrol.manager diff --git a/tests/src/vc_unittests.cpp b/tests/src/vc_unittests.cpp index 531f36f..0320972 100644 --- a/tests/src/vc_unittests.cpp +++ b/tests/src/vc_unittests.cpp @@ -19,13 +19,50 @@ #include #include +#include #include "system_info_mock.h" #include "cynara_mock.h" static int g_vc_init = false; static vc_state_e g_vc_state = VC_STATE_NONE; +static vc_state_e g_vc_mgr_state = VC_STATE_NONE; +static vc_service_state_e g_vc_mgr_service_state = VC_SERVICE_STATE_NONE; static bool g_vc_supported = false; +static bool __is_mgr_state_changed(vc_state_e state, int wait_delay) +{ + int max_count = wait_delay * 10; + int count = 0; + while (max_count > count && state != g_vc_mgr_state) { + ecore_main_loop_iterate(); + usleep(100000); + count++; + } + + if (state != g_vc_mgr_state) { + return false; + } + + return true; +} + +static bool __is_mgr_service_state_changed(vc_service_state_e state, int wait_delay) +{ + int max_count = wait_delay * 10; + int count = 0; + while (max_count > count && state != g_vc_mgr_service_state) { + ecore_main_loop_iterate(); + usleep(100000); + count++; + } + + if (state != g_vc_mgr_service_state) { + return false; + } + + return true; +} + static void __vc_result_cb(vc_result_event_e event, vc_cmd_list_h vc_cmd_list, const char* result, void* user_data) { } @@ -44,6 +81,16 @@ static void __vc_state_changed_cb(vc_state_e previous, vc_state_e current, void* g_vc_state = current; } +static void __vc_mgr_state_changed_cb(vc_state_e previous, vc_state_e current, void* user_data) +{ + g_vc_mgr_state = current; +} + +static void __vc_mgr_service_state_changed_cb(vc_service_state_e previous, vc_service_state_e current, void* user_data) +{ + g_vc_mgr_service_state = current; +} + static void __vc_service_state_changed_cb(vc_service_state_e previous, vc_service_state_e current, void* user_data) { } @@ -57,6 +104,27 @@ static bool __vc_cmd_list_cb(vc_cmd_h vc_command, void* user_data) return true; } +static void __vc_mgr_ready() +{ + vc_cmd_h system_command = nullptr; + EXPECT_EQ(vc_cmd_create(&system_command), VC_ERROR_NONE); + EXPECT_EQ(vc_cmd_set_command(system_command, "test"), VC_ERROR_NONE); + EXPECT_EQ(vc_cmd_set_type(system_command, VC_COMMAND_TYPE_SYSTEM), VC_ERROR_NONE); + + vc_cmd_list_h commands = nullptr; + EXPECT_EQ(vc_cmd_list_create(&commands), VC_ERROR_NONE); + EXPECT_EQ(vc_cmd_list_add(commands, system_command), VC_ERROR_NONE); + + EXPECT_EQ(vc_mgr_initialize(), VC_ERROR_NONE); + EXPECT_EQ(vc_mgr_set_state_changed_cb(__vc_mgr_state_changed_cb, nullptr), VC_ERROR_NONE); + EXPECT_EQ(vc_mgr_set_service_state_changed_cb(__vc_mgr_service_state_changed_cb, nullptr), VC_ERROR_NONE); + EXPECT_EQ(vc_mgr_prepare(), VC_ERROR_NONE); + ASSERT_EQ(true, __is_mgr_state_changed(VC_STATE_READY, 5)); + ASSERT_EQ(true, __is_mgr_service_state_changed(VC_SERVICE_STATE_READY, 5)); + + EXPECT_EQ(vc_mgr_set_command_list(commands), VC_ERROR_NONE); +} + namespace { class VCTest : public testing::Test { @@ -688,6 +756,47 @@ TEST_F(VCTest, vc_get_system_command_list_p) } /** + * @testcase utc_vc_get_system_command_list_p2 + * @since_tizen 3.0 + * @description Positive UTC for get the system command list when system command is registered + */ +TEST_F(VCTest, vc_get_system_command_list_p2) +{ + if (false == g_vc_supported) { + EXPECT_EQ(g_vc_init, false); + + int ret = VC_ERROR_NONE; + vc_cmd_list_h list = NULL; + ret = vc_get_system_command_list(&list); + EXPECT_EQ(ret, VC_ERROR_NOT_SUPPORTED); + } else { + EXPECT_EQ(g_vc_init, true); + + __vc_mgr_ready(); + + int ret = VC_ERROR_NONE; + ret = vc_prepare(); + EXPECT_EQ(ret, VC_ERROR_NONE); + + while (VC_STATE_READY != g_vc_state) { + ecore_main_loop_iterate(); + } + + vc_cmd_list_h list = NULL; + ret = vc_get_system_command_list(&list); + EXPECT_EQ(ret, VC_ERROR_NONE); + + int count = 0; + ret = vc_cmd_list_get_count(list, &count); + EXPECT_EQ(ret, VC_ERROR_NONE); + EXPECT_GT(count, 0); + + ret = vc_unprepare(); + EXPECT_EQ(ret, VC_ERROR_NONE); + } +} + +/** * @testcase utc_vc_get_system_command_list_n * @since_tizen 3.0 * @description Negative UTC for get the system command list (Invalid parameter)