@@ -12,27 +12,40 @@ TEST_CASE("JsonDocument::operator[]") {
1212 const JsonDocument& cdoc = doc;
1313
1414 SECTION (" object" ) {
15- deserializeJson (doc, " {\" hello\" :\" world\" }" );
15+ doc[" abc" _s] = " ABC" ;
16+ doc[" abc\0 d" _s] = " ABCD" ;
1617
1718 SECTION (" const char*" ) {
18- REQUIRE (doc[" hello " ] == " world " );
19- REQUIRE (cdoc[" hello " ] == " world " );
19+ REQUIRE (doc[" abc " ] == " ABC " );
20+ REQUIRE (cdoc[" abc " ] == " ABC " );
2021 }
2122
2223 SECTION (" std::string" ) {
23- REQUIRE (doc[" hello" _s] == " world" );
24- REQUIRE (cdoc[" hello" _s] == " world" );
24+ REQUIRE (doc[" abc" _s] == " ABC" );
25+ REQUIRE (cdoc[" abc" _s] == " ABC" );
26+ REQUIRE (doc[" abc\0 d" _s] == " ABCD" );
27+ REQUIRE (cdoc[" abc\0 d" _s] == " ABCD" );
2528 }
2629
2730 SECTION (" JsonVariant" ) {
28- doc[" key" ] = " hello" ;
29- REQUIRE (doc[doc[" key" ]] == " world" );
30- REQUIRE (cdoc[cdoc[" key" ]] == " world" );
31+ doc[" key1" ] = " abc" ;
32+ doc[" key2" ] = " abc\0 d" _s;
33+ doc[" key3" ] = " foo" ;
34+
35+ CHECK (doc[doc[" key1" ]] == " ABC" );
36+ CHECK (doc[doc[" key2" ]] == " ABCD" );
37+ CHECK (doc[doc[" key3" ]] == nullptr );
38+ CHECK (doc[doc[" key4" ]] == nullptr );
39+
40+ CHECK (cdoc[cdoc[" key1" ]] == " ABC" );
41+ CHECK (cdoc[cdoc[" key2" ]] == " ABCD" );
42+ CHECK (cdoc[cdoc[" key3" ]] == nullptr );
43+ CHECK (cdoc[cdoc[" key4" ]] == nullptr );
3144 }
3245
3346 SECTION (" supports operator|" ) {
34- REQUIRE ((doc[" hello " ] | " nope" ) == " world " _s);
35- REQUIRE ((doc[" world " ] | " nope" ) == " nope" _s);
47+ REQUIRE ((doc[" abc " ] | " nope" ) == " ABC " _s);
48+ REQUIRE ((doc[" def " ] | " nope" ) == " nope" _s);
3649 }
3750
3851#if defined(HAS_VARIABLE_LENGTH_ARRAY) && \
@@ -46,7 +59,6 @@ TEST_CASE("JsonDocument::operator[]") {
4659
4760 REQUIRE (doc[vla] == " world" );
4861 REQUIRE (cdoc[vla] == " world" );
49- REQUIRE (doc.as <std::string>() == " {\" hello\" :\" world\" }" );
5062 }
5163#endif
5264 }
0 commit comments