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

Side by Side Diff: chrome/browser/sync_file_system/drive_backend/callback_tracker_unittest.cc

Issue 310383002: [SyncFS] Introduce CallbackTracker to handle callback abortion (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 6 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 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.
4
5 #include "chrome/browser/sync_file_system/drive_backend/callback_tracker.h"
6
7 #include "testing/gtest/include/gtest/gtest.h"
8
9 namespace sync_file_system {
10 namespace drive_backend {
11
12 namespace {
13
14 void Receiver(bool* called) {
15 DCHECK(called);
16 EXPECT_FALSE(*called);
17 *called = true;
18 }
19
20 } // namespace
21
22 TEST(CallbackTrackerTest, AbortAll) {
23 CallbackTracker tracker;
24
25 bool aborted = false;
26 bool invoked = false;
27 base::Closure callback = tracker.Register(base::Bind(&Receiver, &aborted),
28 base::Bind(&Receiver, &invoked));
29 tracker.AbortAll();
30 EXPECT_TRUE(aborted);
31 EXPECT_FALSE(invoked);
32
33 callback.Run();
34 EXPECT_TRUE(aborted);
35 EXPECT_FALSE(invoked);
36 }
37
38 TEST(CallbackTrackerTest, Invoke) {
39 CallbackTracker tracker;
40
41 bool aborted = false;
42 bool invoked = false;
43 base::Closure callback = tracker.Register(base::Bind(&Receiver, &aborted),
44 base::Bind(&Receiver, &invoked));
45 callback.Run();
46 EXPECT_FALSE(aborted);
47 EXPECT_TRUE(invoked);
48
49 // Second call should not do anything.
50 invoked = false;
51 callback.Run();
52 EXPECT_FALSE(invoked);
53
54 tracker.AbortAll();
55 EXPECT_FALSE(aborted);
56 }
57
58 } // namespace drive_backend
59 } // namespace sync_file_system
OLDNEW
« no previous file with comments | « chrome/browser/sync_file_system/drive_backend/callback_tracker_internal.h.pump ('k') | chrome/chrome_browser.gypi » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698