Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(589)

Side by Side Diff: chrome/browser/sync/js/js_test_util.h

Issue 9699057: [Sync] Move 'sync' target to sync/ (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Address Tim's comments Created 8 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 // Copyright (c) 2011 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_SYNC_JS_JS_TEST_UTIL_H_
6 #define CHROME_BROWSER_SYNC_JS_JS_TEST_UTIL_H_
7 #pragma once
8
9 #include <ostream>
10 #include <string>
11
12 #include "base/memory/weak_ptr.h"
13 #include "chrome/browser/sync/js/js_backend.h"
14 #include "chrome/browser/sync/js/js_controller.h"
15 #include "chrome/browser/sync/js/js_event_handler.h"
16 #include "chrome/browser/sync/js/js_reply_handler.h"
17 #include "chrome/browser/sync/util/weak_handle.h"
18 #include "testing/gmock/include/gmock/gmock.h"
19
20 namespace base {
21 class DictionaryValue;
22 class ListValue;
23 }
24
25 namespace browser_sync {
26
27 class JsArgList;
28 class JsEventDetails;
29
30 // Defined for googletest. Equivalent to "*os << args.ToString()".
31 void PrintTo(const JsArgList& args, ::std::ostream* os);
32 void PrintTo(const JsEventDetails& details, ::std::ostream* os);
33
34 // A gmock matcher for JsArgList. Use like:
35 //
36 // EXPECT_CALL(mock, HandleJsReply("foo", HasArgs(expected_args)));
37 ::testing::Matcher<const JsArgList&> HasArgs(const JsArgList& expected_args);
38
39 // Like HasArgs() but takes a ListValue instead.
40 ::testing::Matcher<const JsArgList&> HasArgsAsList(
41 const base::ListValue& expected_args);
42
43 // A gmock matcher for JsEventDetails. Use like:
44 //
45 // EXPECT_CALL(mock, HandleJsEvent("foo", HasArgs(expected_details)));
46 ::testing::Matcher<const JsEventDetails&> HasDetails(
47 const JsEventDetails& expected_details);
48
49 // Like HasDetails() but takes a DictionaryValue instead.
50 ::testing::Matcher<const JsEventDetails&> HasDetailsAsDictionary(
51 const base::DictionaryValue& expected_details);
52
53 // Mocks.
54
55 class MockJsBackend : public JsBackend,
56 public base::SupportsWeakPtr<MockJsBackend> {
57 public:
58 MockJsBackend();
59 virtual ~MockJsBackend();
60
61 WeakHandle<JsBackend> AsWeakHandle();
62
63 MOCK_METHOD1(SetJsEventHandler, void(const WeakHandle<JsEventHandler>&));
64 MOCK_METHOD3(ProcessJsMessage, void(const ::std::string&, const JsArgList&,
65 const WeakHandle<JsReplyHandler>&));
66 };
67
68 class MockJsController : public JsController,
69 public base::SupportsWeakPtr<MockJsController> {
70 public:
71 MockJsController();
72 virtual ~MockJsController();
73
74 MOCK_METHOD1(AddJsEventHandler, void(JsEventHandler*));
75 MOCK_METHOD1(RemoveJsEventHandler, void(JsEventHandler*));
76 MOCK_METHOD3(ProcessJsMessage,
77 void(const ::std::string&, const JsArgList&,
78 const WeakHandle<JsReplyHandler>&));
79 };
80
81 class MockJsEventHandler
82 : public JsEventHandler,
83 public base::SupportsWeakPtr<MockJsEventHandler> {
84 public:
85 MockJsEventHandler();
86 virtual ~MockJsEventHandler();
87
88 WeakHandle<JsEventHandler> AsWeakHandle();
89
90 MOCK_METHOD2(HandleJsEvent,
91 void(const ::std::string&, const JsEventDetails&));
92 };
93
94 class MockJsReplyHandler
95 : public JsReplyHandler,
96 public base::SupportsWeakPtr<MockJsReplyHandler> {
97 public:
98 MockJsReplyHandler();
99 virtual ~MockJsReplyHandler();
100
101 WeakHandle<JsReplyHandler> AsWeakHandle();
102
103 MOCK_METHOD2(HandleJsReply,
104 void(const ::std::string&, const JsArgList&));
105 };
106
107 } // namespace browser_sync
108
109 #endif // CHROME_BROWSER_SYNC_JS_JS_TEST_UTIL_H_
OLDNEW
« no previous file with comments | « chrome/browser/sync/js/js_sync_manager_observer_unittest.cc ('k') | chrome/browser/sync/js/js_test_util.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698