| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- /*
- * 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));
- returnValue = EscapedString::printTo(input, sb);
- }
- void outputMustBe(const char* expected)
- {
- Assert::AreEqual(expected, buffer);
- Assert::AreEqual(strlen(expected), returnValue);
- }
- };
- }
|