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/browser/api/dns/host_resolver_wrapper.h"
6 #include "extensions/browser/api/dns/mock_host_resolver_creator.h"
7 #include "extensions/browser/api/socket/socket_api.h"
8 #include "extensions/browser/api_test_utils.h"
9 #include "extensions/common/extension.h"
10 #include "extensions/common/test_util.h"
11 #include "extensions/shell/test/shell_test.h"
12
13 using extensions::api_test_utils::RunFunctionAndReturnSingleResult;
14
15 namespace extensions {
16
17 class SocketApiTest : public AppShellTest {};
18
IN_PROC_BROWSER_TEST_F(SocketApiTest,SocketUDPCreateGood)19 IN_PROC_BROWSER_TEST_F(SocketApiTest, SocketUDPCreateGood) {
20 scoped_refptr<extensions::SocketCreateFunction> socket_create_function(
21 new extensions::SocketCreateFunction());
22 scoped_refptr<Extension> empty_extension = test_util::CreateEmptyExtension();
23
24 socket_create_function->set_extension(empty_extension.get());
25 socket_create_function->set_has_callback(true);
26
27 scoped_ptr<base::Value> result(RunFunctionAndReturnSingleResult(
28 socket_create_function.get(), "[\"udp\"]", browser_context()));
29 base::DictionaryValue* value = NULL;
30 ASSERT_TRUE(result->GetAsDictionary(&value));
31 int socket_id = -1;
32 EXPECT_TRUE(value->GetInteger("socketId", &socket_id));
33 EXPECT_GT(socket_id, 0);
34 }
35
IN_PROC_BROWSER_TEST_F(SocketApiTest,SocketTCPCreateGood)36 IN_PROC_BROWSER_TEST_F(SocketApiTest, SocketTCPCreateGood) {
37 scoped_refptr<extensions::SocketCreateFunction> socket_create_function(
38 new extensions::SocketCreateFunction());
39 scoped_refptr<Extension> empty_extension = test_util::CreateEmptyExtension();
40
41 socket_create_function->set_extension(empty_extension.get());
42 socket_create_function->set_has_callback(true);
43
44 scoped_ptr<base::Value> result(RunFunctionAndReturnSingleResult(
45 socket_create_function.get(), "[\"tcp\"]", browser_context()));
46 base::DictionaryValue* value = NULL;
47 ASSERT_TRUE(result->GetAsDictionary(&value));
48 int socket_id = -1;
49 EXPECT_TRUE(value->GetInteger("socketId", &socket_id));
50 ASSERT_GT(socket_id, 0);
51 }
52
IN_PROC_BROWSER_TEST_F(SocketApiTest,GetNetworkList)53 IN_PROC_BROWSER_TEST_F(SocketApiTest, GetNetworkList) {
54 scoped_refptr<extensions::SocketGetNetworkListFunction> socket_function(
55 new extensions::SocketGetNetworkListFunction());
56 scoped_refptr<Extension> empty_extension = test_util::CreateEmptyExtension();
57
58 socket_function->set_extension(empty_extension.get());
59 socket_function->set_has_callback(true);
60
61 scoped_ptr<base::Value> result(RunFunctionAndReturnSingleResult(
62 socket_function.get(), "[]", browser_context()));
63
64 // If we're invoking socket tests, all we can confirm is that we have at
65 // least one address, but not what it is.
66 base::ListValue* value = NULL;
67 ASSERT_TRUE(result->GetAsList(&value));
68 ASSERT_GT(value->GetSize(), 0U);
69 }
70
71 } // namespace extensions
72