| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "base/basictypes.h" | 5 #include "base/basictypes.h" |
| 6 #include "base/bind.h" | 6 #include "base/bind.h" |
| 7 #include "base/files/scoped_temp_dir.h" | 7 #include "base/files/scoped_temp_dir.h" |
| 8 #include "base/memory/scoped_ptr.h" | 8 #include "base/memory/scoped_ptr.h" |
| 9 #include "base/message_loop/message_loop.h" | 9 #include "base/message_loop/message_loop.h" |
| 10 #include "base/run_loop.h" | 10 #include "base/run_loop.h" |
| (...skipping 15 matching lines...) Expand all Loading... |
| 26 const size_t kMaxPrimary = 3; | 26 const size_t kMaxPrimary = 3; |
| 27 const size_t kMaxSecondary = 2; | 27 const size_t kMaxSecondary = 2; |
| 28 | 28 |
| 29 // HistoryDataLoadWaiter waits for give |data| to be loaded from underlying | 29 // HistoryDataLoadWaiter waits for give |data| to be loaded from underlying |
| 30 // store on the blocking pool. The waiter waits on the main message loop until | 30 // store on the blocking pool. The waiter waits on the main message loop until |
| 31 // OnHistoryDataLoadedFromStore() is invoked or the maximum allowed wait time | 31 // OnHistoryDataLoadedFromStore() is invoked or the maximum allowed wait time |
| 32 // has passed. | 32 // has passed. |
| 33 class HistoryDataLoadWaiter : public HistoryDataObserver { | 33 class HistoryDataLoadWaiter : public HistoryDataObserver { |
| 34 public: | 34 public: |
| 35 explicit HistoryDataLoadWaiter(HistoryData* data) : data_(data) {} | 35 explicit HistoryDataLoadWaiter(HistoryData* data) : data_(data) {} |
| 36 virtual ~HistoryDataLoadWaiter() {} | 36 ~HistoryDataLoadWaiter() override {} |
| 37 | 37 |
| 38 void Wait() { | 38 void Wait() { |
| 39 data_->AddObserver(this); | 39 data_->AddObserver(this); |
| 40 | 40 |
| 41 run_loop_.reset(new base::RunLoop); | 41 run_loop_.reset(new base::RunLoop); |
| 42 run_loop_->Run(); | 42 run_loop_->Run(); |
| 43 | 43 |
| 44 data_->RemoveObserver(this); | 44 data_->RemoveObserver(this); |
| 45 } | 45 } |
| 46 | 46 |
| 47 private: | 47 private: |
| 48 // HistoryDataObserver overrides: | 48 // HistoryDataObserver overrides: |
| 49 virtual void OnHistoryDataLoadedFromStore() override { | 49 void OnHistoryDataLoadedFromStore() override { run_loop_->Quit(); } |
| 50 run_loop_->Quit(); | |
| 51 } | |
| 52 | 50 |
| 53 HistoryData* data_; // Not owned. | 51 HistoryData* data_; // Not owned. |
| 54 scoped_ptr<base::RunLoop> run_loop_; | 52 scoped_ptr<base::RunLoop> run_loop_; |
| 55 | 53 |
| 56 DISALLOW_COPY_AND_ASSIGN(HistoryDataLoadWaiter); | 54 DISALLOW_COPY_AND_ASSIGN(HistoryDataLoadWaiter); |
| 57 }; | 55 }; |
| 58 | 56 |
| 59 // StoreFlushWaiter waits for the given |store| to flush its data to disk. | 57 // StoreFlushWaiter waits for the given |store| to flush its data to disk. |
| 60 // The flush and disk write happens on the blocking pool. The waiter waits | 58 // The flush and disk write happens on the blocking pool. The waiter waits |
| 61 // on the main message loop until the OnFlushed() is invoked or the maximum | 59 // on the main message loop until the OnFlushed() is invoked or the maximum |
| (...skipping 20 matching lines...) Expand all Loading... |
| 82 scoped_ptr<base::RunLoop> run_loop_; | 80 scoped_ptr<base::RunLoop> run_loop_; |
| 83 | 81 |
| 84 DISALLOW_COPY_AND_ASSIGN(StoreFlushWaiter); | 82 DISALLOW_COPY_AND_ASSIGN(StoreFlushWaiter); |
| 85 }; | 83 }; |
| 86 | 84 |
| 87 } // namespace | 85 } // namespace |
| 88 | 86 |
| 89 class SearchHistoryTest : public testing::Test { | 87 class SearchHistoryTest : public testing::Test { |
| 90 public: | 88 public: |
| 91 SearchHistoryTest() {} | 89 SearchHistoryTest() {} |
| 92 virtual ~SearchHistoryTest() {} | 90 ~SearchHistoryTest() override {} |
| 93 | 91 |
| 94 // testing::Test overrides: | 92 // testing::Test overrides: |
| 95 virtual void SetUp() override { | 93 void SetUp() override { |
| 96 worker_pool_ = new base::SequencedWorkerPool(1, "AppLauncherTest"); | 94 worker_pool_ = new base::SequencedWorkerPool(1, "AppLauncherTest"); |
| 97 ASSERT_TRUE(temp_dir_.CreateUniqueTempDir()); | 95 ASSERT_TRUE(temp_dir_.CreateUniqueTempDir()); |
| 98 CreateHistory(); | 96 CreateHistory(); |
| 99 } | 97 } |
| 100 virtual void TearDown() override { | 98 void TearDown() override { Flush(); } |
| 101 Flush(); | |
| 102 } | |
| 103 | 99 |
| 104 void CreateHistory() { | 100 void CreateHistory() { |
| 105 const char kStoreDataFileName[] = "app-launcher-test"; | 101 const char kStoreDataFileName[] = "app-launcher-test"; |
| 106 const base::FilePath data_file = | 102 const base::FilePath data_file = |
| 107 temp_dir_.path().AppendASCII(kStoreDataFileName); | 103 temp_dir_.path().AppendASCII(kStoreDataFileName); |
| 108 scoped_refptr<DictionaryDataStore> dictionary_data_store( | 104 scoped_refptr<DictionaryDataStore> dictionary_data_store( |
| 109 new DictionaryDataStore(data_file, worker_pool_.get())); | 105 new DictionaryDataStore(data_file, worker_pool_.get())); |
| 110 history_.reset(new History(scoped_refptr<HistoryDataStore>( | 106 history_.reset(new History(scoped_refptr<HistoryDataStore>( |
| 111 new HistoryDataStore(dictionary_data_store)))); | 107 new HistoryDataStore(dictionary_data_store)))); |
| 112 | 108 |
| (...skipping 180 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 293 | 289 |
| 294 // The oldest secondary is gone. | 290 // The oldest secondary is gone. |
| 295 EXPECT_EQ(UNKNOWN_RESULT, GetResultType("1")); | 291 EXPECT_EQ(UNKNOWN_RESULT, GetResultType("1")); |
| 296 | 292 |
| 297 // Touched oldest survived. | 293 // Touched oldest survived. |
| 298 EXPECT_EQ(PERFECT_SECONDARY, GetResultType("0")); | 294 EXPECT_EQ(PERFECT_SECONDARY, GetResultType("0")); |
| 299 } | 295 } |
| 300 | 296 |
| 301 } // namespace test | 297 } // namespace test |
| 302 } // namespace app_list | 298 } // namespace app_list |
| OLD | NEW |