54 lines
No EOL
1.6 KiB
C++
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
|