Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(77)

Side by Side Diff: extensions/browser/api_test_utils.cc

Issue 1308013005: Add scoped_ptr-safe base::Value to Dictionary/List conversion functions. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Made conversions static members. Created 5 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "extensions/browser/api_test_utils.h" 5 #include "extensions/browser/api_test_utils.h"
6 6
7 #include "base/json/json_reader.h" 7 #include "base/json/json_reader.h"
8 #include "base/memory/scoped_ptr.h" 8 #include "base/memory/scoped_ptr.h"
9 #include "base/values.h" 9 #include "base/values.h"
10 #include "components/crx_file/id_util.h" 10 #include "components/crx_file/id_util.h"
11 #include "content/public/browser/browser_context.h" 11 #include "content/public/browser/browser_context.h"
12 #include "content/public/test/test_utils.h" 12 #include "content/public/test/test_utils.h"
13 #include "extensions/browser/extension_function.h" 13 #include "extensions/browser/extension_function.h"
14 #include "extensions/browser/extension_function_dispatcher.h" 14 #include "extensions/browser/extension_function_dispatcher.h"
15 #include "extensions/common/extension_builder.h" 15 #include "extensions/common/extension_builder.h"
16 #include "testing/gtest/include/gtest/gtest.h" 16 #include "testing/gtest/include/gtest/gtest.h"
17 17
18 using extensions::ExtensionFunctionDispatcher; 18 using extensions::ExtensionFunctionDispatcher;
19 19
20 namespace { 20 namespace {
21 21
22 scoped_ptr<base::Value> ParseJSON(const std::string& data) { 22 scoped_ptr<base::Value> ParseJSON(const std::string& data) {
23 return base::JSONReader::Read(data); 23 return base::JSONReader::Read(data);
24 } 24 }
25 25
26 scoped_ptr<base::ListValue> ParseList(const std::string& data) { 26 scoped_ptr<base::ListValue> ParseList(const std::string& data) {
27 scoped_ptr<base::Value> result = ParseJSON(data); 27 return base::ListValue::From(ParseJSON(data));
28 scoped_ptr<base::ListValue> list_result;
29 if (result->GetAsList(nullptr))
30 list_result.reset(static_cast<base::ListValue*>(result.release()));
31 return list_result;
32 } 28 }
33 29
34 // This helps us be able to wait until an UIThreadExtensionFunction calls 30 // This helps us be able to wait until an UIThreadExtensionFunction calls
35 // SendResponse. 31 // SendResponse.
36 class SendResponseDelegate 32 class SendResponseDelegate
37 : public UIThreadExtensionFunction::DelegateForTests { 33 : public UIThreadExtensionFunction::DelegateForTests {
38 public: 34 public:
39 SendResponseDelegate() : should_post_quit_(false) {} 35 SendResponseDelegate() : should_post_quit_(false) {}
40 36
41 virtual ~SendResponseDelegate() {} 37 virtual ~SendResponseDelegate() {}
(...skipping 26 matching lines...) Expand all
68 bool should_post_quit_; 64 bool should_post_quit_;
69 }; 65 };
70 66
71 } // namespace 67 } // namespace
72 68
73 namespace extensions { 69 namespace extensions {
74 70
75 namespace api_test_utils { 71 namespace api_test_utils {
76 72
77 scoped_ptr<base::DictionaryValue> ParseDictionary(const std::string& data) { 73 scoped_ptr<base::DictionaryValue> ParseDictionary(const std::string& data) {
78 scoped_ptr<base::Value> result = ParseJSON(data); 74 return base::DictionaryValue::From(ParseJSON(data));
79 scoped_ptr<base::DictionaryValue> dict_result;
80 if (result->GetAsDictionary(nullptr))
81 dict_result.reset(static_cast<base::DictionaryValue*>(result.release()));
82 return dict_result;
83 } 75 }
84 76
85 bool GetBoolean(const base::DictionaryValue* val, const std::string& key) { 77 bool GetBoolean(const base::DictionaryValue* val, const std::string& key) {
86 bool result = false; 78 bool result = false;
87 if (!val->GetBoolean(key, &result)) 79 if (!val->GetBoolean(key, &result))
88 ADD_FAILURE() << key << " does not exist or is not a boolean."; 80 ADD_FAILURE() << key << " does not exist or is not a boolean.";
89 return result; 81 return result;
90 } 82 }
91 83
92 int GetInteger(const base::DictionaryValue* val, const std::string& key) { 84 int GetInteger(const base::DictionaryValue* val, const std::string& key) {
(...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after
243 response_delegate.set_should_post_quit(true); 235 response_delegate.set_should_post_quit(true);
244 content::RunMessageLoop(); 236 content::RunMessageLoop();
245 } 237 }
246 238
247 EXPECT_TRUE(response_delegate.HasResponse()); 239 EXPECT_TRUE(response_delegate.HasResponse());
248 return response_delegate.GetResponse(); 240 return response_delegate.GetResponse();
249 } 241 }
250 242
251 } // namespace api_test_utils 243 } // namespace api_test_utils
252 } // namespace extensions 244 } // namespace extensions
OLDNEW
« no previous file with comments | « extensions/browser/api/sockets_tcp_server/sockets_tcp_server_apitest.cc ('k') | extensions/common/extension_api.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698