#ifdef UNSAFE_BUFFERS_BUILD
#pragma allow_unsafe_buffers
#endif
#include "base/values.h"
#include <stddef.h>
#include <algorithm>
#include <functional>
#include <iterator>
#include <limits>
#include <memory>
#include <string>
#include <string_view>
#include <type_traits>
#include <utility>
#include <vector>
#include "base/bits.h"
#include "base/containers/adapters.h"
#include "base/containers/contains.h"
#include "base/strings/utf_string_conversions.h"
#include "base/test/gtest_util.h"
#include "build/build_config.h"
#include "testing/gmock/include/gmock/gmock.h"
#include "testing/gtest/include/gtest/gtest.h"
#if BUILDFLAG(ENABLE_BASE_TRACING)
#include <optional>
#include "third_party/perfetto/include/perfetto/test/traced_value_test_support.h"
#endif
namespace base {
#ifdef NDEBUG
TEST(ValuesTest, SizeOfValue) {
#if defined(__GLIBCXX__)
constexpr size_t kExpectedSize = 5 * sizeof(void*);
#else
constexpr size_t kExpectedSize = 4 * sizeof(void*);
#endif
static_assert(std::is_same_v<std::integral_constant<size_t, sizeof(Value)>,
std::integral_constant<size_t, kExpectedSize>>,
"base::Value has an unexpected size!");
}
#endif
TEST(ValuesTest, TestNothrow) { … }
TEST(ValuesTest, EmptyValue) { … }
TEST(ValuesTest, ConstructBool) { … }
TEST(ValuesTest, ConstructFromPtrs) { … }
TEST(ValuesTest, ConstructInt) { … }
TEST(ValuesTest, ConstructDouble) { … }
TEST(ValuesTest, ConstructStringFromConstCharPtr) { … }
TEST(ValuesTest, ConstructStringFromStringPiece) { … }
TEST(ValuesTest, ConstructStringFromStdStringRRef) { … }
TEST(ValuesTest, ConstructStringFromConstChar16Ptr) { … }
TEST(ValuesTest, ConstructStringFromStringPiece16) { … }
TEST(ValuesTest, ConstructBinary) { … }
TEST(ValuesTest, ConstructDict) { … }
TEST(ValuesTest, ConstructDictFromValueDict) { … }
TEST(ValuesTest, ConstructList) { … }
TEST(ValuesTest, UseTestingEachOnValueList) { … }
TEST(ValuesTest, ConstructListFromValueList) { … }
TEST(ValuesTest, HardenTests) { … }
TEST(ValuesTest, CopyBool) { … }
TEST(ValuesTest, CopyInt) { … }
TEST(ValuesTest, CopyDouble) { … }
TEST(ValuesTest, CopyString) { … }
TEST(ValuesTest, CopyBinary) { … }
TEST(ValuesTest, CopyDictionary) { … }
TEST(ValuesTest, CopyList) { … }
TEST(ValuesTest, MoveBool) { … }
TEST(ValuesTest, MoveInt) { … }
TEST(ValuesTest, MoveDouble) { … }
TEST(ValuesTest, MoveString) { … }
TEST(ValuesTest, MoveBinary) { … }
TEST(ValuesTest, MoveConstructDictionary) { … }
TEST(ValuesTest, MoveAssignDictionary) { … }
TEST(ValuesTest, ConstructDictWithIterators) { … }
TEST(ValuesTest, MoveList) { … }
TEST(ValuesTest, Append) { … }
TEST(ValuesTest, ListInsert) { … }
TEST(ValuesTest, ListResize) { … }
TEST(ValuesTest, ReverseIter) { … }
TEST(ValuesTest, DictEnsureDict) { … }
TEST(ValuesTest, DictEnsureList) { … }
TEST(ValuesTest, DictFindByDottedPath) { … }
TEST(ValuesTest, DictSetByDottedPath) { … }
TEST(ValuesTest, RvalueDictSetByDottedPath) { … }
TEST(ValuesTest, DictSetWithDottedKey) { … }
TEST(ValuesTest, ListFront) { … }
TEST(ValuesTest, ListFrontWhenEmpty) { … }
TEST(ValuesTest, ListBack) { … }
TEST(ValuesTest, ListBackWhenEmpty) { … }
TEST(ValuesTest, ListErase) { … }
TEST(ValuesTest, ListEraseRange) { … }
TEST(ValuesTest, ListEraseValue) { … }
TEST(ValuesTest, ListEraseIf) { … }
TEST(ValuesTest, ClearList) { … }
TEST(ValuesTest, FindKey) { … }
TEST(ValuesTest, FindKeyChangeValue) { … }
TEST(ValuesTest, FindKeyConst) { … }
TEST(ValuesTest, FindBoolKey) { … }
TEST(ValuesTest, FindIntKey) { … }
TEST(ValuesTest, FindStringKey) { … }
TEST(ValuesTest, MutableFindStringKey) { … }
TEST(ValuesTest, FindDictKey) { … }
TEST(ValuesTest, FindListKey) { … }
TEST(ValuesTest, FindBlob) { … }
TEST(ValuesTest, SetKey) { … }
TEST(ValuesTest, SetBoolKey) { … }
TEST(ValuesTest, SetIntKey) { … }
TEST(ValuesTest, SetDoubleKey) { … }
TEST(ValuesTest, SetStringKey) { … }
TEST(ValuesTest, RvalueSet) { … }
TEST(ValuesTest, FindPath) { … }
TEST(ValuesTest, SetByDottedPath) { … }
TEST(ValuesTest, SetBoolPath) { … }
TEST(ValuesTest, SetIntPath) { … }
TEST(ValuesTest, SetDoublePath) { … }
TEST(ValuesTest, SetStringPath) { … }
TEST(ValuesTest, Remove) { … }
TEST(ValuesTest, Extract) { … }
TEST(ValuesTest, RemoveByDottedPath) { … }
TEST(ValuesTest, ExtractByDottedPath) { … }
TEST(ValuesTest, Basic) { … }
TEST(ValuesTest, List) { … }
TEST(ValuesTest, RvalueAppend) { … }
TEST(ValuesTest, ListWithCapacity) { … }
TEST(ValuesTest, BinaryValue) { … }
TEST(ValuesTest, StringValue) { … }
TEST(ValuesTest, DictionaryDeletion) { … }
TEST(ValuesTest, DictionarySetReturnsPointer) { … }
TEST(ValuesTest, Clone) { … }
TEST(ValuesTest, TakeString) { … }
TEST(ValuesTest, PopulateAfterTakeString) { … }
TEST(ValuesTest, TakeDict) { … }
TEST(ValuesTest, PopulateAfterTakeDict) { … }
TEST(ValuesTest, TakeList) { … }
TEST(ValuesTest, PopulateAfterTakeList) { … }
TEST(ValuesTest, SpecializedEquals) { … }
TEST(ValuesTest, LiteralStringEquals) { … }
TEST(ValuesTest, Equals) { … }
TEST(ValuesTest, Comparisons) { … }
TEST(ValuesTest, Merge) { … }
TEST(ValuesTest, DictionaryIterator) { … }
TEST(ValuesTest, MutatingCopiedPairsInDictMutatesUnderlyingValues) { … }
TEST(ValuesTest, StdDictionaryIterator) { … }
TEST(ValuesTest, SelfSwap) { … }
TEST(ValuesTest, FromToUniquePtrValue) { … }
TEST(ValuesTest, MutableFindStringPath) { … }
TEST(ValuesTest, MutableGetString) { … }
#if BUILDFLAG(ENABLE_BASE_TRACING)
TEST(ValuesTest, TracingSupport) { … }
#endif
TEST(ValueViewTest, BasicConstruction) { … }
TEST(ValueViewTest, ValueConstruction) { … }
TEST(ValueViewTest, ToValue) { … }
}