Index: ppapi/proxy/ppp_messaging_proxy_unittest.cc |
=================================================================== |
--- ppapi/proxy/ppp_messaging_proxy_unittest.cc (revision 117413) |
+++ ppapi/proxy/ppp_messaging_proxy_unittest.cc (working copy) |
@@ -1,4 +1,4 @@ |
-// Copyright (c) 2012 The Chromium Authors. All rights reserved. |
+// Copyright (c) 2011 The Chromium Authors. All rights reserved. |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
@@ -41,15 +41,38 @@ |
&HandleMessage |
}; |
+// Define a fake PPB_Var for the host side so that we can send a string var. |
+void AddRef(PP_Var /*var*/) { |
+} |
+void Release(PP_Var /*var*/) { |
+} |
+PP_Var VarFromUtf8(const char* /*data*/, uint32_t len) { |
+ return PP_MakeUndefined(); |
+} |
+// No matter what id we're given, always provide kTestString and its length. |
+const std::string kTestString = "Hello world!"; |
+const char* VarToUtf8(PP_Var /*var*/, uint32_t* len) { |
+ *len = kTestString.size(); |
+ return kTestString.c_str(); |
+} |
+ |
+PPB_Var ppb_var_mock = { |
+ &AddRef, |
+ &Release, |
+ &VarFromUtf8, |
+ &VarToUtf8 |
+}; |
+ |
} // namespace |
class PPP_Messaging_ProxyTest : public TwoWayTest { |
public: |
- PPP_Messaging_ProxyTest() |
- : TwoWayTest(TwoWayTest::TEST_PPP_INTERFACE) { |
- plugin().RegisterTestInterface(PPP_MESSAGING_INTERFACE, |
- &ppp_messaging_mock); |
- } |
+ PPP_Messaging_ProxyTest() |
+ : TwoWayTest(TwoWayTest::TEST_PPP_INTERFACE) { |
+ plugin().RegisterTestInterface(PPP_MESSAGING_INTERFACE, |
+ &ppp_messaging_mock); |
+ host().RegisterTestInterface(PPB_VAR_INTERFACE, &ppb_var_mock); |
+ } |
}; |
TEST_F(PPP_Messaging_ProxyTest, SendMessages) { |
@@ -97,22 +120,17 @@ |
EXPECT_EQ(expected_var.type, received_var.type); |
EXPECT_EQ(expected_var.value.as_double, received_var.value.as_double); |
- const std::string kTestString("Hello world!"); |
- expected_var = StringVar::StringToPPVar(kTestString); |
+ expected_var.type = PP_VARTYPE_STRING; |
+ expected_var.value.as_id = 1979; |
ResetReceived(); |
ppp_messaging->HandleMessage(expected_instance, expected_var); |
- // Now release the var, and the string should go away (because the ref |
- // count should be one). |
- host().var_tracker().ReleaseVar(expected_var); |
- EXPECT_FALSE(StringVar::FromPPVar(expected_var)); |
- |
handle_message_called.Wait(); |
EXPECT_EQ(expected_instance, received_instance); |
EXPECT_EQ(expected_var.type, received_var.type); |
- Var* received_string = plugin().var_tracker().GetVar(received_var); |
+ |
+ StringVar* received_string = StringVar::FromPPVar(received_var); |
ASSERT_TRUE(received_string); |
- ASSERT_TRUE(received_string->AsStringVar()); |
- EXPECT_EQ(kTestString, received_string->AsStringVar()->value()); |
+ EXPECT_EQ(kTestString, received_string->value()); |
// Now release the var, and the string should go away (because the ref |
// count should be one). |
plugin().var_tracker().ReleaseVar(received_var); |