diff options
Diffstat (limited to 'net/cookies/cookie_store_test_helpers.h')
-rw-r--r-- | net/cookies/cookie_store_test_helpers.h | 105 |
1 files changed, 105 insertions, 0 deletions
diff --git a/net/cookies/cookie_store_test_helpers.h b/net/cookies/cookie_store_test_helpers.h new file mode 100644 index 0000000..4e7ce27 --- /dev/null +++ b/net/cookies/cookie_store_test_helpers.h @@ -0,0 +1,105 @@ +// Copyright (c) 2012 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. + +#ifndef NET_COOKIES_COOKIE_STORE_TEST_HELPERS_H_ +#define NET_COOKIES_COOKIE_STORE_TEST_HELPERS_H_ +#pragma once + +#include "net/cookies/cookie_monster.h" + +#include <string> +#include <vector> + +#include "base/callback_forward.h" +#include "testing/gtest/include/gtest/gtest.h" + +namespace net { + +class DelayedCookieMonster : public CookieStore { + public: + DelayedCookieMonster(); + + // Call the asynchronous CookieMonster function, expect it to immediately + // invoke the internal callback. + // Post a delayed task to invoke the original callback with the results. + + virtual void SetCookieWithOptionsAsync( + const GURL& url, + const std::string& cookie_line, + const CookieOptions& options, + const CookieMonster::SetCookiesCallback& callback) OVERRIDE; + + virtual void GetCookiesWithOptionsAsync( + const GURL& url, const CookieOptions& options, + const CookieMonster::GetCookiesCallback& callback) OVERRIDE; + + virtual void GetCookiesWithInfoAsync( + const GURL& url, + const CookieOptions& options, + const CookieMonster::GetCookieInfoCallback& callback) OVERRIDE; + + virtual bool SetCookieWithOptions(const GURL& url, + const std::string& cookie_line, + const CookieOptions& options); + + virtual std::string GetCookiesWithOptions(const GURL& url, + const CookieOptions& options); + + virtual void GetCookiesWithInfo(const GURL& url, + const CookieOptions& options, + std::string* cookie_line, + std::vector<CookieInfo>* cookie_infos); + + virtual void DeleteCookie(const GURL& url, + const std::string& cookie_name); + + virtual void DeleteCookieAsync(const GURL& url, + const std::string& cookie_name, + const base::Closure& callback) OVERRIDE; + + virtual void DeleteAllCreatedBetweenAsync( + const base::Time& delete_begin, + const base::Time& delete_end, + const DeleteCallback& callback) OVERRIDE; + + virtual CookieMonster* GetCookieMonster() OVERRIDE; + + private: + + // Be called immediately from CookieMonster. + + void GetCookiesInternalCallback( + const std::string& cookie_line, + const std::vector<CookieStore::CookieInfo>& cookie_info); + + void SetCookiesInternalCallback(bool result); + + void GetCookiesWithOptionsInternalCallback(const std::string& cookie); + + // Invoke the original callbacks. + + void InvokeGetCookiesCallback( + const CookieMonster::GetCookieInfoCallback& callback); + + void InvokeSetCookiesCallback( + const CookieMonster::SetCookiesCallback& callback); + + void InvokeGetCookieStringCallback( + const CookieMonster::GetCookiesCallback& callback); + + friend class base::RefCountedThreadSafe<DelayedCookieMonster>; + virtual ~DelayedCookieMonster(); + + scoped_refptr<CookieMonster> cookie_monster_; + + bool did_run_; + bool result_; + std::string cookie_; + std::string cookie_line_; + std::vector<CookieStore::CookieInfo> cookie_info_; +}; + +} // namespace net + +#endif // NET_COOKIES_COOKIE_STORE_TEST_HELPERS_H_ |