From 81f3460806190a8f3e3b6de6989a0af7d8ae4a94 Mon Sep 17 00:00:00 2001 From: Benoit Blanchon Date: Tue, 14 Oct 2014 18:01:49 +0200 Subject: [PATCH] Parse empty array with leading spaces --- srcs/JsonBuffer.cpp | 2 ++ tests/JsonArray_Parser_Tests.cpp | 8 ++++++++ 2 files changed, 10 insertions(+) diff --git a/srcs/JsonBuffer.cpp b/srcs/JsonBuffer.cpp index 8c07cec1..5d1228f9 100644 --- a/srcs/JsonBuffer.cpp +++ b/srcs/JsonBuffer.cpp @@ -22,6 +22,8 @@ JsonArray JsonBuffer::parseArray(const char* json) { JsonNode* root; + while(*json == ' ') json++; + if (json[0] == '[') { root = createNode(); diff --git a/tests/JsonArray_Parser_Tests.cpp b/tests/JsonArray_Parser_Tests.cpp index 9f88d40e..e6baa36b 100644 --- a/tests/JsonArray_Parser_Tests.cpp +++ b/tests/JsonArray_Parser_Tests.cpp @@ -15,6 +15,14 @@ TEST_F(JsonArray_Parser_Tests, EmptyArray) EXPECT_EQ(0, array.size()); } +TEST_F(JsonArray_Parser_Tests, EmptyArrayWithLeadingSpaces) +{ + JsonArray array = json.parseArray(" []"); + + EXPECT_TRUE(array.success()); + EXPECT_EQ(0, array.size()); +} + TEST_F(JsonArray_Parser_Tests, Garbage) { JsonArray array = json.parseArray("%*$£¤");