| Index: chrome/browser/extensions/blacklist_state_fetcher_unittest.cc
|
| diff --git a/chrome/browser/extensions/blacklist_state_fetcher_unittest.cc b/chrome/browser/extensions/blacklist_state_fetcher_unittest.cc
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..7b42a9dd42f9b397ffd7636a97fab9aad4b078e6
|
| --- /dev/null
|
| +++ b/chrome/browser/extensions/blacklist_state_fetcher_unittest.cc
|
| @@ -0,0 +1,83 @@
|
| +// 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 "base/run_loop.h"
|
| +#include "chrome/browser/extensions/blacklist_state_fetcher.h"
|
| +#include "chrome/browser/extensions/test_blacklist_state_fetcher.h"
|
| +#include "chrome/common/safe_browsing/crx_info.pb.h"
|
| +#include "testing/gtest/include/gtest/gtest.h"
|
| +
|
| +namespace extensions {
|
| +namespace {
|
| +
|
| +void Assign(Blacklist::BlacklistState* to, Blacklist::BlacklistState from) {
|
| + *to = from;
|
| +}
|
| +
|
| +} // namespace
|
| +
|
| +class BlacklistStateFetcherTest : public testing::Test {
|
| +};
|
| +
|
| +TEST_F(BlacklistStateFetcherTest, RequestBlacklistState) {
|
| + BlacklistStateFetcher fetcher;
|
| + TestBlacklistStateFetcher tester(&fetcher);
|
| +
|
| + tester.SetBlacklistVerdict(
|
| + "a", ClientCRXListInfoResponse_Verdict_SECURITY_VULNERABILITY);
|
| +
|
| + Blacklist::BlacklistState result;
|
| + fetcher.Request("a", base::Bind(&Assign, &result));
|
| +
|
| + EXPECT_TRUE(tester.HandleFetcher(0));
|
| +
|
| + EXPECT_EQ(Blacklist::BLACKLISTED_SECURITY_VULNERABILITY, result);
|
| +}
|
| +
|
| +TEST_F(BlacklistStateFetcherTest, RequestMultipleBlacklistStates) {
|
| + BlacklistStateFetcher fetcher;
|
| + TestBlacklistStateFetcher tester(&fetcher);
|
| +
|
| + tester.SetBlacklistVerdict(
|
| + "a", ClientCRXListInfoResponse_Verdict_UNKNOWN);
|
| + tester.SetBlacklistVerdict(
|
| + "b", ClientCRXListInfoResponse_Verdict_MALWARE);
|
| + tester.SetBlacklistVerdict(
|
| + "c", ClientCRXListInfoResponse_Verdict_SECURITY_VULNERABILITY);
|
| + tester.SetBlacklistVerdict(
|
| + "d", ClientCRXListInfoResponse_Verdict_CWS_POLICY_VIOLATION);
|
| + tester.SetBlacklistVerdict(
|
| + "e", ClientCRXListInfoResponse_Verdict_POTENTIALLY_UNWANTED);
|
| +
|
| + Blacklist::BlacklistState result[9];
|
| + fetcher.Request("a", base::Bind(&Assign, &result[0]));
|
| + fetcher.Request("a", base::Bind(&Assign, &result[1]));
|
| + fetcher.Request("b", base::Bind(&Assign, &result[2]));
|
| + fetcher.Request("b", base::Bind(&Assign, &result[3]));
|
| + fetcher.Request("c", base::Bind(&Assign, &result[4]));
|
| + fetcher.Request("d", base::Bind(&Assign, &result[5]));
|
| + fetcher.Request("e", base::Bind(&Assign, &result[6]));
|
| + fetcher.Request("f", base::Bind(&Assign, &result[7]));
|
| + fetcher.Request("f", base::Bind(&Assign, &result[8]));
|
| +
|
| + // 6 fetchers should be created. Sending responses in shuffled order.
|
| + EXPECT_TRUE(tester.HandleFetcher(4));
|
| + EXPECT_TRUE(tester.HandleFetcher(2));
|
| + EXPECT_TRUE(tester.HandleFetcher(5));
|
| + EXPECT_TRUE(tester.HandleFetcher(1));
|
| + EXPECT_TRUE(tester.HandleFetcher(0));
|
| + EXPECT_TRUE(tester.HandleFetcher(3));
|
| +
|
| + EXPECT_EQ(Blacklist::NOT_BLACKLISTED, result[0]);
|
| + EXPECT_EQ(Blacklist::NOT_BLACKLISTED, result[1]);
|
| + EXPECT_EQ(Blacklist::BLACKLISTED_MALWARE, result[2]);
|
| + EXPECT_EQ(Blacklist::BLACKLISTED_MALWARE, result[3]);
|
| + EXPECT_EQ(Blacklist::BLACKLISTED_SECURITY_VULNERABILITY, result[4]);
|
| + EXPECT_EQ(Blacklist::BLACKLISTED_CWS_POLICY_VIOLATION, result[5]);
|
| + EXPECT_EQ(Blacklist::BLACKLISTED_POTENTIALLY_UNWANTED, result[6]);
|
| + EXPECT_EQ(Blacklist::NOT_BLACKLISTED, result[7]);
|
| + EXPECT_EQ(Blacklist::NOT_BLACKLISTED, result[8]);
|
| +}
|
| +
|
| +} // namespace extensions
|
|
|