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 a945251d3516521d0f313b12d33e14b10ffdd05c..382cbe0feac7cf22f628240a82f29fdf1a2e45b4 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/completion_callback.h" |
#include "ppapi/cpp/instance_handle.h" |
#include "ppapi/cpp/module.h" |
#include "ppapi/cpp/net_address.h" |
@@ -13,54 +14,25 @@ |
#include "ppapi/cpp/private/network_monitor_private.h" |
#include "ppapi/tests/testing_instance.h" |
#include "ppapi/tests/test_utils.h" |
-#include "ppapi/utility/private/network_list_observer_private.h" |
REGISTER_TEST_CASE(NetworkMonitorPrivate); |
namespace { |
-struct CallbackData { |
- explicit CallbackData(PP_Instance instance) |
- : event(instance), |
- call_counter(0), |
- delete_monitor(false), |
- monitor(NULL) { |
- } |
- ~CallbackData() { |
- } |
- NestedEvent event; |
- int call_counter; |
- pp::NetworkListPrivate network_list; |
- bool delete_monitor; |
- pp::NetworkMonitorPrivate* monitor; |
-}; |
- |
-void TestCallback(void* user_data, PP_Resource pp_network_list) { |
- CallbackData* data = static_cast<CallbackData*>(user_data); |
- data->call_counter++; |
- |
- data->network_list = pp::NetworkListPrivate(pp::PASS_REF, pp_network_list); |
- |
- if (data->delete_monitor) |
- delete data->monitor; |
- |
- if (data->call_counter == 1) |
- data->event.Signal(); |
-} |
- |
-class TestNetworkListObserver : public pp::NetworkListObserverPrivate { |
+class MonitorDeletionCallbackDelegate |
+ : public TestCompletionCallback::Delegate { |
public: |
- explicit TestNetworkListObserver(const pp::InstanceHandle& instance) |
- : pp::NetworkListObserverPrivate(instance), |
- event(instance.pp_instance()) { |
+ explicit MonitorDeletionCallbackDelegate(pp::NetworkMonitorPrivate* monitor) |
+ : monitor_(monitor) { |
} |
- virtual void OnNetworkListChanged(const pp::NetworkListPrivate& list) { |
- current_list = list; |
- event.Signal(); |
+ |
+ // TestCompletionCallback::Delegate interface. |
+ virtual void OnCallback(void* user_data, int32_t result) { |
+ delete monitor_; |
} |
- pp::NetworkListPrivate current_list; |
- NestedEvent event; |
+ private: |
+ pp::NetworkMonitorPrivate* monitor_; |
}; |
} // namespace |
@@ -80,7 +52,6 @@ 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); |
- RUN_TEST_FORCEASYNC_AND_NOT(ListObserver, filter); |
} |
std::string TestNetworkMonitorPrivate::VerifyNetworkList( |
@@ -160,59 +131,52 @@ std::string TestNetworkMonitorPrivate::VerifyNetworkList( |
} |
std::string TestNetworkMonitorPrivate::TestBasic() { |
- CallbackData callback_data(instance_->pp_instance()); |
+ TestCompletionCallbackWithOutput<pp::NetworkListPrivate> test_callback( |
+ instance_->pp_instance()); |
+ pp::NetworkMonitorPrivate network_monitor(instance_); |
+ test_callback.WaitForResult( |
+ network_monitor.UpdateNetworkList(test_callback.GetCallback())); |
- pp::NetworkMonitorPrivate network_monitor( |
- instance_, &TestCallback, &callback_data); |
- callback_data.event.Wait(); |
- ASSERT_EQ(callback_data.call_counter, 1); |
- |
- ASSERT_SUBTEST_SUCCESS(VerifyNetworkList(callback_data.network_list)); |
+ ASSERT_EQ(test_callback.result(), PP_OK); |
+ ASSERT_SUBTEST_SUCCESS(VerifyNetworkList(test_callback.output())); |
PASS(); |
} |
std::string TestNetworkMonitorPrivate::Test2Monitors() { |
- CallbackData callback_data(instance_->pp_instance()); |
- |
- pp::NetworkMonitorPrivate network_monitor( |
- instance_, &TestCallback, &callback_data); |
- callback_data.event.Wait(); |
- ASSERT_EQ(callback_data.call_counter, 1); |
- |
- ASSERT_SUBTEST_SUCCESS(VerifyNetworkList(callback_data.network_list)); |
+ TestCompletionCallbackWithOutput<pp::NetworkListPrivate> test_callback( |
+ instance_->pp_instance()); |
+ pp::NetworkMonitorPrivate network_monitor(instance_); |
+ test_callback.WaitForResult( |
+ network_monitor.UpdateNetworkList(test_callback.GetCallback())); |
- CallbackData callback_data_2(instance_->pp_instance()); |
+ ASSERT_EQ(test_callback.result(), PP_OK); |
+ ASSERT_SUBTEST_SUCCESS(VerifyNetworkList(test_callback.output())); |
- pp::NetworkMonitorPrivate network_monitor_2( |
- instance_, &TestCallback, &callback_data_2); |
- callback_data_2.event.Wait(); |
- ASSERT_EQ(callback_data_2.call_counter, 1); |
+ TestCompletionCallbackWithOutput<pp::NetworkListPrivate> test_callback_2( |
+ instance_->pp_instance()); |
+ pp::NetworkMonitorPrivate network_monitor_2(instance_); |
+ test_callback_2.WaitForResult( |
+ network_monitor_2.UpdateNetworkList(test_callback_2.GetCallback())); |
- ASSERT_SUBTEST_SUCCESS(VerifyNetworkList(callback_data_2.network_list)); |
+ ASSERT_EQ(test_callback_2.result(), PP_OK); |
+ ASSERT_SUBTEST_SUCCESS(VerifyNetworkList(test_callback_2.output())); |
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; |
- |
- callback_data.event.Wait(); |
- ASSERT_EQ(callback_data.call_counter, 1); |
- |
- ASSERT_SUBTEST_SUCCESS(VerifyNetworkList(callback_data.network_list)); |
- |
- PASS(); |
-} |
+ pp::NetworkMonitorPrivate* network_monitor = |
+ new pp::NetworkMonitorPrivate(instance_); |
+ MonitorDeletionCallbackDelegate deletion_delegate(network_monitor); |
+ TestCompletionCallbackWithOutput<pp::NetworkListPrivate> test_callback( |
+ instance_->pp_instance()); |
+ test_callback.SetDelegate(&deletion_delegate); |
+ test_callback.WaitForResult( |
+ network_monitor->UpdateNetworkList(test_callback.GetCallback())); |
+ |
+ ASSERT_EQ(test_callback.result(), PP_OK); |
+ ASSERT_SUBTEST_SUCCESS(VerifyNetworkList(test_callback.output())); |
-std::string TestNetworkMonitorPrivate::TestListObserver() { |
- TestNetworkListObserver observer(instance_); |
- observer.event.Wait(); |
- ASSERT_SUBTEST_SUCCESS(VerifyNetworkList(observer.current_list)); |
PASS(); |
} |