// Copyright 2012 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // This file contains test infrastructure for multiple files // (current cookie_monster_unittest.cc and cookie_monster_perftest.cc) // that need to test out CookieMonster interactions with the backing store. // It should only be included by test code. #ifndef NET_COOKIES_COOKIE_MONSTER_STORE_TEST_H_ #define NET_COOKIES_COOKIE_MONSTER_STORE_TEST_H_ #include <stdint.h> #include <map> #include <memory> #include <string> #include <utility> #include <vector> #include "net/cookies/canonical_cookie.h" #include "net/cookies/cookie_monster.h" #include "net/log/net_log_with_source.h" class GURL; namespace base { class Time; } namespace net { // Describes a call to one of the 5 functions of PersistentCookieStore. struct CookieStoreCommand { … }; // Implementation of PersistentCookieStore that captures the // received commands and saves them to a list. // The result of calls to Load() can be configured using SetLoadExpectation(). class MockPersistentCookieStore : public CookieMonster::PersistentCookieStore { … }; // Helper to build a single CanonicalCookie. std::unique_ptr<CanonicalCookie> BuildCanonicalCookie( const GURL& url, const std::string& cookie_line, const base::Time& creation_time); // Helper to build a list of CanonicalCookie*s. void AddCookieToList(const GURL& url, const std::string& cookie_line, const base::Time& creation_time, std::vector<std::unique_ptr<CanonicalCookie>>* out_list); // Just act like a backing database. Keep cookie information from // Add/Update/Delete and regurgitate it when Load is called. class MockSimplePersistentCookieStore : public CookieMonster::PersistentCookieStore { … }; // Helper function for creating a CookieMonster backed by a // MockSimplePersistentCookieStore for garbage collection testing. // // Fill the store through import with |num_*_cookies| cookies, // |num_old_*_cookies| with access time Now()-days_old, the rest with access // time Now(). Cookies made by |num_secure_cookies| and |num_non_secure_cookies| // will be marked secure and non-secure, respectively. Do two SetCookies(). // Return whether each of the two SetCookies() took longer than |gc_perf_micros| // to complete, and how many cookie were left in the store afterwards. std::unique_ptr<CookieMonster> CreateMonsterFromStoreForGC( int num_secure_cookies, int num_old_secure_cookies, int num_non_secure_cookies, int num_old_non_secure_cookies, int days_old); } // namespace net #endif // NET_COOKIES_COOKIE_MONSTER_STORE_TEST_H_