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

Side by Side Diff: chrome/browser/policy/logging_work_scheduler_unittest.cc

Issue 11946017: Remove old cloud policy code. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Address nits. Created 7 years, 11 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 #include "chrome/browser/policy/logging_work_scheduler.h"
6
7 #include "base/bind.h"
8 #include "base/callback.h"
9 #include "base/memory/scoped_ptr.h"
10 #include "base/message_loop.h"
11 #include "content/public/test/test_browser_thread.h"
12 #include "testing/gtest/include/gtest/gtest.h"
13
14 using content::BrowserThread;
15
16 namespace policy {
17
18 class LoggingWorkSchedulerTest : public testing::Test {
19 public:
20 LoggingWorkSchedulerTest()
21 : ui_thread_(BrowserThread::UI, &loop_) {
22 }
23
24 virtual ~LoggingWorkSchedulerTest() {
25 }
26
27 virtual void TearDown() {
28 scheduler1_.reset();
29 scheduler2_.reset();
30 logger_.reset();
31 }
32
33 protected:
34 void Callback1() {
35 logger_->RegisterEvent();
36 if (count1_ > 0) {
37 count1_--;
38 scheduler1_->PostDelayedWork(
39 base::Bind(&LoggingWorkSchedulerTest::Callback1,
40 base::Unretained(this)), delay1_);
41 }
42 }
43
44 void Callback2() {
45 logger_->RegisterEvent();
46 if (count2_ > 0) {
47 count2_--;
48 scheduler2_->PostDelayedWork(
49 base::Bind(&LoggingWorkSchedulerTest::Callback2,
50 base::Unretained(this)), delay2_);
51 }
52 }
53
54 protected:
55 scoped_ptr<EventLogger> logger_;
56
57 // The first scheduler will fire |count1_| events with |delay1_| pauses
58 // between each.
59 scoped_ptr<LoggingWorkScheduler> scheduler1_;
60 int count1_;
61 int delay1_;
62
63 // The second scheduler will fire |count2_| events with |delay2_| pauses
64 // between each.
65 scoped_ptr<LoggingWorkScheduler> scheduler2_;
66 int count2_;
67 int delay2_;
68
69 MessageLoop loop_;
70
71 private:
72 content::TestBrowserThread ui_thread_;
73
74 DISALLOW_COPY_AND_ASSIGN(LoggingWorkSchedulerTest);
75 };
76
77 TEST_F(LoggingWorkSchedulerTest, LoggerTest) {
78 logger_.reset(new EventLogger);
79 scheduler1_.reset(new LoggingWorkScheduler(logger_.get()));
80 scheduler2_.reset(new LoggingWorkScheduler(logger_.get()));
81
82 // Configure the first scheduler to fire at 0, 30, 60, 90, 120.
83 count1_ = 4;
84 delay1_ = 30;
85
86 // Configure the first scheduler to fire at 0, 40, 80, 120.
87 count2_ = 3;
88 delay2_ = 40;
89
90 Callback1();
91 Callback2();
92 loop_.RunUntilIdle();
93
94 std::vector<int64> events;
95 logger_->Swap(&events);
96
97 EXPECT_EQ(9u, events.size());
98 EXPECT_EQ(0, events[0]);
99 EXPECT_EQ(0, events[1]);
100 EXPECT_EQ(30, events[2]);
101 EXPECT_EQ(40, events[3]);
102 EXPECT_EQ(60, events[4]);
103 EXPECT_EQ(80, events[5]);
104 EXPECT_EQ(90, events[6]);
105 EXPECT_EQ(120, events[7]);
106 EXPECT_EQ(120, events[8]);
107
108 EXPECT_EQ(0, EventLogger::CountEvents(events, 0, 0));
109 EXPECT_EQ(2, EventLogger::CountEvents(events, 0, 1));
110 EXPECT_EQ(4, EventLogger::CountEvents(events, 30, 51));
111 EXPECT_EQ(7, EventLogger::CountEvents(events, 0, 120));
112 EXPECT_EQ(7, EventLogger::CountEvents(events, 1, 120));
113 }
114
115 } // namespace policy
OLDNEW
« no previous file with comments | « chrome/browser/policy/logging_work_scheduler.cc ('k') | chrome/browser/policy/mock_cloud_policy_data_store.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698