Index: extensions/common/test_util.cc |
diff --git a/extensions/common/test_util.cc b/extensions/common/test_util.cc |
index 4eacfa68f3e91c94e53f6654f3b8b1192efba73d..03b35b84801522cd6f945ee3b99549e9a9efb362 100644 |
--- a/extensions/common/test_util.cc |
+++ b/extensions/common/test_util.cc |
@@ -4,9 +4,12 @@ |
#include "extensions/common/test_util.h" |
+#include "base/json/json_reader.h" |
+#include "base/values.h" |
#include "extensions/common/extension.h" |
#include "extensions/common/extension_builder.h" |
#include "extensions/common/value_builder.h" |
+#include "testing/gtest/include/gtest/gtest.h" |
namespace extensions { |
namespace test_util { |
@@ -36,5 +39,21 @@ scoped_refptr<Extension> CreateExtensionWithID(const std::string& id) { |
.Build(); |
} |
+scoped_ptr<base::DictionaryValue> ParseJsonDictionaryWithSingleQuotes( |
+ std::string json) { |
+ std::replace(json.begin(), json.end(), '\'', '"'); |
+ std::string error_msg; |
+ scoped_ptr<base::Value> result(base::JSONReader::ReadAndReturnError( |
+ json, base::JSON_ALLOW_TRAILING_COMMAS, NULL, &error_msg)); |
+ scoped_ptr<base::DictionaryValue> result_dict; |
+ if (result && result->IsType(base::Value::TYPE_DICTIONARY)) { |
+ result_dict.reset(static_cast<base::DictionaryValue*>(result.release())); |
+ } else { |
+ ADD_FAILURE() << "Failed to parse \"" << json << "\": " << error_msg; |
+ result_dict.reset(new base::DictionaryValue()); |
+ } |
+ return result_dict.Pass(); |
+} |
+ |
} // namespace test_util |
} // namespace extensions |