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

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
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..1a848a1d0e3e95ffcf507ae80f89a804a2846bc5 100644
--- a/ppapi/tests/test_network_monitor_private.cc
+++ b/ppapi/tests/test_network_monitor_private.cc
@@ -20,7 +20,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 +31,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 +43,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 +67,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(
@@ -166,3 +174,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, reinterpret_cast<void*>(&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();
+}

Powered by Google App Engine
This is Rietveld 408576698