OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 "ppapi/tests/test_host_resolver.h" | 5 #include "ppapi/tests/test_host_resolver.h" |
6 | 6 |
7 #include "ppapi/cpp/dev/host_resolver_dev.h" | 7 #include "ppapi/cpp/dev/host_resolver_dev.h" |
8 #include "ppapi/cpp/dev/net_address_dev.h" | |
9 #include "ppapi/cpp/dev/tcp_socket_dev.h" | 8 #include "ppapi/cpp/dev/tcp_socket_dev.h" |
| 9 #include "ppapi/cpp/net_address.h" |
10 #include "ppapi/cpp/var.h" | 10 #include "ppapi/cpp/var.h" |
11 #include "ppapi/tests/test_utils.h" | 11 #include "ppapi/tests/test_utils.h" |
12 #include "ppapi/tests/testing_instance.h" | 12 #include "ppapi/tests/testing_instance.h" |
13 | 13 |
14 REGISTER_TEST_CASE(HostResolver); | 14 REGISTER_TEST_CASE(HostResolver); |
15 | 15 |
16 TestHostResolver::TestHostResolver(TestingInstance* instance) | 16 TestHostResolver::TestHostResolver(TestingInstance* instance) |
17 : TestCase(instance) { | 17 : TestCase(instance) { |
18 } | 18 } |
19 | 19 |
(...skipping 19 matching lines...) Expand all Loading... |
39 } | 39 } |
40 | 40 |
41 void TestHostResolver::RunTests(const std::string& filter) { | 41 void TestHostResolver::RunTests(const std::string& filter) { |
42 RUN_TEST(Empty, filter); | 42 RUN_TEST(Empty, filter); |
43 RUN_CALLBACK_TEST(TestHostResolver, Resolve, filter); | 43 RUN_CALLBACK_TEST(TestHostResolver, Resolve, filter); |
44 RUN_CALLBACK_TEST(TestHostResolver, ResolveIPv4, filter); | 44 RUN_CALLBACK_TEST(TestHostResolver, ResolveIPv4, filter); |
45 } | 45 } |
46 | 46 |
47 std::string TestHostResolver::SyncConnect( | 47 std::string TestHostResolver::SyncConnect( |
48 pp::TCPSocket_Dev* socket, | 48 pp::TCPSocket_Dev* socket, |
49 const pp::NetAddress_Dev& address) { | 49 const pp::NetAddress& address) { |
50 TestCompletionCallback callback(instance_->pp_instance(), callback_type()); | 50 TestCompletionCallback callback(instance_->pp_instance(), callback_type()); |
51 callback.WaitForResult(socket->Connect(address, callback.GetCallback())); | 51 callback.WaitForResult(socket->Connect(address, callback.GetCallback())); |
52 CHECK_CALLBACK_BEHAVIOR(callback); | 52 CHECK_CALLBACK_BEHAVIOR(callback); |
53 ASSERT_EQ(PP_OK, callback.result()); | 53 ASSERT_EQ(PP_OK, callback.result()); |
54 PASS(); | 54 PASS(); |
55 } | 55 } |
56 | 56 |
57 std::string TestHostResolver::SyncRead(pp::TCPSocket_Dev* socket, | 57 std::string TestHostResolver::SyncRead(pp::TCPSocket_Dev* socket, |
58 char* buffer, | 58 char* buffer, |
59 int32_t num_bytes, | 59 int32_t num_bytes, |
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
112 | 112 |
113 std::string TestHostResolver::ParameterizedTestResolve( | 113 std::string TestHostResolver::ParameterizedTestResolve( |
114 const PP_HostResolver_Hint_Dev& hint) { | 114 const PP_HostResolver_Hint_Dev& hint) { |
115 pp::HostResolver_Dev host_resolver(instance_); | 115 pp::HostResolver_Dev host_resolver(instance_); |
116 | 116 |
117 ASSERT_SUBTEST_SUCCESS(SyncResolve(&host_resolver, host_, port_, hint)); | 117 ASSERT_SUBTEST_SUCCESS(SyncResolve(&host_resolver, host_, port_, hint)); |
118 | 118 |
119 size_t size = host_resolver.GetNetAddressCount(); | 119 size_t size = host_resolver.GetNetAddressCount(); |
120 ASSERT_TRUE(size >= 1); | 120 ASSERT_TRUE(size >= 1); |
121 | 121 |
122 pp::NetAddress_Dev address; | 122 pp::NetAddress address; |
123 for (size_t i = 0; i < size; ++i) { | 123 for (size_t i = 0; i < size; ++i) { |
124 address = host_resolver.GetNetAddress(i); | 124 address = host_resolver.GetNetAddress(i); |
125 ASSERT_NE(0, address.pp_resource()); | 125 ASSERT_NE(0, address.pp_resource()); |
126 | 126 |
127 pp::TCPSocket_Dev socket(instance_); | 127 pp::TCPSocket_Dev socket(instance_); |
128 ASSERT_SUBTEST_SUCCESS(SyncConnect(&socket, address)); | 128 ASSERT_SUBTEST_SUCCESS(SyncConnect(&socket, address)); |
129 ASSERT_SUBTEST_SUCCESS(CheckHTTPResponse(&socket, | 129 ASSERT_SUBTEST_SUCCESS(CheckHTTPResponse(&socket, |
130 "GET / HTTP/1.0\r\n\r\n", | 130 "GET / HTTP/1.0\r\n\r\n", |
131 "HTTP")); | 131 "HTTP")); |
132 socket.Close(); | 132 socket.Close(); |
133 } | 133 } |
134 | 134 |
135 address = host_resolver.GetNetAddress(size); | 135 address = host_resolver.GetNetAddress(size); |
136 ASSERT_EQ(0, address.pp_resource()); | 136 ASSERT_EQ(0, address.pp_resource()); |
137 pp::Var canonical_name = host_resolver.GetCanonicalName(); | 137 pp::Var canonical_name = host_resolver.GetCanonicalName(); |
138 ASSERT_TRUE(canonical_name.is_string()); | 138 ASSERT_TRUE(canonical_name.is_string()); |
139 | 139 |
140 ASSERT_SUBTEST_SUCCESS(SyncResolve(&host_resolver, canonical_name.AsString(), | 140 ASSERT_SUBTEST_SUCCESS(SyncResolve(&host_resolver, canonical_name.AsString(), |
141 port_, hint)); | 141 port_, hint)); |
142 size = host_resolver.GetNetAddressCount(); | 142 size = host_resolver.GetNetAddressCount(); |
143 ASSERT_TRUE(size >= 1); | 143 ASSERT_TRUE(size >= 1); |
144 | 144 |
145 PASS(); | 145 PASS(); |
146 } | 146 } |
147 | 147 |
148 std::string TestHostResolver::TestEmpty() { | 148 std::string TestHostResolver::TestEmpty() { |
149 pp::HostResolver_Dev host_resolver(instance_); | 149 pp::HostResolver_Dev host_resolver(instance_); |
150 ASSERT_EQ(0, host_resolver.GetNetAddressCount()); | 150 ASSERT_EQ(0, host_resolver.GetNetAddressCount()); |
151 pp::NetAddress_Dev address = host_resolver.GetNetAddress(0); | 151 pp::NetAddress address = host_resolver.GetNetAddress(0); |
152 ASSERT_EQ(0, address.pp_resource()); | 152 ASSERT_EQ(0, address.pp_resource()); |
153 | 153 |
154 PASS(); | 154 PASS(); |
155 } | 155 } |
156 | 156 |
157 std::string TestHostResolver::TestResolve() { | 157 std::string TestHostResolver::TestResolve() { |
158 PP_HostResolver_Hint_Dev hint; | 158 PP_HostResolver_Hint_Dev hint; |
159 hint.family = PP_NETADDRESS_FAMILY_UNSPECIFIED; | 159 hint.family = PP_NETADDRESS_FAMILY_UNSPECIFIED; |
160 hint.flags = PP_HOSTRESOLVER_FLAGS_CANONNAME; | 160 hint.flags = PP_HOSTRESOLVER_FLAGS_CANONNAME; |
161 return ParameterizedTestResolve(hint); | 161 return ParameterizedTestResolve(hint); |
162 } | 162 } |
163 | 163 |
164 std::string TestHostResolver::TestResolveIPv4() { | 164 std::string TestHostResolver::TestResolveIPv4() { |
165 PP_HostResolver_Hint_Dev hint; | 165 PP_HostResolver_Hint_Dev hint; |
166 hint.family = PP_NETADDRESS_FAMILY_IPV4; | 166 hint.family = PP_NETADDRESS_FAMILY_IPV4; |
167 hint.flags = PP_HOSTRESOLVER_FLAGS_CANONNAME; | 167 hint.flags = PP_HOSTRESOLVER_FLAGS_CANONNAME; |
168 return ParameterizedTestResolve(hint); | 168 return ParameterizedTestResolve(hint); |
169 } | 169 } |
OLD | NEW |