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

Side by Side Diff: chromeos/dbus/ibus/ibus_object_unittest.cc

Issue 10384141: Extends IBusObject. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Address comments Created 8 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 unified diff | Download patch
« no previous file with comments | « chromeos/dbus/ibus/ibus_object.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 // TODO(nona): Add more test case, especially fail case. 4 // TODO(nona): Add more test case, especially fail case.
5 5
6 #include "chromeos/dbus/ibus/ibus_object.h" 6 #include "chromeos/dbus/ibus/ibus_object.h"
7 7
8 #include <string> 8 #include <string>
9 #include "base/logging.h" 9 #include "base/logging.h"
10 #include "base/memory/scoped_ptr.h" 10 #include "base/memory/scoped_ptr.h"
11 #include "dbus/message.h" 11 #include "dbus/message.h"
12 #include "testing/gtest/include/gtest/gtest.h" 12 #include "testing/gtest/include/gtest/gtest.h"
13 13
14 namespace chromeos { 14 namespace chromeos {
15 // TODO(nona): Remove ibus namespace after complete libibus removal.
16 namespace ibus {
15 17
16 TEST(IBusObjectTest, WriteReadTest) { 18 TEST(IBusObjectTest, WriteReadTest) {
17 scoped_ptr<dbus::Response> message(dbus::Response::CreateEmpty()); 19 scoped_ptr<dbus::Response> message(dbus::Response::CreateEmpty());
18 dbus::MessageWriter writer(message.get()); 20 dbus::MessageWriter writer(message.get());
19 21
20 const char kSampleTypeName1[] = "Sample Type Name 1"; 22 const char kSampleTypeName1[] = "Sample Type Name 1";
21 const char kSampleTypeName2[] = "Sample Type Name 2"; 23 const char kSampleTypeName2[] = "Sample Type Name 2";
22 const char kSampleText1[] = "Sample Text 1"; 24 const char kSampleText1[] = "Sample Text 1";
23 const char kSampleText2[] = "Sample Text 2"; 25 const char kSampleText2[] = "Sample Text 2";
24 const uint32 kSampleUint32 = 12345UL; 26 const uint32 kSampleUint32 = 12345UL;
27 const int32 kSampleInt32 = 54321;
28 const bool kSampleBool = false;
25 const uint32 kSampleArrayOfUint32Count = 10UL; 29 const uint32 kSampleArrayOfUint32Count = 10UL;
26 30
27 // Create ibus object. 31 // Create ibus object.
28 IBusObjectWriter ibus_object_writer(kSampleTypeName1, "suauv", &writer); 32 IBusObjectWriter ibus_object_writer(kSampleTypeName1, "suibauv", &writer);
29 ibus_object_writer.AppendString(kSampleText1); 33 ibus_object_writer.AppendString(kSampleText1);
30 ibus_object_writer.AppendUint32(kSampleUint32); 34 ibus_object_writer.AppendUint32(kSampleUint32);
35 ibus_object_writer.AppendInt32(kSampleInt32);
36 ibus_object_writer.AppendBool(kSampleBool);
31 dbus::MessageWriter array_writer(NULL); 37 dbus::MessageWriter array_writer(NULL);
32 ibus_object_writer.OpenArray("u", &array_writer); 38 ibus_object_writer.OpenArray("u", &array_writer);
33 for (uint32 i = 0; i < kSampleArrayOfUint32Count; ++i) 39 for (uint32 i = 0; i < kSampleArrayOfUint32Count; ++i)
34 array_writer.AppendUint32(i); 40 array_writer.AppendUint32(i);
35 ibus_object_writer.CloseContainer(&array_writer); 41 ibus_object_writer.CloseContainer(&array_writer);
36 IBusObjectWriter ibus_nested_object_writer(kSampleTypeName2, "s", NULL); 42 IBusObjectWriter ibus_nested_object_writer(kSampleTypeName2, "s", NULL);
37 ibus_object_writer.AppendIBusObject(&ibus_nested_object_writer); 43 ibus_object_writer.AppendIBusObject(&ibus_nested_object_writer);
38 ibus_nested_object_writer.AppendString(kSampleText2); 44 ibus_nested_object_writer.AppendString(kSampleText2);
39 ibus_object_writer.CloseAll(); 45 ibus_object_writer.CloseAll();
40 46
41 // Read ibus_object. 47 // Read ibus_object.
42 dbus::MessageReader reader(message.get()); 48 dbus::MessageReader reader(message.get());
43 IBusObjectReader ibus_object_reader(kSampleTypeName1, &reader); 49 IBusObjectReader ibus_object_reader(kSampleTypeName1, &reader);
44 ASSERT_TRUE(ibus_object_reader.Init()); 50 ASSERT_TRUE(ibus_object_reader.Init());
45 // Check the first string value. 51 // Check the first string value.
46 std::string expected_string; 52 std::string expected_string;
47 ASSERT_TRUE(ibus_object_reader.PopString(&expected_string)); 53 ASSERT_TRUE(ibus_object_reader.PopString(&expected_string));
48 EXPECT_EQ(kSampleText1, expected_string); 54 EXPECT_EQ(kSampleText1, expected_string);
49 // Check the second uint32 value. 55 // Check the second uint32 value.
50 uint32 expected_uint32; 56 uint32 expected_uint32 = 0UL;
51 ASSERT_TRUE(ibus_object_reader.PopUint32(&expected_uint32)); 57 ASSERT_TRUE(ibus_object_reader.PopUint32(&expected_uint32));
52 EXPECT_EQ(kSampleUint32, expected_uint32); 58 EXPECT_EQ(kSampleUint32, expected_uint32);
53 // Check the third value which is array of uint32. 59 // Check the third int value.
60 int32 expected_int32 = 0;
61 ASSERT_TRUE(ibus_object_reader.PopInt32(&expected_int32));
62 EXPECT_EQ(kSampleInt32, expected_int32);
63 // Check the fourth boolean value.
64 bool expected_bool = true;
65 ASSERT_TRUE(ibus_object_reader.PopBool(&expected_bool));
66 EXPECT_EQ(kSampleBool, expected_bool);
67 // Check the fifth value which is array of uint32.
54 dbus::MessageReader array_reader(NULL); 68 dbus::MessageReader array_reader(NULL);
55 ASSERT_TRUE(ibus_object_reader.PopArray(&array_reader)); 69 ASSERT_TRUE(ibus_object_reader.PopArray(&array_reader));
56 for (uint32 i = 0; i < kSampleArrayOfUint32Count; ++i) { 70 for (uint32 i = 0; i < kSampleArrayOfUint32Count; ++i) {
57 uint32 expected_uint32; 71 uint32 expected_uint32 = 0;
58 ASSERT_TRUE(array_reader.PopUint32(&expected_uint32)); 72 ASSERT_TRUE(array_reader.PopUint32(&expected_uint32));
59 EXPECT_EQ(i, expected_uint32); 73 EXPECT_EQ(i, expected_uint32);
60 } 74 }
61 // Check the fourth value which is IBusObject. 75 // Check the sixth value which is IBusObject.
62 IBusObjectReader ibus_nested_object_reader(kSampleTypeName2, NULL); 76 IBusObjectReader ibus_nested_object_reader(kSampleTypeName2, NULL);
63 ibus_object_reader.PopIBusObject(&ibus_nested_object_reader); 77 ibus_object_reader.PopIBusObject(&ibus_nested_object_reader);
64 std::string expected_text2; 78 std::string expected_text2;
65 ASSERT_TRUE(ibus_nested_object_reader.PopString(&expected_text2)); 79 ASSERT_TRUE(ibus_nested_object_reader.PopString(&expected_text2));
66 EXPECT_EQ(kSampleText2, expected_text2); 80 EXPECT_EQ(kSampleText2, expected_text2);
67 81
68 EXPECT_FALSE(ibus_nested_object_reader.HasMoreData()); 82 EXPECT_FALSE(ibus_nested_object_reader.HasMoreData());
69 EXPECT_FALSE(ibus_object_reader.HasMoreData()); 83 EXPECT_FALSE(ibus_object_reader.HasMoreData());
70 EXPECT_FALSE(array_reader.HasMoreData()); 84 EXPECT_FALSE(array_reader.HasMoreData());
71 EXPECT_FALSE(reader.HasMoreData()); 85 EXPECT_FALSE(reader.HasMoreData());
72 } 86 }
73 87
74 TEST(IBusObjectTest, EmptyEntryTest) { 88 TEST(IBusObjectTest, EmptyEntryTest) {
75 const char kSampleTypeName[] = "Empty IBusObject Name"; 89 const char kSampleTypeName[] = "Empty IBusObject Name";
76 scoped_ptr<dbus::Response> message(dbus::Response::CreateEmpty()); 90 scoped_ptr<dbus::Response> message(dbus::Response::CreateEmpty());
77 91
78 // Write empty IBusObject. 92 // Write empty IBusObject.
79 dbus::MessageWriter writer(message.get()); 93 dbus::MessageWriter writer(message.get());
80 IBusObjectWriter ibus_object_writer(kSampleTypeName, "", &writer); 94 IBusObjectWriter ibus_object_writer(kSampleTypeName, "", &writer);
81 ibus_object_writer.CloseAll(); 95 ibus_object_writer.CloseAll();
82 96
83 // Read empty IBusObject. 97 // Read empty IBusObject.
84 dbus::MessageReader reader(message.get()); 98 dbus::MessageReader reader(message.get());
85 IBusObjectReader ibus_object_reader(kSampleTypeName, &reader); 99 IBusObjectReader ibus_object_reader(kSampleTypeName, &reader);
86 ASSERT_TRUE(ibus_object_reader.Init()); 100 ASSERT_TRUE(ibus_object_reader.Init());
87 EXPECT_FALSE(ibus_object_reader.HasMoreData()); 101 EXPECT_FALSE(ibus_object_reader.HasMoreData());
88 } 102 }
89 103
104 TEST(IBusObjectTest, PopAppendIBusTextTest) {
105 const char kSampleTypeName[] = "Empty IBusObject Name";
106 const char kSampleString[] = "Sapmle String";
107 IBusText::SelectionAttribute selection_attribute;
108 selection_attribute.start_index = 0UL;
109 selection_attribute.end_index = 10UL;
110 scoped_ptr<dbus::Response> message(dbus::Response::CreateEmpty());
111
112 // Write IBusText.
113 dbus::MessageWriter writer(message.get());
114 IBusObjectWriter ibus_object_writer(kSampleTypeName, "v", &writer);
115 IBusText ibus_text;
116 ibus_text.mutable_selection_attributes()->push_back(selection_attribute);
117 ibus_text.set_text(kSampleString);
118 ibus_object_writer.AppendIBusText(ibus_text);
119 ibus_object_writer.CloseAll();
120
121 // Read IBusText;
122 dbus::MessageReader reader(message.get());
123 IBusObjectReader ibus_object_reader(kSampleTypeName, &reader);
124 IBusText result_text;
125 ASSERT_TRUE(ibus_object_reader.Init());
126 ASSERT_TRUE(ibus_object_reader.PopIBusText(&result_text));
127 EXPECT_FALSE(ibus_object_reader.HasMoreData());
128 EXPECT_EQ(kSampleString, result_text.text());
129 const std::vector<IBusText::SelectionAttribute>& selection_attributes =
130 result_text.selection_attributes();
131 ASSERT_EQ(1UL, selection_attributes.size());
132 EXPECT_EQ(selection_attribute.start_index,
133 selection_attributes[0].start_index);
134 EXPECT_EQ(selection_attribute.end_index,
135 selection_attributes[0].end_index);
136 }
137
138 TEST(IBusObjectTest, PopAppendStringAsIBusText) {
139 const char kSampleTypeName[] = "Empty IBusObject Name";
140 const char kSampleString[] = "Sapmle String";
141 scoped_ptr<dbus::Response> message(dbus::Response::CreateEmpty());
142
143 // Write string as IBusText.
144 dbus::MessageWriter writer(message.get());
145 IBusObjectWriter ibus_object_writer(kSampleTypeName, "v", &writer);
146 ibus_object_writer.AppendStringAsIBusText(kSampleString);
147 ibus_object_writer.CloseAll();
148
149 // Read string from IBusText;
150 dbus::MessageReader reader(message.get());
151 IBusObjectReader ibus_object_reader(kSampleTypeName, &reader);
152 std::string result_str;
153 ASSERT_TRUE(ibus_object_reader.Init());
154 ASSERT_TRUE(ibus_object_reader.PopStringFromIBusText(&result_str));
155 EXPECT_FALSE(ibus_object_reader.HasMoreData());
156 EXPECT_EQ(kSampleString, result_str);
157 }
158
159 } // namespace ibus
90 } // namespace chromeos 160 } // namespace chromeos
OLDNEW
« no previous file with comments | « chromeos/dbus/ibus/ibus_object.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698