Add an ostream operator to Value (based on JSONWriter) so that assertions
involving Value::Equals are much easier to understand. For example,
ListValue list;
DictionaryValue dict;
ASSERT_TRUE(Value::Equals(&list, &dict)) << list << "does not equal\n" << dict;
will now print
Value of: Value::Equals(&list, &dict)
Actual: false
Expected: true
[ ]
does not equal
{
}
Review URL: https://chromiumcodereview.appspot.com/10915194
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@156226 0039d316-1c4b-4281-b951-d872f2087c98
CrOS-Libchrome-Original-Commit: e4ef831a8f0bee7e9d484e837fcb1f8c6ea3e3af
diff --git a/base/values.h b/base/values.h
index 83d046c..02a3566 100644
--- a/base/values.h
+++ b/base/values.h
@@ -505,6 +505,9 @@
virtual Value* Deserialize(int* error_code, std::string* error_str) = 0;
};
+// Stream operator so Values can be used in assertion statements.
+BASE_EXPORT std::ostream& operator<<(std::ostream& out, const Value& value);
+
} // namespace base
// http://crbug.com/88666