SelfTests: Moved cCompositeChat test to a separate project.
This commit is contained in:
parent
ab6f68b42c
commit
db17f585af
@ -6,95 +6,6 @@
|
|||||||
#include "Globals.h"
|
#include "Globals.h"
|
||||||
#include "CompositeChat.h"
|
#include "CompositeChat.h"
|
||||||
#include "ClientHandle.h"
|
#include "ClientHandle.h"
|
||||||
#include "SelfTests.h"
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#ifdef SELF_TEST
|
|
||||||
|
|
||||||
/** A simple self-test that verifies that the composite chat parser is working properly. */
|
|
||||||
class SelfTest_CompositeChat
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
SelfTest_CompositeChat(void)
|
|
||||||
{
|
|
||||||
cSelfTests::Get().Register(cSelfTests::SelfTestFunction(&TestParser1), "CompositeChat parser test 1");
|
|
||||||
cSelfTests::Get().Register(cSelfTests::SelfTestFunction(&TestParser2), "CompositeChat parser test 2");
|
|
||||||
cSelfTests::Get().Register(cSelfTests::SelfTestFunction(&TestParser3), "CompositeChat parser test 3");
|
|
||||||
cSelfTests::Get().Register(cSelfTests::SelfTestFunction(&TestParser4), "CompositeChat parser test 4");
|
|
||||||
cSelfTests::Get().Register(cSelfTests::SelfTestFunction(&TestParser5), "CompositeChat parser test 5");
|
|
||||||
}
|
|
||||||
|
|
||||||
static void TestParser1(void)
|
|
||||||
{
|
|
||||||
cCompositeChat Msg;
|
|
||||||
Msg.ParseText("Testing @2color codes and http://links parser");
|
|
||||||
const cCompositeChat::cParts & Parts = Msg.GetParts();
|
|
||||||
assert_test(Parts.size() == 4);
|
|
||||||
assert_test(Parts[0]->m_PartType == cCompositeChat::ptText);
|
|
||||||
assert_test(Parts[1]->m_PartType == cCompositeChat::ptText);
|
|
||||||
assert_test(Parts[2]->m_PartType == cCompositeChat::ptUrl);
|
|
||||||
assert_test(Parts[3]->m_PartType == cCompositeChat::ptText);
|
|
||||||
assert_test(Parts[0]->m_Style == "");
|
|
||||||
assert_test(Parts[1]->m_Style == "@2");
|
|
||||||
assert_test(Parts[2]->m_Style == "@2");
|
|
||||||
assert_test(Parts[3]->m_Style == "@2");
|
|
||||||
}
|
|
||||||
|
|
||||||
static void TestParser2(void)
|
|
||||||
{
|
|
||||||
cCompositeChat Msg;
|
|
||||||
Msg.ParseText("@3Advanced stuff: @5overriding color codes and http://links.with/@4color-in-them handling");
|
|
||||||
const cCompositeChat::cParts & Parts = Msg.GetParts();
|
|
||||||
assert_test(Parts.size() == 4);
|
|
||||||
assert_test(Parts[0]->m_PartType == cCompositeChat::ptText);
|
|
||||||
assert_test(Parts[1]->m_PartType == cCompositeChat::ptText);
|
|
||||||
assert_test(Parts[2]->m_PartType == cCompositeChat::ptUrl);
|
|
||||||
assert_test(Parts[3]->m_PartType == cCompositeChat::ptText);
|
|
||||||
assert_test(Parts[0]->m_Style == "@3");
|
|
||||||
assert_test(Parts[1]->m_Style == "@5");
|
|
||||||
assert_test(Parts[2]->m_Style == "@5");
|
|
||||||
assert_test(Parts[3]->m_Style == "@5");
|
|
||||||
}
|
|
||||||
|
|
||||||
static void TestParser3(void)
|
|
||||||
{
|
|
||||||
cCompositeChat Msg;
|
|
||||||
Msg.ParseText("http://links.starting the text");
|
|
||||||
const cCompositeChat::cParts & Parts = Msg.GetParts();
|
|
||||||
assert_test(Parts.size() == 2);
|
|
||||||
assert_test(Parts[0]->m_PartType == cCompositeChat::ptUrl);
|
|
||||||
assert_test(Parts[1]->m_PartType == cCompositeChat::ptText);
|
|
||||||
assert_test(Parts[0]->m_Style == "");
|
|
||||||
assert_test(Parts[1]->m_Style == "");
|
|
||||||
}
|
|
||||||
|
|
||||||
static void TestParser4(void)
|
|
||||||
{
|
|
||||||
cCompositeChat Msg;
|
|
||||||
Msg.ParseText("links finishing the text: http://some.server");
|
|
||||||
const cCompositeChat::cParts & Parts = Msg.GetParts();
|
|
||||||
assert_test(Parts.size() == 2);
|
|
||||||
assert_test(Parts[0]->m_PartType == cCompositeChat::ptText);
|
|
||||||
assert_test(Parts[1]->m_PartType == cCompositeChat::ptUrl);
|
|
||||||
assert_test(Parts[0]->m_Style == "");
|
|
||||||
assert_test(Parts[1]->m_Style == "");
|
|
||||||
}
|
|
||||||
|
|
||||||
static void TestParser5(void)
|
|
||||||
{
|
|
||||||
cCompositeChat Msg;
|
|
||||||
Msg.ParseText("http://only.links");
|
|
||||||
const cCompositeChat::cParts & Parts = Msg.GetParts();
|
|
||||||
assert_test(Parts.size() == 1);
|
|
||||||
assert_test(Parts[0]->m_PartType == cCompositeChat::ptUrl);
|
|
||||||
assert_test(Parts[0]->m_Style == "");
|
|
||||||
}
|
|
||||||
|
|
||||||
} gTest;
|
|
||||||
#endif // SELF_TEST
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -10,6 +10,7 @@ endif()
|
|||||||
|
|
||||||
add_subdirectory(ByteBuffer)
|
add_subdirectory(ByteBuffer)
|
||||||
add_subdirectory(ChunkData)
|
add_subdirectory(ChunkData)
|
||||||
|
add_subdirectory(CompositeChat)
|
||||||
add_subdirectory(HTTP)
|
add_subdirectory(HTTP)
|
||||||
add_subdirectory(LoadablePieces)
|
add_subdirectory(LoadablePieces)
|
||||||
add_subdirectory(Network)
|
add_subdirectory(Network)
|
||||||
|
47
tests/CompositeChat/CMakeLists.txt
Normal file
47
tests/CompositeChat/CMakeLists.txt
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
cmake_minimum_required (VERSION 2.6)
|
||||||
|
|
||||||
|
enable_testing()
|
||||||
|
add_definitions(-DTEST_GLOBALS=1)
|
||||||
|
|
||||||
|
include_directories(${CMAKE_CURRENT_SOURCE_DIR})
|
||||||
|
include_directories(${CMAKE_SOURCE_DIR}/src/)
|
||||||
|
include_directories(${CMAKE_SOURCE_DIR}/lib/jsoncpp/include)
|
||||||
|
|
||||||
|
add_definitions(-DTEST_GLOBALS=1)
|
||||||
|
|
||||||
|
set (SHARED_SRCS
|
||||||
|
${CMAKE_SOURCE_DIR}/src/CompositeChat.cpp
|
||||||
|
${CMAKE_SOURCE_DIR}/src/OSSupport/StackTrace.cpp
|
||||||
|
)
|
||||||
|
|
||||||
|
set (SHARED_HDRS
|
||||||
|
${CMAKE_SOURCE_DIR}/src/CompositeChat.h
|
||||||
|
${CMAKE_SOURCE_DIR}/src/OSSupport/StackTrace.h
|
||||||
|
)
|
||||||
|
|
||||||
|
set (SRCS
|
||||||
|
CompositeChatTest.cpp
|
||||||
|
ClientHandle.cpp
|
||||||
|
)
|
||||||
|
|
||||||
|
if (MSVC)
|
||||||
|
# Add the MSVC-specific LeakFinder / StackTracer sources:
|
||||||
|
list (APPEND SHARED_SRCS ${CMAKE_SOURCE_DIR}/src/LeakFinder.cpp ${CMAKE_SOURCE_DIR}/src/StackWalker.cpp)
|
||||||
|
list (APPEND SHARED_HDRS ${CMAKE_SOURCE_DIR}/src/LeakFinder.h ${CMAKE_SOURCE_DIR}/src/StackWalker.h)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
source_group("Shared" FILES ${SHARED_SRCS} ${SHARED_HDRS})
|
||||||
|
source_group("Sources" FILES ${SRCS})
|
||||||
|
add_executable(CompositeChat-exe ${SRCS} ${SHARED_SRCS} ${SHARED_HDRS})
|
||||||
|
target_link_libraries(CompositeChat-exe jsoncpp_lib_static)
|
||||||
|
add_test(NAME CompositeChat-test COMMAND CompositeChat-exe)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# Put the projects into solution folders (MSVC):
|
||||||
|
set_target_properties(
|
||||||
|
CompositeChat-exe
|
||||||
|
PROPERTIES FOLDER Tests
|
||||||
|
)
|
20
tests/CompositeChat/ClientHandle.cpp
Normal file
20
tests/CompositeChat/ClientHandle.cpp
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
|
||||||
|
// ClientHandle.cpp
|
||||||
|
|
||||||
|
// Mocks the cClientHandle class used by the tests
|
||||||
|
|
||||||
|
#include "Globals.h"
|
||||||
|
#include "ClientHandle.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
AString cClientHandle::FormatMessageType(bool a_ShouldShowPrefixes, eMessageType a_MsgType, const AString & a_AdditionalData)
|
||||||
|
{
|
||||||
|
return "<FormatMessageType mocked>";
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
112
tests/CompositeChat/CompositeChatTest.cpp
Normal file
112
tests/CompositeChat/CompositeChatTest.cpp
Normal file
@ -0,0 +1,112 @@
|
|||||||
|
|
||||||
|
// CompositeChatTest.cpp
|
||||||
|
|
||||||
|
// Implements the main app entrypoint for the cCompositeChat class test
|
||||||
|
|
||||||
|
#include "Globals.h"
|
||||||
|
#include "CompositeChat.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
static void TestParser1(void)
|
||||||
|
{
|
||||||
|
cCompositeChat Msg;
|
||||||
|
Msg.ParseText("Testing @2color codes and http://links parser");
|
||||||
|
const cCompositeChat::cParts & Parts = Msg.GetParts();
|
||||||
|
assert_test(Parts.size() == 4);
|
||||||
|
assert_test(Parts[0]->m_PartType == cCompositeChat::ptText);
|
||||||
|
assert_test(Parts[1]->m_PartType == cCompositeChat::ptText);
|
||||||
|
assert_test(Parts[2]->m_PartType == cCompositeChat::ptUrl);
|
||||||
|
assert_test(Parts[3]->m_PartType == cCompositeChat::ptText);
|
||||||
|
assert_test(Parts[0]->m_Style == "");
|
||||||
|
assert_test(Parts[1]->m_Style == "@2");
|
||||||
|
assert_test(Parts[2]->m_Style == "@2");
|
||||||
|
assert_test(Parts[3]->m_Style == "@2");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
static void TestParser2(void)
|
||||||
|
{
|
||||||
|
cCompositeChat Msg;
|
||||||
|
Msg.ParseText("@3Advanced stuff: @5overriding color codes and http://links.with/@4color-in-them handling");
|
||||||
|
const cCompositeChat::cParts & Parts = Msg.GetParts();
|
||||||
|
assert_test(Parts.size() == 4);
|
||||||
|
assert_test(Parts[0]->m_PartType == cCompositeChat::ptText);
|
||||||
|
assert_test(Parts[1]->m_PartType == cCompositeChat::ptText);
|
||||||
|
assert_test(Parts[2]->m_PartType == cCompositeChat::ptUrl);
|
||||||
|
assert_test(Parts[3]->m_PartType == cCompositeChat::ptText);
|
||||||
|
assert_test(Parts[0]->m_Style == "@3");
|
||||||
|
assert_test(Parts[1]->m_Style == "@5");
|
||||||
|
assert_test(Parts[2]->m_Style == "@5");
|
||||||
|
assert_test(Parts[3]->m_Style == "@5");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
static void TestParser3(void)
|
||||||
|
{
|
||||||
|
cCompositeChat Msg;
|
||||||
|
Msg.ParseText("http://links.starting the text");
|
||||||
|
const cCompositeChat::cParts & Parts = Msg.GetParts();
|
||||||
|
assert_test(Parts.size() == 2);
|
||||||
|
assert_test(Parts[0]->m_PartType == cCompositeChat::ptUrl);
|
||||||
|
assert_test(Parts[1]->m_PartType == cCompositeChat::ptText);
|
||||||
|
assert_test(Parts[0]->m_Style == "");
|
||||||
|
assert_test(Parts[1]->m_Style == "");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
static void TestParser4(void)
|
||||||
|
{
|
||||||
|
cCompositeChat Msg;
|
||||||
|
Msg.ParseText("links finishing the text: http://some.server");
|
||||||
|
const cCompositeChat::cParts & Parts = Msg.GetParts();
|
||||||
|
assert_test(Parts.size() == 2);
|
||||||
|
assert_test(Parts[0]->m_PartType == cCompositeChat::ptText);
|
||||||
|
assert_test(Parts[1]->m_PartType == cCompositeChat::ptUrl);
|
||||||
|
assert_test(Parts[0]->m_Style == "");
|
||||||
|
assert_test(Parts[1]->m_Style == "");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
static void TestParser5(void)
|
||||||
|
{
|
||||||
|
cCompositeChat Msg;
|
||||||
|
Msg.ParseText("http://only.links");
|
||||||
|
const cCompositeChat::cParts & Parts = Msg.GetParts();
|
||||||
|
assert_test(Parts.size() == 1);
|
||||||
|
assert_test(Parts[0]->m_PartType == cCompositeChat::ptUrl);
|
||||||
|
assert_test(Parts[0]->m_Style == "");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
int main(int argc, char * argv[])
|
||||||
|
{
|
||||||
|
TestParser1();
|
||||||
|
TestParser2();
|
||||||
|
TestParser3();
|
||||||
|
TestParser4();
|
||||||
|
TestParser5();
|
||||||
|
LOG("CompositeChat test finished.");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user