зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1852071: Created a new helper IsUUIDOrigin to check if a given string is in UUID format.r=dom-storage-reviewers,janv
Depends on D187540 Differential Revision: https://phabricator.services.mozilla.com/D185112
This commit is contained in:
Родитель
532ee3b42f
Коммит
29995f21a6
|
@ -6,6 +6,8 @@
|
||||||
|
|
||||||
#include "OriginParser.h"
|
#include "OriginParser.h"
|
||||||
|
|
||||||
|
#include <regex>
|
||||||
|
|
||||||
#include "mozilla/OriginAttributes.h"
|
#include "mozilla/OriginAttributes.h"
|
||||||
#include "mozilla/dom/quota/Constants.h"
|
#include "mozilla/dom/quota/Constants.h"
|
||||||
#include "mozilla/dom/quota/QuotaCommon.h"
|
#include "mozilla/dom/quota/QuotaCommon.h"
|
||||||
|
@ -474,4 +476,12 @@ void OriginParser::HandleTrailingSeparator() {
|
||||||
mState = eHandledTrailingSeparator;
|
mState = eHandledTrailingSeparator;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool IsUUIDOrigin(const nsCString& aOrigin) {
|
||||||
|
static const std::regex pattern(
|
||||||
|
"^uuid://[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-4[0-9A-Fa-f]{3}-[89ABab"
|
||||||
|
"][0-9A-Fa-f]{3}-[0-9A-Fa-f]{12}$");
|
||||||
|
|
||||||
|
return regex_match(aOrigin.get(), pattern);
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace mozilla::dom::quota
|
} // namespace mozilla::dom::quota
|
||||||
|
|
|
@ -104,6 +104,8 @@ class MOZ_STACK_CLASS OriginParser final {
|
||||||
void HandleTrailingSeparator();
|
void HandleTrailingSeparator();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
bool IsUUIDOrigin(const nsCString& aOrigin);
|
||||||
|
|
||||||
} // namespace dom::quota
|
} // namespace dom::quota
|
||||||
} // namespace mozilla
|
} // namespace mozilla
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,25 @@
|
||||||
|
/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||||
|
/* vim: set ts=8 sts=2 et sw=2 tw=80: */
|
||||||
|
/* 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 "OriginParser.h"
|
||||||
|
|
||||||
|
#include "gtest/gtest.h"
|
||||||
|
|
||||||
|
using namespace mozilla::dom::quota;
|
||||||
|
|
||||||
|
TEST(OriginParser_IsUUIDOrigin, Valid)
|
||||||
|
{ EXPECT_TRUE(IsUUIDOrigin("uuid://1ef9867c-e754-4303-a18b-684f0321f6e2"_ns)); }
|
||||||
|
|
||||||
|
TEST(OriginParser_IsUUIDOrigin, Invalid)
|
||||||
|
{
|
||||||
|
EXPECT_FALSE(IsUUIDOrigin("Invalid UUID Origin"_ns));
|
||||||
|
|
||||||
|
EXPECT_FALSE(IsUUIDOrigin("1ef9867c-e754-4303-a18b-684f0321f6e2"_ns));
|
||||||
|
|
||||||
|
EXPECT_FALSE(IsUUIDOrigin("uuid://1ef9867c-e754-4303-a18b"_ns));
|
||||||
|
|
||||||
|
EXPECT_FALSE(IsUUIDOrigin("uuid+++1ef9867c-e754-4303-a18b-684f0321f6e2"_ns));
|
||||||
|
}
|
|
@ -22,6 +22,7 @@ UNIFIED_SOURCES = [
|
||||||
"TestFileOutputStream.cpp",
|
"TestFileOutputStream.cpp",
|
||||||
"TestFlatten.cpp",
|
"TestFlatten.cpp",
|
||||||
"TestForwardDecls.cpp",
|
"TestForwardDecls.cpp",
|
||||||
|
"TestOriginParser.cpp",
|
||||||
"TestPersistenceType.cpp",
|
"TestPersistenceType.cpp",
|
||||||
"TestQMResult.cpp",
|
"TestQMResult.cpp",
|
||||||
"TestQuotaCommon.cpp",
|
"TestQuotaCommon.cpp",
|
||||||
|
|
Загрузка…
Ссылка в новой задаче