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