Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "base/values.h" | |
| 6 | |
| 5 #include "sync/engine/traffic_recorder.h" | 7 #include "sync/engine/traffic_recorder.h" |
| 6 | 8 |
| 7 #include "sync/protocol/sync.pb.h" | 9 #include "sync/protocol/sync.pb.h" |
| 10 #include "sync/test/engine/fake_traffic_recorder.h" | |
| 11 #include "sync/util/time.h" | |
| 8 #include "testing/gtest/include/gtest/gtest.h" | 12 #include "testing/gtest/include/gtest/gtest.h" |
| 9 | 13 |
| 10 namespace syncer { | 14 namespace syncer { |
| 11 | 15 |
| 12 const unsigned int kMaxMessages = 10; | 16 const unsigned int kMaxMessages = 10; |
| 13 const unsigned int kMaxMessageSize = 5 * 1024; | 17 const unsigned int kMaxMessageSize = 5 * 1024; |
| 14 | 18 |
| 15 // Ensure the number of records don't exceed |kMaxMessages|. | 19 // Ensure the number of records don't exceed |kMaxMessages|. |
| 16 TEST(TrafficRecorderTest, MaxRecordsTest) { | 20 TEST(TrafficRecorderTest, MaxRecordsTest) { |
| 17 TrafficRecorder recorder(kMaxMessages, kMaxMessageSize); | 21 TrafficRecorder recorder(kMaxMessages, kMaxMessageSize); |
| (...skipping 14 matching lines...) Expand all Loading... | |
| 32 error->set_error_description(error_description); | 36 error->set_error_description(error_description); |
| 33 | 37 |
| 34 TrafficRecorder recorder(kMaxMessages, kMaxMessageSize); | 38 TrafficRecorder recorder(kMaxMessages, kMaxMessageSize); |
| 35 recorder.RecordClientToServerResponse(response); | 39 recorder.RecordClientToServerResponse(response); |
| 36 | 40 |
| 37 TrafficRecorder::TrafficRecord record = recorder.records().front(); | 41 TrafficRecorder::TrafficRecord record = recorder.records().front(); |
| 38 EXPECT_TRUE(record.truncated); | 42 EXPECT_TRUE(record.truncated); |
| 39 EXPECT_TRUE(record.message.empty()); | 43 EXPECT_TRUE(record.message.empty()); |
| 40 } | 44 } |
| 41 | 45 |
| 46 // Ensure that timestamp is recorded correctly in traffic record | |
|
rlarocque
2013/01/31 19:13:10
nit: Please put periods after comments throughout
| |
| 47 TEST(TrafficRecorderTest, TimestampTest) { | |
| 48 sync_pb::ClientToServerResponse response; | |
| 49 | |
| 50 FakeTrafficRecorder recorder(kMaxMessages, kMaxMessageSize); | |
| 51 recorder.SetTime(3); | |
| 52 recorder.RecordClientToServerResponse(response); | |
| 53 | |
| 54 base::Time expect_time = ProtoTimeToTime(3); | |
| 55 TrafficRecorder::TrafficRecord record = recorder.records().front(); | |
| 56 EXPECT_EQ(expect_time, record.timestamp); | |
| 57 } | |
| 58 | |
| 59 // Ensure that timestamps are recorded correctly in traffic records | |
| 60 TEST(TrafficRecorderTest, MultipleTimestampTest) { | |
| 61 sync_pb::ClientToServerResponse response; | |
| 62 base::Time sample_time_1 = ProtoTimeToTime(1359484676659324); | |
| 63 base::Time sample_time_2 = ProtoTimeToTime(1359484676659324 * 2); | |
| 64 | |
| 65 FakeTrafficRecorder recorder(kMaxMessages, kMaxMessageSize); | |
| 66 recorder.SetTime(sample_time_1); | |
| 67 recorder.RecordClientToServerResponse(response); | |
| 68 recorder.SetTime(sample_time_2); | |
| 69 recorder.RecordClientToServerResponse(response); | |
| 70 | |
| 71 TrafficRecorder::TrafficRecord record_1 = recorder.records().front(); | |
| 72 TrafficRecorder::TrafficRecord record_2 = recorder.records().back(); | |
| 73 EXPECT_EQ(sample_time_1, record_1.timestamp); | |
| 74 EXPECT_EQ(sample_time_2, record_2.timestamp); | |
| 75 } | |
| 76 | |
| 77 // Ensure that timestamp is added to ListValue of DictionaryValues in ToValue() | |
| 78 TEST(TrafficRecorderTest, ToValueTimestampTest) { | |
| 79 sync_pb::ClientToServerResponse response; | |
| 80 base::Time sample_time = ProtoTimeToTime(1359484676659324); | |
| 81 std::string expect_time_str = GetTimeDebugString(sample_time); | |
| 82 | |
| 83 FakeTrafficRecorder recorder(kMaxMessages, kMaxMessageSize); | |
| 84 recorder.SetTime(sample_time); | |
| 85 recorder.RecordClientToServerResponse(response); | |
| 86 | |
| 87 ListValue* value = recorder.ToValue(); | |
| 88 DictionaryValue* record_value; | |
| 89 std::string time_str; | |
| 90 | |
| 91 EXPECT_TRUE(value->GetDictionary(0, &record_value)); | |
|
rlarocque
2013/01/31 19:13:10
Make this ASSERT_TRUE? ASSERTs will abort the tes
| |
| 92 EXPECT_TRUE(record_value->GetString("timestamp", &time_str)); | |
| 93 EXPECT_EQ(expect_time_str, time_str); | |
| 94 } | |
| 95 | |
|
rlarocque
2013/01/31 19:13:10
nit: Please remove extra whitespace.
| |
| 96 | |
| 42 } // namespace syncer | 97 } // namespace syncer |
| OLD | NEW |