1 // Copyright (c) 2011 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 "base/strings/string_number_conversions.h"
6 #include "chrome/browser/sync/test/integration/dictionary_helper.h"
7 #include "chrome/browser/sync/test/integration/performance/sync_timing_helper.h"
8 #include "chrome/browser/sync/test/integration/profile_sync_service_harness.h"
9 #include "chrome/browser/sync/test/integration/sync_test.h"
10 #include "chrome/common/spellcheck_common.h"
11
12 class DictionarySyncPerfTest : public SyncTest {
13 public:
DictionarySyncPerfTest()14 DictionarySyncPerfTest() : SyncTest(TWO_CLIENT) {}
~DictionarySyncPerfTest()15 virtual ~DictionarySyncPerfTest() {}
16
17 private:
18 DISALLOW_COPY_AND_ASSIGN(DictionarySyncPerfTest);
19 };
20
IN_PROC_BROWSER_TEST_F(DictionarySyncPerfTest,P0)21 IN_PROC_BROWSER_TEST_F(DictionarySyncPerfTest, P0) {
22 ASSERT_TRUE(SetupSync()) << "SetupSync() failed.";
23 dictionary_helper::LoadDictionaries();
24 ASSERT_TRUE(dictionary_helper::DictionariesMatch());
25
26 base::TimeDelta dt;
27 for (size_t i = 0;
28 i < chrome::spellcheck_common::MAX_SYNCABLE_DICTIONARY_WORDS;
29 ++i) {
30 ASSERT_TRUE(dictionary_helper::AddWord(
31 0, "foo" + base::Uint64ToString(i)));
32 }
33 dt = SyncTimingHelper::TimeMutualSyncCycle(GetClient(0), GetClient(1));
34 ASSERT_EQ(chrome::spellcheck_common::MAX_SYNCABLE_DICTIONARY_WORDS,
35 dictionary_helper::GetDictionarySize(1));
36 SyncTimingHelper::PrintResult("dictionary", "add_words", dt);
37
38 for (size_t i = 0;
39 i < chrome::spellcheck_common::MAX_SYNCABLE_DICTIONARY_WORDS;
40 ++i) {
41 ASSERT_TRUE(dictionary_helper::RemoveWord(
42 0, "foo" + base::Uint64ToString(i)));
43 }
44 dt = SyncTimingHelper::TimeMutualSyncCycle(GetClient(0), GetClient(1));
45 ASSERT_EQ(0UL, dictionary_helper::GetDictionarySize(1));
46 SyncTimingHelper::PrintResult("dictionary", "remove_words", dt);
47 }
48