summaryrefslogtreecommitdiff
path: root/chromium/extensions/browser/api/system_network/system_network_apitest.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/extensions/browser/api/system_network/system_network_apitest.cc')
-rw-r--r--chromium/extensions/browser/api/system_network/system_network_apitest.cc61
1 files changed, 61 insertions, 0 deletions
diff --git a/chromium/extensions/browser/api/system_network/system_network_apitest.cc b/chromium/extensions/browser/api/system_network/system_network_apitest.cc
new file mode 100644
index 00000000000..f7c1964345b
--- /dev/null
+++ b/chromium/extensions/browser/api/system_network/system_network_apitest.cc
@@ -0,0 +1,61 @@
+// Copyright 2013 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/memory/ref_counted.h"
+#include "base/strings/stringprintf.h"
+#include "extensions/browser/api/system_network/system_network_api.h"
+#include "extensions/browser/api_test_utils.h"
+#include "extensions/common/test_util.h"
+#include "extensions/shell/test/shell_apitest.h"
+#include "extensions/test/extension_test_message_listener.h"
+
+using extensions::Extension;
+using extensions::api_test_utils::RunFunctionAndReturnSingleResult;
+using extensions::api::SystemNetworkGetNetworkInterfacesFunction;
+using extensions::api::system_network::NetworkInterface;
+
+namespace {
+
+class SystemNetworkApiTest : public extensions::ShellApiTest {};
+
+} // namespace
+
+IN_PROC_BROWSER_TEST_F(SystemNetworkApiTest, SystemNetworkExtension) {
+ ASSERT_TRUE(RunAppTest("system/network")) << message_;
+}
+
+IN_PROC_BROWSER_TEST_F(SystemNetworkApiTest, GetNetworkInterfaces) {
+ scoped_refptr<SystemNetworkGetNetworkInterfacesFunction> socket_function(
+ new SystemNetworkGetNetworkInterfacesFunction());
+ scoped_refptr<Extension> empty_extension(
+ extensions::test_util::CreateEmptyExtension());
+
+ socket_function->set_extension(empty_extension.get());
+ socket_function->set_has_callback(true);
+
+ scoped_ptr<base::Value> result(RunFunctionAndReturnSingleResult(
+ socket_function.get(), "[]", browser_context()));
+ ASSERT_EQ(base::Value::TYPE_LIST, result->GetType());
+
+ // All we can confirm is that we have at least one address, but not what it
+ // is.
+ base::ListValue* value = static_cast<base::ListValue*>(result.get());
+ ASSERT_TRUE(value->GetSize() > 0);
+
+ for (base::ListValue::const_iterator it = value->begin(); it != value->end();
+ ++it) {
+ base::Value* network_interface_value = *it;
+
+ NetworkInterface network_interface;
+ ASSERT_TRUE(NetworkInterface::Populate(*network_interface_value,
+ &network_interface));
+
+ LOG(INFO) << "Network interface: address=" << network_interface.address
+ << ", name=" << network_interface.name
+ << ", prefix length=" << network_interface.prefix_length;
+ ASSERT_NE(std::string(), network_interface.address);
+ ASSERT_NE(std::string(), network_interface.name);
+ ASSERT_LE(0, network_interface.prefix_length);
+ }
+}