summaryrefslogtreecommitdiffstats
path: root/chromeos
diff options
context:
space:
mode:
authornona@chromium.org <nona@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-06-21 07:14:50 +0000
committernona@chromium.org <nona@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-06-21 07:14:50 +0000
commit3409f56de394dabf8a2d14bd036478a8d93638f1 (patch)
tree1048ae33d95ba9f47389486fd20f0c4a374a7b28 /chromeos
parent53fda783a1274fb0ee9b46cc90b0874ca5e4479f (diff)
downloadchromium_src-3409f56de394dabf8a2d14bd036478a8d93638f1.zip
chromium_src-3409f56de394dabf8a2d14bd036478a8d93638f1.tar.gz
chromium_src-3409f56de394dabf8a2d14bd036478a8d93638f1.tar.bz2
Revert 143355 - Implement IBusProperty
IBusProperty and IBusPropertyList are one of representations an obeject used in communication with ibus-daemon. According to this CL, ibus_property.cc will be comipled and tested but not in used production binary at thi moment. BUG=chromium-os:26334 TEST=chromeos_unittests, unit_tests, dbus_unittests Review URL: https://chromiumcodereview.appspot.com/10383253 TBR=nona@chromium.org Review URL: https://chromiumcodereview.appspot.com/10619003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@143358 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chromeos')
-rw-r--r--chromeos/chromeos.gyp3
-rw-r--r--chromeos/dbus/ibus/ibus_object.cc26
-rw-r--r--chromeos/dbus/ibus/ibus_object.h13
-rw-r--r--chromeos/dbus/ibus/ibus_object_unittest.cc43
-rw-r--r--chromeos/dbus/ibus/ibus_property.cc184
-rw-r--r--chromeos/dbus/ibus/ibus_property.h137
-rw-r--r--chromeos/dbus/ibus/ibus_property_unittest.cc122
7 files changed, 1 insertions, 527 deletions
diff --git a/chromeos/chromeos.gyp b/chromeos/chromeos.gyp
index dff9498..ed89b2f 100644
--- a/chromeos/chromeos.gyp
+++ b/chromeos/chromeos.gyp
@@ -79,8 +79,6 @@
'dbus/ibus/ibus_lookup_table.h',
'dbus/ibus/ibus_object.cc',
'dbus/ibus/ibus_object.h',
- 'dbus/ibus/ibus_property.cc',
- 'dbus/ibus/ibus_property.h',
'dbus/ibus/ibus_text.cc',
'dbus/ibus/ibus_text.h',
'dbus/ibus/ibus_input_context_client.cc',
@@ -226,7 +224,6 @@
'dbus/ibus/ibus_client_unittest.cc',
'dbus/ibus/ibus_lookup_table_unittest.cc',
'dbus/ibus/ibus_object_unittest.cc',
- 'dbus/ibus/ibus_property_unittest.cc',
'dbus/ibus/ibus_text_unittest.cc',
'dbus/ibus/ibus_input_context_client_unittest.cc',
'dbus/introspectable_client_unittest.cc',
diff --git a/chromeos/dbus/ibus/ibus_object.cc b/chromeos/dbus/ibus/ibus_object.cc
index 641ed55..faa0249 100644
--- a/chromeos/dbus/ibus/ibus_object.cc
+++ b/chromeos/dbus/ibus/ibus_object.cc
@@ -5,7 +5,6 @@
#include "chromeos/dbus/ibus/ibus_object.h"
#include "base/logging.h"
-#include "chromeos/dbus/ibus/ibus_property.h"
#include "chromeos/dbus/ibus/ibus_text.h"
#include "dbus/message.h"
@@ -147,20 +146,6 @@ bool IBusObjectReader::PopStringFromIBusText(std::string* text) {
contents_reader_.get(), text);
}
-bool IBusObjectReader::PopIBusProperty(IBusProperty* property) {
- DCHECK_NE(IBUS_OBJECT_NOT_CHECKED, check_result_);
- DCHECK(contents_reader_.get());
- return IsValid() && chromeos::ibus::PopIBusProperty(contents_reader_.get(),
- property);
-}
-
-bool IBusObjectReader::PopIBusPropertyList(IBusPropertyList* properties) {
- DCHECK_NE(IBUS_OBJECT_NOT_CHECKED, check_result_);
- DCHECK(contents_reader_.get());
- return IsValid() && chromeos::ibus::PopIBusPropertyList(
- contents_reader_.get(), properties);
-}
-
bool IBusObjectReader::HasMoreData() {
DCHECK_NE(IBUS_OBJECT_NOT_CHECKED, check_result_);
DCHECK(contents_reader_.get());
@@ -230,17 +215,6 @@ void IBusObjectWriter::AppendStringAsIBusText(const std::string& text) {
chromeos::ibus::AppendStringAsIBusText(text, contents_writer_.get());
}
-void IBusObjectWriter::AppendIBusProperty(const IBusProperty& property) {
- DCHECK(IsInitialized());
- chromeos::ibus::AppendIBusProperty(property, contents_writer_.get());
-}
-
-void IBusObjectWriter::AppendIBusPropertyList(
- const IBusPropertyList& property_list) {
- DCHECK(IsInitialized());
- chromeos::ibus::AppendIBusPropertyList(property_list, contents_writer_.get());
-}
-
void IBusObjectWriter::CloseContainer(dbus::MessageWriter* writer) {
DCHECK(IsInitialized());
contents_writer_->CloseContainer(writer);
diff --git a/chromeos/dbus/ibus/ibus_object.h b/chromeos/dbus/ibus/ibus_object.h
index b6cf45c..275fc71 100644
--- a/chromeos/dbus/ibus/ibus_object.h
+++ b/chromeos/dbus/ibus/ibus_object.h
@@ -9,7 +9,6 @@
#include "base/basictypes.h"
#include "base/memory/scoped_ptr.h"
#include "chromeos/chromeos_export.h"
-#include "chromeos/dbus/ibus/ibus_property.h"
#include "chromeos/dbus/ibus/ibus_text.h"
namespace dbus {
@@ -123,12 +122,6 @@ class CHROMEOS_EXPORT IBusObjectReader {
// Return true on success.
bool PopStringFromIBusText(std::string* text);
- // Pops a IBusProperty.
- bool PopIBusProperty(ibus::IBusProperty* property);
-
- // Pops a IBusPropertyList.
- bool PopIBusPropertyList(ibus::IBusPropertyList* property_list);
-
private:
enum CheckResult {
IBUS_OBJECT_VALID, // Already checked and valid type.
@@ -204,12 +197,6 @@ class CHROMEOS_EXPORT IBusObjectWriter {
// instead in the case of using any attribute entries.
void AppendStringAsIBusText(const std::string& text);
- // Appends a IBusProperty.
- void AppendIBusProperty(const ibus::IBusProperty& property);
-
- // Appends a IBusPropertyList.
- void AppendIBusPropertyList(const ibus::IBusPropertyList& property_list);
-
private:
// Appends IBusObject headers, should be called once.
void Init();
diff --git a/chromeos/dbus/ibus/ibus_object_unittest.cc b/chromeos/dbus/ibus/ibus_object_unittest.cc
index 468e268..dd543ea 100644
--- a/chromeos/dbus/ibus/ibus_object_unittest.cc
+++ b/chromeos/dbus/ibus/ibus_object_unittest.cc
@@ -6,7 +6,6 @@
#include "chromeos/dbus/ibus/ibus_object.h"
#include <string>
-#include <vector>
#include "base/logging.h"
#include "base/memory/scoped_ptr.h"
#include "dbus/message.h"
@@ -147,7 +146,7 @@ TEST(IBusObjectTest, PopAppendStringAsIBusText) {
ibus_object_writer.AppendStringAsIBusText(kSampleString);
ibus_object_writer.CloseAll();
- // Read string from IBusText.
+ // Read string from IBusText;
dbus::MessageReader reader(message.get());
IBusObjectReader ibus_object_reader(kSampleTypeName, &reader);
std::string result_str;
@@ -211,45 +210,5 @@ TEST(IBusObjectTest, AttachmentTest) {
EXPECT_EQ(kSampleText, value);
}
-TEST(IBusObjectTest, PopAppendIBusPropertyTest) {
- const char kSampleTypeName[] = "Empty IBusObject Name";
- const char kSampleKey[] = "Key";
- const IBusProperty::IBusPropertyType kSampleType =
- IBusProperty::IBUS_PROPERTY_TYPE_MENU;
- const char kSampleLabel[] = "Label";
- const char kSampleTooltip[] = "Tooltip";
- const bool kSampleVisible = true;
- const bool kSampleChecked = false;
- scoped_ptr<dbus::Response> response(dbus::Response::CreateEmpty());
-
- // Create IBusProperty.
- ibus::IBusProperty property;
- property.set_key(kSampleKey);
- property.set_type(kSampleType);
- property.set_label(kSampleLabel);
- property.set_tooltip(kSampleTooltip);
- property.set_visible(kSampleVisible);
- property.set_checked(kSampleChecked);
-
- // Write a IBusProperty.
- dbus::MessageWriter writer(response.get());
- IBusObjectWriter ibus_object_writer(kSampleTypeName, "v", &writer);
- ibus_object_writer.AppendIBusProperty(property);
- ibus_object_writer.CloseAll();
-
- // Read string from IBusText.
- dbus::MessageReader reader(response.get());
- IBusObjectReader ibus_object_reader(kSampleTypeName, &reader);
- ibus::IBusProperty result_property;
- ASSERT_TRUE(ibus_object_reader.Init());
- ASSERT_TRUE(ibus_object_reader.PopIBusProperty(&result_property));
- EXPECT_EQ(kSampleKey, result_property.key());
- EXPECT_EQ(kSampleType, result_property.type());
- EXPECT_EQ(kSampleLabel, result_property.label());
- EXPECT_EQ(kSampleTooltip, result_property.tooltip());
- EXPECT_EQ(kSampleVisible, result_property.visible());
- EXPECT_EQ(kSampleChecked, result_property.checked());
-}
-
} // namespace ibus
} // namespace chromeos
diff --git a/chromeos/dbus/ibus/ibus_property.cc b/chromeos/dbus/ibus/ibus_property.cc
deleted file mode 100644
index 86c6890..0000000
--- a/chromeos/dbus/ibus/ibus_property.cc
+++ /dev/null
@@ -1,184 +0,0 @@
-// Copyright (c) 2012 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.
-
-#include "chromeos/dbus/ibus/ibus_property.h"
-
-#include <string>
-#include "base/logging.h"
-#include "chromeos/dbus/ibus/ibus_object.h"
-#include "chromeos/dbus/ibus/ibus_text.h"
-#include "dbus/message.h"
-
-namespace chromeos {
-// TODO(nona): remove ibus namespace after complete libibus removal.
-namespace ibus {
-
-namespace {
-// Following variables indicate state of IBusProperty.
-const uint32 kIBusPropertyStateUnchecked = 0;
-const uint32 kIBusPropertyStateChecked = 1;
-const uint32 kIBusPropertyStateInconsistent = 2;
-};
-
-bool CHROMEOS_EXPORT PopIBusProperty(dbus::MessageReader* reader,
- IBusProperty* property) {
- IBusObjectReader ibus_property_reader("IBusProperty", reader);
- if (!ibus_property_reader.Init())
- return false;
-
- std::string key;
- if (!ibus_property_reader.PopString(&key)) {
- LOG(ERROR) << "Invalid variant structure[IBusProperty]: "
- << "1st argument should be string.";
- return false;
- }
- property->set_key(key);
-
- uint32 type = 0;
- if (!ibus_property_reader.PopUint32(&type)) {
- LOG(ERROR) << "Invalid variant structure[IBusProperty]: "
- << "2nd argument should be unsigned 32bit integer.";
- return false;
- }
- if (type > 4UL) {
- LOG(ERROR) << "Invalid value for IBusProperty type";
- return false;
- }
- property->set_type(static_cast<IBusProperty::IBusPropertyType>(type));
-
- std::string label;
- if (!ibus_property_reader.PopStringFromIBusText(&label)) {
- LOG(ERROR) << "Invalid variant structure[IBusProperty]: "
- << "3rd argument should be IBusText.";
- return false;
- }
- property->set_label(label);
-
- // The 4th string argument represents icon path, but not supported in
- // Chrome OS.
- std::string icon;
- if (!ibus_property_reader.PopString(&icon)) {
- LOG(ERROR) << "Invalid variant structure[IBusProperty]: "
- << "4th argument should be string.";
- }
-
- std::string tooltip;
- if (!ibus_property_reader.PopStringFromIBusText(&tooltip)) {
- LOG(ERROR) << "Invalid variant structure[IBusProperty]: "
- << "5th argument should be IBusText.";
- return false;
- }
- property->set_tooltip(tooltip);
-
- // The 6th bool argument represents whther the property is event sensitive or
- // not, but not supported in Chrome OS.
- bool sensitive = true;
- if (!ibus_property_reader.PopBool(&sensitive)) {
- LOG(ERROR) << "Invalid variant structure[IBusProperty]: "
- << "6th argument should be boolean.";
- }
-
- bool visible = true;
- if (!ibus_property_reader.PopBool(&visible)) {
- LOG(ERROR) << "Invalid variant structure[IBusProperty]: "
- << "7th argument should be boolean.";
- return false;
- }
- property->set_visible(visible);
-
- uint32 state = 0;
- if (!ibus_property_reader.PopUint32(&state)) {
- LOG(ERROR) << "Invalid variant structure[IBusProperty]: "
- << "8th argument should be unsigned 32bit integer.";
- return false;
- }
-
- if (type > 3UL) {
- LOG(ERROR) << "Invalid value for IBusProperty.";
- return false;
- }
-
- DCHECK_LE(state, 3UL);
- if (state == kIBusPropertyStateInconsistent) {
- LOG(ERROR) << "PROP_STATE_INCONSISTENT is not supported in Chrome OS.";
- } else {
- property->set_checked(state == kIBusPropertyStateChecked);
- }
-
- if (!ibus_property_reader.PopIBusPropertyList(
- property->mutable_sub_properties())) {
- LOG(ERROR) << "Invalid variant structure[IBusProperty]: "
- << "9th argument should be IBusPropList.";
- return false;
- }
-
- return true;
-}
-
-bool CHROMEOS_EXPORT PopIBusPropertyList(dbus::MessageReader* reader,
- IBusPropertyList* property_list) {
- IBusObjectReader ibus_property_reader("IBusPropList", reader);
- if (!ibus_property_reader.Init())
- return false;
-
- dbus::MessageReader property_array_reader(NULL);
- if (!ibus_property_reader.PopArray(&property_array_reader)) {
- LOG(ERROR) << "Invalid variant structure[IBusPropList]: "
- << "1st argument should be array.";
- return false;
- }
- property_list->reset();
- while (property_array_reader.HasMoreData()) {
- IBusProperty* property = new IBusProperty;
- if (!PopIBusProperty(&property_array_reader, property)) {
- LOG(ERROR) << "Invalid variant structure[IBusPropList]: "
- << "1st argument should be array of IBusProperty.";
- return false;
- }
- property_list->push_back(property);
- }
-
- return true;
-}
-
-void CHROMEOS_EXPORT AppendIBusProperty(const IBusProperty& property,
- dbus::MessageWriter* writer) {
- IBusObjectWriter ibus_property_writer("IBusProperty", "suvsvbbuv", writer);
- ibus_property_writer.AppendString(property.key());
- ibus_property_writer.AppendUint32(static_cast<uint32>(property.type()));
- ibus_property_writer.AppendStringAsIBusText(property.label());
- ibus_property_writer.AppendString(""); // The icon path is not supported.
- ibus_property_writer.AppendStringAsIBusText(property.tooltip());
- // The event sensitive field is not supported.
- ibus_property_writer.AppendBool(false);
- ibus_property_writer.AppendBool(property.visible());
- ibus_property_writer.AppendUint32(static_cast<uint32>(property.checked()));
- ibus_property_writer.AppendIBusPropertyList(property.sub_properties());
- ibus_property_writer.CloseAll();
-}
-
-void CHROMEOS_EXPORT AppendIBusPropertyList(
- const IBusPropertyList& property_list,
- dbus::MessageWriter* writer) {
- IBusObjectWriter ibus_property_list_writer("IBusPropList", "av", writer);
- dbus::MessageWriter property_list_writer(NULL);
- ibus_property_list_writer.OpenArray("v", &property_list_writer);
- for (size_t i = 0; i < property_list.size(); ++i) {
- AppendIBusProperty(*(property_list[i]), &property_list_writer);
- }
- ibus_property_list_writer.CloseContainer(&property_list_writer);
- ibus_property_list_writer.CloseAll();
-}
-
-
-///////////////////////////////////////////////////////////////////////////////
-// IBusProperty
-IBusProperty::IBusProperty() {
-}
-
-IBusProperty::~IBusProperty() {
-}
-
-} // namespace ibus
-} // namespace chromeos
diff --git a/chromeos/dbus/ibus/ibus_property.h b/chromeos/dbus/ibus/ibus_property.h
deleted file mode 100644
index 4b5d5ff..0000000
--- a/chromeos/dbus/ibus/ibus_property.h
+++ /dev/null
@@ -1,137 +0,0 @@
-// Copyright (c) 2012 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.
-
-#ifndef CHROMEOS_DBUS_IBUS_IBUS_PROPERTY_H_
-#define CHROMEOS_DBUS_IBUS_IBUS_PROPERTY_H_
-
-#include <string>
-#include "base/basictypes.h"
-#include "base/memory/scoped_vector.h"
-#include "chromeos/chromeos_export.h"
-
-namespace dbus {
-class MessageWriter;
-class MessageReader;
-} // namespace dbus
-
-namespace chromeos {
-namespace ibus {
-
-class IBusProperty;
-typedef ScopedVector<IBusProperty> IBusPropertyList;
-
-// Pops a IBusProperty from |reader|.
-// Returns false if an error occures.
-bool CHROMEOS_EXPORT PopIBusProperty(dbus::MessageReader* reader,
- IBusProperty* property);
-// Pops a IBusPropertyList from |reader|.
-// Returns false if an error occures.
-bool CHROMEOS_EXPORT PopIBusPropertyList(dbus::MessageReader* reader,
- IBusPropertyList* property_list);
-
-// Appends a IBusProperty to |writer|.
-void CHROMEOS_EXPORT AppendIBusProperty(const IBusProperty& property,
- dbus::MessageWriter* writer);
-// Appends a IBusPropertyList to |writer|.
-void CHROMEOS_EXPORT AppendIBusPropertyList(
- const IBusPropertyList& property_list,
- dbus::MessageWriter* writer);
-
-// The IBusPropList is one of IBusObjects and it contains array of IBusProperty.
-// The IBusProperty contains IBusTexts but only plain string is used in Chrome.
-// We treat IBusPropList as scoped_vector of IBusProperty.
-//
-// DATA STRUCTURE OVERVIEW:
-// variant struct {
-// string "IBusProperty"
-// array []
-// string "CompositionMode" // Key
-// uint32 3 // Type
-// variant struct { // Label
-// string "IBusText"
-// array []
-// string ""
-// variant struct {
-// string "IBusAttrList"
-// array []
-// array []
-// }
-// }
-// string "/usr/share/ibus-mozc/hiragana.png" // icon
-// variant struct { // Tooltip
-// string "IBusText"
-// array []
-// string ""
-// variant struct {
-// string "IBusAttrList"
-// array []
-// array []
-// }
-// }
-// boolean true // sensitive
-// boolean true // visible
-// uint32 0 // state
-// variant struct { // sub properties
-// string "IBusPropList"
-// array []
-// array [
-// ... More IBusPropertys
-// ]
-// }
-// }
-class CHROMEOS_EXPORT IBusProperty {
- public:
- enum IBusPropertyType {
- IBUS_PROPERTY_TYPE_NORMAL = 0,
- IBUS_PROPERTY_TYPE_TOGGLE,
- IBUS_PROPERTY_TYPE_RADIO,
- IBUS_PROPERTY_TYPE_MENU,
- IBUS_PROPERTY_TYPE_SEPARATOR,
- };
- IBusProperty();
- virtual ~IBusProperty();
-
- // The identity for the IBusProperty.
- std::string key() const { return key_; }
- void set_key(const std::string& key) { key_ = key; }
-
- // The type of property:
- IBusPropertyType type() const { return type_; }
- void set_type(IBusPropertyType type) { type_ = type; }
-
- // The string to be shown in UI.
- std::string label() const { return label_; }
- void set_label(const std::string& label) { label_ = label; }
-
- // The string to be shown in UI as tooltip.
- std::string tooltip() const { return tooltip_; }
- void set_tooltip(const std::string& tooltip) { tooltip_ = tooltip; }
-
- // True if the property is visible.
- bool visible() const { return visible_; }
- void set_visible(bool visible) { visible_ = visible; }
-
- // True if the property is checked.
- bool checked() const { return checked_; }
- void set_checked(bool checked) { checked_ = checked; }
-
- const IBusPropertyList& sub_properties() const { return sub_properties_; }
- IBusPropertyList* mutable_sub_properties() { return &sub_properties_; }
-
- private:
- std::string key_;
- IBusPropertyType type_;
- std::string label_;
- std::string tooltip_;
- bool visible_;
- bool checked_;
- IBusPropertyList sub_properties_;
-
- DISALLOW_COPY_AND_ASSIGN(IBusProperty);
-};
-
-} // namespace ibus
-} // namespace chromeos
-
-#endif // CHROMEOS_DBUS_IBUS_IBUS_PROPERTY_H_
diff --git a/chromeos/dbus/ibus/ibus_property_unittest.cc b/chromeos/dbus/ibus/ibus_property_unittest.cc
deleted file mode 100644
index 9eca37f..0000000
--- a/chromeos/dbus/ibus/ibus_property_unittest.cc
+++ /dev/null
@@ -1,122 +0,0 @@
-// Copyright (c) 2012 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.
-#include "chromeos/dbus/ibus/ibus_property.h"
-
-#include <string>
-
-#include "base/compiler_specific.h"
-#include "base/logging.h"
-#include "base/memory/scoped_ptr.h"
-#include "base/stringprintf.h"
-#include "chromeos/dbus/ibus/ibus_object.h"
-#include "dbus/message.h"
-#include "testing/gmock/include/gmock/gmock.h"
-#include "testing/gtest/include/gtest/gtest.h"
-
-namespace chromeos {
-namespace ibus {
-
-namespace {
-
-const char kSampleKey[] = "Key";
-const IBusProperty::IBusPropertyType kSampleType =
- IBusProperty::IBUS_PROPERTY_TYPE_RADIO;
-const char kSampleLabel[] = "Label";
-const char kSampleTooltip[] = "Tooltip";
-const bool kSampleVisible = true;
-const bool kSampleChecked = false;
-
-// Sets testing data to |property| with |prefix|.
-// This function clears IBusProperty::sub_properties_ and does not add any
-// entries into it. The testing data can be checked with CheckProperty function
-// with same |prefix|.
-void SetProperty(const std::string& prefix, IBusProperty* property) {
- property->set_key(prefix + kSampleKey);
- property->set_type(kSampleType);
- property->set_label(prefix + kSampleLabel);
- property->set_tooltip(prefix + kSampleTooltip);
- property->set_visible(kSampleVisible);
- property->set_checked(kSampleChecked);
- property->mutable_sub_properties()->reset();
-}
-
-// Checks testing data in |property| with |prefix|.
-// This function does not check IBusProperty::sub_properties_.
-bool CheckProperty(const std::string& prefix, const IBusProperty& property) {
- if ((prefix + kSampleKey) != property.key()) {
- LOG(ERROR) << "Does not match IBusProperty::key value: " << std::endl
- << "Expected: " << (prefix + kSampleKey) << std::endl
- << "Actual: " << property.key();
- return false;
- }
- if (kSampleType != property.type()) {
- LOG(ERROR) << "Does not match IBusProperty::type value: " << std::endl
- << "Expected: " << kSampleType << std::endl
- << "Actual: " << property.type();
- return false;
- }
- if ((prefix + kSampleLabel) != property.label()) {
- LOG(ERROR) << "Does not match IBusProperty::label value: " << std::endl
- << "Expected: " << (prefix + kSampleLabel) << std::endl
- << "Actual: " << property.label();
- return false;
- }
- if ((prefix + kSampleTooltip) != property.tooltip()) {
- LOG(ERROR) << "Does not match IBusProperty::tooltip value: " << std::endl
- << "Expected: " << (prefix + kSampleTooltip) << std::endl
- << "Actual: " << property.tooltip();
- return false;
- }
- if (kSampleVisible != property.visible()) {
- LOG(ERROR) << "Does not match IBusProperty::visible value: " << std::endl
- << "Expected: " << kSampleVisible << std::endl
- << "Actual: " << property.visible();
- return false;
- }
- if (kSampleChecked != property.checked()) {
- LOG(ERROR) << "Does not match IBusProperty::state value: " << std::endl
- << "Expected: " << kSampleChecked << std::endl
- << "Actual: " << property.checked();
- return false;
- }
- return true;
-}
-
-} // namespace
-
-TEST(IBusPropertyListTest, WriteReadIBusPropertyTest) {
- const size_t kSubPropertyCount = 16;
-
- // Create a IBusProperty.
- IBusProperty property;
- SetProperty("Root_", &property);
- for (size_t i = 0; i < kSubPropertyCount; ++i) {
- const std::string prefix = base::StringPrintf("Sub%lu_", i);
- IBusProperty* sub_property = new IBusProperty;
- SetProperty(prefix, sub_property);
- property.mutable_sub_properties()->push_back(sub_property);
- }
-
- // Write a IBusProperty.
- scoped_ptr<dbus::Response> response(dbus::Response::CreateEmpty());
- dbus::MessageWriter writer(response.get());
- AppendIBusProperty(property, &writer);
-
- // Read a IBusProperty.
- IBusProperty target_property;
- dbus::MessageReader reader(response.get());
- PopIBusProperty(&reader, &target_property);
-
- // Check a result.
- EXPECT_TRUE(CheckProperty("Root_", target_property));
- const IBusPropertyList& sub_properties = target_property.sub_properties();
- ASSERT_EQ(kSubPropertyCount, sub_properties.size());
- for (size_t i = 0; i < kSubPropertyCount; ++i) {
- const std::string prefix = base::StringPrintf("Sub%lu_", i);
- EXPECT_TRUE(CheckProperty(prefix, *(sub_properties[i])));
- }
-}
-
-} // namespace ibus
-} // namespace chromeos