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.
5 #ifndef COMPONENTS_DOM_DISTILLER_CORE_FAKE_DISTILLER_H_
6 #define COMPONENTS_DOM_DISTILLER_CORE_FAKE_DISTILLER_H_
8 #include "components/dom_distiller/core/article_distillation_update.h"
9 #include "components/dom_distiller/core/article_entry.h"
10 #include "components/dom_distiller/core/distiller.h"
11 #include "testing/gmock/include/gmock/gmock.h"
16 namespace dom_distiller {
19 class MockDistillerFactory : public DistillerFactory {
21 MockDistillerFactory();
22 virtual ~MockDistillerFactory();
23 MOCK_METHOD0(CreateDistillerImpl, Distiller*());
24 virtual scoped_ptr<Distiller> CreateDistiller() OVERRIDE {
25 return scoped_ptr<Distiller>(CreateDistillerImpl());
29 class FakeDistiller : public Distiller {
31 // If execute_callback is true, when DistillPage is called, a task will
32 // immediately be posted to execute the callback with a simple
33 // DistilledArticleProto.
34 explicit FakeDistiller(bool execute_callback);
35 virtual ~FakeDistiller();
36 MOCK_METHOD0(Die, void());
38 virtual void DistillPage(
40 scoped_ptr<DistillerPage> distiller_page,
41 const DistillationFinishedCallback& article_callback,
42 const DistillationUpdateCallback& page_callback) OVERRIDE;
44 void RunDistillerCallback(scoped_ptr<DistilledArticleProto> proto);
46 GURL GetUrl() { return url_; }
48 DistillationFinishedCallback GetArticleCallback() {
49 return article_callback_;
53 void PostDistillerCallback(scoped_ptr<DistilledArticleProto> proto);
54 void RunDistillerCallbackInternal(scoped_ptr<DistilledArticleProto> proto);
56 bool execute_callback_;
58 DistillationFinishedCallback article_callback_;
59 DistillationUpdateCallback page_callback_;
61 bool destruction_allowed_;
65 } // namespace dom_distiller
67 #endif // COMPONENTS_DOM_DISTILLER_CORE_FAKE_DISTILLER_H_