std::lock_guard<std::recursive_mutex> lock(context.GetMutex());
conn->Disable();
+ std::string endpoint = conn->GetEndpoint();
+ if (!context.ExistConnection(endpoint)) {
+ tizen_base::Bundle b { { AUL_K_COM_ENDPOINT, endpoint } };
+ int ret = AppRequest(APP_COM_LEAVE, getuid())
+ .With(std::move(b))
+ .SendSimply(AUL_SOCK_NOREPLY);
+ if (ret != 0)
+ _E("Failed to send leave request. error(%d)", ret);
+ }
+
g_idle_add_full(G_PRIORITY_HIGH, [](gpointer user_data) -> gboolean {
auto* conn = static_cast<AppComConnection*>(user_data);
std::lock_guard<std::recursive_mutex> lock(context.GetMutex());
- std::string endpoint = conn->GetEndpoint();
context.RemoveConnection(conn);
-
- if (context.ExistConnection(endpoint))
- return G_SOURCE_REMOVE;
-
- tizen_base::Bundle b { { AUL_K_COM_ENDPOINT, endpoint } };
- int ret = AppRequest(APP_COM_LEAVE, getuid())
- .With(std::move(b))
- .SendSimply(AUL_SOCK_NOREPLY);
- if (ret != 0)
- _E("Failed to send leave request. error(%d)", ret);
-
return G_SOURCE_REMOVE;
}, connection, nullptr);
AppComTest() : TestFixture(std::make_unique<::Mocks>()) {}
virtual void SetUp() {
- loop_ = g_main_loop_new(nullptr, FALSE);
permission_ = aul_app_com_permission_create();
}
aul_app_com_permission_destroy(permission_);
permission_ = nullptr;
}
-
- if (loop_ != nullptr) {
- g_main_loop_unref(loop_);
- loop_ = nullptr;
- }
- }
-
- void RunMainLoop() {
- g_main_loop_run(loop_);
- }
-
- void QuitMainLoop() {
- g_main_loop_quit(loop_);
}
std::shared_ptr<app_pkt_t> MakePacket(tizen_base::Bundle b) {
bool touched_ = false;
aul_app_com_permission_h permission_ = nullptr;
-
- private:
- GMainLoop* loop_ = nullptr;
};
TEST_F(AppComTest, aul_app_com_permission_create_P) {
if (cmd == APP_COM_CREATE)
kb = bundle_decode(pkt->data, pkt->len);
- if (cmd == APP_COM_LEAVE)
- QuitMainLoop();
-
return n;
}));
ON_CALL(GetMock<SocketMock>(), recv(_, _, _, _))
EXPECT_EQ(b.GetString(AUL_K_COM_ENDPOINT), "app_com_create");
aul_app_com_leave(connection);
- RunMainLoop();
}
TEST_F(AppComTest, aul_app_com_create_N) {
if (cmd == APP_COM_CREATE)
kb = bundle_decode(pkt->data, pkt->len);
- if (cmd == APP_COM_LEAVE)
- QuitMainLoop();
-
return n;
}));
ON_CALL(GetMock<SocketMock>(), recv(_, _, _, _))
EXPECT_EQ(b.GetString(AUL_K_COM_ENDPOINT), "app_com_create_async");
aul_app_com_leave(connection);
- RunMainLoop();
}
TEST_F(AppComTest, aul_app_com_create_async_N) {
if (cmd == APP_COM_JOIN)
kb = bundle_decode(pkt->data, pkt->len);
- if (cmd == APP_COM_LEAVE)
- QuitMainLoop();
-
return n;
}));
ON_CALL(GetMock<SocketMock>(), recv(_, _, _, _))
EXPECT_EQ(b.GetString(AUL_K_COM_ENDPOINT), "app_com_join");
aul_app_com_leave(connection);
- RunMainLoop();
}
TEST_F(AppComTest, aul_app_com_join_N) {
cmd = pkt->cmd;
opt = pkt->opt;
- if (cmd == APP_COM_LEAVE) {
+ if (cmd == APP_COM_LEAVE)
kb = bundle_decode(pkt->data, pkt->len);
- QuitMainLoop();
- }
return n;
}));
EXPECT_EQ(ret, AUL_R_OK);
ret = aul_app_com_leave(connection);
- RunMainLoop();
EXPECT_NE(kb, nullptr);
tizen_base::Bundle b(kb, false, true);
if (!aul_is_initialized())
aul_launch_init(nullptr, nullptr);
- loop_ = g_main_loop_new(nullptr, FALSE);
-
cmd_ = -1;
opt_ = -1;
if (opt_ & AUL_SOCK_BUNDLE)
kb_ = bundle_decode(pkt->data, pkt->len);
- if (cmd_ == APP_COM_LEAVE)
- QuitMainLoop();
-
return n;
}));
ON_CALL(GetMock<SocketMock>(), recv(_, _, _, _))
aul_launcher_service_destroy(handle_);
handle_ = nullptr;
}
-
- if (loop_ != nullptr) {
- g_main_loop_unref(loop_);
- loop_ = nullptr;
- }
- }
-
- void RunMainLoop() {
- g_main_loop_run(loop_);
- }
-
- void QuitMainLoop() {
- g_main_loop_quit(loop_);
}
int cmd_ = -1;
bundle* kb_ = nullptr;
aul_launcher_service_h create_handle_ = nullptr;
aul_launcher_service_h handle_ = nullptr;
-
- private:
- GMainLoop* loop_ = nullptr;
};
TEST_F(LauncherServiceTest, aul_launcher_service_create_P) {
EXPECT_EQ(ret, AUL_R_OK);
handle_ = nullptr;
- RunMainLoop();
-
EXPECT_NE(kb_, nullptr);
tizen_base::Bundle b(kb_, false, false);
EXPECT_EQ(cmd_, APP_COM_LEAVE);