| Index: chrome/test/automation/value_conversion_traits.cc
|
| diff --git a/chrome/test/automation/value_conversion_traits.cc b/chrome/test/automation/value_conversion_traits.cc
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..f5c1f2c00ac66f7278b5cffa3243705ed2ac72dd
|
| --- /dev/null
|
| +++ b/chrome/test/automation/value_conversion_traits.cc
|
| @@ -0,0 +1,99 @@
|
| +// Copyright (c) 2011 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 "chrome/test/automation/value_conversion_traits.h"
|
| +
|
| +#include "base/values.h"
|
| +
|
| +using base::DictionaryValue;
|
| +using base::ListValue;
|
| +using base::Value;
|
| +
|
| +Value* ValueConversionTraits<int>::CreateValueFrom(int t) {
|
| + return Value::CreateIntegerValue(t);
|
| +}
|
| +
|
| +bool ValueConversionTraits<int>::SetFromValue(const Value* value, int* t) {
|
| + return value->GetAsInteger(t);
|
| +}
|
| +
|
| +bool ValueConversionTraits<int>::CanConvert(const Value* value) {
|
| + int t;
|
| + return SetFromValue(value, &t);
|
| +}
|
| +
|
| +Value* ValueConversionTraits<bool>::CreateValueFrom(bool t) {
|
| + return Value::CreateBooleanValue(t);
|
| +}
|
| +
|
| +bool ValueConversionTraits<bool>::SetFromValue(const Value* value, bool* t) {
|
| + return value->GetAsBoolean(t);
|
| +}
|
| +
|
| +bool ValueConversionTraits<bool>::CanConvert(const Value* value) {
|
| + bool t;
|
| + return SetFromValue(value, &t);
|
| +}
|
| +
|
| +Value* ValueConversionTraits<std::string>::CreateValueFrom(
|
| + const std::string& t) {
|
| + return Value::CreateStringValue(t);
|
| +}
|
| +
|
| +bool ValueConversionTraits<std::string>::SetFromValue(
|
| + const Value* value, std::string* t) {
|
| + return value->GetAsString(t);
|
| +}
|
| +
|
| +bool ValueConversionTraits<std::string>::CanConvert(const Value* value) {
|
| + std::string t;
|
| + return SetFromValue(value, &t);
|
| +}
|
| +
|
| +Value* ValueConversionTraits<Value*>::CreateValueFrom(const Value* t) {
|
| + return t->DeepCopy();
|
| +}
|
| +
|
| +bool ValueConversionTraits<Value*>::SetFromValue(
|
| + const Value* value, Value** t) {
|
| + *t = value->DeepCopy();
|
| + return true;
|
| +}
|
| +
|
| +bool ValueConversionTraits<Value*>::CanConvert(const Value* value) {
|
| + return true;
|
| +}
|
| +
|
| +Value* ValueConversionTraits<ListValue*>::CreateValueFrom(const ListValue* t) {
|
| + return t->DeepCopy();
|
| +}
|
| +
|
| +bool ValueConversionTraits<ListValue*>::SetFromValue(const Value* value,
|
| + ListValue** t) {
|
| + if (!value->IsType(Value::TYPE_LIST))
|
| + return false;
|
| + *t = static_cast<const ListValue*>(value)->DeepCopy();
|
| + return true;
|
| +}
|
| +
|
| +bool ValueConversionTraits<ListValue*>::CanConvert(const Value* value) {
|
| + return value->IsType(Value::TYPE_LIST);
|
| +}
|
| +
|
| +Value* ValueConversionTraits<DictionaryValue*>::CreateValueFrom(
|
| + const DictionaryValue* t) {
|
| + return t->DeepCopy();
|
| +}
|
| +
|
| +bool ValueConversionTraits<DictionaryValue*>::SetFromValue(
|
| + const Value* value, DictionaryValue** t) {
|
| + if (!value->IsType(Value::TYPE_DICTIONARY))
|
| + return false;
|
| + *t = static_cast<const DictionaryValue*>(value)->DeepCopy();
|
| + return true;
|
| +}
|
| +
|
| +bool ValueConversionTraits<DictionaryValue*>::CanConvert(const Value* value) {
|
| + return value->IsType(Value::TYPE_DICTIONARY);
|
| +}
|
|
|