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

Unified Diff: ppapi/tests/test_network_monitor_private.cc

Issue 23453025: Refactor PPB_NetworkMonitor_Private interface to use CompletionCallback. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 3 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 a945251d3516521d0f313b12d33e14b10ffdd05c..f807e15f115e51d5cafcd130a8dd06c71b1e38e4 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,63 @@
#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) {
+class CallbackHandler {
+ public:
+ explicit CallbackHandler(PP_Instance instance)
+ : event_(instance),
+ call_counter_(0),
+ monitor_to_delete_(NULL),
+ result_(PP_ERROR_FAILED),
+ callback_factory_(this) {
}
- ~CallbackData() {
+ ~CallbackHandler() {
}
- 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++;
+ void DeleteMonitorWhenCalled(pp::NetworkMonitorPrivate* monitor) {
+ monitor_to_delete_ = monitor;
+ }
- data->network_list = pp::NetworkListPrivate(pp::PASS_REF, pp_network_list);
+ pp::CompletionCallbackWithOutput<pp::NetworkListPrivate> GetCallback() {
+ return callback_factory_.NewCallbackWithOutput(
+ &CallbackHandler::OnNetworkList);
+ }
- if (data->delete_monitor)
- delete data->monitor;
+ void Wait() {
+ event_.Wait();
+ }
- if (data->call_counter == 1)
- data->event.Signal();
-}
+ int call_counter() const { return call_counter_; }
+ int result() const { return result_; }
+ const pp::NetworkListPrivate& list() const { return list_; }
-class TestNetworkListObserver : public pp::NetworkListObserverPrivate {
- public:
- explicit TestNetworkListObserver(const pp::InstanceHandle& instance)
- : pp::NetworkListObserverPrivate(instance),
- event(instance.pp_instance()) {
- }
- virtual void OnNetworkListChanged(const pp::NetworkListPrivate& list) {
- current_list = list;
- event.Signal();
+ private:
+ void OnNetworkList(int32_t result, const pp::NetworkListPrivate& list) {
+ call_counter_++;
+
+ result_ = result;
+ list_ = list;
+
+ if (monitor_to_delete_) {
+ delete monitor_to_delete_;
+ monitor_to_delete_ = NULL;
+ }
+
+ if (call_counter_ == 1)
+ event_.Signal();
}
- pp::NetworkListPrivate current_list;
- NestedEvent event;
+ NestedEvent event_;
+ int call_counter_;
+ pp::NetworkListPrivate list_;
+ pp::NetworkMonitorPrivate* monitor_to_delete_;
+ int32_t result_;
+
+ pp::CompletionCallbackFactory<CallbackHandler> callback_factory_;
};
} // namespace
@@ -80,7 +90,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 +169,51 @@ std::string TestNetworkMonitorPrivate::VerifyNetworkList(
}
std::string TestNetworkMonitorPrivate::TestBasic() {
- 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);
+ CallbackHandler callback_handler(instance_->pp_instance());
yzshen1 2013/09/04 19:52:01 Please consider using TestCompletionCallbackWithOu
Sergey Ulanov 2013/09/04 22:22:32 Done.
+ pp::NetworkMonitorPrivate network_monitor(instance_);
+ network_monitor.UpdateNetworkList(callback_handler.GetCallback());
+ callback_handler.Wait();
- ASSERT_SUBTEST_SUCCESS(VerifyNetworkList(callback_data.network_list));
+ ASSERT_EQ(callback_handler.call_counter(), 1);
+ ASSERT_EQ(callback_handler.result(), PP_OK);
+ ASSERT_SUBTEST_SUCCESS(VerifyNetworkList(callback_handler.list()));
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));
+ CallbackHandler callback_handler(instance_->pp_instance());
+ pp::NetworkMonitorPrivate network_monitor(instance_);
+ network_monitor.UpdateNetworkList(callback_handler.GetCallback());
+ callback_handler.Wait();
- CallbackData callback_data_2(instance_->pp_instance());
+ ASSERT_EQ(callback_handler.call_counter(), 1);
+ ASSERT_EQ(callback_handler.result(), PP_OK);
+ ASSERT_SUBTEST_SUCCESS(VerifyNetworkList(callback_handler.list()));
- pp::NetworkMonitorPrivate network_monitor_2(
- instance_, &TestCallback, &callback_data_2);
- callback_data_2.event.Wait();
- ASSERT_EQ(callback_data_2.call_counter, 1);
+ CallbackHandler callback_handler_2(instance_->pp_instance());
+ pp::NetworkMonitorPrivate network_monitor_2(instance_);
+ network_monitor_2.UpdateNetworkList(callback_handler_2.GetCallback());
+ callback_handler_2.Wait();
- ASSERT_SUBTEST_SUCCESS(VerifyNetworkList(callback_data_2.network_list));
+ ASSERT_EQ(callback_handler_2.call_counter(), 1);
+ ASSERT_EQ(callback_handler_2.result(), PP_OK);
+ ASSERT_SUBTEST_SUCCESS(VerifyNetworkList(callback_handler_2.list()));
PASS();
}
std::string TestNetworkMonitorPrivate::TestDeleteInCallback() {
- CallbackData callback_data(instance_->pp_instance());
+ CallbackHandler callback_handler(instance_->pp_instance());
+ pp::NetworkMonitorPrivate* network_monitor =
+ new pp::NetworkMonitorPrivate(instance_);
+ callback_handler.DeleteMonitorWhenCalled(network_monitor);
+ network_monitor->UpdateNetworkList(callback_handler.GetCallback());
+ callback_handler.Wait();
- 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();
-}
+ ASSERT_EQ(callback_handler.call_counter(), 1);
+ ASSERT_EQ(callback_handler.result(), PP_OK);
+ ASSERT_SUBTEST_SUCCESS(VerifyNetworkList(callback_handler.list()));
-std::string TestNetworkMonitorPrivate::TestListObserver() {
- TestNetworkListObserver observer(instance_);
- observer.event.Wait();
- ASSERT_SUBTEST_SUCCESS(VerifyNetworkList(observer.current_list));
PASS();
}

Powered by Google App Engine
This is Rietveld 408576698