diff options
Diffstat (limited to 'test/unittest/encodingstest.cpp')
-rw-r--r-- | test/unittest/encodingstest.cpp | 34 |
1 files changed, 32 insertions, 2 deletions
diff --git a/test/unittest/encodingstest.cpp b/test/unittest/encodingstest.cpp index 82cf7776..86866fec 100644 --- a/test/unittest/encodingstest.cpp +++ b/test/unittest/encodingstest.cpp @@ -14,8 +14,6 @@ #include "unittest.h" #include "rapidjson/filereadstream.h" -#include "rapidjson/filewritestream.h" -#include "rapidjson/encodedstream.h" #include "rapidjson/stringbuffer.h" using namespace rapidjson; @@ -332,6 +330,12 @@ TEST(EncodingsTest, UTF8) { } } } + + // Validate code point before encoding + EXPECT_FALSE(ValidatableEncoder<>::Encode<UTF8<> >(os, 0xFFFFFFFF)); + EXPECT_FALSE(ValidatableEncoder<>::EncodeUnsafe<UTF8<> >(os, 0xFFFFFFFF)); + EXPECT_THROW(ValidatableEncoder<false>::Encode<UTF8<> >(os, 0xFFFFFFFF), AssertException); + EXPECT_THROW(ValidatableEncoder<false>::EncodeUnsafe<UTF8<> >(os, 0xFFFFFFFF), AssertException); } TEST(EncodingsTest, UTF16) { @@ -392,6 +396,20 @@ TEST(EncodingsTest, UTF16) { } } } + + // Validate code point before encoding + EXPECT_FALSE(ValidatableEncoder<>::Encode<UTF16<> >(os, 0xFFFFFFFF)); + EXPECT_FALSE(ValidatableEncoder<>::EncodeUnsafe<UTF16<> >(os, 0xFFFFFFFF)); + EXPECT_FALSE(ValidatableEncoder<>::Encode<UTF16<> >(os, 0xD800)); + EXPECT_FALSE(ValidatableEncoder<>::EncodeUnsafe<UTF16<> >(os, 0xD800)); + EXPECT_FALSE(ValidatableEncoder<>::Encode<UTF16<> >(os, 0xDFFF)); + EXPECT_FALSE(ValidatableEncoder<>::EncodeUnsafe<UTF16<> >(os, 0xDFFF)); + EXPECT_THROW(ValidatableEncoder<false>::Encode<UTF16<> >(os, 0xFFFFFFFF), AssertException); + EXPECT_THROW(ValidatableEncoder<false>::EncodeUnsafe<UTF16<> >(os, 0xFFFFFFFF), AssertException); + EXPECT_THROW(ValidatableEncoder<false>::Encode<UTF16<> >(os, 0xD800), AssertException); + EXPECT_THROW(ValidatableEncoder<false>::EncodeUnsafe<UTF16<> >(os, 0xD800), AssertException); + EXPECT_THROW(ValidatableEncoder<false>::Encode<UTF16<> >(os, 0xDFFF), AssertException); + EXPECT_THROW(ValidatableEncoder<false>::EncodeUnsafe<UTF16<> >(os, 0xDFFF), AssertException); } TEST(EncodingsTest, UTF32) { @@ -423,6 +441,12 @@ TEST(EncodingsTest, UTF32) { } } } + + // Validate code point before encoding + EXPECT_FALSE(ValidatableEncoder<>::Encode<UTF32<> >(os, 0xFFFFFFFF)); + EXPECT_FALSE(ValidatableEncoder<>::EncodeUnsafe<UTF32<> >(os, 0xFFFFFFFF)); + EXPECT_THROW(ValidatableEncoder<false>::Encode<UTF32<> >(os, 0xFFFFFFFF), AssertException); + EXPECT_THROW(ValidatableEncoder<false>::EncodeUnsafe<UTF32<> >(os, 0xFFFFFFFF), AssertException); } TEST(EncodingsTest, ASCII) { @@ -448,4 +472,10 @@ TEST(EncodingsTest, ASCII) { EXPECT_EQ(0, StrCmp(encodedStr, os2.GetString())); } } + + // Validate code point before encoding + EXPECT_FALSE(ValidatableEncoder<>::Encode<ASCII<> >(os, 0x0080)); + EXPECT_FALSE(ValidatableEncoder<>::EncodeUnsafe<ASCII<> >(os, 0x0080)); + EXPECT_THROW(ValidatableEncoder<false>::Encode<ASCII<> >(os, 0x0080), AssertException); + EXPECT_THROW(ValidatableEncoder<false>::EncodeUnsafe<ASCII<> >(os, 0x0080), AssertException); } |