diff options
author | sergeyu@chromium.org <sergeyu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-09-06 05:30:25 +0000 |
---|---|---|
committer | sergeyu@chromium.org <sergeyu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-09-06 05:30:25 +0000 |
commit | f14989badd3857c6f8b64671fc3ad6bd7ff60534 (patch) | |
tree | f4213651906175397c71bd7faabdb57e91ca9f66 /ppapi/tests | |
parent | fc8e9de9417b2512dc033f9b71b521d9af9eb870 (diff) | |
download | chromium_src-f14989badd3857c6f8b64671fc3ad6bd7ff60534.zip chromium_src-f14989badd3857c6f8b64671fc3ad6bd7ff60534.tar.gz chromium_src-f14989badd3857c6f8b64671fc3ad6bd7ff60534.tar.bz2 |
Refactor PPB_NetworkMonitor_Private interface to use CompletionCallback.
Previously NetworkMonitor required that a callback is passed to the
Create() method. It was hard to use and inconsistent with other APIs.
Added new UpdateNetworkList() method which accepts a
CompletionCallback to be called when network list changes.
BUG=281781
Review URL: https://chromiumcodereview.appspot.com/23453025
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@221582 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ppapi/tests')
-rw-r--r-- | ppapi/tests/test_network_monitor_private.cc | 122 | ||||
-rw-r--r-- | ppapi/tests/test_network_monitor_private.h | 2 |
2 files changed, 44 insertions, 80 deletions
diff --git a/ppapi/tests/test_network_monitor_private.cc b/ppapi/tests/test_network_monitor_private.cc index a945251..382cbe0 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(); } diff --git a/ppapi/tests/test_network_monitor_private.h b/ppapi/tests/test_network_monitor_private.h index 38016d2..de5c115 100644 --- a/ppapi/tests/test_network_monitor_private.h +++ b/ppapi/tests/test_network_monitor_private.h @@ -26,10 +26,10 @@ class TestNetworkMonitorPrivate : public TestCase { std::string TestBasic(); std::string Test2Monitors(); std::string TestDeleteInCallback(); - std::string TestListObserver(); std::string VerifyNetworkListResource(PP_Resource network_resource); std::string VerifyNetworkList(const pp::NetworkListPrivate& network_list); + }; #endif // PAPPI_TESTS_TEST_NETWORK_MONITOR_PRIVATE_H_ |