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 14namespace dom_distiller { 15 16class DomDistillerStore; 17 18namespace test { 19namespace util { 20 21class 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 40testing::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|. 45DomDistillerStore* 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