| 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..793e2cf41a8e55b9066dd4d55c81870112806731
|
| --- /dev/null
|
| +++ b/chrome/browser/extensions/blacklist_state_fetcher_unittest.cc
|
| @@ -0,0 +1,86 @@
|
| +// 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/bind.h"
|
| +#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 "content/public/test/test_browser_thread_bundle.h"
|
| +#include "testing/gtest/include/gtest/gtest.h"
|
| +
|
| +namespace extensions {
|
| +namespace {
|
| +
|
| +void Assign(BlacklistState* to, BlacklistState from) {
|
| + *to = from;
|
| +}
|
| +
|
| +} // namespace
|
| +
|
| +class BlacklistStateFetcherTest : public testing::Test {
|
| + private:
|
| + content::TestBrowserThreadBundle browser_thread_bundle_;
|
| +};
|
| +
|
| +TEST_F(BlacklistStateFetcherTest, RequestBlacklistState) {
|
| + BlacklistStateFetcher fetcher;
|
| + TestBlacklistStateFetcher tester(&fetcher);
|
| +
|
| + tester.SetBlacklistVerdict(
|
| + "a", ClientCRXListInfoResponse_Verdict_SECURITY_VULNERABILITY);
|
| +
|
| + BlacklistState result;
|
| + fetcher.Request("a", base::Bind(&Assign, &result));
|
| +
|
| + EXPECT_TRUE(tester.HandleFetcher(0));
|
| + EXPECT_EQ(BLACKLISTED_SECURITY_VULNERABILITY, result);
|
| +}
|
| +
|
| +TEST_F(BlacklistStateFetcherTest, RequestMultipleBlacklistStates) {
|
| + BlacklistStateFetcher fetcher;
|
| + TestBlacklistStateFetcher tester(&fetcher);
|
| +
|
| + tester.SetBlacklistVerdict(
|
| + "a", ClientCRXListInfoResponse_Verdict_NOT_IN_BLACKLIST);
|
| + 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);
|
| +
|
| + 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(NOT_BLACKLISTED, result[0]);
|
| + EXPECT_EQ(NOT_BLACKLISTED, result[1]);
|
| + EXPECT_EQ(BLACKLISTED_MALWARE, result[2]);
|
| + EXPECT_EQ(BLACKLISTED_MALWARE, result[3]);
|
| + EXPECT_EQ(BLACKLISTED_SECURITY_VULNERABILITY, result[4]);
|
| + EXPECT_EQ(BLACKLISTED_CWS_POLICY_VIOLATION, result[5]);
|
| + EXPECT_EQ(BLACKLISTED_POTENTIALLY_UNWANTED, result[6]);
|
| + EXPECT_EQ(NOT_BLACKLISTED, result[7]);
|
| + EXPECT_EQ(NOT_BLACKLISTED, result[8]);
|
| +}
|
| +
|
| +} // namespace extensions
|
|
|