Index: chromeos/dbus/ibus/ibus_object_unittest.cc |
diff --git a/chromeos/dbus/ibus/ibus_object_unittest.cc b/chromeos/dbus/ibus/ibus_object_unittest.cc |
index b4cd2bbdbed25dd21d6dd258a42e58395d7dbae1..574b61d3aa351db2bbaf1f6bec651529764880e7 100644 |
--- a/chromeos/dbus/ibus/ibus_object_unittest.cc |
+++ b/chromeos/dbus/ibus/ibus_object_unittest.cc |
@@ -12,6 +12,8 @@ |
#include "testing/gtest/include/gtest/gtest.h" |
namespace chromeos { |
+// TODO(nona): Remove ibus namespace after complete libibus removal. |
+namespace ibus { |
TEST(IBusObjectTest, WriteReadTest) { |
scoped_ptr<dbus::Response> message(dbus::Response::CreateEmpty()); |
@@ -22,12 +24,16 @@ TEST(IBusObjectTest, WriteReadTest) { |
const char kSampleText1[] = "Sample Text 1"; |
const char kSampleText2[] = "Sample Text 2"; |
const uint32 kSampleUint32 = 12345UL; |
+ const int32 kSampleInt32 = 54321; |
+ const bool kSampleBool = false; |
const uint32 kSampleArrayOfUint32Count = 10UL; |
// Create ibus object. |
- IBusObjectWriter ibus_object_writer(kSampleTypeName1, "suauv", &writer); |
+ IBusObjectWriter ibus_object_writer(kSampleTypeName1, "suibauv", &writer); |
ibus_object_writer.AppendString(kSampleText1); |
ibus_object_writer.AppendUint32(kSampleUint32); |
+ ibus_object_writer.AppendInt32(kSampleInt32); |
+ ibus_object_writer.AppendBool(kSampleBool); |
dbus::MessageWriter array_writer(NULL); |
ibus_object_writer.OpenArray("u", &array_writer); |
for (uint32 i = 0; i < kSampleArrayOfUint32Count; ++i) |
@@ -47,18 +53,26 @@ TEST(IBusObjectTest, WriteReadTest) { |
ASSERT_TRUE(ibus_object_reader.PopString(&expected_string)); |
EXPECT_EQ(kSampleText1, expected_string); |
// Check the second uint32 value. |
- uint32 expected_uint32; |
+ uint32 expected_uint32 = 0UL; |
ASSERT_TRUE(ibus_object_reader.PopUint32(&expected_uint32)); |
EXPECT_EQ(kSampleUint32, expected_uint32); |
- // Check the third value which is array of uint32. |
+ // Check the third int value. |
+ int32 expected_int32 = 0; |
+ ASSERT_TRUE(ibus_object_reader.PopInt32(&expected_int32)); |
+ EXPECT_EQ(kSampleInt32, expected_int32); |
+ // Check the fourth boolean value. |
+ bool expected_bool = true; |
+ ASSERT_TRUE(ibus_object_reader.PopBool(&expected_bool)); |
+ EXPECT_EQ(kSampleBool, expected_bool); |
+ // Check the fifth value which is array of uint32. |
dbus::MessageReader array_reader(NULL); |
ASSERT_TRUE(ibus_object_reader.PopArray(&array_reader)); |
for (uint32 i = 0; i < kSampleArrayOfUint32Count; ++i) { |
- uint32 expected_uint32; |
+ uint32 expected_uint32 = 0; |
ASSERT_TRUE(array_reader.PopUint32(&expected_uint32)); |
EXPECT_EQ(i, expected_uint32); |
} |
- // Check the fourth value which is IBusObject. |
+ // Check the sixth value which is IBusObject. |
IBusObjectReader ibus_nested_object_reader(kSampleTypeName2, NULL); |
ibus_object_reader.PopIBusObject(&ibus_nested_object_reader); |
std::string expected_text2; |
@@ -87,4 +101,60 @@ TEST(IBusObjectTest, EmptyEntryTest) { |
EXPECT_FALSE(ibus_object_reader.HasMoreData()); |
} |
+TEST(IBusObjectTest, PopAppendIBusTextTest) { |
+ const char kSampleTypeName[] = "Empty IBusObject Name"; |
+ const char kSampleString[] = "Sapmle String"; |
+ IBusText::SelectionAttribute selection_attribute; |
+ selection_attribute.start_index = 0UL; |
+ selection_attribute.end_index = 10UL; |
+ scoped_ptr<dbus::Response> message(dbus::Response::CreateEmpty()); |
+ |
+ // Write IBusText. |
+ dbus::MessageWriter writer(message.get()); |
+ IBusObjectWriter ibus_object_writer(kSampleTypeName, "v", &writer); |
+ IBusText ibus_text; |
+ ibus_text.mutable_selection_attributes()->push_back(selection_attribute); |
+ ibus_text.set_text(kSampleString); |
+ ibus_object_writer.AppendIBusText(ibus_text); |
+ ibus_object_writer.CloseAll(); |
+ |
+ // Read IBusText; |
+ dbus::MessageReader reader(message.get()); |
+ IBusObjectReader ibus_object_reader(kSampleTypeName, &reader); |
+ IBusText result_text; |
+ ASSERT_TRUE(ibus_object_reader.Init()); |
+ ASSERT_TRUE(ibus_object_reader.PopIBusText(&result_text)); |
+ EXPECT_FALSE(ibus_object_reader.HasMoreData()); |
+ EXPECT_EQ(kSampleString, result_text.text()); |
+ const std::vector<IBusText::SelectionAttribute>& selection_attributes = |
+ result_text.selection_attributes(); |
+ ASSERT_EQ(1UL, selection_attributes.size()); |
+ EXPECT_EQ(selection_attribute.start_index, |
+ selection_attributes[0].start_index); |
+ EXPECT_EQ(selection_attribute.end_index, |
+ selection_attributes[0].end_index); |
+} |
+ |
+TEST(IBusObjectTest, PopAppendStringAsIBusText) { |
+ const char kSampleTypeName[] = "Empty IBusObject Name"; |
+ const char kSampleString[] = "Sapmle String"; |
+ scoped_ptr<dbus::Response> message(dbus::Response::CreateEmpty()); |
+ |
+ // Write string as IBusText. |
+ dbus::MessageWriter writer(message.get()); |
+ IBusObjectWriter ibus_object_writer(kSampleTypeName, "v", &writer); |
+ ibus_object_writer.AppendStringAsIBusText(kSampleString); |
+ ibus_object_writer.CloseAll(); |
+ |
+ // Read string from IBusText; |
+ dbus::MessageReader reader(message.get()); |
+ IBusObjectReader ibus_object_reader(kSampleTypeName, &reader); |
+ std::string result_str; |
+ ASSERT_TRUE(ibus_object_reader.Init()); |
+ ASSERT_TRUE(ibus_object_reader.PopStringFromIBusText(&result_str)); |
+ EXPECT_FALSE(ibus_object_reader.HasMoreData()); |
+ EXPECT_EQ(kSampleString, result_str); |
+} |
+ |
+} // namespace ibus |
} // namespace chromeos |