Updating trunk VERSION from 2139.0 to 2140.0
[chromium-blink-merge.git] / extensions / browser / api / test / test_api.h
blobe2de0b087bf31e3e21e60c3a7515c74f98161e3a
1 // Copyright 2014 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.
5 #ifndef EXTENSIONS_BROWSER_API_TEST_TEST_API_H_
6 #define EXTENSIONS_BROWSER_API_TEST_TEST_API_H_
8 #include "base/values.h"
9 #include "extensions/browser/extension_function.h"
11 template <typename T>
12 struct DefaultSingletonTraits;
14 namespace extensions {
16 // A function that is only available in tests.
17 // Prior to running, checks that we are in a testing process.
18 class TestExtensionFunction : public SyncExtensionFunction {
19 protected:
20 virtual ~TestExtensionFunction();
22 // SyncExtensionFunction:
23 virtual bool RunSync() OVERRIDE;
25 virtual bool RunSafe() = 0;
28 class TestNotifyPassFunction : public TestExtensionFunction {
29 public:
30 DECLARE_EXTENSION_FUNCTION("test.notifyPass", UNKNOWN)
32 protected:
33 virtual ~TestNotifyPassFunction();
35 // TestExtensionFunction:
36 virtual bool RunSafe() OVERRIDE;
39 class TestNotifyFailFunction : public TestExtensionFunction {
40 public:
41 DECLARE_EXTENSION_FUNCTION("test.notifyFail", UNKNOWN)
43 protected:
44 virtual ~TestNotifyFailFunction();
46 // TestExtensionFunction:
47 virtual bool RunSafe() OVERRIDE;
50 class TestLogFunction : public TestExtensionFunction {
51 public:
52 DECLARE_EXTENSION_FUNCTION("test.log", UNKNOWN)
54 protected:
55 virtual ~TestLogFunction();
57 // TestExtensionFunction:
58 virtual bool RunSafe() OVERRIDE;
61 class TestSendMessageFunction : public AsyncExtensionFunction {
62 public:
63 DECLARE_EXTENSION_FUNCTION("test.sendMessage", UNKNOWN)
65 // Sends a reply back to the calling extension. Many extensions don't need
66 // a reply and will just ignore it.
67 void Reply(const std::string& message);
69 // Sends an error back to the calling extension.
70 void ReplyWithError(const std::string& error);
72 protected:
73 virtual ~TestSendMessageFunction();
75 // ExtensionFunction:
76 virtual bool RunAsync() OVERRIDE;
79 class TestGetConfigFunction : public TestExtensionFunction {
80 public:
81 DECLARE_EXTENSION_FUNCTION("test.getConfig", UNKNOWN)
83 // Set the dictionary returned by chrome.test.getConfig().
84 // Does not take ownership of |value|.
85 static void set_test_config_state(base::DictionaryValue* value);
87 protected:
88 // Tests that set configuration state do so by calling
89 // set_test_config_state() as part of test set up, and unsetting it
90 // during tear down. This singleton class holds a pointer to that
91 // state, owned by the test code.
92 class TestConfigState {
93 public:
94 static TestConfigState* GetInstance();
96 void set_config_state(base::DictionaryValue* config_state) {
97 config_state_ = config_state;
100 const base::DictionaryValue* config_state() { return config_state_; }
102 private:
103 friend struct DefaultSingletonTraits<TestConfigState>;
104 TestConfigState();
106 base::DictionaryValue* config_state_;
108 DISALLOW_COPY_AND_ASSIGN(TestConfigState);
111 virtual ~TestGetConfigFunction();
113 // TestExtensionFunction:
114 virtual bool RunSafe() OVERRIDE;
117 class TestWaitForRoundTripFunction : public TestExtensionFunction {
118 public:
119 DECLARE_EXTENSION_FUNCTION("test.waitForRoundTrip", UNKNOWN)
121 protected:
122 virtual ~TestWaitForRoundTripFunction();
124 // TestExtensionFunction:
125 virtual bool RunSafe() OVERRIDE;
128 } // namespace extensions
130 #endif // EXTENSIONS_BROWSER_API_TEST_TEST_API_H_