• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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
3 // found in the LICENSE file.
4 
5 #include "sync/sessions/sync_session.h"
6 #include "sync/test/engine/test_id_factory.h"
7 #include "testing/gtest/include/gtest/gtest.h"
8 
9 namespace syncer {
10 namespace sessions {
11 
12 class StatusControllerTest : public testing::Test { };
13 
14 // This test is useful, as simple as it sounds, due to the copy-paste prone
15 // nature of status_controller.cc (we have had bugs in the past where a set_foo
16 // method was actually setting |bar_| instead!).
TEST_F(StatusControllerTest,ReadYourWrites)17 TEST_F(StatusControllerTest, ReadYourWrites) {
18   StatusController status;
19 
20   status.set_last_download_updates_result(SYNCER_OK);
21   EXPECT_EQ(SYNCER_OK,
22             status.model_neutral_state().last_download_updates_result);
23 
24   status.set_commit_result(SYNC_AUTH_ERROR);
25   EXPECT_EQ(SYNC_AUTH_ERROR, status.model_neutral_state().commit_result);
26 
27   for (int i = 0; i < 14; i++)
28     status.increment_num_successful_commits();
29   EXPECT_EQ(14, status.model_neutral_state().num_successful_commits);
30 }
31 
32 // Test TotalNumConflictingItems
TEST_F(StatusControllerTest,TotalNumConflictingItems)33 TEST_F(StatusControllerTest, TotalNumConflictingItems) {
34   StatusController status;
35   EXPECT_EQ(0, status.TotalNumConflictingItems());
36 
37   status.increment_num_server_conflicts();
38   status.increment_num_hierarchy_conflicts_by(3);
39   status.increment_num_encryption_conflicts_by(2);
40   EXPECT_EQ(6, status.TotalNumConflictingItems());
41 }
42 
43 }  // namespace sessions
44 }  // namespace syncer
45