/* * Copyright (c) Contributors to the Open 3D Engine Project. * For complete copyright and license terms please see the LICENSE at the root of this distribution. * * SPDX-License-Identifier: Apache-2.0 OR MIT * */ #if defined(LYSHINE_INTERNAL_UNIT_TEST) #include namespace { void AnchorTagTests() { const LyShine::StringType rawCharData("this is a test!"); /////////////////////////////////////////////////////////////// // Valid markup tests // Wrap just "test" in an anchor { LyShine::StringType source = "this is a test!"; LyShine::StringType expectedMarkup = ""; LyShine::StringType markupTarget; InsertMarkup(source, markupTarget); AZ_Assert(expectedMarkup == markupTarget, "Test failed"); LyShine::StringType target; TextMarkup::CopyCharData(source, target); AZ_Assert(rawCharData == target, "Test failed"); } // Wrap whole string in an anchor { LyShine::StringType source = "this is a test!"; LyShine::StringType expectedMarkup = ""; LyShine::StringType markupTarget; InsertMarkup(source, markupTarget); AZ_Assert(expectedMarkup == markupTarget, "Test failed"); LyShine::StringType target; TextMarkup::CopyCharData(source, target); AZ_Assert(rawCharData == target, "Test failed"); } // Two anchor tags: "this" and "test" { LyShine::StringType source = "this is a test!"; LyShine::StringType expectedMarkup = ""; LyShine::StringType markupTarget; InsertMarkup(source, markupTarget); AZ_Assert(expectedMarkup == markupTarget, "Test failed"); LyShine::StringType target; TextMarkup::CopyCharData(source, target); AZ_Assert(rawCharData == target, "Test failed"); } // Wrap just "test" in an anchor; only has 'action' attribute { LyShine::StringType source = "this is a test!"; LyShine::StringType expectedMarkup = ""; LyShine::StringType markupTarget; InsertMarkup(source, markupTarget); AZ_Assert(expectedMarkup == markupTarget, "Test failed"); LyShine::StringType target; TextMarkup::CopyCharData(source, target); AZ_Assert(rawCharData == target, "Test failed"); } // Wrap just "test" in an anchor; only has 'data' attribute { LyShine::StringType source = "this is a test!"; LyShine::StringType expectedMarkup = ""; LyShine::StringType markupTarget; InsertMarkup(source, markupTarget); AZ_Assert(expectedMarkup == markupTarget, "Test failed"); LyShine::StringType target; TextMarkup::CopyCharData(source, target); AZ_Assert(rawCharData == target, "Test failed"); } /////////////////////////////////////////////////////////////// // Bad xml tests #if 0 // Nested anchor tags { LyShine::StringType source = "this is a test!"; LyShine::StringType target; TextMarkup::CopyCharData(source, target); AZ_Assert(source == target, "Test failed"); } #endif // Anchor tags with no attributes { LyShine::StringType source = "this is a test!"; LyShine::StringType target; TextMarkup::CopyCharData(source, target); AZ_Assert(source == target, "Test failed"); } // Anchor tags with invalid attributes { LyShine::StringType source = "this is a test!"; LyShine::StringType target; TextMarkup::CopyCharData(source, target); AZ_Assert(source == target, "Test failed"); } // Anchor tags with valid and invalid attributes { LyShine::StringType source = "this is a test!"; LyShine::StringType target; TextMarkup::CopyCharData(source, target); AZ_Assert(source == target, "Test failed"); } { LyShine::StringType source = "this is a test!"; LyShine::StringType target; TextMarkup::CopyCharData(source, target); AZ_Assert(source == target, "Test failed"); } { LyShine::StringType source = "this is a test!"; LyShine::StringType target; TextMarkup::CopyCharData(source, target); AZ_Assert(source == target, "Test failed"); } } } void TextMarkup::UnitTest(IConsoleCmdArgs* /* cmdArgs*/) { /////////////////////////////////////////////////////////////// // Expected inputs: general { const LyShine::StringType rawCharData("this is a test!"); LyShine::StringType source = "this is a test!"; LyShine::StringType expectedMarkup = ""; LyShine::StringType markupTarget; InsertMarkup(source, markupTarget); AZ_Assert(expectedMarkup == markupTarget, "Test failed"); LyShine::StringType target; TextMarkup::CopyCharData(source, target); AZ_Assert(rawCharData == target, "Test failed"); } { const LyShine::StringType rawCharData("this is a test!"); LyShine::StringType source = "this is a test!"; LyShine::StringType expectedMarkup = ""; LyShine::StringType markupTarget; InsertMarkup(source, markupTarget); AZ_Assert(expectedMarkup == markupTarget, "Test failed"); LyShine::StringType target; TextMarkup::CopyCharData(source, target); AZ_Assert(rawCharData == target, "Test failed"); } /////////////////////////////////////////////////////////////// // Expected inputs: tag { const LyShine::StringType rawCharData("this is a test!"); LyShine::StringType source = "this is a test!"; LyShine::StringType expectedMarkup = ""; LyShine::StringType markupTarget; InsertMarkup(source, markupTarget); AZ_Assert(expectedMarkup == markupTarget, "Test failed"); LyShine::StringType target; TextMarkup::CopyCharData(source, target); AZ_Assert(rawCharData == target, "Test failed"); } { const LyShine::StringType rawCharData("this is a test!"); LyShine::StringType source = "this is a test!"; LyShine::StringType expectedMarkup = ""; LyShine::StringType markupTarget; InsertMarkup(source, markupTarget); AZ_Assert(expectedMarkup == markupTarget, "Test failed"); LyShine::StringType target; TextMarkup::CopyCharData(source, target); AZ_Assert(rawCharData == target, "Test failed"); } { const LyShine::StringType rawCharData("this is a test!"); LyShine::StringType source = "this is a test!"; LyShine::StringType expectedMarkup = ""; LyShine::StringType markupTarget; InsertMarkup(source, markupTarget); AZ_Assert(expectedMarkup == markupTarget, "Test failed"); LyShine::StringType target; TextMarkup::CopyCharData(source, target); AZ_Assert(rawCharData == target, "Test failed"); } { const LyShine::StringType rawCharData("this is a test!"); LyShine::StringType source = "this is a test!"; LyShine::StringType expectedMarkup = ""; LyShine::StringType markupTarget; InsertMarkup(source, markupTarget); AZ_Assert(expectedMarkup == markupTarget, "Test failed"); LyShine::StringType target; TextMarkup::CopyCharData(source, target); AZ_Assert(rawCharData == target, "Test failed"); } { const LyShine::StringType rawCharData("this is a test!"); LyShine::StringType source = "this is a test!"; LyShine::StringType expectedMarkup = ""; LyShine::StringType markupTarget; InsertMarkup(source, markupTarget); AZ_Assert(expectedMarkup == markupTarget, "Test failed"); LyShine::StringType target; TextMarkup::CopyCharData(source, target); AZ_Assert(rawCharData == target, "Test failed"); } { const LyShine::StringType rawCharData("this is a test!"); LyShine::StringType source = "this is a test!"; LyShine::StringType expectedMarkup = ""; LyShine::StringType markupTarget; InsertMarkup(source, markupTarget); AZ_Assert(expectedMarkup == markupTarget, "Test failed"); LyShine::StringType target; TextMarkup::CopyCharData(source, target); AZ_Assert(rawCharData == target, "Test failed"); } { const LyShine::StringType rawCharData("this is a test!"); LyShine::StringType source = "this is a test!"; LyShine::StringType expectedMarkup = ""; LyShine::StringType markupTarget; InsertMarkup(source, markupTarget); AZ_Assert(expectedMarkup == markupTarget, "Test failed"); LyShine::StringType target; TextMarkup::CopyCharData(source, target); AZ_Assert(rawCharData == target, "Test failed"); } { const LyShine::StringType rawCharData("this is a test!"); LyShine::StringType source = "this is a test!"; LyShine::StringType expectedMarkup = ""; LyShine::StringType markupTarget; InsertMarkup(source, markupTarget); AZ_Assert(expectedMarkup == markupTarget, "Test failed"); LyShine::StringType target; TextMarkup::CopyCharData(source, target); AZ_Assert(rawCharData == target, "Test failed"); } /////////////////////////////////////////////////////////////// // Font tags with no attributes: expect failure { const LyShine::StringType rawCharData("this is a test!"); LyShine::StringType source = "this is a test!"; LyShine::StringType expectedMarkup = ""; LyShine::StringType markupTarget; InsertMarkup(source, markupTarget); AZ_Assert(expectedMarkup == markupTarget, "Test failed"); LyShine::StringType target; TextMarkup::CopyCharData(source, target); AZ_Assert(source == target, "Test failed"); } { const LyShine::StringType rawCharData("this is a test!"); LyShine::StringType source = "this is a test!"; LyShine::StringType expectedMarkup = ""; LyShine::StringType markupTarget; InsertMarkup(source, markupTarget); AZ_Assert(expectedMarkup == markupTarget, "Test failed"); LyShine::StringType target; TextMarkup::CopyCharData(source, target); AZ_Assert(source == target, "Test failed"); } { const LyShine::StringType rawCharData("this is a test!"); LyShine::StringType source = "this is a test!"; LyShine::StringType expectedMarkup = ""; LyShine::StringType markupTarget; InsertMarkup(source, markupTarget); AZ_Assert(expectedMarkup == markupTarget, "Test failed"); LyShine::StringType target; TextMarkup::CopyCharData(source, target); AZ_Assert(source == target, "Test failed"); } /////////////////////////////////////////////////////////////// // Font tags with unrecognized attributes: expect failure { const LyShine::StringType rawCharData("this is a test!"); LyShine::StringType source = "this is a test!"; LyShine::StringType expectedMarkup = ""; LyShine::StringType markupTarget; InsertMarkup(source, markupTarget); AZ_Assert(expectedMarkup == markupTarget, "Test failed"); LyShine::StringType target; TextMarkup::CopyCharData(source, target); AZ_Assert(source == target, "Test failed"); } { const LyShine::StringType rawCharData("this is a test!"); LyShine::StringType source = "this is a test!"; LyShine::StringType expectedMarkup = ""; LyShine::StringType markupTarget; InsertMarkup(source, markupTarget); AZ_Assert(expectedMarkup == markupTarget, "Test failed"); LyShine::StringType target; TextMarkup::CopyCharData(source, target); AZ_Assert(source == target, "Test failed"); } { const LyShine::StringType rawCharData("this is a test!"); LyShine::StringType source = "this is a test!"; LyShine::StringType expectedMarkup = ""; LyShine::StringType markupTarget; InsertMarkup(source, markupTarget); AZ_Assert(expectedMarkup == markupTarget, "Test failed"); LyShine::StringType target; TextMarkup::CopyCharData(source, target); AZ_Assert(source == target, "Test failed"); } /////////////////////////////////////////////////////////////// // Spacing tests { const LyShine::StringType rawCharData("this is a test!"); LyShine::StringType source = "this is a test!"; LyShine::StringType expectedMarkup = ""; LyShine::StringType markupTarget; InsertMarkup(source, markupTarget); AZ_Assert(expectedMarkup == markupTarget, "Test failed"); LyShine::StringType target; TextMarkup::CopyCharData(source, target); AZ_Assert(rawCharData == target, "Test failed"); } { const LyShine::StringType rawCharData(" thisis a test!"); LyShine::StringType source = " thisis a test!"; LyShine::StringType expectedMarkup = ""; LyShine::StringType markupTarget; InsertMarkup(source, markupTarget); AZ_Assert(expectedMarkup == markupTarget, "Test failed"); LyShine::StringType target; TextMarkup::CopyCharData(source, target); AZ_Assert(rawCharData == target, "Test failed"); } { const LyShine::StringType rawCharData(" this is a test!"); LyShine::StringType source = " this is a test!"; LyShine::StringType expectedMarkup = ""; LyShine::StringType markupTarget; InsertMarkup(source, markupTarget); AZ_Assert(expectedMarkup == markupTarget, "Test failed"); LyShine::StringType target; TextMarkup::CopyCharData(source, target); AZ_Assert(rawCharData == target, "Test failed"); } { const LyShine::StringType rawCharData("this is a test!"); LyShine::StringType source = "this is a test!"; LyShine::StringType expectedMarkup = ""; LyShine::StringType markupTarget; InsertMarkup(source, markupTarget); AZ_Assert(expectedMarkup == markupTarget, "Test failed"); LyShine::StringType target; TextMarkup::CopyCharData(source, target); AZ_Assert(rawCharData == target, "Test failed"); } { const LyShine::StringType rawCharData("this is a test!"); LyShine::StringType source = "this is a test!"; LyShine::StringType expectedMarkup = ""; LyShine::StringType markupTarget; InsertMarkup(source, markupTarget); AZ_Assert(expectedMarkup == markupTarget, "Test failed"); LyShine::StringType target; TextMarkup::CopyCharData(source, target); AZ_Assert(rawCharData == target, "Test failed"); } { const LyShine::StringType rawCharData("this is a test!"); LyShine::StringType source = "this is a test!"; LyShine::StringType expectedMarkup = ""; LyShine::StringType markupTarget; InsertMarkup(source, markupTarget); AZ_Assert(expectedMarkup == markupTarget, "Test failed"); LyShine::StringType target; TextMarkup::CopyCharData(source, target); AZ_Assert(rawCharData == target, "Test failed"); } { const LyShine::StringType rawCharData("this is a test!"); LyShine::StringType source = "this is a test!"; LyShine::StringType expectedMarkup = ""; LyShine::StringType markupTarget; InsertMarkup(source, markupTarget); AZ_Assert(expectedMarkup == markupTarget, "Test failed"); LyShine::StringType target; TextMarkup::CopyCharData(source, target); AZ_Assert(rawCharData == target, "Test failed"); } { const LyShine::StringType rawCharData("this is a test!"); LyShine::StringType source = "this is a test!"; LyShine::StringType expectedMarkup = ""; LyShine::StringType markupTarget; InsertMarkup(source, markupTarget); AZ_Assert(expectedMarkup == markupTarget, "Test failed"); LyShine::StringType target; TextMarkup::CopyCharData(source, target); AZ_Assert(rawCharData == target, "Test failed"); } { const LyShine::StringType rawCharData("this is a test!"); LyShine::StringType source = "this is a test!"; LyShine::StringType expectedMarkup = ""; LyShine::StringType markupTarget; InsertMarkup(source, markupTarget); AZ_Assert(expectedMarkup == markupTarget, "Test failed"); LyShine::StringType target; TextMarkup::CopyCharData(source, target); AZ_Assert(rawCharData == target, "Test failed"); } /////////////////////////////////////////////////////////////// // Spacing tests: character escaping { const LyShine::StringType rawCharData("& 1"); LyShine::StringType source = "& 1"; LyShine::StringType expectedMarkup = ""; LyShine::StringType markupTarget; InsertMarkup(source, markupTarget); AZ_Assert(expectedMarkup == markupTarget, "Test failed"); LyShine::StringType target; TextMarkup::CopyCharData(source, target); AZ_Assert(rawCharData == target, "Test failed"); } { const LyShine::StringType rawCharData("& 1"); LyShine::StringType source = "& 1"; LyShine::StringType expectedMarkup = ""; LyShine::StringType markupTarget; InsertMarkup(source, markupTarget); AZ_Assert(expectedMarkup == markupTarget, "Test failed"); LyShine::StringType target; TextMarkup::CopyCharData(source, target); AZ_Assert(rawCharData == target, "Test failed"); } { const LyShine::StringType rawCharData("& "); LyShine::StringType source = "& "; LyShine::StringType expectedMarkup = ""; LyShine::StringType markupTarget; InsertMarkup(source, markupTarget); AZ_Assert(expectedMarkup == markupTarget, "Test failed"); LyShine::StringType target; TextMarkup::CopyCharData(source, target); AZ_Assert(rawCharData == target, "Test failed"); } { const LyShine::StringType rawCharData(" &"); LyShine::StringType source = " &"; LyShine::StringType expectedMarkup = ""; LyShine::StringType markupTarget; InsertMarkup(source, markupTarget); AZ_Assert(expectedMarkup == markupTarget, "Test failed"); LyShine::StringType target; TextMarkup::CopyCharData(source, target); AZ_Assert(rawCharData == target, "Test failed"); } { const LyShine::StringType rawCharData(" & "); LyShine::StringType source = " & "; LyShine::StringType expectedMarkup = ""; LyShine::StringType markupTarget; InsertMarkup(source, markupTarget); AZ_Assert(expectedMarkup == markupTarget, "Test failed"); LyShine::StringType target; TextMarkup::CopyCharData(source, target); AZ_Assert(rawCharData == target, "Test failed"); } { const LyShine::StringType rawCharData("&1 "); LyShine::StringType source = "&1 "; LyShine::StringType expectedMarkup = ""; LyShine::StringType markupTarget; InsertMarkup(source, markupTarget); AZ_Assert(expectedMarkup == markupTarget, "Test failed"); LyShine::StringType target; TextMarkup::CopyCharData(source, target); AZ_Assert(rawCharData == target, "Test failed"); } { const LyShine::StringType rawCharData("& 1"); LyShine::StringType source = "& 1"; LyShine::StringType expectedMarkup = ""; LyShine::StringType markupTarget; InsertMarkup(source, markupTarget); AZ_Assert(expectedMarkup == markupTarget, "Test failed"); LyShine::StringType target; TextMarkup::CopyCharData(source, target); AZ_Assert(rawCharData == target, "Test failed"); } { const LyShine::StringType rawCharData("1&"); LyShine::StringType source = "1&"; LyShine::StringType expectedMarkup = ""; LyShine::StringType markupTarget; InsertMarkup(source, markupTarget); AZ_Assert(expectedMarkup == markupTarget, "Test failed"); LyShine::StringType target; TextMarkup::CopyCharData(source, target); AZ_Assert(rawCharData == target, "Test failed"); } { const LyShine::StringType rawCharData("1& "); LyShine::StringType source = "1& "; LyShine::StringType expectedMarkup = ""; LyShine::StringType markupTarget; InsertMarkup(source, markupTarget); AZ_Assert(expectedMarkup == markupTarget, "Test failed"); LyShine::StringType target; TextMarkup::CopyCharData(source, target); AZ_Assert(rawCharData == target, "Test failed"); } { const LyShine::StringType rawCharData("1 &"); LyShine::StringType source = "1 &"; LyShine::StringType expectedMarkup = ""; LyShine::StringType markupTarget; InsertMarkup(source, markupTarget); AZ_Assert(expectedMarkup == markupTarget, "Test failed"); LyShine::StringType target; TextMarkup::CopyCharData(source, target); AZ_Assert(rawCharData == target, "Test failed"); } { const LyShine::StringType rawCharData(" 1&"); LyShine::StringType source = " 1&"; LyShine::StringType expectedMarkup = ""; LyShine::StringType markupTarget; InsertMarkup(source, markupTarget); AZ_Assert(expectedMarkup == markupTarget, "Test failed"); LyShine::StringType target; TextMarkup::CopyCharData(source, target); AZ_Assert(rawCharData == target, "Test failed"); } { const LyShine::StringType rawCharData("&1 &"); LyShine::StringType source = "&1 &"; LyShine::StringType expectedMarkup = ""; LyShine::StringType markupTarget; InsertMarkup(source, markupTarget); AZ_Assert(expectedMarkup == markupTarget, "Test failed"); LyShine::StringType target; TextMarkup::CopyCharData(source, target); AZ_Assert(rawCharData == target, "Test failed"); } { const LyShine::StringType rawCharData("& 1&"); LyShine::StringType source = "& 1&"; LyShine::StringType expectedMarkup = ""; LyShine::StringType markupTarget; InsertMarkup(source, markupTarget); AZ_Assert(expectedMarkup == markupTarget, "Test failed"); LyShine::StringType target; TextMarkup::CopyCharData(source, target); AZ_Assert(rawCharData == target, "Test failed"); } { const LyShine::StringType rawCharData("& 1& "); LyShine::StringType source = "& 1& "; LyShine::StringType expectedMarkup = ""; LyShine::StringType markupTarget; InsertMarkup(source, markupTarget); AZ_Assert(expectedMarkup == markupTarget, "Test failed"); LyShine::StringType target; TextMarkup::CopyCharData(source, target); AZ_Assert(rawCharData == target, "Test failed"); } { const LyShine::StringType rawCharData("&1 & "); LyShine::StringType source = "&1 & "; LyShine::StringType expectedMarkup = ""; LyShine::StringType markupTarget; InsertMarkup(source, markupTarget); AZ_Assert(expectedMarkup == markupTarget, "Test failed"); LyShine::StringType target; TextMarkup::CopyCharData(source, target); AZ_Assert(rawCharData == target, "Test failed"); } { const LyShine::StringType rawCharData(" &1 & "); LyShine::StringType source = " &1 & "; LyShine::StringType expectedMarkup = ""; LyShine::StringType markupTarget; InsertMarkup(source, markupTarget); AZ_Assert(expectedMarkup == markupTarget, "Test failed"); LyShine::StringType target; TextMarkup::CopyCharData(source, target); AZ_Assert(rawCharData == target, "Test failed"); } { const LyShine::StringType rawCharData("& 1 &"); LyShine::StringType source = "& 1 &"; LyShine::StringType expectedMarkup = ""; LyShine::StringType markupTarget; InsertMarkup(source, markupTarget); AZ_Assert(expectedMarkup == markupTarget, "Test failed"); LyShine::StringType target; TextMarkup::CopyCharData(source, target); AZ_Assert(rawCharData == target, "Test failed"); } { const LyShine::StringType rawCharData("& &"); LyShine::StringType source = "& &"; LyShine::StringType expectedMarkup = ""; LyShine::StringType markupTarget; InsertMarkup(source, markupTarget); AZ_Assert(expectedMarkup == markupTarget, "Test failed"); LyShine::StringType target; TextMarkup::CopyCharData(source, target); AZ_Assert(rawCharData == target, "Test failed"); } /////////////////////////////////////////////////////////////// // Pass-thru tests { LyShine::StringType source = " this is a test!"; LyShine::StringType expectedMarkup = ""; LyShine::StringType markupTarget; InsertMarkup(source, markupTarget); AZ_Assert(expectedMarkup == markupTarget, "Test failed"); LyShine::StringType target; TextMarkup::CopyCharData(source, target); AZ_Assert(source == target, "Test failed"); } { LyShine::StringType source = "this is a test! "; LyShine::StringType expectedMarkup = ""; LyShine::StringType markupTarget; InsertMarkup(source, markupTarget); AZ_Assert(expectedMarkup == markupTarget, "Test failed"); LyShine::StringType target; TextMarkup::CopyCharData(source, target); AZ_Assert(source == target, "Test failed"); } { const LyShine::StringType rawCharData("this is a test!"); LyShine::StringType source; LyShine::StringType expectedMarkup = "";; LyShine::StringType markupTarget; InsertMarkup(source, markupTarget); AZ_Assert(expectedMarkup == markupTarget, "Test failed"); LyShine::StringType target; TextMarkup::CopyCharData(rawCharData, target); AZ_Assert(rawCharData == target, "Test failed"); } /////////////////////////////////////////////////////////////// // Bad xml tests { LyShine::StringType source = "is a test!"; LyShine::StringType expectedMarkup = "is a test!"; LyShine::StringType target; TextMarkup::CopyCharData(source, target); AZ_Assert(source == target, "Test failed"); } { LyShine::StringType source = "<is a test!"; LyShine::StringType target; TextMarkup::CopyCharData(source, target); AZ_Assert(source == target, "Test failed"); } { LyShine::StringType source = "this is a test!"; LyShine::StringType target; TextMarkup::CopyCharData(source, target); AZ_Assert(source == target, "Test failed"); } { LyShine::StringType source = "< this is a test!"; LyShine::StringType target; TextMarkup::CopyCharData(source, target); AZ_Assert(source == target, "Test failed"); } { LyShine::StringType source = "<>this is a test!"; LyShine::StringType target; TextMarkup::CopyCharData(source, target); AZ_Assert(source == target, "Test failed"); } { LyShine::StringType source = "this is a test!"; LyShine::StringType target; TextMarkup::CopyCharData(source, target); AZ_Assert(source == target, "Test failed"); } AnchorTagTests(); } #endif