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

Unified Diff: mojo/public/tests/environment/async_waiter_unittest.cc

Issue 134253004: Mojo: AsyncWaiter and mojo/public/environment (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: add missing files Created 6 years, 11 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: mojo/public/tests/environment/async_waiter_unittest.cc
diff --git a/mojo/public/tests/utility/bindings_support_impl_unittest.cc b/mojo/public/tests/environment/async_waiter_unittest.cc
similarity index 58%
rename from mojo/public/tests/utility/bindings_support_impl_unittest.cc
rename to mojo/public/tests/environment/async_waiter_unittest.cc
index b2c248ccb7e1d4fb568341b2eb57e638f03e51b4..15f2408d8e09ffb64b8af8d3ed416488af5a926c 100644
--- a/mojo/public/tests/utility/bindings_support_impl_unittest.cc
+++ b/mojo/public/tests/environment/async_waiter_unittest.cc
@@ -2,19 +2,18 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#include "mojo/public/utility/bindings_support_impl.h"
+#include "mojo/public/environment/default_async_waiter.h"
-#include "base/basictypes.h"
+#include "mojo/public/environment/environment.h"
#include "mojo/public/system/core_cpp.h"
#include "mojo/public/tests/test_support.h"
-#include "mojo/public/utility/environment.h"
#include "mojo/public/utility/run_loop.h"
#include "testing/gtest/include/gtest/gtest.h"
namespace mojo {
namespace {
-class TestAsyncWaitCallback : public BindingsSupport::AsyncWaitCallback {
+class TestAsyncWaitCallback {
public:
TestAsyncWaitCallback() : result_count_(0), last_result_(MOJO_RESULT_OK) {
}
@@ -24,10 +23,11 @@ class TestAsyncWaitCallback : public BindingsSupport::AsyncWaitCallback {
MojoResult last_result() const { return last_result_; }
- // RunLoopHandler:
- virtual void OnHandleReady(MojoResult result) OVERRIDE {
- result_count_++;
- last_result_ = result;
+ // MojoAsyncWaitCallback:
+ static void OnHandleReady(void* closure, MojoResult result) {
+ TestAsyncWaitCallback* self = static_cast<TestAsyncWaitCallback*>(closure);
+ self->result_count_++;
+ self->last_result_ = result;
}
private:
@@ -37,9 +37,26 @@ class TestAsyncWaitCallback : public BindingsSupport::AsyncWaitCallback {
DISALLOW_COPY_AND_ASSIGN(TestAsyncWaitCallback);
};
-class BindingsSupportImplTest : public testing::Test {
+MojoAsyncWaitID CallAsyncWait(const Handle& handle,
+ MojoWaitFlags flags,
+ TestAsyncWaitCallback* callback) {
+ MojoAsyncWaiter* waiter = GetDefaultAsyncWaiter();
+ return waiter->AsyncWait(waiter,
+ handle.value(),
+ flags,
+ MOJO_DEADLINE_INDEFINITE,
+ &TestAsyncWaitCallback::OnHandleReady,
+ callback);
+}
+
+void CallCancelWait(MojoAsyncWaitID wait_id) {
+ MojoAsyncWaiter* waiter = GetDefaultAsyncWaiter();
+ waiter->CancelWait(waiter, wait_id);
+}
+
+class AsyncWaiterTest : public testing::Test {
public:
- BindingsSupportImplTest() {}
+ AsyncWaiterTest() {}
virtual void SetUp() OVERRIDE {
Test::SetUp();
@@ -56,25 +73,26 @@ class BindingsSupportImplTest : public testing::Test {
scoped_ptr<Environment> environment_;
scoped_ptr<RunLoop> run_loop_;
- DISALLOW_COPY_AND_ASSIGN(BindingsSupportImplTest);
+ DISALLOW_COPY_AND_ASSIGN(AsyncWaiterTest);
};
// Verifies AsyncWaitCallback is notified when pipe is ready.
-TEST_F(BindingsSupportImplTest, CallbackNotified) {
+TEST_F(AsyncWaiterTest, CallbackNotified) {
TestAsyncWaitCallback callback;
MessagePipe test_pipe;
EXPECT_EQ(MOJO_RESULT_OK,
test::WriteEmptyMessage(test_pipe.handle1.get()));
- BindingsSupport::Get()->AsyncWait(test_pipe.handle0.get(),
- MOJO_WAIT_FLAG_READABLE, &callback);
+ CallAsyncWait(test_pipe.handle0.get(),
+ MOJO_WAIT_FLAG_READABLE,
+ &callback);
RunLoop::current()->Run();
EXPECT_EQ(1, callback.result_count());
EXPECT_EQ(MOJO_RESULT_OK, callback.last_result());
}
// Verifies 2 AsyncWaitCallbacks are notified when there pipes are ready.
-TEST_F(BindingsSupportImplTest, TwoCallbacksNotified) {
+TEST_F(AsyncWaiterTest, TwoCallbacksNotified) {
TestAsyncWaitCallback callback1;
TestAsyncWaitCallback callback2;
MessagePipe test_pipe1;
@@ -84,10 +102,9 @@ TEST_F(BindingsSupportImplTest, TwoCallbacksNotified) {
EXPECT_EQ(MOJO_RESULT_OK,
test::WriteEmptyMessage(test_pipe2.handle1.get()));
- BindingsSupport::Get()->AsyncWait(test_pipe1.handle0.get(),
- MOJO_WAIT_FLAG_READABLE, &callback1);
- BindingsSupport::Get()->AsyncWait(test_pipe2.handle0.get(),
- MOJO_WAIT_FLAG_READABLE, &callback2);
+ CallAsyncWait(test_pipe1.handle0.get(), MOJO_WAIT_FLAG_READABLE, &callback1);
+ CallAsyncWait(test_pipe2.handle0.get(), MOJO_WAIT_FLAG_READABLE, &callback2);
+
RunLoop::current()->Run();
EXPECT_EQ(1, callback1.result_count());
EXPECT_EQ(MOJO_RESULT_OK, callback1.last_result());
@@ -96,14 +113,15 @@ TEST_F(BindingsSupportImplTest, TwoCallbacksNotified) {
}
// Verifies cancel works.
-TEST_F(BindingsSupportImplTest, CancelCallback) {
+TEST_F(AsyncWaiterTest, CancelCallback) {
TestAsyncWaitCallback callback;
MessagePipe test_pipe;
EXPECT_EQ(MOJO_RESULT_OK, test::WriteEmptyMessage(test_pipe.handle1.get()));
- BindingsSupport::Get()->CancelWait(
- BindingsSupport::Get()->AsyncWait(test_pipe.handle0.get(),
- MOJO_WAIT_FLAG_READABLE, &callback));
+ CallCancelWait(
+ CallAsyncWait(test_pipe.handle0.get(),
+ MOJO_WAIT_FLAG_READABLE,
+ &callback));
RunLoop::current()->Run();
EXPECT_EQ(0, callback.result_count());
}

Powered by Google App Engine
This is Rietveld 408576698