add regression test

This commit is contained in:
Niels Lohmann 2021-08-20 14:49:58 +02:00
parent eb6541a30c
commit 97c7a35a2b
No known key found for this signature in database
GPG Key ID: 7F3CEA63AE251B69

View File

@ -34,7 +34,8 @@ SOFTWARE.
#define JSON_TESTS_PRIVATE
#include <nlohmann/json.hpp>
using nlohmann::json;
using json = nlohmann::json;
using ordered_json = nlohmann::ordered_json;
#include <list>
#include <cstdio>
@ -659,6 +660,25 @@ TEST_CASE("regression tests 2")
{
static_assert(std::is_copy_assignable<nlohmann::ordered_json>::value, "");
}
SECTION("issue #2958 - Inserting in unordered json using a pointer retains the leading slash")
{
std::string p = "/root";
// matching types
json test1;
test1[json::json_pointer(p)] = json::object();
CHECK(test1.dump() == "{\"root\":{}}");
ordered_json test2;
test2[ordered_json::json_pointer(p)] = json::object();
CHECK(test2.dump() == "{\"root\":{}}");
// mixed type - the JSON Pointer is implicitly converted into a string "/root"
ordered_json test3;
test3[json::json_pointer(p)] = json::object();
CHECK(test3.dump() == "{\"/root\":{}}");
}
}
DOCTEST_CLANG_SUPPRESS_WARNING_POP