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