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 CHROME_BROWSER_EXTENSIONS_TEST_BLACKLIST_STATE_FETCHER_H_ 6#define CHROME_BROWSER_EXTENSIONS_TEST_BLACKLIST_STATE_FETCHER_H_ 7 8#include <string> 9 10#include "chrome/browser/extensions/blacklist_state_fetcher.h" 11#include "chrome/common/safe_browsing/crx_info.pb.h" 12#include "net/url_request/test_url_fetcher_factory.h" 13 14namespace extensions { 15 16// A wrapper for extensions::BlacklistStateFetcher, emulating server responses. 17class TestBlacklistStateFetcher { 18 public: 19 explicit TestBlacklistStateFetcher(BlacklistStateFetcher* fetcher); 20 21 ~TestBlacklistStateFetcher(); 22 23 void SetBlacklistVerdict(const std::string& id, 24 ClientCRXListInfoResponse_Verdict state); 25 26 // Get URLFetcher by its id from factory, send the appropriate response. 27 // Return false, if fetcher with fiven id doesn't exist or in case of 28 // incorrect request. Otherwise return true. 29 bool HandleFetcher(int id); 30 31 private: 32 BlacklistStateFetcher* fetcher_; 33 34 std::map<std::string, ClientCRXListInfoResponse_Verdict> verdicts_; 35 36 net::TestURLFetcherFactory url_fetcher_factory_; 37 38 DISALLOW_COPY_AND_ASSIGN(TestBlacklistStateFetcher); 39}; 40 41} // namespace extensions 42 43#endif // CHROME_BROWSER_EXTENSIONS_TEST_BLACKLIST_STATE_FETCHER_H_ 44