Index: ppapi/tests/test_network_monitor_private.cc |
=================================================================== |
--- ppapi/tests/test_network_monitor_private.cc (revision 125765) |
+++ ppapi/tests/test_network_monitor_private.cc (working copy) |
@@ -1,168 +0,0 @@ |
-// Copyright (c) 2012 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#include "ppapi/tests/test_network_monitor_private.h" |
- |
-#include <string.h> |
- |
-#include "ppapi/cpp/private/network_list_private.h" |
-#include "ppapi/cpp/private/network_monitor_private.h" |
-#include "ppapi/tests/testing_instance.h" |
-#include "ppapi/tests/test_utils.h" |
-#include "ppapi/cpp/module.h" |
- |
-REGISTER_TEST_CASE(NetworkMonitorPrivate); |
- |
-namespace { |
- |
-struct CallbackData { |
- explicit CallbackData(PP_Instance instance) |
- : call_counter(0), |
- completion_callback(instance), |
- list_resource(0) { |
- } |
- ~CallbackData() { |
- if (list_resource) |
- pp::Module::Get()->core()->ReleaseResource(list_resource); |
- } |
- int call_counter; |
- TestCompletionCallback completion_callback; |
- PP_Resource list_resource; |
-}; |
- |
-void TestCallback(void* user_data, PP_Resource network_list) { |
- CallbackData* data = static_cast<CallbackData*>(user_data); |
- data->call_counter++; |
- |
- if (data->list_resource) |
- pp::Module::Get()->core()->ReleaseResource(data->list_resource); |
- data->list_resource = network_list; |
- |
- // Invoke completion callback only for the first change notification. |
- if (data->call_counter == 1) |
- static_cast<pp::CompletionCallback>(data->completion_callback).Run(PP_OK); |
-} |
- |
-} // namespace |
- |
-TestNetworkMonitorPrivate::TestNetworkMonitorPrivate(TestingInstance* instance) |
- : TestCase(instance) { |
-} |
- |
-bool TestNetworkMonitorPrivate::Init() { |
- if (!pp::NetworkMonitorPrivate::IsAvailable()) |
- return false; |
- |
- return true; |
-} |
- |
-void TestNetworkMonitorPrivate::RunTests(const std::string& filter) { |
- RUN_TEST_FORCEASYNC_AND_NOT(Basic, filter); |
- RUN_TEST_FORCEASYNC_AND_NOT(2Monitors, filter); |
-} |
- |
-std::string TestNetworkMonitorPrivate::VerifyNetworkList( |
- PP_Resource network_resource) { |
- pp::NetworkListPrivate network_list(network_resource); |
- |
- // Verify that there is at least one network interface. |
- size_t count = network_list.GetCount(); |
- ASSERT_TRUE(count >= 1U); |
- |
- // Iterate over all interfaces and verify their properties. |
- for (size_t iface = 0; iface < count; ++iface) { |
- // Verify that the first interface has at least one address. |
- std::vector<PP_NetAddress_Private> addresses; |
- network_list.GetIpAddresses(iface, &addresses); |
- ASSERT_TRUE(addresses.size() >= 1U); |
- // Verify that the addresses are valid. |
- for (size_t i = 0; i < addresses.size(); ++i) { |
- ASSERT_TRUE(addresses[i].size == 4 || addresses[i].size == 16); |
- |
- // Verify that the address is not zero. |
- size_t j; |
- for (j = 0; j < addresses[i].size; ++j) { |
- if (addresses[i].data[j] != 0) |
- break; |
- } |
- ASSERT_TRUE(j != addresses[i].size); |
- } |
- |
- // Verify that each interface has a unique name and a display name. |
- ASSERT_FALSE(network_list.GetName(iface).empty()); |
- ASSERT_FALSE(network_list.GetDisplayName(iface).empty()); |
- |
- PP_NetworkListType_Private type = network_list.GetType(iface); |
- ASSERT_TRUE(type >= PP_NETWORKLIST_UNKNOWN); |
- ASSERT_TRUE(type <= PP_NETWORKLIST_CELLULAR); |
- |
- PP_NetworkListState_Private state = network_list.GetState(iface); |
- ASSERT_TRUE(state >= PP_NETWORKLIST_DOWN); |
- ASSERT_TRUE(state <= PP_NETWORKLIST_UP); |
- } |
- |
- // Try to call GetIpAddresses() without C++ wrapper and verify that |
- // it always returns correct value. |
- const PPB_NetworkList_Private* interface = |
- static_cast<const PPB_NetworkList_Private*>( |
- pp::Module::Get()->GetBrowserInterface( |
- PPB_NETWORKLIST_PRIVATE_INTERFACE)); |
- ASSERT_TRUE(interface); |
- std::vector<PP_NetAddress_Private> addresses; |
- network_list.GetIpAddresses(0, &addresses); |
- size_t address_count = addresses.size(); |
- addresses.resize(addresses.size() + 3); |
- for (size_t i = 0; i < addresses.size(); ++i) { |
- const char kFillValue = 123; |
- memset(&addresses.front(), kFillValue, |
- addresses.size() * sizeof(PP_NetAddress_Private)); |
- int result = interface->GetIpAddresses(network_resource, 0, |
- &addresses.front(), i); |
- ASSERT_EQ(result, static_cast<int>(address_count)); |
- |
- // Verify that nothing outside the buffer was touched. |
- for (char* pos = reinterpret_cast<char*>(&addresses[result]); |
- pos != reinterpret_cast<char*>(&addresses[0] + addresses.size()); |
- ++pos) { |
- ASSERT_TRUE(*pos == kFillValue); |
- } |
- } |
- |
- PASS(); |
-} |
- |
-std::string TestNetworkMonitorPrivate::TestBasic() { |
- CallbackData callback_data(instance_->pp_instance()); |
- |
- pp::NetworkMonitorPrivate network_monitor( |
- instance_, &TestCallback, reinterpret_cast<void*>(&callback_data)); |
- ASSERT_EQ(callback_data.completion_callback.WaitForResult(), PP_OK); |
- ASSERT_EQ(callback_data.call_counter, 1); |
- |
- ASSERT_SUBTEST_SUCCESS(VerifyNetworkList(callback_data.list_resource)); |
- |
- PASS(); |
-} |
- |
-std::string TestNetworkMonitorPrivate::Test2Monitors() { |
- CallbackData callback_data(instance_->pp_instance()); |
- |
- pp::NetworkMonitorPrivate network_monitor( |
- instance_, &TestCallback, reinterpret_cast<void*>(&callback_data)); |
- ASSERT_EQ(callback_data.completion_callback.WaitForResult(), PP_OK); |
- ASSERT_EQ(callback_data.call_counter, 1); |
- |
- ASSERT_SUBTEST_SUCCESS(VerifyNetworkList(callback_data.list_resource)); |
- |
- CallbackData callback_data_2(instance_->pp_instance()); |
- |
- pp::NetworkMonitorPrivate network_monitor_2( |
- instance_, &TestCallback, reinterpret_cast<void*>(&callback_data_2)); |
- ASSERT_EQ(callback_data_2.completion_callback.WaitForResult(), PP_OK); |
- ASSERT_EQ(callback_data_2.call_counter, 1); |
- |
- ASSERT_SUBTEST_SUCCESS(VerifyNetworkList(callback_data_2.list_resource)); |
- |
- PASS(); |
-} |