| Index: chrome/browser/extensions/test_blacklist_state_fetcher.cc
|
| diff --git a/chrome/browser/extensions/test_blacklist_state_fetcher.cc b/chrome/browser/extensions/test_blacklist_state_fetcher.cc
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..67062641aed257c0b85a8b19453ebeb64cbdfbe5
|
| --- /dev/null
|
| +++ b/chrome/browser/extensions/test_blacklist_state_fetcher.cc
|
| @@ -0,0 +1,75 @@
|
| +// Copyright 2013 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +#include "chrome/browser/extensions/test_blacklist_state_fetcher.h"
|
| +
|
| +#include "base/stl_util.h"
|
| +
|
| +namespace extensions {
|
| +namespace {
|
| +
|
| +static const char kUrlPrefix[] = "https://prefix.com/foo";
|
| +static const char kBackupConnectUrlPrefix[] = "https://alt1-prefix.com/foo";
|
| +static const char kBackupHttpUrlPrefix[] = "https://alt2-prefix.com/foo";
|
| +static const char kBackupNetworkUrlPrefix[] = "https://alt3-prefix.com/foo";
|
| +static const char kClient[] = "unittest";
|
| +static const char kAppVer[] = "1.0";
|
| +
|
| +SafeBrowsingProtocolConfig CreateSafeBrowsingProtocolConfig() {
|
| + SafeBrowsingProtocolConfig config;
|
| + config.client_name = kClient;
|
| + config.url_prefix = kUrlPrefix;
|
| + config.backup_connect_error_url_prefix = kBackupConnectUrlPrefix;
|
| + config.backup_http_error_url_prefix = kBackupHttpUrlPrefix;
|
| + config.backup_network_error_url_prefix = kBackupNetworkUrlPrefix;
|
| + config.version = kAppVer;
|
| + return config;
|
| +}
|
| +
|
| +} // namespace
|
| +
|
| +TestBlacklistStateFetcher::TestBlacklistStateFetcher(
|
| + BlacklistStateFetcher* fetcher) : fetcher_(fetcher) {
|
| + fetcher_->SetSafeBrowsingConfig(CreateSafeBrowsingProtocolConfig());
|
| +}
|
| +
|
| +TestBlacklistStateFetcher::~TestBlacklistStateFetcher() {
|
| +}
|
| +
|
| +void TestBlacklistStateFetcher::SetBlacklistVerdict(
|
| + const std::string& id, ClientCRXListInfoResponse_Verdict state) {
|
| + verdicts_[id] = state;
|
| +}
|
| +
|
| +bool TestBlacklistStateFetcher::HandleFetcher(int fetcher_id) {
|
| + net::TestURLFetcher* url_fetcher = url_fetcher_factory_.GetFetcherByID(
|
| + fetcher_id);
|
| + if (!url_fetcher)
|
| + return false;
|
| +
|
| + const std::string& request_str = url_fetcher->upload_data();
|
| + ClientCRXListInfoRequest request;
|
| + if (!request.ParseFromString(request_str))
|
| + return false;
|
| +
|
| + std::string id = request.id();
|
| +
|
| + ClientCRXListInfoResponse response;
|
| + if (ContainsKey(verdicts_, id))
|
| + response.set_verdict(verdicts_[id]);
|
| + else
|
| + response.set_verdict(ClientCRXListInfoResponse::NOT_IN_BLACKLIST);
|
| +
|
| + std::string response_str;
|
| + response.SerializeToString(&response_str);
|
| +
|
| + url_fetcher->set_status(net::URLRequestStatus());
|
| + url_fetcher->set_response_code(200);
|
| + url_fetcher->SetResponseString(response_str);
|
| + url_fetcher->delegate()->OnURLFetchComplete(url_fetcher);
|
| +
|
| + return true;
|
| +}
|
| +
|
| +} // namespace extensions
|
|
|