JD2022-TU1/main/unittests/core/HttpServer/WebSocket/WebSocketUtilities.cpp

54 lines
No EOL
1.6 KiB
C++

#include "precompiled_unittests_core.h"
#include "core/HttpServer/WebSocket/WebSocketUtilities.h"
#include "HttpServer/HttpConnectionMock.h"
using ::testing::Return;
using ::testing::StrEq;
namespace ITF
{
TEST(WebSocketUtilities, test_getSupportedProtocols)
{
String8 protocol1("myprotocol1");
String8 protocol2("myprotocol2");
String8 protocol3("myprotocol3");
String8 allProtocols = protocol1 + "," + protocol2 + "," + protocol3;
::testing::StrictMock<HttpConnectionMock> httpConnection;
EXPECT_CALL(httpConnection, getHeader(StrEq("Sec-WebSocket-Protocol"))).Times(1).WillRepeatedly(Return(allProtocols.cStr()));
const u32 expectedProtocolCount = 3;
WebSocketUtilities::ProtocolList protocols;
WebSocketUtilities::getSupportedProtocols(httpConnection, protocols);
ASSERT_EQ(expectedProtocolCount, protocols.size());
EXPECT_STREQ(protocol1.cStr(), protocols[0].cStr());
EXPECT_STREQ(protocol2.cStr(), protocols[1].cStr());
EXPECT_STREQ(protocol3.cStr(), protocols[2].cStr());
}
TEST(WebSocketUtilities, test_createProtocolField_OK)
{
String8 protocol("my_protocol");
String8 expectedResult("Sec-WebSocket-Protocol: my_protocol");
String8 generatedField;
WebSocketUtilities::createHttpWsProtocolField(protocol, generatedField);
EXPECT_STREQ(expectedResult.cStr(), generatedField.cStr());
}
TEST(WebSocketUtilities, test_createProtocolField_Nok)
{
String8 protocol;
String8 generatedField;
WebSocketUtilities::createHttpWsProtocolField(protocol, generatedField);
EXPECT_TRUE(generatedField.isEmpty());
}
} // namespace ITF