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.
5 #include "sync/sessions/sync_session.h"
6 #include "sync/test/engine/test_id_factory.h"
7 #include "testing/gtest/include/gtest/gtest.h"
12 class StatusControllerTest
: public testing::Test
{ };
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
;
20 status
.set_last_download_updates_result(SYNCER_OK
);
22 status
.model_neutral_state().last_download_updates_result
);
24 status
.set_commit_result(SYNC_AUTH_ERROR
);
25 EXPECT_EQ(SYNC_AUTH_ERROR
, status
.model_neutral_state().commit_result
);
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
);
32 // Test TotalNumConflictingItems
33 TEST_F(StatusControllerTest
, TotalNumConflictingItems
) {
34 StatusController status
;
35 EXPECT_EQ(0, status
.TotalNumConflictingItems());
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());
43 } // namespace sessions