Chromium Code Reviews| Index: chrome/browser/spellchecker/spellcheck_profile_unittest.cc |
| diff --git a/chrome/browser/spellchecker/spellcheck_profile_unittest.cc b/chrome/browser/spellchecker/spellcheck_profile_unittest.cc |
| index 4e03fa9160c5226d58c6166a7b2b9ffd16c32109..7276a149a38a9fbb78fb27a4a5a8cb3c04cd570a 100644 |
| --- a/chrome/browser/spellchecker/spellcheck_profile_unittest.cc |
| +++ b/chrome/browser/spellchecker/spellcheck_profile_unittest.cc |
| @@ -4,6 +4,7 @@ |
| #include <vector> |
| +#include "base/scoped_temp_dir.h" |
| #include "chrome/browser/spellchecker/spellcheck_host.h" |
| #include "chrome/browser/spellchecker/spellcheck_profile.h" |
| #include "content/browser/browser_thread.h" |
| @@ -29,8 +30,9 @@ class MockSpellCheckHost : public SpellCheckHost { |
| class TestingSpellCheckProfile : public SpellCheckProfile { |
| public: |
| - TestingSpellCheckProfile() |
| - : create_host_calls_(0) { |
| + explicit TestingSpellCheckProfile(const FilePath& profile_dir) |
| + : SpellCheckProfile(profile_dir), |
| + create_host_calls_(0) { |
| } |
| virtual SpellCheckHost* CreateHost( |
| @@ -75,7 +77,9 @@ class SpellCheckProfileTest : public testing::Test { |
| TEST_F(SpellCheckProfileTest, ReinitializeEnabled) { |
| scoped_refptr<MockSpellCheckHost> host(new MockSpellCheckHost()); |
| - TestingSpellCheckProfile target; |
| + ScopedTempDir dir; |
| + ASSERT_TRUE(dir.CreateUniqueTempDir()); |
| + TestingSpellCheckProfile target(dir.path()); |
| target.SetHostToBeCreated(host.get()); |
| // The first call should create host. |
| @@ -96,7 +100,10 @@ TEST_F(SpellCheckProfileTest, ReinitializeEnabled) { |
| TEST_F(SpellCheckProfileTest, ReinitializeDisabled) { |
| scoped_refptr<MockSpellCheckHost> host(new MockSpellCheckHost()); |
| - TestingSpellCheckProfile target; |
| + ScopedTempDir dir; |
| + ASSERT_TRUE(dir.CreateUniqueTempDir()); |
| + TestingSpellCheckProfile target(dir.path()); |
| + |
| target.returning_from_create_ = host.get(); |
| // If enabled is false, nothing should happen |
| @@ -112,9 +119,11 @@ TEST_F(SpellCheckProfileTest, ReinitializeDisabled) { |
| TEST_F(SpellCheckProfileTest, ReinitializeRemove) { |
| scoped_refptr<MockSpellCheckHost> host(new MockSpellCheckHost()); |
| - TestingSpellCheckProfile target; |
| - target.SetHostToBeCreated(host.get()); |
| + ScopedTempDir dir; |
| + ASSERT_TRUE(dir.CreateUniqueTempDir()); |
| + TestingSpellCheckProfile target(dir.path()); |
| + target.SetHostToBeCreated(host.get()); |
| // At first, create the host. |
| ResultType result1 = target.ReinitializeHost(false, true, "", NULL); |
| @@ -131,7 +140,10 @@ TEST_F(SpellCheckProfileTest, ReinitializeRemove) { |
| TEST_F(SpellCheckProfileTest, ReinitializeRecreate) { |
| scoped_refptr<MockSpellCheckHost> host1(new MockSpellCheckHost()); |
| - TestingSpellCheckProfile target; |
| + ScopedTempDir dir; |
| + ASSERT_TRUE(dir.CreateUniqueTempDir()); |
| + TestingSpellCheckProfile target(dir.path()); |
| + |
| target.SetHostToBeCreated(host1.get()); |
| // At first, create the host. |
| @@ -154,7 +166,10 @@ TEST_F(SpellCheckProfileTest, ReinitializeRecreate) { |
| TEST_F(SpellCheckProfileTest, SpellCheckHostInitializedWithCustomWords) { |
| scoped_refptr<MockSpellCheckHost> host(new MockSpellCheckHost()); |
| - TestingSpellCheckProfile target; |
| + ScopedTempDir dir; |
| + ASSERT_TRUE(dir.CreateUniqueTempDir()); |
| + TestingSpellCheckProfile target(dir.path()); |
| + |
| target.SetHostToBeCreated(host.get()); |
| target.ReinitializeHost(false, true, "", NULL); |
| @@ -169,7 +184,10 @@ TEST_F(SpellCheckProfileTest, SpellCheckHostInitializedWithCustomWords) { |
| TEST_F(SpellCheckProfileTest, CustomWordAddedLocally) { |
| scoped_refptr<MockSpellCheckHost> host(new MockSpellCheckHost()); |
| - TestingSpellCheckProfile target; |
| + ScopedTempDir dir; |
| + ASSERT_TRUE(dir.CreateUniqueTempDir()); |
| + TestingSpellCheckProfile target(dir.path()); |
| + |
| target.SetHostToBeCreated(host.get()); |
| target.ReinitializeHost(false, true, "", NULL); |
| @@ -185,3 +203,69 @@ TEST_F(SpellCheckProfileTest, CustomWordAddedLocally) { |
| expected.push_back("bar"); |
| EXPECT_EQ(target.GetCustomWords(), expected); |
| } |
| + |
| +TEST_F(SpellCheckProfileTest, SaveAndLoad) { |
| + scoped_refptr<MockSpellCheckHost> host(new MockSpellCheckHost()); |
| + ScopedTempDir dir; |
| + ASSERT_TRUE(dir.CreateUniqueTempDir()); |
| + TestingSpellCheckProfile target(dir.path()); |
| + |
| + target.SetHostToBeCreated(host.get()); |
| + target.ReinitializeHost(false, true, "", NULL); |
| + |
| + scoped_ptr<SpellCheckProfile::CustomWordList> loaded_custom_words( |
| + new SpellCheckProfile::CustomWordList()); |
| + target.LoadCustomDictionary(loaded_custom_words.get()); |
| + |
| + // The custom word list should be empty now. |
| + SpellCheckProfile::CustomWordList expected; |
| + EXPECT_EQ(*loaded_custom_words, expected); |
| + |
| + target.WriteWordToCustomDictionary("foo"); |
| + expected.push_back("foo"); |
| + |
| + target.WriteWordToCustomDictionary("bar"); |
| + expected.push_back("bar"); |
| + |
| + // The custom word list should include written words. |
| + target.LoadCustomDictionary(loaded_custom_words.get()); |
| + EXPECT_EQ(*loaded_custom_words, expected); |
|
gmorrita
2011/10/19 05:27:37
Coud you add some more lines,
to verify these newl
shinyak (Google)
2011/10/19 05:55:04
Done.
|
| +} |
| + |
| +TEST_F(SpellCheckProfileTest, MultiProfile) { |
| + scoped_refptr<MockSpellCheckHost> host1(new MockSpellCheckHost()); |
| + scoped_refptr<MockSpellCheckHost> host2(new MockSpellCheckHost()); |
| + |
| + ScopedTempDir dir1; |
| + ScopedTempDir dir2; |
| + ASSERT_TRUE(dir1.CreateUniqueTempDir()); |
| + ASSERT_TRUE(dir2.CreateUniqueTempDir()); |
| + TestingSpellCheckProfile target1(dir1.path()); |
| + TestingSpellCheckProfile target2(dir2.path()); |
| + |
| + target1.SetHostToBeCreated(host1.get()); |
| + target1.ReinitializeHost(false, true, "", NULL); |
| + target2.SetHostToBeCreated(host2.get()); |
| + target2.ReinitializeHost(false, true, "", NULL); |
| + |
| + SpellCheckProfile::CustomWordList expected1; |
| + SpellCheckProfile::CustomWordList expected2; |
| + |
| + target1.WriteWordToCustomDictionary("foo"); |
| + target1.WriteWordToCustomDictionary("bar"); |
| + expected1.push_back("foo"); |
| + expected1.push_back("bar"); |
| + |
| + target2.WriteWordToCustomDictionary("hoge"); |
| + target2.WriteWordToCustomDictionary("fuga"); |
| + expected2.push_back("hoge"); |
| + expected2.push_back("fuga"); |
| + |
| + SpellCheckProfile::CustomWordList actual1; |
| + target1.LoadCustomDictionary(&actual1); |
| + EXPECT_EQ(actual1, expected1); |
| + |
| + SpellCheckProfile::CustomWordList actual2; |
| + target2.LoadCustomDictionary(&actual2); |
| + EXPECT_EQ(actual2, expected2); |
| +} |