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/internal_api/public/sessions/sync_session_snapshot.h" 6 7#include "base/memory/scoped_ptr.h" 8#include "base/test/values_test_util.h" 9#include "base/values.h" 10#include "testing/gtest/include/gtest/gtest.h" 11 12namespace syncer { 13namespace sessions { 14namespace { 15 16using base::ExpectDictBooleanValue; 17using base::ExpectDictDictionaryValue; 18using base::ExpectDictIntegerValue; 19using base::ExpectDictListValue; 20using base::ExpectDictStringValue; 21 22class SyncSessionSnapshotTest : public testing::Test {}; 23 24TEST_F(SyncSessionSnapshotTest, SyncSessionSnapshotToValue) { 25 ModelNeutralState model_neutral; 26 model_neutral.num_successful_commits = 5; 27 model_neutral.num_successful_bookmark_commits = 10; 28 model_neutral.num_updates_downloaded_total = 100; 29 model_neutral.num_tombstone_updates_downloaded_total = 200; 30 model_neutral.num_reflected_updates_downloaded_total = 50; 31 model_neutral.num_local_overwrites = 15; 32 model_neutral.num_server_overwrites = 18; 33 34 ProgressMarkerMap download_progress_markers; 35 download_progress_markers[BOOKMARKS] = "test"; 36 download_progress_markers[APPS] = "apps"; 37 scoped_ptr<base::DictionaryValue> expected_download_progress_markers_value( 38 ProgressMarkerMapToValue(download_progress_markers)); 39 40 const bool kIsSilenced = true; 41 const int kNumEncryptionConflicts = 1054; 42 const int kNumHierarchyConflicts = 1055; 43 const int kNumServerConflicts = 1057; 44 45 SyncSessionSnapshot snapshot(model_neutral, 46 download_progress_markers, 47 kIsSilenced, 48 kNumEncryptionConflicts, 49 kNumHierarchyConflicts, 50 kNumServerConflicts, 51 false, 52 0, 53 base::Time::Now(), 54 std::vector<int>(MODEL_TYPE_COUNT,0), 55 std::vector<int>(MODEL_TYPE_COUNT, 0), 56 sync_pb::GetUpdatesCallerInfo::UNKNOWN); 57 scoped_ptr<base::DictionaryValue> value(snapshot.ToValue()); 58 EXPECT_EQ(16u, value->size()); 59 ExpectDictIntegerValue(model_neutral.num_successful_commits, 60 *value, "numSuccessfulCommits"); 61 ExpectDictIntegerValue(model_neutral.num_successful_bookmark_commits, 62 *value, "numSuccessfulBookmarkCommits"); 63 ExpectDictIntegerValue(model_neutral.num_updates_downloaded_total, 64 *value, "numUpdatesDownloadedTotal"); 65 ExpectDictIntegerValue(model_neutral.num_tombstone_updates_downloaded_total, 66 *value, "numTombstoneUpdatesDownloadedTotal"); 67 ExpectDictIntegerValue(model_neutral.num_reflected_updates_downloaded_total, 68 *value, "numReflectedUpdatesDownloadedTotal"); 69 ExpectDictIntegerValue(model_neutral.num_local_overwrites, 70 *value, "numLocalOverwrites"); 71 ExpectDictIntegerValue(model_neutral.num_server_overwrites, 72 *value, "numServerOverwrites"); 73 ExpectDictDictionaryValue(*expected_download_progress_markers_value, 74 *value, "downloadProgressMarkers"); 75 ExpectDictBooleanValue(kIsSilenced, *value, "isSilenced"); 76 ExpectDictIntegerValue(kNumEncryptionConflicts, *value, 77 "numEncryptionConflicts"); 78 ExpectDictIntegerValue(kNumHierarchyConflicts, *value, 79 "numHierarchyConflicts"); 80 ExpectDictIntegerValue(kNumServerConflicts, *value, 81 "numServerConflicts"); 82 ExpectDictBooleanValue(false, *value, "notificationsEnabled"); 83} 84 85} // namespace 86} // namespace sessions 87} // namespace syncer 88