Index: chrome/browser/extensions/api/socket/socket_api_unittest.cc |
diff --git a/chrome/browser/extensions/api/socket/socket_api_unittest.cc b/chrome/browser/extensions/api/socket/socket_api_unittest.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..51318af67937cd35bdcaedc63ddd00237178c469 |
--- /dev/null |
+++ b/chrome/browser/extensions/api/socket/socket_api_unittest.cc |
@@ -0,0 +1,79 @@ |
+// Copyright (c) 2012 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#include "base/values.h" |
+#include "chrome/browser/browser_process_impl.h" |
+#include "chrome/browser/extensions/api/socket/socket_api.h" |
+#include "chrome/browser/extensions/extension_function_test_utils.h" |
+#include "chrome/browser/extensions/test_extension_system.h" |
+#include "chrome/browser/profiles/profile_manager.h" |
+#include "chrome/test/base/browser_with_test_window_test.h" |
+#include "chrome/test/base/testing_browser_process.h" |
+#include "testing/gmock/include/gmock/gmock.h" |
+#include "testing/gtest/include/gtest/gtest.h" |
+ |
+namespace utils = extension_function_test_utils; |
+ |
+namespace extensions { |
+ |
+class SocketUnitTest : public BrowserWithTestWindowTest { |
+ public: |
+ virtual void SetUp() { |
+ BrowserWithTestWindowTest::SetUp(); |
+ |
+ TestExtensionSystem* system = static_cast<TestExtensionSystem*>( |
+ ExtensionSystem::Get(browser()->profile())); |
+ system->CreateSocketManager(); |
+ |
+ extension_ = utils::CreateEmptyExtensionWithLocation( |
+ extensions::Extension::LOAD); |
+ } |
+ |
+ base::Value* RunFunctionWithExtension( |
+ UIThreadExtensionFunction* function, const std::string& args) { |
+ function->set_extension(extension_.get()); |
+ return utils::RunFunctionAndReturnSingleResult(function, args, browser()); |
+ } |
+ |
+ base::DictionaryValue* RunFunctionAndReturnDict( |
+ UIThreadExtensionFunction* function, const std::string& args) { |
+ base::Value* result = RunFunctionWithExtension(function, args); |
+ return result ? utils::ToDictionary(result) : NULL; |
+ } |
+ |
+ base::ListValue* RunFunctionAndReturnList( |
+ UIThreadExtensionFunction* function, const std::string& args) { |
+ base::Value* result = RunFunctionWithExtension(function, args); |
+ return result ? utils::ToList(result) : NULL; |
+ } |
+ |
+ void RunFunction(UIThreadExtensionFunction* function, |
+ const std::string& args) { |
+ scoped_ptr<base::Value> result(RunFunctionWithExtension(function, args)); |
+ } |
+ |
+ std::string RunFunctionAndReturnError(UIThreadExtensionFunction* function, |
+ const std::string& args) { |
+ function->set_extension(extension_.get()); |
+ return utils::RunFunctionAndReturnError(function, args, browser()); |
+ } |
+ |
+ protected: |
+ scoped_refptr<extensions::Extension> extension_; |
+}; |
+ |
+TEST_F(SocketUnitTest, Create) { |
+ { |
+ scoped_ptr<base::DictionaryValue> result(RunFunctionAndReturnDict( |
+ new SocketCreateFunction(), "[\"tcp\"]")); |
+ ASSERT_TRUE(result.get()); |
+ } |
+ { |
+ std::string error = RunFunctionAndReturnError( |
+ new SocketCreateFunction(), "[\"nonexistent-socket-type\"]"); |
+ ASSERT_FALSE(error.empty()) << "Expected error. Got nothing instead."; |
+ } |
+} |
+ |
+} // namespace extensions |