Set browser state builder dir to avoid file leaks in ios tests in /ios/chrome/browser/ui/browser_view/browser_view_controller_helper_unittest.mm
This cl is generated with 'git cl split'
This CL was uploaded by git cl split.
R=kkhorimoto@chromium.org
Bug: 546640
Change-Id: I35aead2dc83bcd3493eb3a8c0ed9ef5064f3a275
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1991754
Reviewed-by: Kurt Horimoto <kkhorimoto@chromium.org>
Commit-Queue: Kurt Horimoto <kkhorimoto@chromium.org>
Auto-Submit: Oliver Li <olivierli@chromium.org>
Cr-Commit-Position: refs/heads/master@{#729854}
diff --git a/ios/chrome/browser/ui/browser_view/browser_view_controller_helper_unittest.mm b/ios/chrome/browser/ui/browser_view/browser_view_controller_helper_unittest.mm
index a36f392..e2ba343 100644
--- a/ios/chrome/browser/ui/browser_view/browser_view_controller_helper_unittest.mm
+++ b/ios/chrome/browser/ui/browser_view/browser_view_controller_helper_unittest.mm
@@ -8,6 +8,7 @@
#include <memory>
+#include "base/files/scoped_temp_dir.h"
#include "base/strings/utf_string_conversions.h"
#include "components/bookmarks/browser/bookmark_model.h"
#include "components/bookmarks/test/bookmark_test_helpers.h"
@@ -39,6 +40,10 @@
void SetUp() override {
PlatformTest::SetUp();
TestChromeBrowserState::Builder test_cbs_builder;
+
+ ASSERT_TRUE(state_dir_.CreateUniqueTempDir());
+ test_cbs_builder.SetPath(state_dir_.GetPath());
+
chrome_browser_state_ = test_cbs_builder.Build();
chrome_browser_state_->CreateBookmarkModel(true);
bookmarks::test::WaitForBookmarkModelToLoad(
@@ -51,6 +56,11 @@
helper_ = [[BrowserViewControllerHelper alloc] init];
}
+ // A state directory that outlives |task_environment_| is needed because
+ // CreateHistoryService/CreateBookmarkModel use the directory to host
+ // databases. See https://crbug.com/546640 for more details.
+ base::ScopedTempDir state_dir_;
+
web::WebTaskEnvironment task_environment_;
std::unique_ptr<TestChromeBrowserState> chrome_browser_state_;
std::unique_ptr<ToolbarTestWebState> web_state_;