Upstream version 11.40.277.0
[platform/framework/web/crosswalk.git] / src / extensions / browser / api / declarative / test_rules_registry.h
1 // Copyright (c) 2012 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 EXTENSIONS_BROWSER_API_DECLARATIVE_TEST_RULES_REGISTRY_H__
6 #define EXTENSIONS_BROWSER_API_DECLARATIVE_TEST_RULES_REGISTRY_H__
7
8 #include "extensions/browser/api/declarative/rules_registry.h"
9
10 namespace extensions {
11
12 // This is a trivial test RulesRegistry that can only store and retrieve rules.
13 class TestRulesRegistry : public RulesRegistry {
14  public:
15   TestRulesRegistry(content::BrowserThread::ID owner_thread,
16                     const std::string& event_name,
17                     const WebViewKey& webview_key);
18   TestRulesRegistry(
19       content::BrowserContext* browser_context,
20       const std::string& event_name,
21       content::BrowserThread::ID owner_thread,
22       RulesCacheDelegate* cache_delegate,
23       const WebViewKey& webview_key);
24
25   // RulesRegistry implementation:
26   std::string AddRulesImpl(
27       const std::string& extension_id,
28       const std::vector<linked_ptr<RulesRegistry::Rule>>& rules) override;
29   std::string RemoveRulesImpl(
30       const std::string& extension_id,
31       const std::vector<std::string>& rule_identifiers) override;
32   std::string RemoveAllRulesImpl(const std::string& extension_id) override;
33
34   // Sets the result message that will be returned by the next call of
35   // AddRulesImpl, RemoveRulesImpl and RemoveAllRulesImpl.
36   void SetResult(const std::string& result);
37
38  protected:
39   ~TestRulesRegistry() override;
40
41  private:
42   // The string that gets returned by the implementation functions of
43   // RulesRegistry. Defaults to "".
44   std::string result_;
45
46   DISALLOW_COPY_AND_ASSIGN(TestRulesRegistry);
47 };
48
49 }  // namespace extensions
50
51 #endif  // EXTENSIONS_BROWSER_API_DECLARATIVE_TEST_RULES_REGISTRY_H__