| // Copyright 2022 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef CHROME_BROWSER_ASH_FILE_SUGGEST_FILE_SUGGEST_TEST_UTIL_H_ |
| #define CHROME_BROWSER_ASH_FILE_SUGGEST_FILE_SUGGEST_TEST_UTIL_H_ |
| |
| #include <string> |
| #include <vector> |
| |
| #include "chrome/browser/ash/file_suggest/mock_file_suggest_keyed_service_observer.h" |
| #include "testing/gmock/include/gmock/gmock.h" |
| |
| namespace ash { |
| |
| /* |
| The suggest item metadata. It matches the json response used by |
| `ItemSuggestCache`. A sample json response is listed as below: |
| R"( |
| { |
| "item": [ |
| { |
| "itemId": "id", |
| "displayText": "text", |
| "predictionReason": "reason" |
| } |
| ], |
| "suggestionSessionId": "session id" |
| })"; |
| */ |
| struct SuggestItemMetadata { |
| std::string item_id; |
| std::string display_text; |
| std::string prediction_reason; |
| }; |
| |
| // Creates a json string used to update the item suggest cache. |
| std::string CreateItemSuggestUpdateJsonString( |
| const std::vector<SuggestItemMetadata>& item_data_array, |
| const std::string& session_id); |
| |
| // Waits until `mock` is notified of the file suggestion update. |
| void WaitForFileSuggestionUpdate( |
| const testing::NiceMock<MockFileSuggestKeyedServiceObserver>& mock, |
| ash::FileSuggestionType expected_type); |
| |
| // Waits until `service` is ready. |
| void WaitUntilFileSuggestServiceReady(ash::FileSuggestKeyedService* service); |
| |
| } // namespace ash |
| |
| #endif // CHROME_BROWSER_ASH_FILE_SUGGEST_FILE_SUGGEST_TEST_UTIL_H_ |