1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74
|
// Copyright 2013 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef COMPONENTS_DOM_DISTILLER_CORE_FAKE_DISTILLER_H_
#define COMPONENTS_DOM_DISTILLER_CORE_FAKE_DISTILLER_H_
#include "base/functional/callback.h"
#include "components/dom_distiller/core/article_distillation_update.h"
#include "components/dom_distiller/core/article_entry.h"
#include "components/dom_distiller/core/distiller.h"
#include "testing/gmock/include/gmock/gmock.h"
#include "url/gurl.h"
class GURL;
namespace dom_distiller {
namespace test {
class MockDistillerFactory : public DistillerFactory {
public:
MockDistillerFactory();
~MockDistillerFactory() override;
MOCK_METHOD0(CreateDistillerImpl, Distiller*());
std::unique_ptr<Distiller> CreateDistiller() override {
return std::unique_ptr<Distiller>(CreateDistillerImpl());
}
};
class FakeDistiller : public Distiller {
public:
// If execute_callback is true, when DistillPage is called, a task will
// immediately be posted to execute the callback with a simple
// DistilledArticleProto.
explicit FakeDistiller(bool execute_callback);
// TODO(yfriedman): Drop execute_callback from this and give the option of
// "auto-distilling" or calling the provided closure.
FakeDistiller(bool execute_callback,
base::OnceClosure distillation_initiated_callback);
~FakeDistiller() override;
MOCK_METHOD0(Die, void());
void DistillPage(const GURL& url,
std::unique_ptr<DistillerPage> distiller_page,
DistillationFinishedCallback article_callback,
const DistillationUpdateCallback& page_callback) override;
void RunDistillerCallback(std::unique_ptr<DistilledArticleProto> proto);
void RunDistillerUpdateCallback(const ArticleDistillationUpdate& update);
GURL GetUrl() { return url_; }
const DistillationFinishedCallback& GetArticleCallback() const {
return article_callback_;
}
private:
void PostDistillerCallback(std::unique_ptr<DistilledArticleProto> proto);
void RunDistillerCallbackInternal(
std::unique_ptr<DistilledArticleProto> proto);
bool execute_callback_;
GURL url_;
DistillationFinishedCallback article_callback_;
DistillationUpdateCallback page_callback_;
bool destruction_allowed_;
// Used to notify when distillation is complete.
base::OnceClosure distillation_initiated_callback_;
};
} // namespace test
} // namespace dom_distiller
#endif // COMPONENTS_DOM_DISTILLER_CORE_FAKE_DISTILLER_H_
|