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

Side by Side Diff: sync/internal_api/protocol_event_buffer_unittest.cc

Issue 212603007: sync: Buffer Protocol Events for about:sync page (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase Created 6 years, 8 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 "base/memory/scoped_ptr.h"
6 #include "base/memory/scoped_vector.h"
7 #include "base/time/time.h"
8 #include "sync/internal_api/protocol_event_buffer.h"
9 #include "sync/internal_api/public/events/poll_get_updates_request_event.h"
10 #include "sync/internal_api/public/events/protocol_event.h"
11 #include "sync/protocol/sync.pb.h"
12 #include "testing/gtest/include/gtest/gtest.h"
13
14 namespace syncer {
15
16 class ProtocolEventBufferTest : public ::testing::Test {
17 public:
18 ProtocolEventBufferTest();
19 virtual ~ProtocolEventBufferTest();
20
21 static scoped_ptr<ProtocolEvent> MakeTestEvent(int64 id);
22 static bool HasId(const ProtocolEvent& event, int64 id);
23
24 protected:
25 ProtocolEventBuffer buffer_;
26 };
27
28 ProtocolEventBufferTest::ProtocolEventBufferTest() {}
29
30 ProtocolEventBufferTest::~ProtocolEventBufferTest() {}
31
32 scoped_ptr<ProtocolEvent> ProtocolEventBufferTest::MakeTestEvent(int64 id) {
33 sync_pb::ClientToServerMessage message;
34 return scoped_ptr<ProtocolEvent>(
35 new PollGetUpdatesRequestEvent(
36 base::Time::FromInternalValue(id),
37 message));
38 }
39
40 bool ProtocolEventBufferTest::HasId(const ProtocolEvent& event, int64 id) {
41 return event.GetTimestamp() == base::Time::FromInternalValue(id);
42 }
43
44 TEST_F(ProtocolEventBufferTest, AddThenReturnEvents) {
45 scoped_ptr<ProtocolEvent> e1(MakeTestEvent(1));
46 scoped_ptr<ProtocolEvent> e2(MakeTestEvent(2));
47
48 buffer_.RecordProtocolEvent(*e1);
49 buffer_.RecordProtocolEvent(*e2);
50
51 ScopedVector<ProtocolEvent> buffered_events(
52 buffer_.GetBufferedProtocolEvents());
53
54 ASSERT_EQ(2U, buffered_events.size());
55 EXPECT_TRUE(HasId(*(buffered_events[0]), 1));
56 EXPECT_TRUE(HasId(*(buffered_events[1]), 2));
57 }
58
59 TEST_F(ProtocolEventBufferTest, AddThenOverflowThenReturnEvents) {
60 for (size_t i = 0; i < ProtocolEventBuffer::kBufferSize+1; ++i) {
61 scoped_ptr<ProtocolEvent> e(MakeTestEvent(static_cast<int64>(i)));
62 buffer_.RecordProtocolEvent(*e);
63 }
64
65 ScopedVector<ProtocolEvent> buffered_events(
66 buffer_.GetBufferedProtocolEvents());
67 ASSERT_EQ(ProtocolEventBuffer::kBufferSize, buffered_events.size());
68
69 for (size_t i = 1; i < ProtocolEventBuffer::kBufferSize+1; ++i) {
70 EXPECT_TRUE(
71 HasId(*(buffered_events[i-1]), static_cast<int64>(i)));
72 }
73
74 }
75
76
77 } // namespace syncer
OLDNEW
« no previous file with comments | « sync/internal_api/protocol_event_buffer.cc ('k') | sync/internal_api/public/events/commit_request_event.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698