Home | History | Annotate | Download | only in socket
      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 
     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 
     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 
     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