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