// Copyright 2015 The Weave Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef LIBWEAVE_INCLUDE_WEAVE_TEST_UNITTEST_UTILS_H_ #define LIBWEAVE_INCLUDE_WEAVE_TEST_UNITTEST_UTILS_H_ #include <memory> #include <string> #include <base/values.h> #include <gtest/gtest.h> namespace weave { namespace test { // Helper method to create base::Value from a string as a smart pointer. // For ease of definition in C++ code, double-quotes in the source definition // are replaced with apostrophes. std::unique_ptr<base::Value> CreateValue(const std::string& json); std::string ValueToString(const base::Value& value); // Helper method to create a JSON dictionary object from a string. std::unique_ptr<base::DictionaryValue> CreateDictionaryValue( const std::string& json); inline bool IsEqualValue(const base::Value& val1, const base::Value& val2) { return val1.Equals(&val2); } } // namespace test } // namespace weave #define EXPECT_JSON_EQ(expected, actual) \ EXPECT_PRED2(weave::test::IsEqualValue, *weave::test::CreateValue(expected), \ actual) #endif // LIBWEAVE_INCLUDE_WEAVE_TEST_UNITTEST_UTILS_H_