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 9namespace syncer { 10namespace sessions { 11 12class 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!). 17TEST_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 33TEST_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