From 07c874b7af1003df39bccd0d4a71577ba2c385e6 Mon Sep 17 00:00:00 2001 From: Rudy Huyn Date: Thu, 7 Mar 2019 22:55:47 -0800 Subject: [PATCH] Add unit tests to test white space characters --- src/CalcViewModel/Common/CopyPasteManager.cpp | 2 +- src/CalculatorUnitTests/CopyPasteManagerTest.cpp | 13 +++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/CalcViewModel/Common/CopyPasteManager.cpp b/src/CalcViewModel/Common/CopyPasteManager.cpp index ad35073d..a985d908 100644 --- a/src/CalcViewModel/Common/CopyPasteManager.cpp +++ b/src/CalcViewModel/Common/CopyPasteManager.cpp @@ -38,7 +38,7 @@ static const wstring c_binProgrammerChars = L"[0-1]+([_'`][0-1]+)*"; static const wstring c_uIntSuffixes = L"[uU]?[lL]{0,2}"; // Regex used to format the string coming from the clipboard -static const wstring c_formatSpaces = L"[\\s\\x85]+"; +static const wstring c_formatSpaces = L"\\s+"; static const wstring c_formatTrimAndRemoveUselessChars = L"^ | $|,|\""; // RegEx Patterns used by various modes diff --git a/src/CalculatorUnitTests/CopyPasteManagerTest.cpp b/src/CalculatorUnitTests/CopyPasteManagerTest.cpp index ce211272..6fc91a70 100644 --- a/src/CalculatorUnitTests/CopyPasteManagerTest.cpp +++ b/src/CalculatorUnitTests/CopyPasteManagerTest.cpp @@ -82,6 +82,19 @@ namespace CalculatorUnitTests VERIFY_IS_FALSE(m_CopyPasteManager.ValidatePasteExpression(StringReference(L"123"), ViewMode::None, CategoryGroupType::None, -1, -1), L"Verify pasting without a ViewMode or Category is invalid"); }; + TEST_METHOD(ValidatePasteWhiteSpacesStates) + { + VERIFY_IS_TRUE(m_CopyPasteManager.ValidatePasteExpression(StringReference(L"\t123\t+\t\t124\t"), ViewMode::Standard, CategoryGroupType::None, -1, -1), L"Verify pasting with tabs"); + VERIFY_IS_TRUE(m_CopyPasteManager.ValidatePasteExpression(StringReference(L" 123 + 124 "), ViewMode::Standard, CategoryGroupType::None, -1, -1), L"Verify pasting with spaces"); + VERIFY_IS_TRUE(m_CopyPasteManager.ValidatePasteExpression(StringReference(L"\n\n\n\n\n\n123\n\n\n+\n\n124\n\n\n\n\n\n\n\n\n\n\n\n\n\n"), ViewMode::Standard, CategoryGroupType::None, -1, -1), L"Verify pasting with new line"); + VERIFY_IS_TRUE(m_CopyPasteManager.ValidatePasteExpression(StringReference(L"\r\r\r123\r\r\r\r+124\r\r"), ViewMode::Standard, CategoryGroupType::None, -1, -1), L"Verify pasting with carriage return"); + VERIFY_IS_TRUE(m_CopyPasteManager.ValidatePasteExpression(StringReference(L"\u0020\u0020 123\u0020\u0020\u0020\u0020+\u0020\u0020 124\u0020\u0020"), ViewMode::Standard, CategoryGroupType::None, -1, -1), L"Verify pasting with no-break space"); + VERIFY_IS_TRUE(m_CopyPasteManager.ValidatePasteExpression(StringReference(L"\f\f\f123+\f\f124\f\f\f"), ViewMode::Standard, CategoryGroupType::None, -1, -1), L"Verify pasting with feeds"); + VERIFY_IS_TRUE(m_CopyPasteManager.ValidatePasteExpression(StringReference(L"\t123\t+\t\t124\t"), ViewMode::Standard, CategoryGroupType::None, -1, -1), L"Verify pasting with tabs"); + VERIFY_IS_TRUE(m_CopyPasteManager.ValidatePasteExpression(StringReference(L"\x85 123\x85+\x85\x85\x85 124"), ViewMode::Standard, CategoryGroupType::None, -1, -1), L"Verify pasting with tabs"); + VERIFY_IS_TRUE(m_CopyPasteManager.ValidatePasteExpression(StringReference(L"\t\x85\r\t \n\u0020\n123\t\n+\t \t124\r\n"), ViewMode::Standard, CategoryGroupType::None, -1, -1), L"Verify pasting with tabs"); + }; + TEST_METHOD(ValidateExtractOperands) { vector results = {};