| OLD | NEW |
| 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 "ppapi/tests/test_network_monitor_private.h" | 5 #include "ppapi/tests/test_network_monitor_private.h" |
| 6 | 6 |
| 7 #include <string.h> | 7 #include <string.h> |
| 8 | 8 |
| 9 #include "ppapi/cpp/instance_handle.h" | 9 #include "ppapi/cpp/instance_handle.h" |
| 10 #include "ppapi/cpp/module.h" | 10 #include "ppapi/cpp/module.h" |
| 11 #include "ppapi/cpp/private/net_address_private.h" | 11 #include "ppapi/cpp/private/net_address_private.h" |
| 12 #include "ppapi/cpp/private/network_list_private.h" | 12 #include "ppapi/cpp/private/network_list_private.h" |
| 13 #include "ppapi/cpp/private/network_monitor_private.h" | 13 #include "ppapi/cpp/private/network_monitor_private.h" |
| 14 #include "ppapi/tests/testing_instance.h" | 14 #include "ppapi/tests/testing_instance.h" |
| 15 #include "ppapi/tests/test_utils.h" | 15 #include "ppapi/tests/test_utils.h" |
| 16 #include "ppapi/utility/private/network_list_observer_private.h" | 16 #include "ppapi/utility/private/network_list_observer_private.h" |
| 17 | 17 |
| 18 REGISTER_TEST_CASE(NetworkMonitorPrivate); | 18 REGISTER_TEST_CASE(NetworkMonitorPrivate); |
| 19 | 19 |
| 20 namespace { | 20 namespace { |
| 21 | 21 |
| 22 struct CallbackData { | 22 struct CallbackData { |
| 23 explicit CallbackData(PP_Instance instance) | 23 explicit CallbackData(PP_Instance instance) |
| 24 : event(instance), | 24 : event(instance), |
| 25 call_counter(0), | 25 call_counter(0), |
| 26 list_resource(0), | |
| 27 delete_monitor(false), | 26 delete_monitor(false), |
| 28 monitor(NULL) { | 27 monitor(NULL) { |
| 29 } | 28 } |
| 30 ~CallbackData() { | 29 ~CallbackData() { |
| 31 if (list_resource) | |
| 32 pp::Module::Get()->core()->ReleaseResource(list_resource); | |
| 33 } | 30 } |
| 34 NestedEvent event; | 31 NestedEvent event; |
| 35 int call_counter; | 32 int call_counter; |
| 36 PP_Resource list_resource; | 33 pp::NetworkListPrivate network_list; |
| 37 bool delete_monitor; | 34 bool delete_monitor; |
| 38 pp::NetworkMonitorPrivate* monitor; | 35 pp::NetworkMonitorPrivate* monitor; |
| 39 }; | 36 }; |
| 40 | 37 |
| 41 void TestCallback(void* user_data, PP_Resource network_list) { | 38 void TestCallback(void* user_data, PP_Resource pp_network_list) { |
| 42 CallbackData* data = static_cast<CallbackData*>(user_data); | 39 CallbackData* data = static_cast<CallbackData*>(user_data); |
| 43 data->call_counter++; | 40 data->call_counter++; |
| 44 | 41 |
| 45 if (data->list_resource) | 42 data->network_list = pp::NetworkListPrivate(pp::PASS_REF, pp_network_list); |
| 46 pp::Module::Get()->core()->ReleaseResource(data->list_resource); | |
| 47 data->list_resource = network_list; | |
| 48 | 43 |
| 49 if (data->delete_monitor) | 44 if (data->delete_monitor) |
| 50 delete data->monitor; | 45 delete data->monitor; |
| 51 | 46 |
| 52 | |
| 53 if (data->call_counter == 1) | 47 if (data->call_counter == 1) |
| 54 data->event.Signal(); | 48 data->event.Signal(); |
| 55 } | 49 } |
| 56 | 50 |
| 57 | 51 |
| 58 class TestNetworkListObserver : public pp::NetworkListObserverPrivate { | 52 class TestNetworkListObserver : public pp::NetworkListObserverPrivate { |
| 59 public: | 53 public: |
| 60 explicit TestNetworkListObserver(const pp::InstanceHandle& instance) | 54 explicit TestNetworkListObserver(const pp::InstanceHandle& instance) |
| 61 : pp::NetworkListObserverPrivate(instance), | 55 : pp::NetworkListObserverPrivate(instance), |
| 62 event(instance.pp_instance()) { | 56 event(instance.pp_instance()) { |
| (...skipping 20 matching lines...) Expand all Loading... |
| 83 return CheckTestingInterface(); | 77 return CheckTestingInterface(); |
| 84 } | 78 } |
| 85 | 79 |
| 86 void TestNetworkMonitorPrivate::RunTests(const std::string& filter) { | 80 void TestNetworkMonitorPrivate::RunTests(const std::string& filter) { |
| 87 RUN_TEST_FORCEASYNC_AND_NOT(Basic, filter); | 81 RUN_TEST_FORCEASYNC_AND_NOT(Basic, filter); |
| 88 RUN_TEST_FORCEASYNC_AND_NOT(2Monitors, filter); | 82 RUN_TEST_FORCEASYNC_AND_NOT(2Monitors, filter); |
| 89 RUN_TEST_FORCEASYNC_AND_NOT(DeleteInCallback, filter); | 83 RUN_TEST_FORCEASYNC_AND_NOT(DeleteInCallback, filter); |
| 90 RUN_TEST_FORCEASYNC_AND_NOT(ListObserver, filter); | 84 RUN_TEST_FORCEASYNC_AND_NOT(ListObserver, filter); |
| 91 } | 85 } |
| 92 | 86 |
| 93 std::string TestNetworkMonitorPrivate::VerifyNetworkListResource( | |
| 94 PP_Resource network_list_resource) { | |
| 95 pp::NetworkListPrivate network_list(network_list_resource); | |
| 96 return VerifyNetworkList(network_list); | |
| 97 } | |
| 98 | |
| 99 std::string TestNetworkMonitorPrivate::VerifyNetworkList( | 87 std::string TestNetworkMonitorPrivate::VerifyNetworkList( |
| 100 const pp::NetworkListPrivate& network_list) { | 88 const pp::NetworkListPrivate& network_list) { |
| 101 // Verify that there is at least one network interface. | 89 // Verify that there is at least one network interface. |
| 102 size_t count = network_list.GetCount(); | 90 size_t count = network_list.GetCount(); |
| 103 ASSERT_TRUE(count >= 1U); | 91 ASSERT_TRUE(count >= 1U); |
| 104 | 92 |
| 105 // Iterate over all interfaces and verify their properties. | 93 // Iterate over all interfaces and verify their properties. |
| 106 for (size_t iface = 0; iface < count; ++iface) { | 94 for (size_t iface = 0; iface < count; ++iface) { |
| 107 // Verify that the first interface has at least one address. | 95 // Verify that the first interface has at least one address. |
| 108 std::vector<PP_NetAddress_Private> addresses; | 96 std::vector<PP_NetAddress_Private> addresses; |
| (...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 176 } | 164 } |
| 177 | 165 |
| 178 std::string TestNetworkMonitorPrivate::TestBasic() { | 166 std::string TestNetworkMonitorPrivate::TestBasic() { |
| 179 CallbackData callback_data(instance_->pp_instance()); | 167 CallbackData callback_data(instance_->pp_instance()); |
| 180 | 168 |
| 181 pp::NetworkMonitorPrivate network_monitor( | 169 pp::NetworkMonitorPrivate network_monitor( |
| 182 instance_, &TestCallback, &callback_data); | 170 instance_, &TestCallback, &callback_data); |
| 183 callback_data.event.Wait(); | 171 callback_data.event.Wait(); |
| 184 ASSERT_EQ(callback_data.call_counter, 1); | 172 ASSERT_EQ(callback_data.call_counter, 1); |
| 185 | 173 |
| 186 ASSERT_SUBTEST_SUCCESS( | 174 ASSERT_SUBTEST_SUCCESS(VerifyNetworkList(callback_data.network_list)); |
| 187 VerifyNetworkListResource(callback_data.list_resource)); | |
| 188 | 175 |
| 189 PASS(); | 176 PASS(); |
| 190 } | 177 } |
| 191 | 178 |
| 192 std::string TestNetworkMonitorPrivate::Test2Monitors() { | 179 std::string TestNetworkMonitorPrivate::Test2Monitors() { |
| 193 CallbackData callback_data(instance_->pp_instance()); | 180 CallbackData callback_data(instance_->pp_instance()); |
| 194 | 181 |
| 195 pp::NetworkMonitorPrivate network_monitor( | 182 pp::NetworkMonitorPrivate network_monitor( |
| 196 instance_, &TestCallback, &callback_data); | 183 instance_, &TestCallback, &callback_data); |
| 197 callback_data.event.Wait(); | 184 callback_data.event.Wait(); |
| 198 ASSERT_EQ(callback_data.call_counter, 1); | 185 ASSERT_EQ(callback_data.call_counter, 1); |
| 199 | 186 |
| 200 ASSERT_SUBTEST_SUCCESS( | 187 ASSERT_SUBTEST_SUCCESS(VerifyNetworkList(callback_data.network_list)); |
| 201 VerifyNetworkListResource(callback_data.list_resource)); | |
| 202 | 188 |
| 203 CallbackData callback_data_2(instance_->pp_instance()); | 189 CallbackData callback_data_2(instance_->pp_instance()); |
| 204 | 190 |
| 205 pp::NetworkMonitorPrivate network_monitor_2( | 191 pp::NetworkMonitorPrivate network_monitor_2( |
| 206 instance_, &TestCallback, &callback_data_2); | 192 instance_, &TestCallback, &callback_data_2); |
| 207 callback_data_2.event.Wait(); | 193 callback_data_2.event.Wait(); |
| 208 ASSERT_EQ(callback_data_2.call_counter, 1); | 194 ASSERT_EQ(callback_data_2.call_counter, 1); |
| 209 | 195 |
| 210 ASSERT_SUBTEST_SUCCESS( | 196 ASSERT_SUBTEST_SUCCESS(VerifyNetworkList(callback_data_2.network_list)); |
| 211 VerifyNetworkListResource(callback_data_2.list_resource)); | |
| 212 | 197 |
| 213 PASS(); | 198 PASS(); |
| 214 } | 199 } |
| 215 | 200 |
| 216 std::string TestNetworkMonitorPrivate::TestDeleteInCallback() { | 201 std::string TestNetworkMonitorPrivate::TestDeleteInCallback() { |
| 217 CallbackData callback_data(instance_->pp_instance()); | 202 CallbackData callback_data(instance_->pp_instance()); |
| 218 | 203 |
| 219 pp::NetworkMonitorPrivate* network_monitor = new pp::NetworkMonitorPrivate( | 204 pp::NetworkMonitorPrivate* network_monitor = new pp::NetworkMonitorPrivate( |
| 220 instance_, &TestCallback, &callback_data); | 205 instance_, &TestCallback, &callback_data); |
| 221 callback_data.delete_monitor = true; | 206 callback_data.delete_monitor = true; |
| 222 callback_data.monitor = network_monitor; | 207 callback_data.monitor = network_monitor; |
| 223 | 208 |
| 224 callback_data.event.Wait(); | 209 callback_data.event.Wait(); |
| 225 ASSERT_EQ(callback_data.call_counter, 1); | 210 ASSERT_EQ(callback_data.call_counter, 1); |
| 226 | 211 |
| 227 ASSERT_SUBTEST_SUCCESS( | 212 ASSERT_SUBTEST_SUCCESS(VerifyNetworkList(callback_data.network_list)); |
| 228 VerifyNetworkListResource(callback_data.list_resource)); | |
| 229 | 213 |
| 230 PASS(); | 214 PASS(); |
| 231 } | 215 } |
| 232 | 216 |
| 233 std::string TestNetworkMonitorPrivate::TestListObserver() { | 217 std::string TestNetworkMonitorPrivate::TestListObserver() { |
| 234 TestNetworkListObserver observer(instance_); | 218 TestNetworkListObserver observer(instance_); |
| 235 observer.event.Wait(); | 219 observer.event.Wait(); |
| 236 ASSERT_SUBTEST_SUCCESS(VerifyNetworkList(observer.current_list)); | 220 ASSERT_SUBTEST_SUCCESS(VerifyNetworkList(observer.current_list)); |
| 237 PASS(); | 221 PASS(); |
| 238 } | 222 } |
| OLD | NEW |