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 13 namespace base { 14 class DictionaryValue; 15 class ListValue; 16 class StringValue; 17 class 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 22 void ExpectDictBooleanValue(bool expected_value, 23 const DictionaryValue& value, 24 const std::string& key); 25 26 void ExpectDictDictionaryValue(const DictionaryValue& expected_value, 27 const DictionaryValue& value, 28 const std::string& key); 29 30 void ExpectDictIntegerValue(int expected_value, 31 const DictionaryValue& value, 32 const std::string& key); 33 34 void ExpectDictListValue(const ListValue& expected_value, 35 const DictionaryValue& value, 36 const std::string& key); 37 38 void ExpectDictStringValue(const std::string& expected_value, 39 const DictionaryValue& value, 40 const std::string& key); 41 42 // Takes ownership of |actual|. 43 void ExpectStringValue(const std::string& expected_str, 44 StringValue* actual); 45 46 namespace 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). 51 scoped_ptr<Value> ParseJson(base::StringPiece json); 52 53 } // namespace test 54 } // namespace base 55 56 #endif // BASE_TEST_VALUES_TEST_UTIL_H_ 57