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

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: Change my mind to add IBusText handling into IBusObject. 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
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 15
16 TEST(IBusObjectTest, WriteReadTest) { 16 TEST(IBusObjectTest, WriteReadTest) {
17 scoped_ptr<dbus::Response> message(dbus::Response::CreateEmpty()); 17 scoped_ptr<dbus::Response> message(dbus::Response::CreateEmpty());
18 dbus::MessageWriter writer(message.get()); 18 dbus::MessageWriter writer(message.get());
19 19
20 const char kSampleTypeName1[] = "Sample Type Name 1"; 20 const char kSampleTypeName1[] = "Sample Type Name 1";
21 const char kSampleTypeName2[] = "Sample Type Name 2"; 21 const char kSampleTypeName2[] = "Sample Type Name 2";
22 const char kSampleText1[] = "Sample Text 1"; 22 const char kSampleText1[] = "Sample Text 1";
23 const char kSampleText2[] = "Sample Text 2"; 23 const char kSampleText2[] = "Sample Text 2";
24 const uint32 kSampleUint32 = 12345UL; 24 const uint32 kSampleUint32 = 12345UL;
25 const int32 kSampleInt32 = 54321;
26 const bool kSampleBool = false;
25 const uint32 kSampleArrayOfUint32Count = 10UL; 27 const uint32 kSampleArrayOfUint32Count = 10UL;
26 28
27 // Create ibus object. 29 // Create ibus object.
28 IBusObjectWriter ibus_object_writer(kSampleTypeName1, "suauv", &writer); 30 IBusObjectWriter ibus_object_writer(kSampleTypeName1, "suibauv", &writer);
29 ibus_object_writer.AppendString(kSampleText1); 31 ibus_object_writer.AppendString(kSampleText1);
30 ibus_object_writer.AppendUint32(kSampleUint32); 32 ibus_object_writer.AppendUint32(kSampleUint32);
33 ibus_object_writer.AppendInt32(kSampleInt32);
34 ibus_object_writer.AppendBool(kSampleBool);
31 dbus::MessageWriter array_writer(NULL); 35 dbus::MessageWriter array_writer(NULL);
32 ibus_object_writer.OpenArray("u", &array_writer); 36 ibus_object_writer.OpenArray("u", &array_writer);
33 for (uint32 i = 0; i < kSampleArrayOfUint32Count; ++i) 37 for (uint32 i = 0; i < kSampleArrayOfUint32Count; ++i)
34 array_writer.AppendUint32(i); 38 array_writer.AppendUint32(i);
35 ibus_object_writer.CloseContainer(&array_writer); 39 ibus_object_writer.CloseContainer(&array_writer);
36 IBusObjectWriter ibus_nested_object_writer(kSampleTypeName2, "s", NULL); 40 IBusObjectWriter ibus_nested_object_writer(kSampleTypeName2, "s", NULL);
37 ibus_object_writer.AppendIBusObject(&ibus_nested_object_writer); 41 ibus_object_writer.AppendIBusObject(&ibus_nested_object_writer);
38 ibus_nested_object_writer.AppendString(kSampleText2); 42 ibus_nested_object_writer.AppendString(kSampleText2);
39 ibus_object_writer.CloseAll(); 43 ibus_object_writer.CloseAll();
40 44
41 // Read ibus_object. 45 // Read ibus_object.
42 dbus::MessageReader reader(message.get()); 46 dbus::MessageReader reader(message.get());
43 IBusObjectReader ibus_object_reader(kSampleTypeName1, &reader); 47 IBusObjectReader ibus_object_reader(kSampleTypeName1, &reader);
44 ASSERT_TRUE(ibus_object_reader.Init()); 48 ASSERT_TRUE(ibus_object_reader.Init());
45 // Check the first string value. 49 // Check the first string value.
46 std::string expected_string; 50 std::string expected_string;
47 ASSERT_TRUE(ibus_object_reader.PopString(&expected_string)); 51 ASSERT_TRUE(ibus_object_reader.PopString(&expected_string));
48 EXPECT_EQ(kSampleText1, expected_string); 52 EXPECT_EQ(kSampleText1, expected_string);
49 // Check the second uint32 value. 53 // Check the second uint32 value.
50 uint32 expected_uint32; 54 uint32 expected_uint32;
51 ASSERT_TRUE(ibus_object_reader.PopUint32(&expected_uint32)); 55 ASSERT_TRUE(ibus_object_reader.PopUint32(&expected_uint32));
52 EXPECT_EQ(kSampleUint32, expected_uint32); 56 EXPECT_EQ(kSampleUint32, expected_uint32);
53 // Check the third value which is array of uint32. 57 // Check the third int value.
58 int32 expected_int32;
satorux1 2012/05/18 01:23:36 initialize this with 0. Please fix other uninitial
Seigo Nonaka 2012/05/18 01:41:52 Done.
59 ASSERT_TRUE(ibus_object_reader.PopInt32(&expected_int32));
60 EXPECT_EQ(kSampleInt32, expected_int32);
61 // Check the fourth boolean value.
62 bool expected_bool;
63 ASSERT_TRUE(ibus_object_reader.PopBool(&expected_bool));
64 EXPECT_EQ(kSampleBool, expected_bool);
65 // Check the fifth value which is array of uint32.
54 dbus::MessageReader array_reader(NULL); 66 dbus::MessageReader array_reader(NULL);
55 ASSERT_TRUE(ibus_object_reader.PopArray(&array_reader)); 67 ASSERT_TRUE(ibus_object_reader.PopArray(&array_reader));
56 for (uint32 i = 0; i < kSampleArrayOfUint32Count; ++i) { 68 for (uint32 i = 0; i < kSampleArrayOfUint32Count; ++i) {
57 uint32 expected_uint32; 69 uint32 expected_uint32;
58 ASSERT_TRUE(array_reader.PopUint32(&expected_uint32)); 70 ASSERT_TRUE(array_reader.PopUint32(&expected_uint32));
59 EXPECT_EQ(i, expected_uint32); 71 EXPECT_EQ(i, expected_uint32);
60 } 72 }
61 // Check the fourth value which is IBusObject. 73 // Check the sixth value which is IBusObject.
62 IBusObjectReader ibus_nested_object_reader(kSampleTypeName2, NULL); 74 IBusObjectReader ibus_nested_object_reader(kSampleTypeName2, NULL);
63 ibus_object_reader.PopIBusObject(&ibus_nested_object_reader); 75 ibus_object_reader.PopIBusObject(&ibus_nested_object_reader);
64 std::string expected_text2; 76 std::string expected_text2;
65 ASSERT_TRUE(ibus_nested_object_reader.PopString(&expected_text2)); 77 ASSERT_TRUE(ibus_nested_object_reader.PopString(&expected_text2));
66 EXPECT_EQ(kSampleText2, expected_text2); 78 EXPECT_EQ(kSampleText2, expected_text2);
67 79
68 EXPECT_FALSE(ibus_nested_object_reader.HasMoreData()); 80 EXPECT_FALSE(ibus_nested_object_reader.HasMoreData());
69 EXPECT_FALSE(ibus_object_reader.HasMoreData()); 81 EXPECT_FALSE(ibus_object_reader.HasMoreData());
70 EXPECT_FALSE(array_reader.HasMoreData()); 82 EXPECT_FALSE(array_reader.HasMoreData());
71 EXPECT_FALSE(reader.HasMoreData()); 83 EXPECT_FALSE(reader.HasMoreData());
72 } 84 }
73 85
74 TEST(IBusObjectTest, EmptyEntryTest) { 86 TEST(IBusObjectTest, EmptyEntryTest) {
75 const char kSampleTypeName[] = "Empty IBusObject Name"; 87 const char kSampleTypeName[] = "Empty IBusObject Name";
76 scoped_ptr<dbus::Response> message(dbus::Response::CreateEmpty()); 88 scoped_ptr<dbus::Response> message(dbus::Response::CreateEmpty());
77 89
78 // Write empty IBusObject. 90 // Write empty IBusObject.
79 dbus::MessageWriter writer(message.get()); 91 dbus::MessageWriter writer(message.get());
80 IBusObjectWriter ibus_object_writer(kSampleTypeName, "", &writer); 92 IBusObjectWriter ibus_object_writer(kSampleTypeName, "", &writer);
81 ibus_object_writer.CloseAll(); 93 ibus_object_writer.CloseAll();
82 94
83 // Read empty IBusObject. 95 // Read empty IBusObject.
84 dbus::MessageReader reader(message.get()); 96 dbus::MessageReader reader(message.get());
85 IBusObjectReader ibus_object_reader(kSampleTypeName, &reader); 97 IBusObjectReader ibus_object_reader(kSampleTypeName, &reader);
86 ASSERT_TRUE(ibus_object_reader.Init()); 98 ASSERT_TRUE(ibus_object_reader.Init());
87 EXPECT_FALSE(ibus_object_reader.HasMoreData()); 99 EXPECT_FALSE(ibus_object_reader.HasMoreData());
88 } 100 }
89 101
102 TEST(IBusObjctTest, WriteWithGetContentsWriterTest) {
103 const char kSampleTypeName[] = "IBusObject Name";
104 const char kSampleText[] = "Sample Text 1";
105 scoped_ptr<dbus::Response> message(dbus::Response::CreateEmpty());
106
107 // Write string by writer given by GetContentsWriter.
108 dbus::MessageWriter writer(message.get());
109 IBusObjectWriter ibus_object_writer(kSampleTypeName, "s", &writer);
110 dbus::MessageWriter* contents_writer = ibus_object_writer.GetContentsWriter();
111 ASSERT_TRUE(contents_writer);
112 contents_writer->AppendString(kSampleText);
113 ibus_object_writer.CloseAll();
114
115 // Read by IBusObjectReader to make sure string exists in same field.
116 dbus::MessageReader reader(message.get());
117 IBusObjectReader ibus_object_reader(kSampleTypeName, &reader);
118 ASSERT_TRUE(ibus_object_reader.Init());
119 std::string actual_value;
120 ASSERT_TRUE(ibus_object_reader.PopString(&actual_value));
121 EXPECT_EQ(kSampleText, actual_value);
122 }
123
124 TEST(IBusObjctTest, ReadWithGetContentsReaderTest) {
125 const char kSampleTypeName[] = "IBusObject Name";
126 const char kSampleText[] = "Sample Text 1";
127 scoped_ptr<dbus::Response> message(dbus::Response::CreateEmpty());
128
129 // Write string by IBusObject.
130 dbus::MessageWriter writer(message.get());
131 IBusObjectWriter ibus_object_writer(kSampleTypeName, "s", &writer);
132 ibus_object_writer.AppendString(kSampleText);
133 ibus_object_writer.CloseAll();
134
135 // Read string by reader given by GetContentsReader.
136 dbus::MessageReader reader(message.get());
137 IBusObjectReader ibus_object_reader(kSampleTypeName, &reader);
138 ASSERT_TRUE(ibus_object_reader.Init());
139 dbus::MessageReader* contents_reader = ibus_object_reader.GetContentsReader();
140 ASSERT_TRUE(contents_reader);
141 std::string actual_value;
142 ASSERT_TRUE(contents_reader->PopString(&actual_value));
143 EXPECT_EQ(kSampleText, actual_value);
144 }
145
90 } // namespace chromeos 146 } // namespace chromeos
OLDNEW
« chromeos/dbus/ibus/ibus_object.h ('K') | « chromeos/dbus/ibus/ibus_object.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698