Rename SonarWebSocket
Summary: Part of Sonar -> Flipper rename. It's about time this is renamed from *Websocket as well, since it doesn't use websockets anymore. Reviewed By: passy Differential Revision: D9919695 fbshipit-source-id: 78a63bfb7d5de19c093b7fb775d1426b4fc58f77
This commit is contained in:
committed by
Facebook Github Bot
parent
2a822a1b99
commit
1d2793f701
@@ -19,7 +19,7 @@
|
|||||||
#include <folly/io/async/EventBaseManager.h>
|
#include <folly/io/async/EventBaseManager.h>
|
||||||
|
|
||||||
#include <Flipper/FlipperClient.h>
|
#include <Flipper/FlipperClient.h>
|
||||||
#include <Flipper/SonarWebSocket.h>
|
#include <Flipper/FlipperConnectionManager.h>
|
||||||
#include <Flipper/FlipperConnection.h>
|
#include <Flipper/FlipperConnection.h>
|
||||||
#include <Flipper/FlipperResponder.h>
|
#include <Flipper/FlipperResponder.h>
|
||||||
#include <Flipper/SonarStateUpdateListener.h>
|
#include <Flipper/SonarStateUpdateListener.h>
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
#import <Foundation/Foundation.h>
|
#import <Foundation/Foundation.h>
|
||||||
|
|
||||||
@protocol FlipperResponder;
|
@protocol FlipperResponder;
|
||||||
@protocol SonarWebSocket;
|
@protocol FlipperConnectionManager;
|
||||||
|
|
||||||
typedef void (^SonarReceiver)(NSDictionary*, id<FlipperResponder>);
|
typedef void (^SonarReceiver)(NSDictionary*, id<FlipperResponder>);
|
||||||
|
|
||||||
|
|||||||
@@ -11,7 +11,7 @@
|
|||||||
#include "FlipperResponderImpl.h"
|
#include "FlipperResponderImpl.h"
|
||||||
#include "SonarState.h"
|
#include "SonarState.h"
|
||||||
#include "SonarStep.h"
|
#include "SonarStep.h"
|
||||||
#include "SonarWebSocketImpl.h"
|
#include "FlipperConnectionManagerImpl.h"
|
||||||
#include "ConnectionContextStore.h"
|
#include "ConnectionContextStore.h"
|
||||||
#include "Log.h"
|
#include "Log.h"
|
||||||
#include <vector>
|
#include <vector>
|
||||||
@@ -32,7 +32,7 @@ void FlipperClient::init(FlipperInitConfig config) {
|
|||||||
auto state = std::make_shared<SonarState>();
|
auto state = std::make_shared<SonarState>();
|
||||||
auto context = std::make_shared<ConnectionContextStore>(config.deviceData);
|
auto context = std::make_shared<ConnectionContextStore>(config.deviceData);
|
||||||
kInstance =
|
kInstance =
|
||||||
new FlipperClient(std::make_unique<SonarWebSocketImpl>(std::move(config), state, context), state);
|
new FlipperClient(std::make_unique<FlipperConnectionManagerImpl>(std::move(config), state, context), state);
|
||||||
}
|
}
|
||||||
|
|
||||||
FlipperClient* FlipperClient::instance() {
|
FlipperClient* FlipperClient::instance() {
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
#include "FlipperInitConfig.h"
|
#include "FlipperInitConfig.h"
|
||||||
#include "FlipperPlugin.h"
|
#include "FlipperPlugin.h"
|
||||||
#include "SonarState.h"
|
#include "SonarState.h"
|
||||||
#include "SonarWebSocket.h"
|
#include "FlipperConnectionManager.h"
|
||||||
#include <map>
|
#include <map>
|
||||||
#include <mutex>
|
#include <mutex>
|
||||||
#include "SonarStep.h"
|
#include "SonarStep.h"
|
||||||
@@ -21,7 +21,7 @@
|
|||||||
namespace facebook {
|
namespace facebook {
|
||||||
namespace flipper {
|
namespace flipper {
|
||||||
|
|
||||||
class FlipperClient : public SonarWebSocket::Callbacks {
|
class FlipperClient : public FlipperConnectionManager::Callbacks {
|
||||||
public:
|
public:
|
||||||
/**
|
/**
|
||||||
Call before accessing instance with FlipperClient::instance(). This will set up
|
Call before accessing instance with FlipperClient::instance(). This will set up
|
||||||
@@ -40,7 +40,7 @@ class FlipperClient : public SonarWebSocket::Callbacks {
|
|||||||
/**
|
/**
|
||||||
Only public for testing
|
Only public for testing
|
||||||
*/
|
*/
|
||||||
FlipperClient(std::unique_ptr<SonarWebSocket> socket, std::shared_ptr<SonarState> state)
|
FlipperClient(std::unique_ptr<FlipperConnectionManager> socket, std::shared_ptr<SonarState> state)
|
||||||
: socket_(std::move(socket)), sonarState_(state) {
|
: socket_(std::move(socket)), sonarState_(state) {
|
||||||
auto step = sonarState_->start("Create client");
|
auto step = sonarState_->start("Create client");
|
||||||
socket_->setCallbacks(this);
|
socket_->setCallbacks(this);
|
||||||
@@ -90,7 +90,7 @@ class FlipperClient : public SonarWebSocket::Callbacks {
|
|||||||
private:
|
private:
|
||||||
static FlipperClient* instance_;
|
static FlipperClient* instance_;
|
||||||
bool connected_ = false;
|
bool connected_ = false;
|
||||||
std::unique_ptr<SonarWebSocket> socket_;
|
std::unique_ptr<FlipperConnectionManager> socket_;
|
||||||
std::map<std::string, std::shared_ptr<FlipperPlugin>> plugins_;
|
std::map<std::string, std::shared_ptr<FlipperPlugin>> plugins_;
|
||||||
std::map<std::string, std::shared_ptr<FlipperConnectionImpl>> connections_;
|
std::map<std::string, std::shared_ptr<FlipperConnectionImpl>> connections_;
|
||||||
std::mutex mutex_;
|
std::mutex mutex_;
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include "FlipperConnection.h"
|
#include "FlipperConnection.h"
|
||||||
#include "SonarWebSocket.h"
|
#include "FlipperConnectionManager.h"
|
||||||
#include <map>
|
#include <map>
|
||||||
#include <string>
|
#include <string>
|
||||||
|
|
||||||
@@ -18,7 +18,7 @@ namespace flipper {
|
|||||||
|
|
||||||
class FlipperConnectionImpl : public FlipperConnection {
|
class FlipperConnectionImpl : public FlipperConnection {
|
||||||
public:
|
public:
|
||||||
FlipperConnectionImpl(SonarWebSocket* socket, const std::string& name)
|
FlipperConnectionImpl(FlipperConnectionManager* socket, const std::string& name)
|
||||||
: socket_(socket), name_(name) {}
|
: socket_(socket), name_(name) {}
|
||||||
|
|
||||||
void call(
|
void call(
|
||||||
@@ -52,7 +52,7 @@ class FlipperConnectionImpl : public FlipperConnection {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
SonarWebSocket* socket_;
|
FlipperConnectionManager* socket_;
|
||||||
std::string name_;
|
std::string name_;
|
||||||
std::map<std::string, SonarReceiver> receivers_;
|
std::map<std::string, SonarReceiver> receivers_;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -13,12 +13,12 @@
|
|||||||
namespace facebook {
|
namespace facebook {
|
||||||
namespace flipper {
|
namespace flipper {
|
||||||
|
|
||||||
class SonarWebSocket {
|
class FlipperConnectionManager {
|
||||||
public:
|
public:
|
||||||
class Callbacks;
|
class Callbacks;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
virtual ~SonarWebSocket(){};
|
virtual ~FlipperConnectionManager(){};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Establishes a connection to the ws server.
|
Establishes a connection to the ws server.
|
||||||
@@ -48,7 +48,7 @@ class SonarWebSocket {
|
|||||||
virtual void setCallbacks(Callbacks* callbacks) = 0;
|
virtual void setCallbacks(Callbacks* callbacks) = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
class SonarWebSocket::Callbacks {
|
class FlipperConnectionManager::Callbacks {
|
||||||
public:
|
public:
|
||||||
virtual ~Callbacks(){};
|
virtual ~Callbacks(){};
|
||||||
|
|
||||||
@@ -6,7 +6,7 @@
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "SonarWebSocketImpl.h"
|
#include "FlipperConnectionManagerImpl.h"
|
||||||
#include "SonarStep.h"
|
#include "SonarStep.h"
|
||||||
#include "ConnectionContextStore.h"
|
#include "ConnectionContextStore.h"
|
||||||
#include "Log.h"
|
#include "Log.h"
|
||||||
@@ -34,10 +34,10 @@ namespace flipper {
|
|||||||
|
|
||||||
class ConnectionEvents : public rsocket::RSocketConnectionEvents {
|
class ConnectionEvents : public rsocket::RSocketConnectionEvents {
|
||||||
private:
|
private:
|
||||||
SonarWebSocketImpl* websocket_;
|
FlipperConnectionManagerImpl* websocket_;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
ConnectionEvents(SonarWebSocketImpl* websocket) : websocket_(websocket) {}
|
ConnectionEvents(FlipperConnectionManagerImpl* websocket) : websocket_(websocket) {}
|
||||||
|
|
||||||
void onConnected() {
|
void onConnected() {
|
||||||
websocket_->isOpen_ = true;
|
websocket_->isOpen_ = true;
|
||||||
@@ -64,10 +64,10 @@ class ConnectionEvents : public rsocket::RSocketConnectionEvents {
|
|||||||
|
|
||||||
class Responder : public rsocket::RSocketResponder {
|
class Responder : public rsocket::RSocketResponder {
|
||||||
private:
|
private:
|
||||||
SonarWebSocketImpl* websocket_;
|
FlipperConnectionManagerImpl* websocket_;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
Responder(SonarWebSocketImpl* websocket) : websocket_(websocket) {}
|
Responder(FlipperConnectionManagerImpl* websocket) : websocket_(websocket) {}
|
||||||
|
|
||||||
void handleFireAndForget(
|
void handleFireAndForget(
|
||||||
rsocket::Payload request,
|
rsocket::Payload request,
|
||||||
@@ -77,17 +77,17 @@ class Responder : public rsocket::RSocketResponder {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
SonarWebSocketImpl::SonarWebSocketImpl(FlipperInitConfig config, std::shared_ptr<SonarState> state, std::shared_ptr<ConnectionContextStore> contextStore)
|
FlipperConnectionManagerImpl::FlipperConnectionManagerImpl(FlipperInitConfig config, std::shared_ptr<SonarState> state, std::shared_ptr<ConnectionContextStore> contextStore)
|
||||||
: deviceData_(config.deviceData), sonarState_(state), sonarEventBase_(config.callbackWorker), connectionEventBase_(config.connectionWorker), contextStore_(contextStore) {
|
: deviceData_(config.deviceData), sonarState_(state), sonarEventBase_(config.callbackWorker), connectionEventBase_(config.connectionWorker), contextStore_(contextStore) {
|
||||||
CHECK_THROW(config.callbackWorker, std::invalid_argument);
|
CHECK_THROW(config.callbackWorker, std::invalid_argument);
|
||||||
CHECK_THROW(config.connectionWorker, std::invalid_argument);
|
CHECK_THROW(config.connectionWorker, std::invalid_argument);
|
||||||
}
|
}
|
||||||
|
|
||||||
SonarWebSocketImpl::~SonarWebSocketImpl() {
|
FlipperConnectionManagerImpl::~FlipperConnectionManagerImpl() {
|
||||||
stop();
|
stop();
|
||||||
}
|
}
|
||||||
|
|
||||||
void SonarWebSocketImpl::start() {
|
void FlipperConnectionManagerImpl::start() {
|
||||||
auto step = sonarState_->start("Start connection thread");
|
auto step = sonarState_->start("Start connection thread");
|
||||||
folly::makeFuture()
|
folly::makeFuture()
|
||||||
.via(sonarEventBase_->getEventBase())
|
.via(sonarEventBase_->getEventBase())
|
||||||
@@ -95,7 +95,7 @@ void SonarWebSocketImpl::start() {
|
|||||||
.thenValue([this, step](auto&&){ step->complete(); startSync(); });
|
.thenValue([this, step](auto&&){ step->complete(); startSync(); });
|
||||||
}
|
}
|
||||||
|
|
||||||
void SonarWebSocketImpl::startSync() {
|
void FlipperConnectionManagerImpl::startSync() {
|
||||||
if (!isRunningInOwnThread()) {
|
if (!isRunningInOwnThread()) {
|
||||||
log(WRONG_THREAD_EXIT_MSG);
|
log(WRONG_THREAD_EXIT_MSG);
|
||||||
return;
|
return;
|
||||||
@@ -132,7 +132,7 @@ void SonarWebSocketImpl::startSync() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void SonarWebSocketImpl::doCertificateExchange() {
|
void FlipperConnectionManagerImpl::doCertificateExchange() {
|
||||||
|
|
||||||
rsocket::SetupParameters parameters;
|
rsocket::SetupParameters parameters;
|
||||||
folly::SocketAddress address;
|
folly::SocketAddress address;
|
||||||
@@ -159,7 +159,7 @@ void SonarWebSocketImpl::doCertificateExchange() {
|
|||||||
requestSignedCertFromSonar();
|
requestSignedCertFromSonar();
|
||||||
}
|
}
|
||||||
|
|
||||||
void SonarWebSocketImpl::connectSecurely() {
|
void FlipperConnectionManagerImpl::connectSecurely() {
|
||||||
rsocket::SetupParameters parameters;
|
rsocket::SetupParameters parameters;
|
||||||
folly::SocketAddress address;
|
folly::SocketAddress address;
|
||||||
|
|
||||||
@@ -192,29 +192,29 @@ void SonarWebSocketImpl::connectSecurely() {
|
|||||||
failedConnectionAttempts_ = 0;
|
failedConnectionAttempts_ = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void SonarWebSocketImpl::reconnect() {
|
void FlipperConnectionManagerImpl::reconnect() {
|
||||||
folly::makeFuture()
|
folly::makeFuture()
|
||||||
.via(sonarEventBase_->getEventBase())
|
.via(sonarEventBase_->getEventBase())
|
||||||
.delayed(std::chrono::seconds(reconnectIntervalSeconds))
|
.delayed(std::chrono::seconds(reconnectIntervalSeconds))
|
||||||
.thenValue([this](auto&&){ startSync(); });
|
.thenValue([this](auto&&){ startSync(); });
|
||||||
}
|
}
|
||||||
|
|
||||||
void SonarWebSocketImpl::stop() {
|
void FlipperConnectionManagerImpl::stop() {
|
||||||
if (client_) {
|
if (client_) {
|
||||||
client_->disconnect();
|
client_->disconnect();
|
||||||
}
|
}
|
||||||
client_ = nullptr;
|
client_ = nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool SonarWebSocketImpl::isOpen() const {
|
bool FlipperConnectionManagerImpl::isOpen() const {
|
||||||
return isOpen_ && connectionIsTrusted_;
|
return isOpen_ && connectionIsTrusted_;
|
||||||
}
|
}
|
||||||
|
|
||||||
void SonarWebSocketImpl::setCallbacks(Callbacks* callbacks) {
|
void FlipperConnectionManagerImpl::setCallbacks(Callbacks* callbacks) {
|
||||||
callbacks_ = callbacks;
|
callbacks_ = callbacks;
|
||||||
}
|
}
|
||||||
|
|
||||||
void SonarWebSocketImpl::sendMessage(const folly::dynamic& message) {
|
void FlipperConnectionManagerImpl::sendMessage(const folly::dynamic& message) {
|
||||||
sonarEventBase_->add([this, message]() {
|
sonarEventBase_->add([this, message]() {
|
||||||
if (client_) {
|
if (client_) {
|
||||||
client_->getRequester()
|
client_->getRequester()
|
||||||
@@ -224,7 +224,7 @@ void SonarWebSocketImpl::sendMessage(const folly::dynamic& message) {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
bool SonarWebSocketImpl::isCertificateExchangeNeeded() {
|
bool FlipperConnectionManagerImpl::isCertificateExchangeNeeded() {
|
||||||
|
|
||||||
if (failedConnectionAttempts_ >= 2) {
|
if (failedConnectionAttempts_ >= 2) {
|
||||||
return true;
|
return true;
|
||||||
@@ -238,7 +238,7 @@ bool SonarWebSocketImpl::isCertificateExchangeNeeded() {
|
|||||||
return !hasRequiredFiles;
|
return !hasRequiredFiles;
|
||||||
}
|
}
|
||||||
|
|
||||||
void SonarWebSocketImpl::requestSignedCertFromSonar() {
|
void FlipperConnectionManagerImpl::requestSignedCertFromSonar() {
|
||||||
auto generatingCSR = sonarState_->start("Generate CSR");
|
auto generatingCSR = sonarState_->start("Generate CSR");
|
||||||
std::string csr = contextStore_->createCertificateSigningRequest();
|
std::string csr = contextStore_->createCertificateSigningRequest();
|
||||||
generatingCSR->complete();
|
generatingCSR->complete();
|
||||||
@@ -283,7 +283,7 @@ void SonarWebSocketImpl::requestSignedCertFromSonar() {
|
|||||||
failedConnectionAttempts_ = 0;
|
failedConnectionAttempts_ = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void SonarWebSocketImpl::sendLegacyCertificateRequest(folly::dynamic message) {
|
void FlipperConnectionManagerImpl::sendLegacyCertificateRequest(folly::dynamic message) {
|
||||||
// Desktop is using an old version of Flipper.
|
// Desktop is using an old version of Flipper.
|
||||||
// Fall back to fireAndForget, instead of requestResponse.
|
// Fall back to fireAndForget, instead of requestResponse.
|
||||||
auto sendingRequest = sonarState_->start("Sending fallback certificate request");
|
auto sendingRequest = sonarState_->start("Sending fallback certificate request");
|
||||||
@@ -297,7 +297,7 @@ void SonarWebSocketImpl::sendLegacyCertificateRequest(folly::dynamic message) {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
bool SonarWebSocketImpl::isRunningInOwnThread() {
|
bool FlipperConnectionManagerImpl::isRunningInOwnThread() {
|
||||||
return sonarEventBase_->isInEventBaseThread();
|
return sonarEventBase_->isInEventBaseThread();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -9,7 +9,7 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include "FlipperInitConfig.h"
|
#include "FlipperInitConfig.h"
|
||||||
#include "SonarWebSocket.h"
|
#include "FlipperConnectionManager.h"
|
||||||
#include "SonarState.h"
|
#include "SonarState.h"
|
||||||
#include <folly/Executor.h>
|
#include <folly/Executor.h>
|
||||||
#include <folly/io/async/EventBase.h>
|
#include <folly/io/async/EventBase.h>
|
||||||
@@ -23,14 +23,14 @@ class ConnectionEvents;
|
|||||||
class ConnectionContextStore;
|
class ConnectionContextStore;
|
||||||
class Responder;
|
class Responder;
|
||||||
|
|
||||||
class SonarWebSocketImpl : public SonarWebSocket {
|
class FlipperConnectionManagerImpl : public FlipperConnectionManager {
|
||||||
friend ConnectionEvents;
|
friend ConnectionEvents;
|
||||||
friend Responder;
|
friend Responder;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
SonarWebSocketImpl(FlipperInitConfig config, std::shared_ptr<SonarState> state, std::shared_ptr<ConnectionContextStore> contextStore);
|
FlipperConnectionManagerImpl(FlipperInitConfig config, std::shared_ptr<SonarState> state, std::shared_ptr<ConnectionContextStore> contextStore);
|
||||||
|
|
||||||
~SonarWebSocketImpl();
|
~FlipperConnectionManagerImpl();
|
||||||
|
|
||||||
void start() override;
|
void start() override;
|
||||||
|
|
||||||
@@ -9,7 +9,7 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include "FlipperResponder.h"
|
#include "FlipperResponder.h"
|
||||||
#include "SonarWebSocket.h"
|
#include "FlipperConnectionManager.h"
|
||||||
#include <folly/json.h>
|
#include <folly/json.h>
|
||||||
|
|
||||||
namespace facebook {
|
namespace facebook {
|
||||||
@@ -17,7 +17,7 @@ namespace flipper {
|
|||||||
|
|
||||||
class FlipperResponderImpl : public FlipperResponder {
|
class FlipperResponderImpl : public FlipperResponder {
|
||||||
public:
|
public:
|
||||||
FlipperResponderImpl(SonarWebSocket* socket, int64_t responseID)
|
FlipperResponderImpl(FlipperConnectionManager* socket, int64_t responseID)
|
||||||
: socket_(socket), responseID_(responseID) {}
|
: socket_(socket), responseID_(responseID) {}
|
||||||
|
|
||||||
void success(const folly::dynamic& response) const override {
|
void success(const folly::dynamic& response) const override {
|
||||||
@@ -33,7 +33,7 @@ class FlipperResponderImpl : public FlipperResponder {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
SonarWebSocket* socket_;
|
FlipperConnectionManager* socket_;
|
||||||
int64_t responseID_;
|
int64_t responseID_;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -8,15 +8,15 @@
|
|||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include <Flipper/SonarWebSocket.h>
|
#include <Flipper/FlipperConnectionManager.h>
|
||||||
|
|
||||||
namespace facebook {
|
namespace facebook {
|
||||||
namespace flipper {
|
namespace flipper {
|
||||||
namespace test {
|
namespace test {
|
||||||
|
|
||||||
class SonarWebSocketMock : public SonarWebSocket {
|
class FlipperConnectionManagerMock : public FlipperConnectionManager {
|
||||||
public:
|
public:
|
||||||
SonarWebSocketMock() : callbacks(nullptr) {}
|
FlipperConnectionManagerMock() : callbacks(nullptr) {}
|
||||||
|
|
||||||
void start() override {
|
void start() override {
|
||||||
open = true;
|
open = true;
|
||||||
@@ -8,7 +8,7 @@
|
|||||||
|
|
||||||
#include <Flipper/FlipperClient.h>
|
#include <Flipper/FlipperClient.h>
|
||||||
#include <FlipperTestLib/SonarPluginMock.h>
|
#include <FlipperTestLib/SonarPluginMock.h>
|
||||||
#include <FlipperTestLib/SonarWebSocketMock.h>
|
#include <FlipperTestLib/FlipperConnectionManagerMock.h>
|
||||||
|
|
||||||
#include <folly/json.h>
|
#include <folly/json.h>
|
||||||
#include <gtest/gtest.h>
|
#include <gtest/gtest.h>
|
||||||
@@ -22,7 +22,7 @@ using folly::dynamic;
|
|||||||
auto state = std::make_shared<SonarState>();
|
auto state = std::make_shared<SonarState>();
|
||||||
|
|
||||||
TEST(SonarClientTests, testSaneMocks) {
|
TEST(SonarClientTests, testSaneMocks) {
|
||||||
SonarWebSocketMock socket;
|
FlipperConnectionManagerMock socket;
|
||||||
socket.start();
|
socket.start();
|
||||||
EXPECT_TRUE(socket.isOpen());
|
EXPECT_TRUE(socket.isOpen());
|
||||||
socket.stop();
|
socket.stop();
|
||||||
@@ -33,8 +33,8 @@ TEST(SonarClientTests, testSaneMocks) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
TEST(SonarClientTests, testGetPlugins) {
|
TEST(SonarClientTests, testGetPlugins) {
|
||||||
auto socket = new SonarWebSocketMock;
|
auto socket = new FlipperConnectionManagerMock;
|
||||||
FlipperClient client(std::unique_ptr<SonarWebSocketMock>{socket}, state);
|
FlipperClient client(std::unique_ptr<FlipperConnectionManagerMock>{socket}, state);
|
||||||
client.start();
|
client.start();
|
||||||
|
|
||||||
client.addPlugin(std::make_shared<SonarPluginMock>("Cat"));
|
client.addPlugin(std::make_shared<SonarPluginMock>("Cat"));
|
||||||
@@ -49,8 +49,8 @@ TEST(SonarClientTests, testGetPlugins) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
TEST(SonarClientTests, testGetPlugin) {
|
TEST(SonarClientTests, testGetPlugin) {
|
||||||
auto socket = new SonarWebSocketMock;
|
auto socket = new FlipperConnectionManagerMock;
|
||||||
FlipperClient client(std::unique_ptr<SonarWebSocketMock>{socket}, state);
|
FlipperClient client(std::unique_ptr<FlipperConnectionManagerMock>{socket}, state);
|
||||||
|
|
||||||
const auto catPlugin = std::make_shared<SonarPluginMock>("Cat");
|
const auto catPlugin = std::make_shared<SonarPluginMock>("Cat");
|
||||||
client.addPlugin(catPlugin);
|
client.addPlugin(catPlugin);
|
||||||
@@ -62,8 +62,8 @@ TEST(SonarClientTests, testGetPlugin) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
TEST(SonarClientTests, testGetPluginWithDowncast) {
|
TEST(SonarClientTests, testGetPluginWithDowncast) {
|
||||||
auto socket = new SonarWebSocketMock;
|
auto socket = new FlipperConnectionManagerMock;
|
||||||
FlipperClient client(std::unique_ptr<SonarWebSocketMock>{socket}, state);
|
FlipperClient client(std::unique_ptr<FlipperConnectionManagerMock>{socket}, state);
|
||||||
|
|
||||||
const auto catPlugin = std::make_shared<SonarPluginMock>("Cat");
|
const auto catPlugin = std::make_shared<SonarPluginMock>("Cat");
|
||||||
client.addPlugin(catPlugin);
|
client.addPlugin(catPlugin);
|
||||||
@@ -71,8 +71,8 @@ TEST(SonarClientTests, testGetPluginWithDowncast) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
TEST(SonarClientTests, testRemovePlugin) {
|
TEST(SonarClientTests, testRemovePlugin) {
|
||||||
auto socket = new SonarWebSocketMock;
|
auto socket = new FlipperConnectionManagerMock;
|
||||||
FlipperClient client(std::unique_ptr<SonarWebSocketMock>{socket}, state);
|
FlipperClient client(std::unique_ptr<FlipperConnectionManagerMock>{socket}, state);
|
||||||
client.start();
|
client.start();
|
||||||
|
|
||||||
auto plugin = std::make_shared<SonarPluginMock>("Test");
|
auto plugin = std::make_shared<SonarPluginMock>("Test");
|
||||||
@@ -88,8 +88,8 @@ TEST(SonarClientTests, testRemovePlugin) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
TEST(SonarClientTests, testStartStop) {
|
TEST(SonarClientTests, testStartStop) {
|
||||||
auto socket = new SonarWebSocketMock;
|
auto socket = new FlipperConnectionManagerMock;
|
||||||
FlipperClient client(std::unique_ptr<SonarWebSocketMock>{socket}, state);
|
FlipperClient client(std::unique_ptr<FlipperConnectionManagerMock>{socket}, state);
|
||||||
|
|
||||||
client.start();
|
client.start();
|
||||||
EXPECT_TRUE(socket->isOpen());
|
EXPECT_TRUE(socket->isOpen());
|
||||||
@@ -99,8 +99,8 @@ TEST(SonarClientTests, testStartStop) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
TEST(SonarClientTests, testConnectDisconnect) {
|
TEST(SonarClientTests, testConnectDisconnect) {
|
||||||
auto socket = new SonarWebSocketMock;
|
auto socket = new FlipperConnectionManagerMock;
|
||||||
FlipperClient client(std::unique_ptr<SonarWebSocketMock>{socket}, state);
|
FlipperClient client(std::unique_ptr<FlipperConnectionManagerMock>{socket}, state);
|
||||||
|
|
||||||
bool pluginConnected = false;
|
bool pluginConnected = false;
|
||||||
const auto connectionCallback = [&](std::shared_ptr<FlipperConnection> conn) {
|
const auto connectionCallback = [&](std::shared_ptr<FlipperConnection> conn) {
|
||||||
@@ -122,8 +122,8 @@ TEST(SonarClientTests, testConnectDisconnect) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
TEST(SonarClientTests, testInitDeinit) {
|
TEST(SonarClientTests, testInitDeinit) {
|
||||||
auto socket = new SonarWebSocketMock;
|
auto socket = new FlipperConnectionManagerMock;
|
||||||
FlipperClient client(std::unique_ptr<SonarWebSocketMock>{socket}, state);
|
FlipperClient client(std::unique_ptr<FlipperConnectionManagerMock>{socket}, state);
|
||||||
|
|
||||||
bool pluginConnected = false;
|
bool pluginConnected = false;
|
||||||
const auto connectionCallback = [&](std::shared_ptr<FlipperConnection> conn) {
|
const auto connectionCallback = [&](std::shared_ptr<FlipperConnection> conn) {
|
||||||
@@ -160,8 +160,8 @@ TEST(SonarClientTests, testInitDeinit) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
TEST(SonarClientTests, testRemovePluginWhenConnected) {
|
TEST(SonarClientTests, testRemovePluginWhenConnected) {
|
||||||
auto socket = new SonarWebSocketMock;
|
auto socket = new FlipperConnectionManagerMock;
|
||||||
FlipperClient client(std::unique_ptr<SonarWebSocketMock>{socket}, state);
|
FlipperClient client(std::unique_ptr<FlipperConnectionManagerMock>{socket}, state);
|
||||||
|
|
||||||
bool pluginConnected = false;
|
bool pluginConnected = false;
|
||||||
const auto connectionCallback = [&](std::shared_ptr<FlipperConnection> conn) {
|
const auto connectionCallback = [&](std::shared_ptr<FlipperConnection> conn) {
|
||||||
@@ -181,8 +181,8 @@ TEST(SonarClientTests, testRemovePluginWhenConnected) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
TEST(SonarClientTests, testUnhandleableMethod) {
|
TEST(SonarClientTests, testUnhandleableMethod) {
|
||||||
auto socket = new SonarWebSocketMock;
|
auto socket = new FlipperConnectionManagerMock;
|
||||||
FlipperClient client(std::unique_ptr<SonarWebSocketMock>{socket}, state);
|
FlipperClient client(std::unique_ptr<FlipperConnectionManagerMock>{socket}, state);
|
||||||
|
|
||||||
auto plugin = std::make_shared<SonarPluginMock>("Test");
|
auto plugin = std::make_shared<SonarPluginMock>("Test");
|
||||||
client.addPlugin(plugin);
|
client.addPlugin(plugin);
|
||||||
@@ -201,8 +201,8 @@ TEST(SonarClientTests, testUnhandleableMethod) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
TEST(SonarClientTests, testExecute) {
|
TEST(SonarClientTests, testExecute) {
|
||||||
auto socket = new SonarWebSocketMock;
|
auto socket = new FlipperConnectionManagerMock;
|
||||||
FlipperClient client(std::unique_ptr<SonarWebSocketMock>{socket}, state);
|
FlipperClient client(std::unique_ptr<FlipperConnectionManagerMock>{socket}, state);
|
||||||
client.start();
|
client.start();
|
||||||
|
|
||||||
const auto connectionCallback = [](std::shared_ptr<FlipperConnection> conn) {
|
const auto connectionCallback = [](std::shared_ptr<FlipperConnection> conn) {
|
||||||
@@ -231,8 +231,8 @@ TEST(SonarClientTests, testExecute) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
TEST(SonarClientTests, testExecuteWithParams) {
|
TEST(SonarClientTests, testExecuteWithParams) {
|
||||||
auto socket = new SonarWebSocketMock;
|
auto socket = new FlipperConnectionManagerMock;
|
||||||
FlipperClient client(std::unique_ptr<SonarWebSocketMock>{socket}, state);
|
FlipperClient client(std::unique_ptr<FlipperConnectionManagerMock>{socket}, state);
|
||||||
|
|
||||||
const auto connectionCallback = [&](std::shared_ptr<FlipperConnection> conn) {
|
const auto connectionCallback = [&](std::shared_ptr<FlipperConnection> conn) {
|
||||||
const auto receiver = [](const dynamic ¶ms,
|
const auto receiver = [](const dynamic ¶ms,
|
||||||
@@ -264,8 +264,8 @@ TEST(SonarClientTests, testExecuteWithParams) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
TEST(SonarClientTests, testExceptionUnknownPlugin) {
|
TEST(SonarClientTests, testExceptionUnknownPlugin) {
|
||||||
auto socket = new SonarWebSocketMock;
|
auto socket = new FlipperConnectionManagerMock;
|
||||||
FlipperClient client(std::unique_ptr<SonarWebSocketMock>{socket}, state);
|
FlipperClient client(std::unique_ptr<FlipperConnectionManagerMock>{socket}, state);
|
||||||
client.start();
|
client.start();
|
||||||
|
|
||||||
dynamic messageInit = dynamic::object("method", "init")(
|
dynamic messageInit = dynamic::object("method", "init")(
|
||||||
@@ -277,8 +277,8 @@ TEST(SonarClientTests, testExceptionUnknownPlugin) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
TEST(SonarClientTests, testExceptionUnknownApi) {
|
TEST(SonarClientTests, testExceptionUnknownApi) {
|
||||||
auto socket = new SonarWebSocketMock;
|
auto socket = new FlipperConnectionManagerMock;
|
||||||
FlipperClient client(std::unique_ptr<SonarWebSocketMock>{socket}, state);
|
FlipperClient client(std::unique_ptr<FlipperConnectionManagerMock>{socket}, state);
|
||||||
client.start();
|
client.start();
|
||||||
|
|
||||||
dynamic messageInit = dynamic::object("method", "execute")(
|
dynamic messageInit = dynamic::object("method", "execute")(
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <Flipper/SonarWebSocketImpl.h>
|
#include <Flipper/FlipperConnectionManagerImpl.h>
|
||||||
#include <FlipperTestLib/ConnectionContextStoreMock.h>
|
#include <FlipperTestLib/ConnectionContextStoreMock.h>
|
||||||
|
|
||||||
#include <gtest/gtest.h>
|
#include <gtest/gtest.h>
|
||||||
@@ -17,7 +17,7 @@ namespace test {
|
|||||||
|
|
||||||
using folly::EventBase;
|
using folly::EventBase;
|
||||||
|
|
||||||
class SonarWebSocketImplTerminationTest : public ::testing::Test {
|
class FlipperConnectionManagerImplTerminationTest : public ::testing::Test {
|
||||||
protected:
|
protected:
|
||||||
std::shared_ptr<SonarState> state;
|
std::shared_ptr<SonarState> state;
|
||||||
std::shared_ptr<ConnectionContextStore> contextStore;
|
std::shared_ptr<ConnectionContextStore> contextStore;
|
||||||
@@ -30,9 +30,9 @@ protected:
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
TEST_F(SonarWebSocketImplTerminationTest, testNullEventBaseGetsRejected) {
|
TEST_F(FlipperConnectionManagerImplTerminationTest, testNullEventBaseGetsRejected) {
|
||||||
try {
|
try {
|
||||||
auto instance = std::make_shared<SonarWebSocketImpl>(FlipperInitConfig {
|
auto instance = std::make_shared<FlipperConnectionManagerImpl>(FlipperInitConfig {
|
||||||
DeviceData {},
|
DeviceData {},
|
||||||
nullptr,
|
nullptr,
|
||||||
new EventBase()
|
new EventBase()
|
||||||
@@ -45,7 +45,7 @@ TEST_F(SonarWebSocketImplTerminationTest, testNullEventBaseGetsRejected) {
|
|||||||
// Pass test
|
// Pass test
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
auto instance = std::make_shared<SonarWebSocketImpl>(FlipperInitConfig {
|
auto instance = std::make_shared<FlipperConnectionManagerImpl>(FlipperInitConfig {
|
||||||
DeviceData {},
|
DeviceData {},
|
||||||
new EventBase(),
|
new EventBase(),
|
||||||
nullptr
|
nullptr
|
||||||
@@ -59,17 +59,17 @@ TEST_F(SonarWebSocketImplTerminationTest, testNullEventBaseGetsRejected) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(SonarWebSocketImplTerminationTest, testNonStartedEventBaseDoesntHang) {
|
TEST_F(FlipperConnectionManagerImplTerminationTest, testNonStartedEventBaseDoesntHang) {
|
||||||
auto config = FlipperInitConfig {
|
auto config = FlipperInitConfig {
|
||||||
DeviceData {},
|
DeviceData {},
|
||||||
new EventBase(),
|
new EventBase(),
|
||||||
new EventBase()
|
new EventBase()
|
||||||
};
|
};
|
||||||
auto instance = std::make_shared<SonarWebSocketImpl>(config, state, contextStore);
|
auto instance = std::make_shared<FlipperConnectionManagerImpl>(config, state, contextStore);
|
||||||
instance->start();
|
instance->start();
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(SonarWebSocketImplTerminationTest, testStartedEventBaseDoesntHang) {
|
TEST_F(FlipperConnectionManagerImplTerminationTest, testStartedEventBaseDoesntHang) {
|
||||||
auto sonarEventBase = new EventBase();
|
auto sonarEventBase = new EventBase();
|
||||||
auto connectionEventBase = new EventBase();
|
auto connectionEventBase = new EventBase();
|
||||||
auto sonarThread = std::thread([sonarEventBase](){
|
auto sonarThread = std::thread([sonarEventBase](){
|
||||||
@@ -83,7 +83,7 @@ TEST_F(SonarWebSocketImplTerminationTest, testStartedEventBaseDoesntHang) {
|
|||||||
sonarEventBase,
|
sonarEventBase,
|
||||||
connectionEventBase
|
connectionEventBase
|
||||||
};
|
};
|
||||||
auto instance = std::make_shared<SonarWebSocketImpl>(config, state, contextStore);
|
auto instance = std::make_shared<FlipperConnectionManagerImpl>(config, state, contextStore);
|
||||||
|
|
||||||
instance->start();
|
instance->start();
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user