| Index: chrome/browser/prefs/mock_validation_observer.cc
|
| diff --git a/chrome/browser/prefs/mock_validation_observer.cc b/chrome/browser/prefs/mock_validation_observer.cc
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..4a3174e3e64ca9c9fc1efe3c745082fcc0bf7fb5
|
| --- /dev/null
|
| +++ b/chrome/browser/prefs/mock_validation_observer.cc
|
| @@ -0,0 +1,76 @@
|
| +// Copyright 2014 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/browser/prefs/mock_validation_observer.h"
|
| +
|
| +MockValidationObserver::ValidationData::ValidationData() {
|
| +}
|
| +
|
| +MockValidationObserver::ValidationData::~ValidationData() {
|
| +}
|
| +
|
| +void MockValidationObserver::ValidationData::RecordValidation(
|
| + const std::string& pref_path,
|
| + PrefHashStoreTransaction::ValueState value_state,
|
| + TrackedPreferenceHelper::ResetAction reset_action,
|
| + PrefHashFilter::PrefTrackingStrategy strategy) {
|
| + validations_.push_back(
|
| + ValidationEvent(pref_path, value_state, reset_action, strategy));
|
| +}
|
| +
|
| +size_t MockValidationObserver::ValidationData::CountValidationsOfState(
|
| + PrefHashStoreTransaction::ValueState value_state) const {
|
| + size_t count = 0;
|
| + for (size_t i = 0; i < validations_.size(); ++i) {
|
| + if (validations_[i].value_state == value_state)
|
| + ++count;
|
| + }
|
| + return count;
|
| +}
|
| +
|
| +const MockValidationObserver::ValidationData::ValidationEvent*
|
| +MockValidationObserver::ValidationData::GetEventForPath(
|
| + const std::string& pref_path) const {
|
| + for (size_t i = 0; i < validations_.size(); ++i) {
|
| + if (validations_[i].pref_path == pref_path)
|
| + return &validations_[i];
|
| + }
|
| + return NULL;
|
| +}
|
| +
|
| +void MockValidationObserver::ValidationData::GetAllEvents(
|
| + std::vector<ValidationEvent>* validations) const {
|
| + validations->assign(validations_.begin(), validations_.end());
|
| +}
|
| +
|
| +MockValidationObserver::MockValidationObserver(
|
| + const scoped_refptr<ValidationData>& validation_data)
|
| + : validation_data_(validation_data) {
|
| +}
|
| +
|
| +MockValidationObserver::~MockValidationObserver() {
|
| +}
|
| +
|
| +void MockValidationObserver::OnAtomicPreferenceValidation(
|
| + const std::string& pref_path,
|
| + const base::Value* value,
|
| + PrefHashStoreTransaction::ValueState value_state,
|
| + TrackedPreferenceHelper::ResetAction reset_action) {
|
| + validation_data_->RecordValidation(pref_path,
|
| + value_state,
|
| + reset_action,
|
| + PrefHashFilter::TRACKING_STRATEGY_ATOMIC);
|
| +}
|
| +
|
| +void MockValidationObserver::OnSplitPreferenceValidation(
|
| + const std::string& pref_path,
|
| + const base::DictionaryValue* dict_value,
|
| + const std::vector<std::string>& invalid_keys,
|
| + PrefHashStoreTransaction::ValueState value_state,
|
| + TrackedPreferenceHelper::ResetAction reset_action) {
|
| + validation_data_->RecordValidation(pref_path,
|
| + value_state,
|
| + reset_action,
|
| + PrefHashFilter::TRACKING_STRATEGY_SPLIT);
|
| +}
|
|
|