Commit bddc431c authored by Roman Karasev's avatar Roman Karasev Committed by Commit Bot

Screen overriding in tabs_api_unittest is fixed

TabsApiUnitTest overrides display::Screen and it left a screen
overridden after execution. When next test (not TabsApiUnitTest) from
current batch is executed and it uses display::Screen::GetScreen(),
it gets broken screen.

Bug: None
Change-Id: I15d3f0193b8980cc06ea0b5232e393e071738a7d
Reviewed-on: https://chromium-review.googlesource.com/963961Reviewed-by: default avatarKen Rockot <rockot@chromium.org>
Commit-Queue: Ken Rockot <rockot@chromium.org>
Cr-Commit-Position: refs/heads/master@{#544301}
parent be9a5dbb
......@@ -26,6 +26,21 @@ namespace extensions {
namespace {
class ScopedScreenOverride {
public:
~ScopedScreenOverride() {
display::Screen::SetScreenInstance(original_screen_);
}
void SetScreenInstance(display::Screen* instance) {
original_screen_ = display::Screen::GetScreen();
display::Screen::SetScreenInstance(instance);
}
private:
display::Screen* original_screen_ = nullptr;
};
std::unique_ptr<base::ListValue> RunTabsQueryFunction(
Browser* browser,
const Extension* extension,
......@@ -58,6 +73,8 @@ class TabsApiUnitTest : public ExtensionServiceTestBase {
display::test::TestScreen test_screen_;
std::unique_ptr<ScopedScreenOverride> scoped_screen_override_;
DISALLOW_COPY_AND_ASSIGN(TabsApiUnitTest);
};
......@@ -71,12 +88,14 @@ void TabsApiUnitTest::SetUp() {
params.type = Browser::TYPE_TABBED;
params.window = browser_window_.get();
browser_.reset(new Browser(params));
display::Screen::SetScreenInstance(&test_screen_);
scoped_screen_override_.reset(new ScopedScreenOverride);
scoped_screen_override_->SetScreenInstance(&test_screen_);
}
void TabsApiUnitTest::TearDown() {
browser_.reset();
browser_window_.reset();
scoped_screen_override_.reset();
content::BrowserSideNavigationTearDown();
ExtensionServiceTestBase::TearDown();
}
......
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