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

Unified Diff: sync/internal_api/public/base/object_id_invalidation_map_test_util.cc

Issue 23441042: Refactor common invalidation framework types (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Move DEPS rule Created 7 years, 2 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 side-by-side diff with in-line comments
Download patch
Index: sync/internal_api/public/base/object_id_invalidation_map_test_util.cc
diff --git a/sync/notifier/object_id_invalidation_map_test_util.cc b/sync/internal_api/public/base/object_id_invalidation_map_test_util.cc
similarity index 56%
rename from sync/notifier/object_id_invalidation_map_test_util.cc
rename to sync/internal_api/public/base/object_id_invalidation_map_test_util.cc
index f2f82853e4e39458ceb3422449ee7f131627f69c..cdea9763411c196146b2358f7a7e09bffad37cb5 100644
--- a/sync/notifier/object_id_invalidation_map_test_util.cc
+++ b/sync/internal_api/public/base/object_id_invalidation_map_test_util.cc
@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#include "sync/notifier/object_id_invalidation_map_test_util.h"
+#include "sync/internal_api/public/base/object_id_invalidation_map_test_util.h"
#include <algorithm>
@@ -24,7 +24,7 @@ class ObjectIdInvalidationMapEqMatcher
explicit ObjectIdInvalidationMapEqMatcher(
const ObjectIdInvalidationMap& expected);
- virtual bool MatchAndExplain(const ObjectIdInvalidationMap& actual,
+ virtual bool MatchAndExplain(const ObjectIdInvalidationMap& lhs,
MatchResultListener* listener) const;
virtual void DescribeTo(::std::ostream* os) const;
virtual void DescribeNegationTo(::std::ostream* os) const;
@@ -39,37 +39,57 @@ ObjectIdInvalidationMapEqMatcher::ObjectIdInvalidationMapEqMatcher(
const ObjectIdInvalidationMap& expected) : expected_(expected) {
}
+namespace {
+
+struct InvalidationEqPredicate {
+ InvalidationEqPredicate(const Invalidation& inv1)
+ : inv1_(inv1) { }
+
+ bool operator()(const Invalidation& inv2) {
+ return inv1_.Equals(inv2);
+ }
+
+ const Invalidation& inv1_;
+};
+
+}
+
bool ObjectIdInvalidationMapEqMatcher::MatchAndExplain(
const ObjectIdInvalidationMap& actual,
MatchResultListener* listener) const {
- ObjectIdInvalidationMap expected_only;
- ObjectIdInvalidationMap actual_only;
- typedef std::pair<invalidation::ObjectId,
- std::pair<Invalidation, Invalidation> >
- ValueDifference;
- std::vector<ValueDifference> value_differences;
-
- std::set_difference(expected_.begin(), expected_.end(),
- actual.begin(), actual.end(),
- std::inserter(expected_only, expected_only.begin()),
- expected_.value_comp());
- std::set_difference(actual.begin(), actual.end(),
- expected_.begin(), expected_.end(),
- std::inserter(actual_only, actual_only.begin()),
- actual.value_comp());
-
- for (ObjectIdInvalidationMap::const_iterator it = expected_.begin();
- it != expected_.end(); ++it) {
- ObjectIdInvalidationMap::const_iterator find_it =
- actual.find(it->first);
- if (find_it != actual.end() &&
- !Matches(Eq(it->second))(find_it->second)) {
- value_differences.push_back(std::make_pair(
- it->first, std::make_pair(it->second, find_it->second)));
+
+ std::vector<syncer::Invalidation> expected_invalidations;
+ std::vector<syncer::Invalidation> actual_invalidations;
+
+ expected_.GetAllInvalidations(&expected_invalidations);
+ actual.GetAllInvalidations(&actual_invalidations);
+
+ std::vector<syncer::Invalidation> expected_only;
+ std::vector<syncer::Invalidation> actual_only;
+
+ for (std::vector<syncer::Invalidation>::iterator it =
+ expected_invalidations.begin();
+ it != expected_invalidations.end(); ++it) {
+ if (std::find_if(actual_invalidations.begin(),
+ actual_invalidations.end(),
+ InvalidationEqPredicate(*it))
+ == actual_invalidations.end()) {
+ expected_only.push_back(*it);
}
}
- if (expected_only.empty() && actual_only.empty() && value_differences.empty())
+ for (std::vector<syncer::Invalidation>::iterator it =
+ actual_invalidations.begin();
+ it != actual_invalidations.end(); ++it) {
+ if (std::find_if(expected_invalidations.begin(),
+ expected_invalidations.end(),
+ InvalidationEqPredicate(*it))
+ == expected_invalidations.end()) {
+ actual_only.push_back(*it);
+ }
+ }
+
+ if (expected_only.empty() && actual_only.empty())
return true;
bool printed_header = false;
@@ -86,12 +106,6 @@ bool ObjectIdInvalidationMapEqMatcher::MatchAndExplain(
printed_header = true;
}
- if (!value_differences.empty()) {
- *listener << (printed_header ? ",\nand" : "which")
- << " differ in the following values: "
- << PrintToString(value_differences);
- }
-
return false;
}
@@ -99,8 +113,8 @@ void ObjectIdInvalidationMapEqMatcher::DescribeTo(::std::ostream* os) const {
*os << " is equal to " << PrintToString(expected_);
}
-void ObjectIdInvalidationMapEqMatcher::DescribeNegationTo
-(::std::ostream* os) const {
+void ObjectIdInvalidationMapEqMatcher::DescribeNegationTo(
+ ::std::ostream* os) const {
*os << " isn't equal to " << PrintToString(expected_);
}
« no previous file with comments | « sync/internal_api/public/base/object_id_invalidation_map_test_util.h ('k') | sync/internal_api/sync_manager_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698