1 // Copyright 2019 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 SERVICES_NETWORK_TEST_TEST_COOKIE_MANAGER_H_
6 #define SERVICES_NETWORK_TEST_TEST_COOKIE_MANAGER_H_
7 
8 #include <string>
9 #include <vector>
10 
11 #include "base/callback_forward.h"
12 #include "base/macros.h"
13 #include "mojo/public/cpp/bindings/remote.h"
14 #include "services/network/public/mojom/cookie_manager.mojom.h"
15 
16 namespace network {
17 
18 // Stubbed out implementation of network::mojom::CookieManager for
19 // tests.
20 class TestCookieManager : public network::mojom::CookieManager {
21  public:
22   TestCookieManager();
23   ~TestCookieManager() override;
24 
25   void SetCanonicalCookie(const net::CanonicalCookie& cookie,
26                           const GURL& source_url,
27                           const net::CookieOptions& cookie_options,
28                           SetCanonicalCookieCallback callback) override;
GetAllCookies(GetAllCookiesCallback callback)29   void GetAllCookies(GetAllCookiesCallback callback) override {}
GetAllCookiesWithAccessSemantics(GetAllCookiesWithAccessSemanticsCallback callback)30   void GetAllCookiesWithAccessSemantics(
31       GetAllCookiesWithAccessSemanticsCallback callback) override {}
GetCookieList(const GURL & url,const net::CookieOptions & cookie_options,GetCookieListCallback callback)32   void GetCookieList(const GURL& url,
33                      const net::CookieOptions& cookie_options,
34                      GetCookieListCallback callback) override {}
DeleteCanonicalCookie(const net::CanonicalCookie & cookie,DeleteCanonicalCookieCallback callback)35   void DeleteCanonicalCookie(const net::CanonicalCookie& cookie,
36                              DeleteCanonicalCookieCallback callback) override {}
DeleteCookies(network::mojom::CookieDeletionFilterPtr filter,DeleteCookiesCallback callback)37   void DeleteCookies(network::mojom::CookieDeletionFilterPtr filter,
38                      DeleteCookiesCallback callback) override {}
39   void AddCookieChangeListener(
40       const GURL& url,
41       const base::Optional<std::string>& name,
42       mojo::PendingRemote<network::mojom::CookieChangeListener> listener)
43       override;
AddGlobalChangeListener(mojo::PendingRemote<network::mojom::CookieChangeListener> notification_pointer)44   void AddGlobalChangeListener(
45       mojo::PendingRemote<network::mojom::CookieChangeListener>
46           notification_pointer) override {}
CloneInterface(mojo::PendingReceiver<network::mojom::CookieManager> new_interface)47   void CloneInterface(mojo::PendingReceiver<network::mojom::CookieManager>
48                           new_interface) override {}
FlushCookieStore(FlushCookieStoreCallback callback)49   void FlushCookieStore(FlushCookieStoreCallback callback) override {}
AllowFileSchemeCookies(bool allow,AllowFileSchemeCookiesCallback callback)50   void AllowFileSchemeCookies(
51       bool allow,
52       AllowFileSchemeCookiesCallback callback) override {}
SetContentSettings(const std::vector<::ContentSettingPatternSource> & settings)53   void SetContentSettings(
54       const std::vector<::ContentSettingPatternSource>& settings) override {}
SetForceKeepSessionState()55   void SetForceKeepSessionState() override {}
BlockThirdPartyCookies(bool block)56   void BlockThirdPartyCookies(bool block) override {}
SetContentSettingsForLegacyCookieAccess(const std::vector<::ContentSettingPatternSource> & settings)57   void SetContentSettingsForLegacyCookieAccess(
58       const std::vector<::ContentSettingPatternSource>& settings) override {}
SetStorageAccessGrantSettings(const std::vector<::ContentSettingPatternSource> & settings,SetStorageAccessGrantSettingsCallback callback)59   void SetStorageAccessGrantSettings(
60       const std::vector<::ContentSettingPatternSource>& settings,
61       SetStorageAccessGrantSettingsCallback callback) override {}
62 
63   void DispatchCookieChange(const net::CookieChangeInfo& change);
64 
65  private:
66   // List of observers receiving cookie change notifications.
67   std::vector<mojo::Remote<network::mojom::CookieChangeListener>>
68       cookie_change_listeners_;
69 };
70 
71 }  // namespace network
72 #endif  // SERVICES_NETWORK_TEST_TEST_COOKIE_MANAGER_H_
73