summaryrefslogtreecommitdiffstats
path: root/ppapi/tests
diff options
context:
space:
mode:
authorsergeyu@chromium.org <sergeyu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-09-06 05:30:25 +0000
committersergeyu@chromium.org <sergeyu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-09-06 05:30:25 +0000
commitf14989badd3857c6f8b64671fc3ad6bd7ff60534 (patch)
treef4213651906175397c71bd7faabdb57e91ca9f66 /ppapi/tests
parentfc8e9de9417b2512dc033f9b71b521d9af9eb870 (diff)
downloadchromium_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.cc122
-rw-r--r--ppapi/tests/test_network_monitor_private.h2
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_