| Index: components/history/core/test/fake_web_history_service.cc
|
| diff --git a/components/history/core/test/fake_web_history_service.cc b/components/history/core/test/fake_web_history_service.cc
|
| index 2739974eec5669576689b8058928fea75d90805e..44e5be420c94f145c4a22f189116c7a80a61c13d 100644
|
| --- a/components/history/core/test/fake_web_history_service.cc
|
| +++ b/components/history/core/test/fake_web_history_service.cc
|
| @@ -9,9 +9,11 @@
|
| #include "base/callback.h"
|
| #include "base/macros.h"
|
| #include "base/strings/string_number_conversions.h"
|
| +#include "base/strings/stringprintf.h"
|
| #include "base/time/time.h"
|
| #include "net/base/url_util.h"
|
| #include "net/url_request/url_request_context_getter.h"
|
| +#include "sync/protocol/history_status.pb.h"
|
|
|
| namespace history {
|
|
|
| @@ -19,9 +21,22 @@ namespace history {
|
|
|
| namespace {
|
|
|
| +// TODO(msramek): Find a way to keep these URLs in sync with what is used
|
| +// in WebHistoryService.
|
| +
|
| +const char kLookupUrl[] =
|
| + "https://history.google.com/history/api/lookup";
|
| +
|
| +const char kChromeClient[] = "chrome";
|
| +
|
| +const char kWebAndAppClient[] = "web_app";
|
| +
|
| +const char kSyncServerHost[] = "clients4.google.com";
|
| +
|
| class FakeRequest : public WebHistoryService::Request {
|
| public:
|
| FakeRequest(FakeWebHistoryService* service,
|
| + const GURL& url,
|
| bool emulate_success,
|
| int emulate_response_code,
|
| const WebHistoryService::CompletionCallback& callback,
|
| @@ -34,10 +49,14 @@ class FakeRequest : public WebHistoryService::Request {
|
| int GetResponseCode() override;
|
| const std::string& GetResponseBody() override;
|
| void SetPostData(const std::string& post_data) override;
|
| + void SetPostDataAndType(const std::string& post_data,
|
| + const std::string& mime_type) override;
|
| + void SetUserAgent(const std::string& user_agent) override;
|
| void Start() override;
|
|
|
| private:
|
| FakeWebHistoryService* service_;
|
| + GURL url_;
|
| bool emulate_success_;
|
| int emulate_response_code_;
|
| const WebHistoryService::CompletionCallback& callback_;
|
| @@ -52,6 +71,7 @@ class FakeRequest : public WebHistoryService::Request {
|
|
|
| FakeRequest::FakeRequest(
|
| FakeWebHistoryService* service,
|
| + const GURL& url,
|
| bool emulate_success,
|
| int emulate_response_code,
|
| const WebHistoryService::CompletionCallback& callback,
|
| @@ -59,13 +79,14 @@ FakeRequest::FakeRequest(
|
| base::Time end,
|
| int max_count)
|
| : service_(service),
|
| - emulate_success_(emulate_success),
|
| - emulate_response_code_(emulate_response_code),
|
| - callback_(callback),
|
| - begin_(begin),
|
| - end_(end),
|
| - max_count_(max_count),
|
| - is_pending_(false) {
|
| + url_(url),
|
| + emulate_success_(emulate_success),
|
| + emulate_response_code_(emulate_response_code),
|
| + callback_(callback),
|
| + begin_(begin),
|
| + end_(end),
|
| + max_count_(max_count),
|
| + is_pending_(false) {
|
| }
|
|
|
| bool FakeRequest::IsPending() {
|
| @@ -77,14 +98,41 @@ int FakeRequest::GetResponseCode() {
|
| }
|
|
|
| const std::string& FakeRequest::GetResponseBody() {
|
| - int count = service_->GetNumberOfVisitsBetween(begin_, end_);
|
| - if (max_count_ && max_count_ < count)
|
| - count = max_count_;
|
| -
|
| - response_body_ = "{ \"event\": [";
|
| - for (int i = 0; i < count; ++i)
|
| - response_body_ += i ? ", {}" : "{}";
|
| - response_body_ += "] }";
|
| + std::string client;
|
| + net::GetValueForKeyInQuery(url_, "client", &client);
|
| +
|
| + GURL::Replacements remove_query;
|
| + remove_query.ClearQuery();
|
| + GURL base_url = url_.ReplaceComponents(remove_query);
|
| +
|
| + // History query.
|
| + if (base_url == GURL(kLookupUrl) && client == kChromeClient) {
|
| + int count = service_->GetNumberOfVisitsBetween(begin_, end_);
|
| + if (max_count_ && max_count_ < count)
|
| + count = max_count_;
|
| +
|
| + response_body_ = "{ \"event\": [";
|
| + for (int i = 0; i < count; ++i)
|
| + response_body_ += i ? ", {}" : "{}";
|
| + response_body_ += "] }";
|
| + }
|
| +
|
| + // Web and app activity query.
|
| + if (base_url == GURL(kLookupUrl) && client == kWebAndAppClient) {
|
| + response_body_ = base::StringPrintf(
|
| + "{ \"history_recording_enabled\": %s }",
|
| + service_->IsWebAndAppActivityEnabled() ? "true" : "false");
|
| + }
|
| +
|
| + // Other forms of browsing history query.
|
| + if (url_.host() == kSyncServerHost) {
|
| + std::unique_ptr<sync_pb::HistoryStatusResponse> history_status(
|
| + new sync_pb::HistoryStatusResponse());
|
| + history_status->set_has_derived_data(
|
| + service_->AreOtherFormsOfBrowsingHistoryPresent());
|
| + history_status->SerializeToString(&response_body_);
|
| + }
|
| +
|
| return response_body_;
|
| }
|
|
|
| @@ -92,6 +140,15 @@ void FakeRequest::SetPostData(const std::string& post_data) {
|
| // Unused.
|
| };
|
|
|
| +void FakeRequest::SetPostDataAndType(const std::string& post_data,
|
| + const std::string& mime_type) {
|
| + // Unused.
|
| +};
|
| +
|
| +void FakeRequest::SetUserAgent(const std::string& user_agent) {
|
| + // Unused.
|
| +};
|
| +
|
| void FakeRequest::Start() {
|
| is_pending_ = true;
|
| callback_.Run(this, emulate_success_);
|
| @@ -165,8 +222,25 @@ FakeWebHistoryService::Request* FakeWebHistoryService::CreateRequest(
|
| if (net::GetValueForKeyInQuery(url, "num", &max_count_str))
|
| base::StringToInt(max_count_str, &max_count);
|
|
|
| - return new FakeRequest(this, emulate_success_, emulate_response_code_,
|
| + return new FakeRequest(this, url, emulate_success_, emulate_response_code_,
|
| callback, begin, end, max_count);
|
| }
|
|
|
| +bool FakeWebHistoryService::IsWebAndAppActivityEnabled() {
|
| + return web_and_app_activity_enabled_;
|
| +}
|
| +
|
| +void FakeWebHistoryService::SetWebAndAppActivityEnabled(bool enabled) {
|
| + web_and_app_activity_enabled_ = enabled;
|
| +}
|
| +
|
| +bool FakeWebHistoryService::AreOtherFormsOfBrowsingHistoryPresent() {
|
| + return other_forms_of_browsing_history_present_;
|
| +}
|
| +
|
| +void FakeWebHistoryService::SetOtherFormsOfBrowsingHistoryPresent(
|
| + bool present) {
|
| + other_forms_of_browsing_history_present_ = present;
|
| +}
|
| +
|
| } // namespace history
|
|
|