1// Copyright (c) 2012 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#ifndef BASE_TEST_VALUES_TEST_UTIL_H_ 6#define BASE_TEST_VALUES_TEST_UTIL_H_ 7 8#include <string> 9 10#include "base/memory/scoped_ptr.h" 11#include "base/strings/string_piece.h" 12 13namespace base { 14class DictionaryValue; 15class ListValue; 16class StringValue; 17class Value; 18 19// All the functions below expect that the value for the given key in 20// the given dictionary equals the given expected value. 21 22void ExpectDictBooleanValue(bool expected_value, 23 const DictionaryValue& value, 24 const std::string& key); 25 26void ExpectDictDictionaryValue(const DictionaryValue& expected_value, 27 const DictionaryValue& value, 28 const std::string& key); 29 30void ExpectDictIntegerValue(int expected_value, 31 const DictionaryValue& value, 32 const std::string& key); 33 34void ExpectDictListValue(const ListValue& expected_value, 35 const DictionaryValue& value, 36 const std::string& key); 37 38void ExpectDictStringValue(const std::string& expected_value, 39 const DictionaryValue& value, 40 const std::string& key); 41 42// Takes ownership of |actual|. 43void ExpectStringValue(const std::string& expected_str, 44 StringValue* actual); 45 46namespace test { 47 48// Parses |json| as JSON, allowing trailing commas, and returns the 49// resulting value. If the json fails to parse, causes an EXPECT 50// failure and returns the Null Value (but never a NULL pointer). 51scoped_ptr<Value> ParseJson(base::StringPiece json); 52 53} // namespace test 54} // namespace base 55 56#endif // BASE_TEST_VALUES_TEST_UTIL_H_ 57