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

Unified Diff: third_party/mojo/src/mojo/public/cpp/bindings/tests/interface_ptr_unittest.cc

Issue 1127293003: Update mojo sdk to rev f84766d3b6420b7cf6a113d9d65d73cb5fe18d90 (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: formatting Created 5 years, 7 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: third_party/mojo/src/mojo/public/cpp/bindings/tests/interface_ptr_unittest.cc
diff --git a/third_party/mojo/src/mojo/public/cpp/bindings/tests/interface_ptr_unittest.cc b/third_party/mojo/src/mojo/public/cpp/bindings/tests/interface_ptr_unittest.cc
index 524b07c64d2e750e2eadb2cca09f52ff41f6d423..09e481242cfd266eb8c8e1788b5d3a9df4a93899 100644
--- a/third_party/mojo/src/mojo/public/cpp/bindings/tests/interface_ptr_unittest.cc
+++ b/third_party/mojo/src/mojo/public/cpp/bindings/tests/interface_ptr_unittest.cc
@@ -8,6 +8,7 @@
#include "mojo/public/cpp/environment/environment.h"
#include "mojo/public/cpp/utility/run_loop.h"
#include "mojo/public/interfaces/bindings/tests/math_calculator.mojom.h"
+#include "mojo/public/interfaces/bindings/tests/sample_interfaces.mojom.h"
#include "mojo/public/interfaces/bindings/tests/sample_service.mojom.h"
#include "testing/gtest/include/gtest/gtest.h"
@@ -176,6 +177,23 @@ class ReentrantServiceImpl : public sample::Service {
Binding<sample::Service> binding_;
};
+class IntegerAccessorImpl : public sample::IntegerAccessor {
+ public:
+ IntegerAccessorImpl() : integer_(0) {}
+ ~IntegerAccessorImpl() override {}
+
+ int64_t integer() const { return integer_; }
+
+ private:
+ // sample::IntegerAccessor implementation.
+ void GetInteger(const GetIntegerCallback& callback) override {
+ callback.Run(integer_, sample::ENUM_VALUE);
+ }
+ void SetInteger(int64_t data, sample::Enum type) override { integer_ = data; }
+
+ int64_t integer_;
+};
+
class InterfacePtrTest : public testing::Test {
public:
~InterfacePtrTest() override { loop_.RunUntilIdle(); }
@@ -248,7 +266,7 @@ TEST_F(InterfacePtrTest, Resettable) {
// Save this so we can test it later.
Handle handle = pipe.handle0.get();
- a = MakeProxy<math::Calculator>(pipe.handle0.Pass());
+ a = MakeProxy(InterfacePtrInfo<math::Calculator>(pipe.handle0.Pass(), 0u));
EXPECT_FALSE(!a);
@@ -266,7 +284,7 @@ TEST_F(InterfacePtrTest, BindInvalidHandle) {
EXPECT_FALSE(ptr.get());
EXPECT_FALSE(ptr);
- ptr.Bind(ScopedMessagePipeHandle());
+ ptr.Bind(InterfacePtrInfo<math::Calculator>());
EXPECT_FALSE(ptr.get());
EXPECT_FALSE(ptr);
}
@@ -374,6 +392,53 @@ TEST_F(InterfacePtrTest, ReentrantWaitForIncomingMethodCall) {
EXPECT_EQ(2, impl.max_call_depth());
}
+TEST_F(InterfacePtrTest, QueryVersion) {
+ IntegerAccessorImpl impl;
+ sample::IntegerAccessorPtr ptr;
+ Binding<sample::IntegerAccessor> binding(&impl, GetProxy(&ptr));
+
+ EXPECT_EQ(0u, ptr.version());
+
+ auto callback = [](uint32_t version) { EXPECT_EQ(3u, version); };
+ ptr.QueryVersion(callback);
+
+ PumpMessages();
+
+ EXPECT_EQ(3u, ptr.version());
+}
+
+TEST_F(InterfacePtrTest, RequireVersion) {
+ IntegerAccessorImpl impl;
+ sample::IntegerAccessorPtr ptr;
+ Binding<sample::IntegerAccessor> binding(&impl, GetProxy(&ptr));
+
+ EXPECT_EQ(0u, ptr.version());
+
+ ptr.RequireVersion(1u);
+ EXPECT_EQ(1u, ptr.version());
+ ptr->SetInteger(123, sample::ENUM_VALUE);
+ PumpMessages();
+ EXPECT_FALSE(ptr.encountered_error());
+ EXPECT_EQ(123, impl.integer());
+
+ ptr.RequireVersion(3u);
+ EXPECT_EQ(3u, ptr.version());
+ ptr->SetInteger(456, sample::ENUM_VALUE);
+ PumpMessages();
+ EXPECT_FALSE(ptr.encountered_error());
+ EXPECT_EQ(456, impl.integer());
+
+ // Require a version that is not supported by the impl side.
+ ptr.RequireVersion(4u);
+ // This value is set to the input of RequireVersion() synchronously.
+ EXPECT_EQ(4u, ptr.version());
+ ptr->SetInteger(789, sample::ENUM_VALUE);
+ PumpMessages();
+ EXPECT_TRUE(ptr.encountered_error());
+ // The call to SetInteger() after RequireVersion(4u) is ignored.
+ EXPECT_EQ(456, impl.integer());
+}
+
class StrongMathCalculatorImpl : public math::Calculator, public ErrorHandler {
public:
StrongMathCalculatorImpl(ScopedMessagePipeHandle handle,
@@ -421,7 +486,7 @@ TEST(StrongConnectorTest, Math) {
&destroyed);
math::CalculatorPtr calc;
- calc.Bind(pipe.handle1.Pass());
+ calc.Bind(InterfacePtrInfo<math::Calculator>(pipe.handle1.Pass(), 0u));
{
// Suppose this is instantiated in a process that has the other end of the
@@ -491,7 +556,7 @@ TEST(WeakConnectorTest, Math) {
WeakMathCalculatorImpl impl(pipe.handle0.Pass(), &error_received, &destroyed);
math::CalculatorPtr calc;
- calc.Bind(pipe.handle1.Pass());
+ calc.Bind(InterfacePtrInfo<math::Calculator>(pipe.handle1.Pass(), 0u));
{
// Suppose this is instantiated in a process that has the other end of the

Powered by Google App Engine
This is Rietveld 408576698