Home | History | Annotate | Download | only in sessions
      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!).
     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
     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