From d11ee1a1e380fe13c5ed2d67454b1e57130583c9 Mon Sep 17 00:00:00 2001 From: rc-swag <58423624+rc-swag@users.noreply.github.com> Date: Fri, 8 Dec 2023 09:55:37 +1000 Subject: [PATCH 1/3] feat: remove tests cases - build not working --- .../tests/keyman-engine-tests/appinttests.cpp | 3 - .../keyman-engine-tests.vcxproj | 4 +- .../kmprocessactionstests.cpp | 145 ++---------------- 3 files changed, 15 insertions(+), 137 deletions(-) diff --git a/windows/src/engine/keyman32/tests/keyman-engine-tests/appinttests.cpp b/windows/src/engine/keyman32/tests/keyman-engine-tests/appinttests.cpp index 70119927d6..529b631aae 100644 --- a/windows/src/engine/keyman32/tests/keyman-engine-tests/appinttests.cpp +++ b/windows/src/engine/keyman32/tests/keyman-engine-tests/appinttests.cpp @@ -43,12 +43,10 @@ TEST(AppContext, Get_split_surrogate) { // Test Calling BufMax TEST(AppContext, BufMax_LastChar) { - WCHAR callbuff[MAXCONTEXT]; const uint32_t ExpectedMarker = 0x0002; AppContext testContext; WCHAR testString[] = {0x0042, 0xD800, 0xDC00, UC_SENTINEL, CODE_DEADKEY, ExpectedMarker, 0x0000}; WCHAR expectedString[] = {UC_SENTINEL, CODE_DEADKEY, 0x0002, 0x0000}; - testContext.Set(testString); WCHAR *contextBuf = testContext.BufMax(3); EXPECT_STREQ((expectedString), contextBuf); @@ -60,7 +58,6 @@ TEST(AppContext, BufMax_LastChar) { // Test AppContext::Delete() TEST(AppContext, AppContext_Delete) { - WCHAR callbuff[MAXCONTEXT]; const uint32_t ExpectedMarker = 0x0002; AppContext testContext; WCHAR testString[] = {0x0042, 0xD800, 0xDC00, UC_SENTINEL, CODE_DEADKEY, ExpectedMarker, 0x0000}; diff --git a/windows/src/engine/keyman32/tests/keyman-engine-tests/keyman-engine-tests.vcxproj b/windows/src/engine/keyman32/tests/keyman-engine-tests/keyman-engine-tests.vcxproj index 5b9116ea2d..63e6106ad0 100644 --- a/windows/src/engine/keyman32/tests/keyman-engine-tests/keyman-engine-tests.vcxproj +++ b/windows/src/engine/keyman32/tests/keyman-engine-tests/keyman-engine-tests.vcxproj @@ -37,11 +37,11 @@ $(ProjectDir)..\..\..\..\..\..\common\include;$(ProjectDir)..\..\..\..\..\..\core\include;$(ProjectDir)..\..\..\..\..\..\core\build\x86\$(Configuration)\include;$(ProjectDir)..\..\..\..\global\inc;$(ProjectDir)..\..;$(IncludePath) $(ProjectDir)bin\$(Platform)\$(Configuration)\ $(ProjectDir)obj\$(Platform)\$(Configuration)\ - $(ProjectDir)..\..\..\..\..\..\core\build\x86\$(Configuration)\src;$(ProjectDir)..\..\..\..\..\..\core\build\rust\x86\$(Configuration);$(ProjectDir)..\..\..\kmtip\bin\Win32\$(Configuration);$(LibraryPath) + $(ProjectDir)..\..\..\..\..\..\core\build\x86\$(Configuration)\src;$(ProjectDir)..\..\..\..\kmtip\bin\Win32\$(Configuration);$(LibraryPath) true - $(ProjectDir)..\..\..\..\global\inc;$(ProjectDir)..\..;$(IncludePath) + $(ProjectDir)..\..\..\..\..\..\common\include;$(ProjectDir)..\..\..\..\..\..\core\include;$(ProjectDir)..\..\..\..\..\..\core\build\x86\$(Configuration)\include;$(ProjectDir)..\..\..\..\global\inc;$(ProjectDir)..\..;$(IncludePath) $(ProjectDir)bin\$(Platform)\$(Configuration)\ $(ProjectDir)obj\$(Platform)\$(Configuration)\ diff --git a/windows/src/engine/keyman32/tests/keyman-engine-tests/kmprocessactionstests.cpp b/windows/src/engine/keyman32/tests/keyman-engine-tests/kmprocessactionstests.cpp index 362bc0497f..08364f80ef 100644 --- a/windows/src/engine/keyman32/tests/keyman-engine-tests/kmprocessactionstests.cpp +++ b/windows/src/engine/keyman32/tests/keyman-engine-tests/kmprocessactionstests.cpp @@ -25,37 +25,24 @@ public: // KM_CORE_IT_CHAR - processUnicodeChar TEST_F(KMPROCESSACTIONS, processUnicodeChartest) { - + // just check something has been added to the que WCHAR callbuf[MAXCONTEXT]; AITIP testApp; - WCHAR *expectedContext = L"A"; + int expectedQueueSize = 1; km_core_action_item itemAddChar = { KM_CORE_IT_CHAR, {0,}, {'A'}}; processUnicodeChar(&testApp, &itemAddChar); - WCHAR *contextBuf = testApp.ContextBufMax(MAXCONTEXT); - EXPECT_STREQ(contextBuf, expectedContext); + int queueSize = testApp.GetQueueSize(); + EXPECT_EQ(queueSize, expectedQueueSize); - km_core_usv testSurrogateChar = Uni_SurrogateToUTF32(0xD801, 0xDC37); //𐐷'; - km_core_action_item itemAddChar2 = {KM_CORE_IT_CHAR, {0,}, {testSurrogateChar}}; - WCHAR expectedStringSurrogate[] = {'A', 0xD801, 0xDC37, 0}; - processUnicodeChar(&testApp, &itemAddChar2); - contextBuf = testApp.ContextBufMax(MAXCONTEXT); - EXPECT_STREQ(contextBuf, &expectedStringSurrogate[0]); + //km_core_usv testSurrogateChar = Uni_SurrogateToUTF32(0xD801, 0xDC37); //𐐷'; + //km_core_action_item itemAddChar2 = {KM_CORE_IT_CHAR, {0,}, {testSurrogateChar}}; + //WCHAR expectedStringSurrogate[] = {'A', 0xD801, 0xDC37, 0}; + //processUnicodeChar(&testApp, &itemAddChar2); + //contextBuf = testApp.ContextBufMax(MAXCONTEXT); + //EXPECT_STREQ(contextBuf, &expectedStringSurrogate[0]); } -// KM_CORE_IT_MARKER - processMarker Deadkey -TEST_F(KMPROCESSACTIONS, processMarkertest) { - - WCHAR callbuf[MAXCONTEXT]; - AITIP testApp; - WCHAR expectedContext[] = {UC_SENTINEL, CODE_DEADKEY, 2, 0}; - uint32_t marker = 2; - km_core_action_item itemAddMarker = {KM_CORE_IT_MARKER, {0,}, {marker}}; - - processMarker(&testApp, &itemAddMarker); - WCHAR *contextBuf = testApp.ContextBufMax(MAXCONTEXT); - EXPECT_STREQ(contextBuf, expectedContext); -} // KM_CORE_IT_BACK - processBack // First test processing a backspace for a deadkey @@ -63,7 +50,7 @@ TEST_F(KMPROCESSACTIONS, processBackDeadkeytest) { WCHAR callbuf[MAXCONTEXT]; AITIP testApp; - WCHAR expectedContext[] = {'A', 0}; + int expectedQueueSize = 1; km_core_action_item itemAddChar = {KM_CORE_IT_CHAR, {0,}, {'A'}}; processUnicodeChar(&testApp, &itemAddChar); @@ -74,113 +61,7 @@ TEST_F(KMPROCESSACTIONS, processBackDeadkeytest) { itemBackSpace.backspace.expected_type = KM_CORE_IT_MARKER; itemBackSpace.backspace.expected_value = marker; processBack(&testApp, &itemBackSpace); - WCHAR *contextBuf = testApp.ContextBufMax(MAXCONTEXT); - EXPECT_STREQ(contextBuf, expectedContext); + int queueSize = testApp.GetQueueSize(); + EXPECT_EQ(expectedQueueSize, queueSize); } -// KM_CORE_IT_BACK - processBack -// Press Backspace for a normal character -// Also test for Unknown Character -TEST_F(KMPROCESSACTIONS, processBackCharactertest) { - - WCHAR callbuf[MAXCONTEXT]; - AITIP testApp; - WCHAR expectedContext[] = {'A', 0}; - WCHAR expectedContextFinal[] = {0}; - km_core_action_item itemAddChar = {KM_CORE_IT_CHAR, {0,}, {'A'}}; - - processUnicodeChar(&testApp, &itemAddChar); - itemAddChar.character = 'B'; - processUnicodeChar(&testApp, &itemAddChar); - km_core_action_item itemBackSpace = {KM_CORE_IT_BACK}; - itemBackSpace.backspace.expected_type = KM_CORE_IT_CHAR; - itemBackSpace.backspace.expected_value = 'B'; - // backspace - processBack(&testApp, &itemBackSpace); - WCHAR *contextBuf = testApp.ContextBufMax(MAXCONTEXT); - EXPECT_STREQ(contextBuf, expectedContext); - // backspace for unknown it should backspace a character - itemBackSpace.type = KM_CORE_BT_UNKNOWN; - processBack(&testApp, &itemBackSpace); - contextBuf = testApp.ContextBufMax(MAXCONTEXT); - EXPECT_STREQ(contextBuf, expectedContextFinal); -} - - -// KM_CORE_IT_BACK - processBack -// Press Backspace for a surrogate character. -// TODO: This test doesn't test for the PostKey handling -// of TSF and two backspaces being sent to the App. -TEST_F(KMPROCESSACTIONS, processBackSurrogateTSFtest) { - WCHAR callbuf[MAXCONTEXT]; - AITIP testApp; - WCHAR expectedContext[] = { 0 }; - WCHAR expectedStringSurrogate[] = {0xD801, 0xDC37, 0}; - - km_core_usv testSurrogateChar = Uni_SurrogateToUTF32(0xD801, 0xDC37); //𐐷'; - km_core_action_item itemAddChar = {KM_CORE_IT_CHAR, {0,}, {testSurrogateChar}}; - processUnicodeChar(&testApp, &itemAddChar); - - km_core_action_item itemBackSpace = {KM_CORE_IT_BACK}; - itemBackSpace.backspace.expected_type = KM_CORE_IT_CHAR; - itemBackSpace.backspace.expected_value = testSurrogateChar; - WCHAR *contextBuf = testApp.ContextBufMax(MAXCONTEXT); - EXPECT_STREQ(contextBuf, expectedStringSurrogate); - // backspace - processBack(&testApp, &itemBackSpace); - contextBuf = testApp.ContextBufMax(MAXCONTEXT); - EXPECT_STREQ(contextBuf, expectedContext); -} - -// KM_CORE_IT_BACK - processBack -// Press Backspace for a character doesn't match expected character -// Note currently we don't check for a character match this should be updated - -TEST_F(KMPROCESSACTIONS, processBackUnexpectedChartest) { - - WCHAR callbuf[MAXCONTEXT]; - AITIP testApp; - WCHAR expectedContext[] = {'A', 0}; - km_core_action_item itemAddChar = {KM_CORE_IT_CHAR, {0,}, {'A'}}; - - processUnicodeChar(&testApp, &itemAddChar); - itemAddChar.character = 'C'; - processUnicodeChar(&testApp, &itemAddChar); - km_core_action_item itemBackSpace = {KM_CORE_IT_BACK}; - itemBackSpace.backspace.expected_type = KM_CORE_IT_CHAR; - itemBackSpace.backspace.expected_value = 'B'; - // backspace - processBack(&testApp, &itemBackSpace); - WCHAR *contextBuf = testApp.ContextBufMax(MAXCONTEXT); - EXPECT_STREQ(contextBuf, expectedContext); -} - -// KM_CORE_IT_INVALIDATE_CONTEXT - processInvalidateContext -TEST_F(KMPROCESSACTIONS, processInvalidateContextTest) { - - WCHAR callbuf[MAXCONTEXT]; - AITIP testApp; - WCHAR expectedContext[] = {0}; - km_core_action_item itemAddChar = {KM_CORE_IT_CHAR, {0,}, {'A'}}; - - processUnicodeChar(&testApp, &itemAddChar); - itemAddChar.character = 'B'; - processUnicodeChar(&testApp, &itemAddChar); - - // A keyboard a state is need to test processInvalidateContext - km_core_option_item test_env_opts[] = {{u"hello", u"world", KM_CORE_OPT_KEYBOARD}, KM_CORE_OPTIONS_END}; - km_core_keyboard *testKB = nullptr; - km_core_state *testState = nullptr; - km_core_path_name dummyPath = L"dummyActions.mock"; - EXPECT_EQ(km_core_keyboard_load(dummyPath, &testKB), KM_CORE_STATUS_OK); - EXPECT_EQ(km_core_state_create(testKB, test_env_opts, &testState), KM_CORE_STATUS_OK); - - processInvalidateContext(&testApp,testState); - WCHAR *contextBuf = testApp.ContextBufMax(MAXCONTEXT); - EXPECT_STREQ(contextBuf, expectedContext); - - // dispose keyboard - km_core_state_dispose(testState); - km_core_keyboard_dispose(testKB); - -} From eed14b3c5b6433b196388d44a47306379bcc54e3 Mon Sep 17 00:00:00 2001 From: rc-swag <58423624+rc-swag@users.noreply.github.com> Date: Tue, 6 Feb 2024 17:28:36 +1000 Subject: [PATCH 2/3] feat: keyman-engine-tests include icu and appcontext The keyman-engine and keyman-engine-tests have the icu dependncy added. Also the appcontext.h and appcontext.cpp refactor has been update in the project. --- windows/src/engine/keyman32/keyman-engine.vcxproj | 8 +++++--- .../engine/keyman32/keyman-engine.vcxproj.filters | 6 ++++++ .../keyman-engine-tests/keyman-engine-tests.vcxproj | 12 ++++++------ 3 files changed, 17 insertions(+), 9 deletions(-) diff --git a/windows/src/engine/keyman32/keyman-engine.vcxproj b/windows/src/engine/keyman32/keyman-engine.vcxproj index 391b86cbbc..f958f9a797 100644 --- a/windows/src/engine/keyman32/keyman-engine.vcxproj +++ b/windows/src/engine/keyman32/keyman-engine.vcxproj @@ -54,7 +54,7 @@ - $(ProjectDir)..\..\..\..\core\build\x86\$(Configuration)\src;$(ProjectDir)..\..\..\..\core\build\rust\x86\$(Configuration);$(LibraryPath) + $(ProjectDir)..\..\..\..\core\build\x86\$(Configuration)\src;$(ProjectDir)..\..\..\..\core\build\x86\$(Configuration)\subprojects\icu\source\common;$(ProjectDir)..\..\..\..\core\build\x86\$(Configuration)\subprojects\icu\source\i18n;$(ProjectDir)..\..\..\..\core\build\rust\x86\$(Configuration);$(LibraryPath) $(ProjectDir)..\..\..\..\common\include;$(ProjectDir)..\..\..\..\core\build\x86\$(Configuration)\include;$(ProjectDir)..\..\..\..\core\include;$(IncludePath) @@ -98,7 +98,7 @@ /verbose:lib /section:.SHARDATA,rws %(AdditionalOptions) - keymancore.lib;psapi.lib;rpcrt4.lib;version.lib;setupapi.lib;iphlpapi.lib;imm32.lib;crypt32.lib;wintrust.lib;imagehlp.lib;ws2_32.lib;%(AdditionalDependencies) + keymancore.lib;libicuuc.a;libicuin.a;psapi.lib;rpcrt4.lib;version.lib;setupapi.lib;iphlpapi.lib;imm32.lib;crypt32.lib;wintrust.lib;imagehlp.lib;ws2_32.lib;%(AdditionalDependencies) ./Keyman32.dll true keyman32.def @@ -186,6 +186,7 @@ + %(AdditionalIncludeDirectories) %(PreprocessorDefinitions) @@ -364,6 +365,7 @@ + @@ -397,4 +399,4 @@ - + \ No newline at end of file diff --git a/windows/src/engine/keyman32/keyman-engine.vcxproj.filters b/windows/src/engine/keyman32/keyman-engine.vcxproj.filters index c0eab08097..f11552a824 100644 --- a/windows/src/engine/keyman32/keyman-engine.vcxproj.filters +++ b/windows/src/engine/keyman32/keyman-engine.vcxproj.filters @@ -135,6 +135,9 @@ Source Files + + Source Files + @@ -243,6 +246,9 @@ Header Files + + Header Files + diff --git a/windows/src/engine/keyman32/tests/keyman-engine-tests/keyman-engine-tests.vcxproj b/windows/src/engine/keyman32/tests/keyman-engine-tests/keyman-engine-tests.vcxproj index 63e6106ad0..48afed6fdd 100644 --- a/windows/src/engine/keyman32/tests/keyman-engine-tests/keyman-engine-tests.vcxproj +++ b/windows/src/engine/keyman32/tests/keyman-engine-tests/keyman-engine-tests.vcxproj @@ -34,24 +34,24 @@ - $(ProjectDir)..\..\..\..\..\..\common\include;$(ProjectDir)..\..\..\..\..\..\core\include;$(ProjectDir)..\..\..\..\..\..\core\build\x86\$(Configuration)\include;$(ProjectDir)..\..\..\..\global\inc;$(ProjectDir)..\..;$(IncludePath) + $(ProjectDir)..\..\..\..\..\..\common\include;$(ProjectDir)..\..\..\..\..\..\core\include;$(ProjectDir)..\..\..\..\..\..\core\build\x86\$(Configuration)\include;$(ProjectDir)..\..\..\..\..\..\core\build\x86\$(Configuration)\subprojects\icu\source\common;$(ProjectDir)..\..\..\..\..\..\core\build\x86\$(Configuration)\subprojects\icu\source\i18n;$(ProjectDir)..\..\..\..\global\inc;$(ProjectDir)..\..;$(IncludePath) $(ProjectDir)bin\$(Platform)\$(Configuration)\ $(ProjectDir)obj\$(Platform)\$(Configuration)\ - $(ProjectDir)..\..\..\..\..\..\core\build\x86\$(Configuration)\src;$(ProjectDir)..\..\..\..\kmtip\bin\Win32\$(Configuration);$(LibraryPath) + $(ProjectDir)..\..\..\..\..\..\core\build\x86\$(Configuration)\src;$(ProjectDir)..\..\..\..\kmtip\bin\Win32\$(Configuration);$(ProjectDir)..\..\..\..\..\..\core\build\x86\$(Configuration)\subprojects\icu\source\common;$(ProjectDir)..\..\..\..\..\..\core\build\x86\$(Configuration)\subprojects\icu\source\i18n;$(LibraryPath) true - $(ProjectDir)..\..\..\..\..\..\common\include;$(ProjectDir)..\..\..\..\..\..\core\include;$(ProjectDir)..\..\..\..\..\..\core\build\x86\$(Configuration)\include;$(ProjectDir)..\..\..\..\global\inc;$(ProjectDir)..\..;$(IncludePath) + $(ProjectDir)..\..\..\..\..\..\common\include;$(ProjectDir)..\..\..\..\..\..\core\include;$(ProjectDir)..\..\..\..\..\..\core\build\x86\$(Configuration)\include;$(ProjectDir)..\..\..\..\core\build\x86\$(Configuration)\subprojects\icu\source\common;$(ProjectDir)..\..\..\..\core\build\x86\$(Configuration)\subprojects\icu\source\i18n;$(ProjectDir)..\..\..\..\global\inc;$(ProjectDir)..\..;$(IncludePath) $(ProjectDir)bin\$(Platform)\$(Configuration)\ $(ProjectDir)obj\$(Platform)\$(Configuration)\ - $(ProjectDir)..\..\..\..\..\..\common\include;$(ProjectDir)..\..\..\..\..\..\core\build\x86\$(Configuration)\include;$(ProjectDir)..\..\..\..\..\..\core\include;$(ProjectDir)..\..\..\..\global\inc;$(ProjectDir)..\..;$(IncludePath) + $(ProjectDir)..\..\..\..\..\..\common\include;$(ProjectDir)..\..\..\..\..\..\core\build\x64\$(Configuration)\include;$(ProjectDir)..\..\..\..\..\..\core\include;$(ProjectDir)..\..\..\..\..\..\core\build\x64\$(Configuration)\subprojects\icu\source\common;$(ProjectDir)..\..\..\..\..\..\core\build\x64\$(Configuration)\subprojects\icu\source\i18n;$(ProjectDir)..\..\..\..\global\inc;$(ProjectDir)..\..;$(IncludePath) $(ProjectDir)bin\$(Platform)\$(Configuration)\ $(ProjectDir)obj\$(Platform)\$(Configuration)\ - $(ProjectDir)..\..\..\..\global\inc;$(ProjectDir)..\..;$(IncludePath) + $(ProjectDir)..\..\..\..\..\..\common\include;$(ProjectDir)..\..\..\..\..\..\core\build\x64\$(Configuration)\include;$(ProjectDir)..\..\..\..\..\..\core\include;$(ProjectDir)..\..\..\..\..\..\core\build\x64\$(Configuration)\subprojects\icu\source\common;$(ProjectDir)..\..\..\..\..\..\core\build\x64\$(Configuration)\subprojects\icu\source\i18n;$(ProjectDir)..\..\..\..\global\inc;$(ProjectDir)..\..;$(IncludePath) $(ProjectDir)bin\$(Platform)\$(Configuration)\ $(ProjectDir)obj\$(Platform)\$(Configuration)\ @@ -98,7 +98,7 @@ true Console - version.lib;psapi.lib;imm32.lib;libkeymancore.a;%(AdditionalDependencies) + version.lib;psapi.lib;imm32.lib;libkeymancore.a;libicuuc.a;libicuin.a;%(AdditionalDependencies) false From a79830387115ce107352e32db4aaddccb337adc4 Mon Sep 17 00:00:00 2001 From: rc-swag <58423624+rc-swag@users.noreply.github.com> Date: Wed, 7 Feb 2024 15:31:56 +1000 Subject: [PATCH 3/3] feat: remove uneeded tests after core refactor --- .../kmprocessactionstests.cpp | 39 +++---------------- 1 file changed, 6 insertions(+), 33 deletions(-) diff --git a/windows/src/engine/keyman32/tests/keyman-engine-tests/kmprocessactionstests.cpp b/windows/src/engine/keyman32/tests/keyman-engine-tests/kmprocessactionstests.cpp index 08364f80ef..5e99afe291 100644 --- a/windows/src/engine/keyman32/tests/keyman-engine-tests/kmprocessactionstests.cpp +++ b/windows/src/engine/keyman32/tests/keyman-engine-tests/kmprocessactionstests.cpp @@ -24,44 +24,17 @@ public: }; // KM_CORE_IT_CHAR - processUnicodeChar +// Now that the AITIP no longer contains a context +// this test is just reduced to checking the size of the +// action queue TEST_F(KMPROCESSACTIONS, processUnicodeChartest) { // just check something has been added to the que WCHAR callbuf[MAXCONTEXT]; AITIP testApp; - int expectedQueueSize = 1; - km_core_action_item itemAddChar = { KM_CORE_IT_CHAR, {0,}, {'A'}}; - - processUnicodeChar(&testApp, &itemAddChar); + int expectedQueueSize = 3; // 1 + surrogate pair + km_core_usv output_string[] = {0x0041, 0x010000, 0}; + processUnicodeChar(&testApp, &output_string[0]); int queueSize = testApp.GetQueueSize(); EXPECT_EQ(queueSize, expectedQueueSize); - - //km_core_usv testSurrogateChar = Uni_SurrogateToUTF32(0xD801, 0xDC37); //𐐷'; - //km_core_action_item itemAddChar2 = {KM_CORE_IT_CHAR, {0,}, {testSurrogateChar}}; - //WCHAR expectedStringSurrogate[] = {'A', 0xD801, 0xDC37, 0}; - //processUnicodeChar(&testApp, &itemAddChar2); - //contextBuf = testApp.ContextBufMax(MAXCONTEXT); - //EXPECT_STREQ(contextBuf, &expectedStringSurrogate[0]); -} - - -// KM_CORE_IT_BACK - processBack -// First test processing a backspace for a deadkey -TEST_F(KMPROCESSACTIONS, processBackDeadkeytest) { - - WCHAR callbuf[MAXCONTEXT]; - AITIP testApp; - int expectedQueueSize = 1; - km_core_action_item itemAddChar = {KM_CORE_IT_CHAR, {0,}, {'A'}}; - - processUnicodeChar(&testApp, &itemAddChar); - uint32_t marker = 2; - km_core_action_item itemAddMarker = {KM_CORE_IT_MARKER, {0,}, {marker}}; - processMarker(&testApp, &itemAddMarker); - km_core_action_item itemBackSpace = {KM_CORE_IT_BACK}; - itemBackSpace.backspace.expected_type = KM_CORE_IT_MARKER; - itemBackSpace.backspace.expected_value = marker; - processBack(&testApp, &itemBackSpace); - int queueSize = testApp.GetQueueSize(); - EXPECT_EQ(expectedQueueSize, queueSize); }