#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 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