2 * Copyright (c) 2020 Samsung Electronics Co., Ltd All Rights Reserved
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
17 #include "tethering-gtest-util.h"
22 #include "mocks/tethering_gdbus.h"
25 TetheringTestUtil::TetheringTestUtil(void) : testType(TETHERING_TEST_UTIL_MAX), mainLoop(NULL), timeoutId(0)
29 TetheringTestUtil::~TetheringTestUtil(void)
33 void TetheringTestUtil::setTestType(int type)
38 int TetheringTestUtil::getTestType(void)
43 void TetheringTestUtil::runMainLoop(void)
45 mainLoop = g_main_loop_new(NULL, false);
46 timeoutId = g_timeout_add(10, TetheringTestUtil::timeoutCallback, this);
47 g_main_loop_run(mainLoop);
50 void TetheringTestUtil::stopMainLoop(void)
53 g_main_loop_quit(mainLoop);
56 g_source_remove(timeoutId);
59 gboolean TetheringTestUtil::timeoutCallback(gpointer user_data)
61 TetheringTestUtil *util = (TetheringTestUtil *)user_data;
62 int type = util->getTestType();
65 case TETHERING_TEST_UTIL_TYPE_ENABLE:
66 case TETHERING_TEST_UTIL_TYPE_DISABLE:
67 case TETHERING_TEST_UTIL_TYPE_RELOAD:
68 case TETHERING_TEST_UTIL_TYPE_DATA_USAGE:
69 tethering_mock_invoke_gdbus_async_callback();
71 case TETHERING_TEST_UTIL_TYPE_WIFI_ENABLE_EVENT:
72 tethering_mock_emit_gdbus_signal(TETHERING_MOCK_GDBUS_SIGNAL_WIFI_TETHER_ON);
74 case TETHERING_TEST_UTIL_TYPE_WIFI_DISABLE_EVENT:
75 tethering_mock_emit_gdbus_signal(TETHERING_MOCK_GDBUS_SIGNAL_WIFI_TETHER_OFF);
77 case TETHERING_TEST_UTIL_TYPE_USB_ENABLE_EVENT:
78 tethering_mock_emit_gdbus_signal(TETHERING_MOCK_GDBUS_SIGNAL_USB_TETHER_ON);
80 case TETHERING_TEST_UTIL_TYPE_USB_DISABLE_EVENT:
81 tethering_mock_emit_gdbus_signal(TETHERING_MOCK_GDBUS_SIGNAL_USB_TETHER_OFF);
83 case TETHERING_TEST_UTIL_TYPE_BT_ENABLE_EVENT:
84 tethering_mock_emit_gdbus_signal(TETHERING_MOCK_GDBUS_SIGNAL_BT_TETHER_ON);
86 case TETHERING_TEST_UTIL_TYPE_BT_DISABLE_EVENT:
87 tethering_mock_emit_gdbus_signal(TETHERING_MOCK_GDBUS_SIGNAL_BT_TETHER_OFF);
89 case TETHERING_TEST_UTIL_TYPE_NO_DATA_TIMEOUT:
90 tethering_mock_emit_gdbus_signal(TETHERING_MOCK_GDBUS_SIGNAL_NO_DATA_TIMEOUT);
92 case TETHERING_TEST_UTIL_TYPE_LOW_BATTERY_MODE:
93 tethering_mock_emit_gdbus_signal(TETHERING_MOCK_GDBUS_SIGNAL_LOW_BATTERY_MODE);
95 case TETHERING_TEST_UTIL_TYPE_FLIGHT_MODE:
96 tethering_mock_emit_gdbus_signal(TETHERING_MOCK_GDBUS_SIGNAL_FLIGHT_MODE);
98 case TETHERING_TEST_UTIL_TYPE_NET_CLOSED:
99 tethering_mock_emit_gdbus_signal(TETHERING_MOCK_GDBUS_SIGNAL_NET_CLOSED);
101 case TETHERING_TEST_UTIL_TYPE_SECURITY_TYPE_CHANGED:
102 tethering_mock_emit_gdbus_signal(TETHERING_MOCK_GDBUS_SIGNAL_SECURITY_TYPE_CHANGED);
104 case TETHERING_TEST_UTIL_TYPE_SSID_VISIBILITY_CHANGED:
105 tethering_mock_emit_gdbus_signal(TETHERING_MOCK_GDBUS_SIGNAL_SSID_VISIBILITY_CHANGED);
107 case TETHERING_TEST_UTIL_TYPE_PASSPHRASE_CHANGED:
108 tethering_mock_emit_gdbus_signal(TETHERING_MOCK_GDBUS_SIGNAL_PASSPHRASE_CHANGED);
110 case TETHERING_TEST_UTIL_TYPE_CONNECTION_CHANGED:
111 tethering_mock_emit_gdbus_signal(TETHERING_MOCK_GDBUS_SIGNAL_DHCP_STATUS);
113 case TETHERING_TEST_UTIL_MAX:
119 util->stopMainLoop();