Bug 1893340: Test nsINIParser for string and section deletion r=mccr8

Differential Revision: https://phabricator.services.mozilla.com/D208981
This commit is contained in:
Dave Townsend 2024-05-02 10:46:41 +00:00
parent a66d4b8629
commit 292449038b
3 changed files with 61 additions and 1 deletions

View file

@ -243,7 +243,6 @@ nsresult nsINIParser::DeleteString(const char* aSection, const char* aKey) {
mSections.Remove(aSection); mSections.Remove(aSection);
} else { } else {
mSections.InsertOrUpdate(aSection, std::move(val->next)); mSections.InsertOrUpdate(aSection, std::move(val->next));
delete val;
} }
return NS_OK; return NS_OK;
} }

View file

@ -0,0 +1,60 @@
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
#include "nsCOMPtr.h"
#include "gtest/gtest.h"
#include "mozilla/gtest/MozAssertions.h"
#include "nsINIParser.h"
TEST(INIParser, DeleteString)
{
nsINIParser* parser = new nsINIParser();
nsresult rv = parser->InitFromString(
"[sec]\r\
key1=val1\r\
key2=val2\r\
key3=val3\r\
key4=val4"_ns);
EXPECT_NS_SUCCEEDED(rv);
rv = parser->DeleteString("sec", "key3");
EXPECT_NS_SUCCEEDED(rv);
rv = parser->DeleteString("sec", "key4");
EXPECT_NS_SUCCEEDED(rv);
rv = parser->DeleteString("sec", "key1");
EXPECT_NS_SUCCEEDED(rv);
rv = parser->DeleteString("sec", "key2");
EXPECT_NS_SUCCEEDED(rv);
delete parser;
}
TEST(INIParser, DeleteSection)
{
nsINIParser* parser = new nsINIParser();
nsresult rv = parser->InitFromString(
"[sec1]\r\
key=val\r\
\r\
[sec2]\r\
key=val\r\
[sec3]\r\
key=val\r\
[sec4]\r\
key=val"_ns);
EXPECT_NS_SUCCEEDED(rv);
rv = parser->DeleteSection("sec3");
EXPECT_NS_SUCCEEDED(rv);
rv = parser->DeleteSection("sec4");
EXPECT_NS_SUCCEEDED(rv);
rv = parser->DeleteSection("sec1");
EXPECT_NS_SUCCEEDED(rv);
rv = parser->DeleteSection("sec2");
EXPECT_NS_SUCCEEDED(rv);
delete parser;
}

View file

@ -26,6 +26,7 @@ UNIFIED_SOURCES += [
"TestGCPostBarriers.cpp", "TestGCPostBarriers.cpp",
"TestID.cpp", "TestID.cpp",
"TestIDUtils.cpp", "TestIDUtils.cpp",
"TestINIParser.cpp",
"TestInputStreamLengthHelper.cpp", "TestInputStreamLengthHelper.cpp",
"TestJSHolderMap.cpp", "TestJSHolderMap.cpp",
"TestLogCommandLineHandler.cpp", "TestLogCommandLineHandler.cpp",