| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
- /*
- * Arduino JSON library
- * Benoit Blanchon 2014 - MIT License
- */
- #include "CppUnitTest.h"
- #include "EscapedString.h"
- #include "StringBuilder.h"
- using namespace Microsoft::VisualStudio::CppUnitTestFramework;
- using namespace ArduinoJson::Internals;
- namespace JsonGeneratorTests
- {
- TEST_CLASS(EscapedStringTests)
- {
- char buffer[1024];
- size_t returnValue;
-
- public:
- TEST_METHOD(Null)
- {
- whenInputIs(0);
- outputMustBe("null");
- }
- TEST_METHOD(EmptyString)
- {
- whenInputIs("");
- outputMustBe("\"\"");
- }
- TEST_METHOD(QuotationMark)
- {
- whenInputIs("\"");
- outputMustBe("\"\\\"\"");
- }
- TEST_METHOD(ReverseSolidus)
- {
- whenInputIs("\\");
- outputMustBe("\"\\\\\"");
- }
- TEST_METHOD(Solidus)
- {
- whenInputIs("/");
- outputMustBe("\"/\""); // but the JSON format allows \/
- }
- TEST_METHOD(Backspace)
- {
- whenInputIs("\b");
- outputMustBe("\"\\b\"");
- }
- TEST_METHOD(Formfeed)
- {
- whenInputIs("\f");
- outputMustBe("\"\\f\"");
- }
- TEST_METHOD(Newline)
- {
- whenInputIs("\n");
- outputMustBe("\"\\n\"");
- }
- TEST_METHOD(CarriageReturn)
- {
- whenInputIs("\r");
- outputMustBe("\"\\r\"");
- }
- TEST_METHOD(HorizontalTab)
- {
- whenInputIs("\t");
- outputMustBe("\"\\t\"");
- }
- private:
- void whenInputIs(const char* input)
- {
- StringBuilder sb(buffer, sizeof(buffer));
- EscapedString escapedString = input;
- returnValue = escapedString.printTo(sb);
- }
- void outputMustBe(const char* expected)
- {
- Assert::AreEqual(expected, buffer);
- Assert::AreEqual(strlen(expected), returnValue);
- }
- };
- }
|