mirror of
https://github.com/falk-werner/webfuse-provider
synced 2026-03-02 04:09:18 +00:00
added implementation of wf_client_connect and wf_client_disconnect
This commit is contained in:
@@ -2,6 +2,9 @@
|
||||
|
||||
#include "webfuse/adapter/client.h"
|
||||
#include "webfuse/adapter/credentials.h"
|
||||
#include "webfuse/utils/threaded_ws_server.h"
|
||||
|
||||
using webfuse_test::ThreadedWsServer;
|
||||
|
||||
namespace
|
||||
{
|
||||
@@ -63,23 +66,71 @@ void callback(
|
||||
}
|
||||
}
|
||||
|
||||
void callback2(
|
||||
wf_client * client,
|
||||
int reason,
|
||||
void * args)
|
||||
{
|
||||
auto * ctx = reinterpret_cast<context*>(wf_client_get_userdata(client));
|
||||
|
||||
switch (reason)
|
||||
{
|
||||
case WF_CLIENT_CREATED:
|
||||
ctx->state = connection_state::connecting;
|
||||
break;
|
||||
case WF_CLIENT_CONNECTED:
|
||||
ctx->state = connection_state::connected;
|
||||
break;
|
||||
case WF_CLIENT_DISCONNECTED:
|
||||
ctx->state = connection_state::disconnected;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
TEST(client, general_usage)
|
||||
{
|
||||
ThreadedWsServer server(54321);
|
||||
|
||||
context ctx;
|
||||
ctx.state = connection_state::connecting;
|
||||
|
||||
wf_client * client = wf_client_create(
|
||||
&callback, reinterpret_cast<void*>(&ctx));
|
||||
|
||||
if (nullptr != client)
|
||||
while (ctx.state != connection_state::disconnected)
|
||||
{
|
||||
while (ctx.state != connection_state::disconnected)
|
||||
{
|
||||
wf_client_service(client);
|
||||
}
|
||||
|
||||
wf_client_dispose(client);
|
||||
wf_client_service(client);
|
||||
}
|
||||
|
||||
wf_client_dispose(client);
|
||||
}
|
||||
|
||||
TEST(client, connect)
|
||||
{
|
||||
ThreadedWsServer server(54321);
|
||||
|
||||
context ctx;
|
||||
ctx.state = connection_state::connecting;
|
||||
|
||||
wf_client * client = wf_client_create(
|
||||
&callback2, reinterpret_cast<void*>(&ctx));
|
||||
|
||||
wf_client_connect(client, "ws://localhost:54321/");
|
||||
while (ctx.state != connection_state::connected)
|
||||
{
|
||||
wf_client_service(client);
|
||||
}
|
||||
|
||||
wf_client_disconnect(client);
|
||||
while (ctx.state != connection_state::disconnected)
|
||||
{
|
||||
wf_client_service(client);
|
||||
}
|
||||
|
||||
wf_client_dispose(client);
|
||||
}
|
||||
Reference in New Issue
Block a user