1 // Copyright 2013 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef COMPONENTS_DOM_DISTILLER_CORE_DOM_DISTILLER_TEST_UTIL_H_ 6 #define COMPONENTS_DOM_DISTILLER_CORE_DOM_DISTILLER_TEST_UTIL_H_ 7 8 #include <vector> 9 10 #include "components/dom_distiller/core/dom_distiller_observer.h" 11 #include "components/leveldb_proto/testing/fake_db.h" 12 #include "testing/gmock/include/gmock/gmock.h" 13 14 namespace dom_distiller { 15 16 class DomDistillerStore; 17 18 namespace test { 19 namespace util { 20 21 class ObserverUpdatesMatcher 22 : public testing::MatcherInterface< 23 const std::vector<DomDistillerObserver::ArticleUpdate>&> { 24 public: 25 explicit ObserverUpdatesMatcher( 26 const std::vector<DomDistillerObserver::ArticleUpdate>&); 27 28 // MatcherInterface overrides. 29 virtual bool MatchAndExplain( 30 const std::vector<DomDistillerObserver::ArticleUpdate>& actual_updates, 31 testing::MatchResultListener* listener) const OVERRIDE; 32 virtual void DescribeTo(std::ostream* os) const OVERRIDE; 33 virtual void DescribeNegationTo(std::ostream* os) const OVERRIDE; 34 35 private: 36 void DescribeUpdates(std::ostream* os) const; 37 const std::vector<DomDistillerObserver::ArticleUpdate>& expected_updates_; 38 }; 39 40 testing::Matcher<const std::vector<DomDistillerObserver::ArticleUpdate>&> 41 HasExpectedUpdates(const std::vector<DomDistillerObserver::ArticleUpdate>&); 42 43 // Creates a simple DomDistillerStore backed by |fake_db| and initialized 44 // with |store_model|. 45 DomDistillerStore* CreateStoreWithFakeDB( 46 leveldb_proto::test::FakeDB<ArticleEntry>* fake_db, 47 const leveldb_proto::test::FakeDB<ArticleEntry>::EntryMap& store_model); 48 49 } // namespace util 50 } // namespace test 51 } // namespace dom_distiller 52 53 #endif // COMPONENTS_DOM_DISTILLER_CORE_DOM_DISTILLER_TEST_UTIL_H_ 54