mirror of
https://github.com/savoirfairelinux/opendht.git
synced 2026-11-08 04:21:51 +00:00
Extract the decision of whether a push-listen notification must be delivered at high (urgent) FCM/APNs priority into a static, pure helper (isHighPriorityPush) so it can be unit-tested without a push gateway. Only real-time call signaling — values whose pushType is "audioCall" or "videoCall", published at high priority (priority == 0) — warrants an urgent push. Presence/connection-request refreshes (empty pushType), non-call types and expirations are not urgent. The helper is not wired in yet; this commit only adds it and its tests, keeping the current handlePushListen behavior unchanged. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
79 lines
1.8 KiB
C++
79 lines
1.8 KiB
C++
// Copyright (c) 2014-2026 Savoir-faire Linux Inc.
|
|
// SPDX-License-Identifier: MIT
|
|
#pragma once
|
|
|
|
// cppunit
|
|
#include <cppunit/TestFixture.h>
|
|
#include <cppunit/extensions/HelperMacros.h>
|
|
|
|
#include <opendht/dhtrunner.h>
|
|
#include <opendht/dht_proxy_server.h>
|
|
#include <opendht/log.h>
|
|
|
|
namespace test {
|
|
|
|
class DhtProxyTester : public CppUnit::TestFixture
|
|
{
|
|
CPPUNIT_TEST_SUITE(DhtProxyTester);
|
|
CPPUNIT_TEST(testGetPut);
|
|
CPPUNIT_TEST(testListen);
|
|
CPPUNIT_TEST(testResubscribeGetValues);
|
|
CPPUNIT_TEST(testPutGet40KChars);
|
|
CPPUNIT_TEST(testFuzzy);
|
|
CPPUNIT_TEST(testShutdownStop);
|
|
#ifdef OPENDHT_PUSH_NOTIFICATIONS
|
|
CPPUNIT_TEST(testPushNotificationPriority);
|
|
#endif
|
|
CPPUNIT_TEST_SUITE_END();
|
|
|
|
public:
|
|
/**
|
|
* Method automatically called before each test by CppUnit
|
|
* Init nodes
|
|
*/
|
|
void setUp();
|
|
/**
|
|
* Method automatically called after each test CppUnit
|
|
*/
|
|
void tearDown();
|
|
/**
|
|
* Test get and put methods
|
|
*/
|
|
void testGetPut();
|
|
/**
|
|
* Test listen
|
|
*/
|
|
void testListen();
|
|
/**
|
|
* When a proxy redo a subscribe on the proxy
|
|
* it should retrieve existant values
|
|
*/
|
|
void testResubscribeGetValues();
|
|
/**
|
|
* Test MTU put/get on dht
|
|
*/
|
|
void testPutGet40KChars();
|
|
|
|
void testFuzzy();
|
|
|
|
void testShutdownStop();
|
|
|
|
#ifdef OPENDHT_PUSH_NOTIFICATIONS
|
|
/**
|
|
* The proxy must only request a high-priority push for real-time call
|
|
* signaling (audioCall/videoCall at priority 0); everything else stays at
|
|
* normal priority.
|
|
*/
|
|
void testPushNotificationPriority();
|
|
#endif
|
|
|
|
private:
|
|
dht::DhtRunner::Config clientConfig {};
|
|
dht::DhtRunner nodePeer;
|
|
dht::DhtRunner nodeClient;
|
|
std::shared_ptr<dht::DhtRunner> nodeProxy;
|
|
std::unique_ptr<dht::DhtProxyServer> serverProxy;
|
|
};
|
|
|
|
} // namespace test
|