#include <system_info.h>
#include <voice_control.h>
+#include <voice_control_manager.h>
#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)
{
}
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)
{
}
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 {
}
/**
+ * @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)