- add sources.
[platform/framework/web/crosswalk.git] / src / chrome / browser / password_manager / test_password_store.h
1 // Copyright 2013 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 CHROME_BROWSER_PASSWORD_MANAGER_TEST_PASSWORD_STORE_H_
6 #define CHROME_BROWSER_PASSWORD_MANAGER_TEST_PASSWORD_STORE_H_
7
8 #include <map>
9 #include <string>
10 #include <vector>
11
12 #include "base/memory/ref_counted.h"
13 #include "chrome/browser/password_manager/password_store.h"
14
15 namespace content {
16 class BrowserContext;
17 }
18
19 scoped_refptr<RefcountedBrowserContextKeyedService> CreateTestPasswordStore(
20     content::BrowserContext* profile);
21
22 // A very simple PasswordStore implementation that keeps all of the passwords
23 // in memory and does all it's manipulations on the main thread. Since this
24 // is only used for testing, only the parts of the interface that are needed
25 // for testing have been implemented.
26 class TestPasswordStore : public PasswordStore {
27  public:
28   TestPasswordStore();
29
30   // Helper function for registration with
31   // RefcountedBrowserContextKeyedService::SetTestingFactory
32   static scoped_refptr<RefcountedBrowserContextKeyedService> Create(
33       content::BrowserContext* profile);
34
35   typedef std::map<std::string /* signon_realm */,
36                    std::vector<autofill::PasswordForm> > PasswordMap;
37
38   PasswordMap stored_passwords();
39   void Clear();
40
41  protected:
42   virtual ~TestPasswordStore();
43
44   // Helper function to determine if forms are considered equivalent.
45   bool FormsAreEquivalent(const autofill::PasswordForm& lhs,
46                           const autofill::PasswordForm& rhs);
47
48   // PasswordStore interface
49   virtual void AddLoginImpl(const autofill::PasswordForm& form) OVERRIDE;
50   virtual void UpdateLoginImpl(const autofill::PasswordForm& form) OVERRIDE;
51   virtual void RemoveLoginImpl(const autofill::PasswordForm& form) OVERRIDE;
52   virtual void GetLoginsImpl(const autofill::PasswordForm& form,
53                              const ConsumerCallbackRunner& runner) OVERRIDE;
54   virtual bool ScheduleTask(const base::Closure& task) OVERRIDE;
55   virtual void WrapModificationTask(base::Closure task) OVERRIDE;
56
57   // Unused portions of PasswordStore interface
58   virtual void ReportMetricsImpl() OVERRIDE {}
59   virtual void RemoveLoginsCreatedBetweenImpl(const base::Time& begin,
60                                               const base::Time& end) OVERRIDE {}
61   virtual void GetAutofillableLoginsImpl(
62       PasswordStore::GetLoginsRequest* request) OVERRIDE {}
63   virtual void GetBlacklistLoginsImpl(
64       PasswordStore::GetLoginsRequest* request) OVERRIDE {}
65   virtual bool FillAutofillableLogins(
66       std::vector<autofill::PasswordForm*>* forms) OVERRIDE;
67   virtual bool FillBlacklistLogins(
68       std::vector<autofill::PasswordForm*>* forms) OVERRIDE;
69   virtual void ShutdownOnUIThread() OVERRIDE {}
70
71  private:
72   PasswordMap stored_passwords_;
73
74   DISALLOW_COPY_AND_ASSIGN(TestPasswordStore);
75 };
76
77 #endif  // CHROME_BROWSER_PASSWORD_MANAGER_TEST_PASSWORD_STORE_H_