Commit 0335fff2 authored by Olivier Robin's avatar Olivier Robin Committed by Chromium LUCI CQ

Swizzle SessionService in BrowserViewWranglerTest

Unittests trigger some shutdowns and SessionService is not built to
handle multiple shutdowns correctly.

Bug: 1166186
Change-Id: Ic3b1ca9b68af7d8b02eafed588b308f5f78c5610
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2627277Reviewed-by: default avatarMark Cogan <marq@chromium.org>
Commit-Queue: Olivier Robin <olivierrobin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#843587}
parent 1e200390
......@@ -261,10 +261,13 @@ source_set("unit_tests") {
"//ios/chrome/browser/browser_state:test_support",
"//ios/chrome/browser/main",
"//ios/chrome/browser/main:test_support",
"//ios/chrome/browser/sessions:restoration_agent",
"//ios/chrome/browser/sessions:test_support",
"//ios/chrome/browser/sync",
"//ios/chrome/browser/tabs",
"//ios/chrome/browser/ui/browser_view",
"//ios/chrome/test:block_cleanup_test",
"//ios/testing:block_swizzler",
"//ios/web/public/test",
"//testing/gtest",
"//third_party/ocmock",
......
......@@ -10,11 +10,14 @@
#import "ios/chrome/browser/main/browser_list.h"
#import "ios/chrome/browser/main/browser_list_factory.h"
#import "ios/chrome/browser/main/test_browser_list_observer.h"
#include "ios/chrome/browser/sessions/session_restoration_browser_agent.h"
#import "ios/chrome/browser/sessions/test_session_service.h"
#import "ios/chrome/browser/sync/send_tab_to_self_sync_service_factory.h"
#import "ios/chrome/browser/tabs/tab_model.h"
#import "ios/chrome/browser/ui/browser_view/browser_view_controller.h"
#import "ios/chrome/browser/ui/main/scene_state.h"
#import "ios/chrome/browser/ui/main/scene_state_browser_agent.h"
#import "ios/testing/scoped_block_swizzler.h"
#include "ios/web/public/test/web_task_environment.h"
#include "testing/platform_test.h"
......@@ -27,18 +30,29 @@ namespace {
class BrowserViewWranglerTest : public PlatformTest {
protected:
BrowserViewWranglerTest()
: scene_state_([[SceneState alloc] initWithAppState:nil]) {
: scene_state_([[SceneState alloc] initWithAppState:nil]),
test_session_service_([[TestSessionService alloc] init]) {
TestChromeBrowserState::Builder test_cbs_builder;
test_cbs_builder.AddTestingFactory(
SendTabToSelfSyncServiceFactory::GetInstance(),
SendTabToSelfSyncServiceFactory::GetDefaultFactory());
chrome_browser_state_ = test_cbs_builder.Build();
session_service_block_ = ^SessionServiceIOS*(id self) {
return test_session_service_;
};
session_service_swizzler_.reset(new ScopedBlockSwizzler(
[SessionServiceIOS class], @selector(sharedService),
session_service_block_));
}
web::WebTaskEnvironment task_environment_;
std::unique_ptr<TestChromeBrowserState> chrome_browser_state_;
SceneState* scene_state_;
TestSessionService* test_session_service_;
id session_service_block_;
std::unique_ptr<ScopedBlockSwizzler> session_service_swizzler_;
};
TEST_F(BrowserViewWranglerTest, TestInitNilObserver) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment