ipc: Move BasicMessageTest into ipc_message_unittest.cc

This should fix viettrunluu's TODO in ipc_channel_unittest.cc

BUG=None
TEST=ipc_tests --gtest_filter=IPCMessageTest.BasicMessageTest
[email protected]

Review URL: https://codereview.chromium.org/1257833002

Cr-Commit-Position: refs/heads/master@{#340495}
diff --git a/ipc/ipc_message_unittest.cc b/ipc/ipc_message_unittest.cc
index 885ac2e..5d09a01 100644
--- a/ipc/ipc_message_unittest.cc
+++ b/ipc/ipc_message_unittest.cc
@@ -7,6 +7,7 @@
 #include <string.h>
 
 #include "base/memory/scoped_ptr.h"
+#include "base/strings/utf_string_conversions.h"
 #include "base/values.h"
 #include "ipc/ipc_message_utils.h"
 #include "testing/gtest/include/gtest/gtest.h"
@@ -26,6 +27,37 @@
 
 namespace {
 
+TEST(IPCMessageTest, BasicMessageTest) {
+  int v1 = 10;
+  std::string v2("foobar");
+  base::string16 v3(base::ASCIIToUTF16("hello world"));
+
+  IPC::Message m(0, 1, IPC::Message::PRIORITY_NORMAL);
+  EXPECT_TRUE(m.WriteInt(v1));
+  EXPECT_TRUE(m.WriteString(v2));
+  EXPECT_TRUE(m.WriteString16(v3));
+
+  base::PickleIterator iter(m);
+
+  int vi;
+  std::string vs;
+  base::string16 vs16;
+
+  EXPECT_TRUE(iter.ReadInt(&vi));
+  EXPECT_EQ(v1, vi);
+
+  EXPECT_TRUE(iter.ReadString(&vs));
+  EXPECT_EQ(v2, vs);
+
+  EXPECT_TRUE(iter.ReadString16(&vs16));
+  EXPECT_EQ(v3, vs16);
+
+  // should fail
+  EXPECT_FALSE(iter.ReadInt(&vi));
+  EXPECT_FALSE(iter.ReadString(&vs));
+  EXPECT_FALSE(iter.ReadString16(&vs16));
+}
+
 TEST(IPCMessageTest, ListValue) {
   base::ListValue input;
   input.Set(0, new base::FundamentalValue(42.42));