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

Unified Diff: ppapi/tests/test_network_monitor_private.cc

Issue 9677060: Out-of-process implementation of the PPB_NetworkMonitor_Private interface. (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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ppapi/tests/test_network_monitor_private.h ('k') | ppapi/thunk/interfaces_ppb_private.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ppapi/tests/test_network_monitor_private.cc
diff --git a/ppapi/tests/test_network_monitor_private.cc b/ppapi/tests/test_network_monitor_private.cc
index 6b7d49f8d418a2c7843aa9617b346184523999ac..fa87ec1f4b088f403f617ce446711b3d231bcdb1 100644
--- a/ppapi/tests/test_network_monitor_private.cc
+++ b/ppapi/tests/test_network_monitor_private.cc
@@ -6,6 +6,7 @@
#include <string.h>
+#include "ppapi/cpp/private/net_address_private.h"
#include "ppapi/cpp/private/network_list_private.h"
#include "ppapi/cpp/private/network_monitor_private.h"
#include "ppapi/tests/testing_instance.h"
@@ -20,7 +21,9 @@ struct CallbackData {
explicit CallbackData(PP_Instance instance)
: call_counter(0),
completion_callback(instance),
- list_resource(0) {
+ list_resource(0),
+ delete_monitor(false),
+ monitor(NULL) {
}
~CallbackData() {
if (list_resource)
@@ -29,6 +32,8 @@ struct CallbackData {
int call_counter;
TestCompletionCallback completion_callback;
PP_Resource list_resource;
+ bool delete_monitor;
+ pp::NetworkMonitorPrivate* monitor;
};
void TestCallback(void* user_data, PP_Resource network_list) {
@@ -39,6 +44,9 @@ void TestCallback(void* user_data, PP_Resource network_list) {
pp::Module::Get()->core()->ReleaseResource(data->list_resource);
data->list_resource = network_list;
+ if (data->delete_monitor)
+ delete data->monitor;
+
// Invoke completion callback only for the first change notification.
if (data->call_counter == 1)
static_cast<pp::CompletionCallback>(data->completion_callback).Run(PP_OK);
@@ -60,6 +68,7 @@ bool TestNetworkMonitorPrivate::Init() {
void TestNetworkMonitorPrivate::RunTests(const std::string& filter) {
RUN_TEST_FORCEASYNC_AND_NOT(Basic, filter);
RUN_TEST_FORCEASYNC_AND_NOT(2Monitors, filter);
+ RUN_TEST_FORCEASYNC_AND_NOT(DeleteInCallback, filter);
}
std::string TestNetworkMonitorPrivate::VerifyNetworkList(
@@ -78,15 +87,26 @@ std::string TestNetworkMonitorPrivate::VerifyNetworkList(
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);
+ PP_NetAddressFamily_Private family =
+ pp::NetAddressPrivate::GetFamily(addresses[i]);
+
+ ASSERT_TRUE(family == PP_NETADDRESSFAMILY_IPV4 ||
+ family == PP_NETADDRESSFAMILY_IPV6);
+
+ char ip[16] = { 0 };
+ ASSERT_TRUE(pp::NetAddressPrivate::GetAddress(
+ addresses[i], ip, sizeof(ip)));
// Verify that the address is not zero.
size_t j;
- for (j = 0; j < addresses[i].size; ++j) {
- if (addresses[i].data[j] != 0)
+ for (j = 0; j < sizeof(ip); ++j) {
+ if (ip[j] != 0)
break;
}
ASSERT_TRUE(j != addresses[i].size);
+
+ // Verify that port is set to 0.
+ ASSERT_TRUE(pp::NetAddressPrivate::GetPort(addresses[i]) == 0);
}
// Verify that each interface has a unique name and a display name.
@@ -136,7 +156,7 @@ std::string TestNetworkMonitorPrivate::TestBasic() {
CallbackData callback_data(instance_->pp_instance());
pp::NetworkMonitorPrivate network_monitor(
- instance_, &TestCallback, reinterpret_cast<void*>(&callback_data));
+ instance_, &TestCallback, &callback_data);
ASSERT_EQ(callback_data.completion_callback.WaitForResult(), PP_OK);
ASSERT_EQ(callback_data.call_counter, 1);
@@ -149,7 +169,7 @@ std::string TestNetworkMonitorPrivate::Test2Monitors() {
CallbackData callback_data(instance_->pp_instance());
pp::NetworkMonitorPrivate network_monitor(
- instance_, &TestCallback, reinterpret_cast<void*>(&callback_data));
+ instance_, &TestCallback, &callback_data);
ASSERT_EQ(callback_data.completion_callback.WaitForResult(), PP_OK);
ASSERT_EQ(callback_data.call_counter, 1);
@@ -158,7 +178,7 @@ std::string TestNetworkMonitorPrivate::Test2Monitors() {
CallbackData callback_data_2(instance_->pp_instance());
pp::NetworkMonitorPrivate network_monitor_2(
- instance_, &TestCallback, reinterpret_cast<void*>(&callback_data_2));
+ instance_, &TestCallback, &callback_data_2);
ASSERT_EQ(callback_data_2.completion_callback.WaitForResult(), PP_OK);
ASSERT_EQ(callback_data_2.call_counter, 1);
@@ -166,3 +186,19 @@ std::string TestNetworkMonitorPrivate::Test2Monitors() {
PASS();
}
+
+std::string TestNetworkMonitorPrivate::TestDeleteInCallback() {
+ CallbackData callback_data(instance_->pp_instance());
+
+ pp::NetworkMonitorPrivate* network_monitor = new pp::NetworkMonitorPrivate(
+ instance_, &TestCallback, &callback_data);
+ callback_data.delete_monitor = true;
+ callback_data.monitor = network_monitor;
+
+ 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();
+}
« no previous file with comments | « ppapi/tests/test_network_monitor_private.h ('k') | ppapi/thunk/interfaces_ppb_private.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698