Home | History | Annotate | Download | only in common
      1 // Copyright 2014 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 #include "extensions/common/test_util.h"
      6 
      7 #include "base/json/json_reader.h"
      8 #include "base/values.h"
      9 #include "extensions/common/extension.h"
     10 #include "extensions/common/extension_builder.h"
     11 #include "extensions/common/value_builder.h"
     12 #include "testing/gtest/include/gtest/gtest.h"
     13 
     14 namespace extensions {
     15 namespace test_util {
     16 
     17 ExtensionBuilder& BuildExtension(ExtensionBuilder& builder) {
     18   return builder
     19          .SetManifest(DictionaryBuilder()
     20                       .Set("name", "Test extension")
     21                       .Set("version", "1.0")
     22                       .Set("manifest_version", 2));
     23 }
     24 
     25 scoped_refptr<Extension> CreateExtensionWithID(const std::string& id) {
     26   return ExtensionBuilder()
     27       .SetManifest(
     28            DictionaryBuilder().Set("name", "test").Set("version", "0.1"))
     29       .SetID(id)
     30       .Build();
     31 }
     32 
     33 scoped_ptr<base::DictionaryValue> ParseJsonDictionaryWithSingleQuotes(
     34     std::string json) {
     35   std::replace(json.begin(), json.end(), '\'', '"');
     36   std::string error_msg;
     37   scoped_ptr<base::Value> result(base::JSONReader::ReadAndReturnError(
     38       json, base::JSON_ALLOW_TRAILING_COMMAS, NULL, &error_msg));
     39   scoped_ptr<base::DictionaryValue> result_dict;
     40   if (result && result->IsType(base::Value::TYPE_DICTIONARY)) {
     41     result_dict.reset(static_cast<base::DictionaryValue*>(result.release()));
     42   } else {
     43     ADD_FAILURE() << "Failed to parse \"" << json << "\": " << error_msg;
     44     result_dict.reset(new base::DictionaryValue());
     45   }
     46   return result_dict.Pass();
     47 }
     48 
     49 }  // namespace test_util
     50 }  // namespace extensions
     51