Home | History | Annotate | Download | only in core
      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