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

Side by Side Diff: ppapi/tests/test_udp_socket_private.cc

Issue 9791003: Added pepper test for SSLHandshake (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 8 years, 9 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 <string.h> 5 #include <string.h>
6 6
7 #include "ppapi/cpp/module.h" 7 #include "ppapi/cpp/module.h"
8 #include "ppapi/tests/test_udp_socket_private_shared.h" 8 #include "ppapi/tests/test_udp_socket_private.h"
9 #include "ppapi/tests/test_utils.h" 9 #include "ppapi/tests/test_utils.h"
10 #include "ppapi/tests/testing_instance.h" 10 #include "ppapi/tests/testing_instance.h"
11 11
12 REGISTER_TEST_CASE(UDPSocketPrivateShared); 12 REGISTER_TEST_CASE(UDPSocketPrivate);
13 13
14 TestUDPSocketPrivateShared::TestUDPSocketPrivateShared( 14 TestUDPSocketPrivate::TestUDPSocketPrivate(
15 TestingInstance* instance) 15 TestingInstance* instance)
16 : TestCase(instance), 16 : TestCase(instance),
17 tcp_socket_private_interface_(NULL), 17 tcp_socket_private_interface_(NULL),
18 udp_socket_private_interface_(NULL) { 18 udp_socket_private_interface_(NULL) {
19 } 19 }
20 20
21 bool TestUDPSocketPrivateShared::Init() { 21 bool TestUDPSocketPrivate::Init() {
22 tcp_socket_private_interface_ = static_cast<const PPB_TCPSocket_Private*>( 22 tcp_socket_private_interface_ = static_cast<const PPB_TCPSocket_Private*>(
23 pp::Module::Get()->GetBrowserInterface(PPB_TCPSOCKET_PRIVATE_INTERFACE)); 23 pp::Module::Get()->GetBrowserInterface(PPB_TCPSOCKET_PRIVATE_INTERFACE));
24 if (!tcp_socket_private_interface_) 24 if (!tcp_socket_private_interface_)
25 instance_->AppendError("TCPSocketPrivate interface not available"); 25 instance_->AppendError("TCPSocketPrivate interface not available");
26 26
27 udp_socket_private_interface_ = static_cast<const PPB_UDPSocket_Private*>( 27 udp_socket_private_interface_ = static_cast<const PPB_UDPSocket_Private*>(
28 pp::Module::Get()->GetBrowserInterface(PPB_UDPSOCKET_PRIVATE_INTERFACE)); 28 pp::Module::Get()->GetBrowserInterface(PPB_UDPSOCKET_PRIVATE_INTERFACE));
29 if (!udp_socket_private_interface_) 29 if (!udp_socket_private_interface_)
30 instance_->AppendError("UDPSocketPrivate interface not available"); 30 instance_->AppendError("UDPSocketPrivate interface not available");
31 31
32 bool init_host_port = false; 32 bool init_host_port = false;
33 if (!GetLocalHostPort(instance_->pp_instance(), &host_, &port_)) 33 if (!GetLocalHostPort(instance_->pp_instance(), &host_, &port_))
34 instance_->AppendError("Can't init host and port"); 34 instance_->AppendError("Can't init host and port");
35 else 35 else
36 init_host_port = true; 36 init_host_port = true;
37 37
38 return tcp_socket_private_interface_ && 38 return tcp_socket_private_interface_ &&
39 udp_socket_private_interface_ && 39 udp_socket_private_interface_ &&
40 init_host_port && 40 init_host_port &&
41 CheckTestingInterface(); 41 CheckTestingInterface();
42 } 42 }
43 43
44 void TestUDPSocketPrivateShared::RunTests(const std::string& filter) { 44 void TestUDPSocketPrivate::RunTests(const std::string& filter) {
45 RUN_TEST(Create, filter); 45 RUN_TEST(Create, filter);
46 RUN_TEST_FORCEASYNC_AND_NOT(Connect, filter); 46 RUN_TEST_FORCEASYNC_AND_NOT(Connect, filter);
47 RUN_TEST_FORCEASYNC_AND_NOT(ConnectFailure, filter); 47 RUN_TEST_FORCEASYNC_AND_NOT(ConnectFailure, filter);
48 } 48 }
49 49
50 void TestUDPSocketPrivateShared::QuitMessageLoop() { 50 std::string TestUDPSocketPrivate::GenerateNetAddress(
51 testing_interface_->QuitMessageLoop(instance_->pp_instance());
52 }
53
54 std::string TestUDPSocketPrivateShared::GenerateNetAddress(
55 PP_Resource* socket, PP_NetAddress_Private* address) { 51 PP_Resource* socket, PP_NetAddress_Private* address) {
56 *socket = tcp_socket_private_interface_->Create(instance_->pp_instance()); 52 *socket = tcp_socket_private_interface_->Create(instance_->pp_instance());
57 if (0 == *socket) 53 if (0 == *socket)
58 return "PPB_TCPSocket_Private::Create failed"; 54 return "PPB_TCPSocket_Private::Create failed";
59 55
60 TestCompletionCallback callback(instance_->pp_instance(), force_async_); 56 TestCompletionCallback callback(instance_->pp_instance(), force_async_);
61 int32_t rv = tcp_socket_private_interface_->Connect( 57 int32_t rv = tcp_socket_private_interface_->Connect(
62 *socket, host_.c_str(), port_, 58 *socket, host_.c_str(), port_,
63 static_cast<pp::CompletionCallback>(callback).pp_completion_callback()); 59 static_cast<pp::CompletionCallback>(callback).pp_completion_callback());
64 if (force_async_ && rv != PP_OK_COMPLETIONPENDING) 60 if (force_async_ && rv != PP_OK_COMPLETIONPENDING)
65 return ReportError("PPB_TCPSocket_Private::Connect force_async", rv); 61 return ReportError("PPB_TCPSocket_Private::Connect force_async", rv);
66 if (rv == PP_OK_COMPLETIONPENDING) 62 if (rv == PP_OK_COMPLETIONPENDING)
67 rv = callback.WaitForResult(); 63 rv = callback.WaitForResult();
68 if (rv != PP_OK) 64 if (rv != PP_OK)
69 return ReportError("PPB_TCPSocket_Private::Connect", rv); 65 return ReportError("PPB_TCPSocket_Private::Connect", rv);
70 66
71 rv = tcp_socket_private_interface_->GetLocalAddress(*socket, address); 67 rv = tcp_socket_private_interface_->GetLocalAddress(*socket, address);
72 if (rv != PP_TRUE) 68 if (rv != PP_TRUE)
73 return ReportError("PPB_TCPSocket_Private::GetLocalAddress", rv); 69 return ReportError("PPB_TCPSocket_Private::GetLocalAddress", rv);
74 70
75 PASS(); 71 PASS();
76 } 72 }
77 73
78 std::string TestUDPSocketPrivateShared::CreateAndBindUDPSocket( 74 std::string TestUDPSocketPrivate::CreateAndBindUDPSocket(
79 PP_NetAddress_Private *address, 75 PP_NetAddress_Private *address,
80 PP_Resource *socket) { 76 PP_Resource *socket) {
81 *socket = udp_socket_private_interface_->Create(instance_->pp_instance()); 77 *socket = udp_socket_private_interface_->Create(instance_->pp_instance());
82 if (0 == *socket) 78 if (0 == *socket)
83 return "PPB_UDPSocket_Private::Create failed"; 79 return "PPB_UDPSocket_Private::Create failed";
84 if (!udp_socket_private_interface_->IsUDPSocket(*socket)) 80 if (!udp_socket_private_interface_->IsUDPSocket(*socket))
85 return "PPB_UDPSocket_Private::IsUDPSocket failed"; 81 return "PPB_UDPSocket_Private::IsUDPSocket failed";
86 82
87 TestCompletionCallback callback(instance_->pp_instance(), force_async_); 83 TestCompletionCallback callback(instance_->pp_instance(), force_async_);
88 int32_t rv = udp_socket_private_interface_->Bind( 84 int32_t rv = udp_socket_private_interface_->Bind(
89 *socket, address, 85 *socket, address,
90 static_cast<pp::CompletionCallback>(callback).pp_completion_callback()); 86 static_cast<pp::CompletionCallback>(callback).pp_completion_callback());
91 87
92 if (force_async_ && rv != PP_OK_COMPLETIONPENDING) 88 if (force_async_ && rv != PP_OK_COMPLETIONPENDING)
93 return ReportError("PPB_UDPSocket_Private::Bind force_async", rv); 89 return ReportError("PPB_UDPSocket_Private::Bind force_async", rv);
94 if (rv == PP_OK_COMPLETIONPENDING) 90 if (rv == PP_OK_COMPLETIONPENDING)
95 rv = callback.WaitForResult(); 91 rv = callback.WaitForResult();
96 if (rv != PP_OK) 92 if (rv != PP_OK)
97 return ReportError("PPB_UDPSocket_Private::Bind", rv); 93 return ReportError("PPB_UDPSocket_Private::Bind", rv);
98 94
99 if (!udp_socket_private_interface_->GetBoundAddress(*socket, address)) 95 if (!udp_socket_private_interface_->GetBoundAddress(*socket, address))
100 return "PPB_UDPSocket_Private::GetBoundAddress: Failed"; 96 return "PPB_UDPSocket_Private::GetBoundAddress: Failed";
101 97
102 PASS(); 98 PASS();
103 } 99 }
104 100
105 std::string TestUDPSocketPrivateShared::BindUDPSocketFailure( 101 std::string TestUDPSocketPrivate::BindUDPSocketFailure(
106 PP_NetAddress_Private *address, 102 PP_NetAddress_Private *address,
107 PP_Resource *socket) { 103 PP_Resource *socket) {
108 *socket = udp_socket_private_interface_->Create(instance_->pp_instance()); 104 *socket = udp_socket_private_interface_->Create(instance_->pp_instance());
109 if (0 == *socket) 105 if (0 == *socket)
110 return "PPB_UDPSocket_Private::Create failed"; 106 return "PPB_UDPSocket_Private::Create failed";
111 if (!udp_socket_private_interface_->IsUDPSocket(*socket)) 107 if (!udp_socket_private_interface_->IsUDPSocket(*socket))
112 return "PPB_UDPSocket_Private::IsUDPSocket failed"; 108 return "PPB_UDPSocket_Private::IsUDPSocket failed";
113 109
114 TestCompletionCallback callback(instance_->pp_instance(), force_async_); 110 TestCompletionCallback callback(instance_->pp_instance(), force_async_);
115 int32_t rv = udp_socket_private_interface_->Bind( 111 int32_t rv = udp_socket_private_interface_->Bind(
116 *socket, address, 112 *socket, address,
117 static_cast<pp::CompletionCallback>(callback).pp_completion_callback()); 113 static_cast<pp::CompletionCallback>(callback).pp_completion_callback());
118 114
119 if (force_async_ && rv != PP_OK_COMPLETIONPENDING) 115 if (force_async_ && rv != PP_OK_COMPLETIONPENDING)
120 return ReportError("PPB_UDPSocket_Private::Bind force_async", rv); 116 return ReportError("PPB_UDPSocket_Private::Bind force_async", rv);
121 if (rv == PP_OK_COMPLETIONPENDING) 117 if (rv == PP_OK_COMPLETIONPENDING)
122 rv = callback.WaitForResult(); 118 rv = callback.WaitForResult();
123 if (rv == PP_OK) 119 if (rv == PP_OK)
124 return ReportError("PPB_UDPSocket_Private::Bind", rv); 120 return ReportError("PPB_UDPSocket_Private::Bind", rv);
125 121
126 if (udp_socket_private_interface_->GetBoundAddress(*socket, address)) 122 if (udp_socket_private_interface_->GetBoundAddress(*socket, address))
127 return "PPB_UDPSocket_Private::GetBoundAddress: Failed"; 123 return "PPB_UDPSocket_Private::GetBoundAddress: Failed";
128 124
129 PASS(); 125 PASS();
130 } 126 }
131 127
132 std::string TestUDPSocketPrivateShared::TestCreate() { 128 std::string TestUDPSocketPrivate::TestCreate() {
133 PP_Resource udp_socket; 129 PP_Resource udp_socket;
134 std::string error_message; 130 std::string error_message;
135 131
136 udp_socket = udp_socket_private_interface_->Create(0); 132 udp_socket = udp_socket_private_interface_->Create(0);
137 if (0 != udp_socket) 133 if (0 != udp_socket)
138 return "PPB_UDPSocket_Private::Create returns valid socket " \ 134 return "PPB_UDPSocket_Private::Create returns valid socket " \
139 "for invalid instance"; 135 "for invalid instance";
140 136
141 udp_socket = udp_socket_private_interface_->Create(instance_->pp_instance()); 137 udp_socket = udp_socket_private_interface_->Create(instance_->pp_instance());
142 if (0 == udp_socket) 138 if (0 == udp_socket)
143 return "PPB_UDPSocket_Private::Create failed"; 139 return "PPB_UDPSocket_Private::Create failed";
144 if (!udp_socket_private_interface_->IsUDPSocket(udp_socket)) 140 if (!udp_socket_private_interface_->IsUDPSocket(udp_socket))
145 return "PPB_UDPSocket_Private::IsUDPSocket failed"; 141 return "PPB_UDPSocket_Private::IsUDPSocket failed";
146 142
147 PASS(); 143 PASS();
148 } 144 }
149 145
150 std::string TestUDPSocketPrivateShared::TestConnect() { 146 std::string TestUDPSocketPrivate::TestConnect() {
151 PP_NetAddress_Private server_address, client_address; 147 PP_NetAddress_Private server_address, client_address;
152 PP_Resource tcp_socket_server, tcp_socket_client; 148 PP_Resource tcp_socket_server, tcp_socket_client;
153 std::string error_message; 149 std::string error_message;
154 150
155 error_message = GenerateNetAddress(&tcp_socket_server, &server_address); 151 error_message = GenerateNetAddress(&tcp_socket_server, &server_address);
156 if (!error_message.empty()) 152 if (!error_message.empty())
157 return error_message; 153 return error_message;
158 error_message = GenerateNetAddress(&tcp_socket_client, &client_address); 154 error_message = GenerateNetAddress(&tcp_socket_client, &client_address);
159 if (!error_message.empty()) 155 if (!error_message.empty())
160 return error_message; 156 return error_message;
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
209 tcp_socket_private_interface_->Disconnect(tcp_socket_server); 205 tcp_socket_private_interface_->Disconnect(tcp_socket_server);
210 tcp_socket_private_interface_->Disconnect(tcp_socket_client); 206 tcp_socket_private_interface_->Disconnect(tcp_socket_client);
211 207
212 if (udp_socket_private_interface_->GetBoundAddress( 208 if (udp_socket_private_interface_->GetBoundAddress(
213 socket_server, &server_address)) 209 socket_server, &server_address))
214 return "PPB_UDPSocket_Private::GetBoundAddress: expected Failure"; 210 return "PPB_UDPSocket_Private::GetBoundAddress: expected Failure";
215 211
216 PASS(); 212 PASS();
217 } 213 }
218 214
219 std::string TestUDPSocketPrivateShared::TestConnectFailure() { 215 std::string TestUDPSocketPrivate::TestConnectFailure() {
220 std::string error_message; 216 std::string error_message;
221 PP_NetAddress_Private invalid_address = { 0 }; 217 PP_NetAddress_Private invalid_address = { 0 };
222 PP_Resource socket; 218 PP_Resource socket;
223 219
224 error_message = BindUDPSocketFailure(&invalid_address, &socket); 220 error_message = BindUDPSocketFailure(&invalid_address, &socket);
225 if (!error_message.empty()) 221 if (!error_message.empty())
226 return error_message; 222 return error_message;
227 223
228 PASS(); 224 PASS();
229 } 225 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698