Files
msime-windows/server/tests/src/test_ipc_protocol_constants.cpp
T

74 lines
3.8 KiB
C++

#define NOMINMAX
#include "ipc/ipc.h"
#include "ipc/input_key_policy.h"
#include "tests/includes/test_framework.h"
TEST_CASE(ipc_reverse_pipes_buffer_multiple_complete_frames)
{
REQUIRE(FANY_IME_TO_TSF_PIPE_FRAME_CAPACITY >= 64);
REQUIRE(FANY_IME_TO_TSF_WORKER_PIPE_FRAME_CAPACITY >= 16);
REQUIRE(sizeof(FanyImeNamedpipeDataToTsf) * FANY_IME_TO_TSF_PIPE_FRAME_CAPACITY >=
sizeof(FanyImeNamedpipeDataToTsf) * 64);
REQUIRE(sizeof(FanyImeNamedpipeDataToTsfWorkerThread) * FANY_IME_TO_TSF_WORKER_PIPE_FRAME_CAPACITY >=
sizeof(FanyImeNamedpipeDataToTsfWorkerThread) * 16);
}
TEST_CASE(ipc_pipe_ready_is_a_distinct_server_reply)
{
REQUIRE_EQ(Global::DataFromServerMsgType::PipeReady, 9u);
REQUIRE(Global::DataFromServerMsgType::PipeReady > Global::DataFromServerMsgType::MovePageNext);
REQUIRE_EQ(Global::DataFromServerMsgType::CommitExactText, 10u);
REQUIRE(Global::DataFromServerMsgType::CommitExactText > Global::DataFromServerMsgType::PipeReady);
REQUIRE_EQ(Global::DataFromServerMsgType::UiLessComposition, 11u);
REQUIRE(Global::DataFromServerMsgType::UiLessComposition > Global::DataFromServerMsgType::CommitExactText);
REQUIRE_EQ(Global::DataFromServerMsgTypeToTsfWorkerThread::FocusSessionReady, 8u);
REQUIRE_EQ(Global::DataFromServerMsgTypeToTsfWorkerThread::PipeReady, 9u);
REQUIRE_EQ(Global::DataFromServerMsgTypeToTsfWorkerThread::InsertText, 10u);
REQUIRE_EQ(Global::DataFromServerMsgTypeToTsfWorkerThread::SmartPunctuationChanged, 11u);
REQUIRE_EQ(Global::DataFromServerMsgTypeToTsfWorkerThread::MaxKnown, 11u);
REQUIRE(Global::DataFromServerMsgTypeToTsfWorkerThread::FocusSessionReady >
Global::DataFromServerMsgTypeToTsfWorkerThread::PagingCommaPeriodChanged);
REQUIRE(Global::DataFromServerMsgTypeToTsfWorkerThread::PipeReady >
Global::DataFromServerMsgTypeToTsfWorkerThread::FocusSessionReady);
REQUIRE(Global::DataFromServerMsgTypeToTsfWorkerThread::InsertText >
Global::DataFromServerMsgTypeToTsfWorkerThread::PipeReady);
REQUIRE(Global::DataFromServerMsgTypeToTsfWorkerThread::SmartPunctuationChanged >
Global::DataFromServerMsgTypeToTsfWorkerThread::InsertText);
REQUIRE_EQ(
Global::DataFromServerMsgTypeToTsfWorkerThread::MaxKnown,
Global::DataFromServerMsgTypeToTsfWorkerThread::SmartPunctuationChanged);
}
TEST_CASE(ipc_client_suspension_is_a_distinct_nonterminal_route_reset)
{
REQUIRE_EQ(FanyImePipeEventType::ClientActivated, 11u);
REQUIRE_EQ(FanyImePipeEventType::ClientDeactivated, 12u);
REQUIRE_EQ(FanyImePipeEventType::StatusSnapshot, 13u);
REQUIRE_EQ(FanyImePipeEventType::ClientSuspended, 14u);
REQUIRE(FanyImePipeEventType::IsRouteDeactivation(
FanyImePipeEventType::ClientDeactivated));
REQUIRE(FanyImePipeEventType::IsRouteDeactivation(
FanyImePipeEventType::ClientSuspended));
REQUIRE(FanyImePipeEventType::IsTerminalDeactivation(
FanyImePipeEventType::ClientDeactivated));
REQUIRE(!FanyImePipeEventType::IsTerminalDeactivation(
FanyImePipeEventType::ClientSuspended));
REQUIRE(!FanyImePipeEventType::IsRouteDeactivation(
FanyImePipeEventType::ClientActivated));
}
TEST_CASE(ipc_focus_restored_is_an_appended_opcode_and_not_a_route_reset)
{
REQUIRE_EQ(FanyImePipeEventType::FocusRestored, 15u);
REQUIRE(!FanyImePipeEventType::IsRouteDeactivation(FanyImePipeEventType::FocusRestored));
REQUIRE(!FanyImePipeEventType::IsTerminalDeactivation(FanyImePipeEventType::FocusRestored));
}
TEST_CASE(ipc_uiless_flag_is_outside_key_modifier_mask)
{
REQUIRE_EQ(FanyImePipeFlags::UiLess, 0x80000000u);
REQUIRE((FanyImePipeFlags::UiLess & FanyImeIpc::kKeyModifierMask) == 0u);
REQUIRE((FanyImeIpc::kModifierUiLess & FanyImeIpc::kKeyModifierMask) == 0u);
}