Makes a couple of tests reset state appropriately
A couple of tests were setting the ScreenTypeDelegate or Screen during Setup but never resetting during Teardown. This lead to future tests failing. BUG=448189 TEST=covered by tests R=sadrul@chromium.org Review URL: https://codereview.chromium.org/857283002 Cr-Commit-Position: refs/heads/master@{#312268}
This commit is contained in:
chrome
browser
test
content/browser/renderer_host
tools/valgrind
ui/gfx
@@ -80,7 +80,7 @@ class SigninErrorNotifierTest : public AshTestBase {
|
|||||||
#if defined(OS_WIN)
|
#if defined(OS_WIN)
|
||||||
test_screen_.reset(aura::TestScreen::Create(gfx::Size()));
|
test_screen_.reset(aura::TestScreen::Create(gfx::Size()));
|
||||||
gfx::Screen::SetScreenInstance(gfx::SCREEN_TYPE_NATIVE, test_screen_.get());
|
gfx::Screen::SetScreenInstance(gfx::SCREEN_TYPE_NATIVE, test_screen_.get());
|
||||||
gfx::Screen::SetScreenTypeDelegate(new ScreenTypeDelegateDesktop);
|
gfx::Screen::SetScreenTypeDelegate(&screen_type_delegate_);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
error_controller_ = SigninErrorControllerFactory::GetForProfile(
|
error_controller_ = SigninErrorControllerFactory::GetForProfile(
|
||||||
@@ -91,6 +91,8 @@ class SigninErrorNotifierTest : public AshTestBase {
|
|||||||
|
|
||||||
void TearDown() override {
|
void TearDown() override {
|
||||||
#if defined(OS_WIN)
|
#if defined(OS_WIN)
|
||||||
|
gfx::Screen::SetScreenTypeDelegate(nullptr);
|
||||||
|
gfx::Screen::SetScreenInstance(gfx::SCREEN_TYPE_NATIVE, nullptr);
|
||||||
test_screen_.reset();
|
test_screen_.reset();
|
||||||
#endif
|
#endif
|
||||||
profile_manager_.reset();
|
profile_manager_.reset();
|
||||||
@@ -109,6 +111,7 @@ class SigninErrorNotifierTest : public AshTestBase {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#if defined(OS_WIN)
|
#if defined(OS_WIN)
|
||||||
|
ScreenTypeDelegateDesktop screen_type_delegate_;
|
||||||
scoped_ptr<gfx::Screen> test_screen_;
|
scoped_ptr<gfx::Screen> test_screen_;
|
||||||
#endif
|
#endif
|
||||||
scoped_ptr<TestingProfileManager> profile_manager_;
|
scoped_ptr<TestingProfileManager> profile_manager_;
|
||||||
|
@@ -108,7 +108,7 @@ class SyncErrorNotifierTest : public AshTestBase {
|
|||||||
#if defined(OS_WIN)
|
#if defined(OS_WIN)
|
||||||
test_screen_.reset(aura::TestScreen::Create(gfx::Size()));
|
test_screen_.reset(aura::TestScreen::Create(gfx::Size()));
|
||||||
gfx::Screen::SetScreenInstance(gfx::SCREEN_TYPE_NATIVE, test_screen_.get());
|
gfx::Screen::SetScreenInstance(gfx::SCREEN_TYPE_NATIVE, test_screen_.get());
|
||||||
gfx::Screen::SetScreenTypeDelegate(new ScreenTypeDelegateDesktop);
|
gfx::Screen::SetScreenTypeDelegate(&screen_type_delegate_);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
service_.reset(new NiceMock<ProfileSyncServiceMock>(profile_));
|
service_.reset(new NiceMock<ProfileSyncServiceMock>(profile_));
|
||||||
@@ -129,6 +129,8 @@ class SyncErrorNotifierTest : public AshTestBase {
|
|||||||
error_notifier_->Shutdown();
|
error_notifier_->Shutdown();
|
||||||
service_.reset();
|
service_.reset();
|
||||||
#if defined(OS_WIN)
|
#if defined(OS_WIN)
|
||||||
|
gfx::Screen::SetScreenInstance(gfx::SCREEN_TYPE_NATIVE, nullptr);
|
||||||
|
gfx::Screen::SetScreenTypeDelegate(nullptr);
|
||||||
test_screen_.reset();
|
test_screen_.reset();
|
||||||
#endif
|
#endif
|
||||||
profile_manager_.reset();
|
profile_manager_.reset();
|
||||||
@@ -166,6 +168,7 @@ class SyncErrorNotifierTest : public AshTestBase {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#if defined(OS_WIN)
|
#if defined(OS_WIN)
|
||||||
|
ScreenTypeDelegateDesktop screen_type_delegate_;
|
||||||
scoped_ptr<gfx::Screen> test_screen_;
|
scoped_ptr<gfx::Screen> test_screen_;
|
||||||
#endif
|
#endif
|
||||||
scoped_ptr<TestingProfileManager> profile_manager_;
|
scoped_ptr<TestingProfileManager> profile_manager_;
|
||||||
|
@@ -4,6 +4,7 @@
|
|||||||
|
|
||||||
#include "chrome/test/base/view_event_test_platform_part.h"
|
#include "chrome/test/base/view_event_test_platform_part.h"
|
||||||
|
|
||||||
|
#include "base/memory/scoped_ptr.h"
|
||||||
#include "ui/aura/env.h"
|
#include "ui/aura/env.h"
|
||||||
#include "ui/gfx/screen.h"
|
#include "ui/gfx/screen.h"
|
||||||
#include "ui/views/widget/desktop_aura/desktop_screen.h"
|
#include "ui/views/widget/desktop_aura/desktop_screen.h"
|
||||||
@@ -24,23 +25,25 @@ class ViewEventTestPlatformPartAsh : public ViewEventTestPlatformPart {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
scoped_ptr<gfx::Screen> screen_;
|
||||||
wm::WMState wm_state_;
|
wm::WMState wm_state_;
|
||||||
|
|
||||||
DISALLOW_COPY_AND_ASSIGN(ViewEventTestPlatformPartAsh);
|
DISALLOW_COPY_AND_ASSIGN(ViewEventTestPlatformPartAsh);
|
||||||
};
|
};
|
||||||
|
|
||||||
ViewEventTestPlatformPartAsh::ViewEventTestPlatformPartAsh(
|
ViewEventTestPlatformPartAsh::ViewEventTestPlatformPartAsh(
|
||||||
ui::ContextFactory* context_factory) {
|
ui::ContextFactory* context_factory)
|
||||||
|
: screen_(views::CreateDesktopScreen()) {
|
||||||
// http://crbug.com/154081 use ash::Shell code path below on win_ash bots when
|
// http://crbug.com/154081 use ash::Shell code path below on win_ash bots when
|
||||||
// interactive_ui_tests is brought up on that platform.
|
// interactive_ui_tests is brought up on that platform.
|
||||||
gfx::Screen::SetScreenInstance(gfx::SCREEN_TYPE_NATIVE,
|
gfx::Screen::SetScreenInstance(gfx::SCREEN_TYPE_NATIVE, screen_.get());
|
||||||
views::CreateDesktopScreen());
|
|
||||||
aura::Env::CreateInstance(true);
|
aura::Env::CreateInstance(true);
|
||||||
aura::Env::GetInstance()->set_context_factory(context_factory);
|
aura::Env::GetInstance()->set_context_factory(context_factory);
|
||||||
}
|
}
|
||||||
|
|
||||||
ViewEventTestPlatformPartAsh::~ViewEventTestPlatformPartAsh() {
|
ViewEventTestPlatformPartAsh::~ViewEventTestPlatformPartAsh() {
|
||||||
aura::Env::DeleteInstance();
|
aura::Env::DeleteInstance();
|
||||||
|
gfx::Screen::SetScreenInstance(gfx::SCREEN_TYPE_NATIVE, nullptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace
|
} // namespace
|
||||||
|
@@ -62,6 +62,7 @@ class TouchEmulatorTest : public testing::Test,
|
|||||||
|
|
||||||
#if defined(USE_AURA)
|
#if defined(USE_AURA)
|
||||||
aura::Env::DeleteInstance();
|
aura::Env::DeleteInstance();
|
||||||
|
gfx::Screen::SetScreenInstance(gfx::SCREEN_TYPE_NATIVE, nullptr);
|
||||||
screen_.reset();
|
screen_.reset();
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
@@ -458,6 +458,7 @@ class RenderWidgetHostTest : public testing::Test {
|
|||||||
|
|
||||||
#if defined(USE_AURA)
|
#if defined(USE_AURA)
|
||||||
aura::Env::DeleteInstance();
|
aura::Env::DeleteInstance();
|
||||||
|
gfx::Screen::SetScreenInstance(gfx::SCREEN_TYPE_NATIVE, nullptr);
|
||||||
screen_.reset();
|
screen_.reset();
|
||||||
#endif
|
#endif
|
||||||
#if defined(USE_AURA) || (defined(OS_MACOSX) && !defined(OS_IOS))
|
#if defined(USE_AURA) || (defined(OS_MACOSX) && !defined(OS_IOS))
|
||||||
|
@@ -705,19 +705,6 @@ content.dll!base::internal::BindState<>::`scalar deleting destructor'
|
|||||||
base.dll!scoped_refptr<>::Release
|
base.dll!scoped_refptr<>::Release
|
||||||
base.dll!base::internal::CallbackBase::~CallbackBase
|
base.dll!base::internal::CallbackBase::~CallbackBase
|
||||||
|
|
||||||
UNADDRESSABLE ACCESS
|
|
||||||
name=https://crbug.com/448189
|
|
||||||
...
|
|
||||||
aura.dll!aura::GetDeviceScaleFactorFromDisplay
|
|
||||||
aura.dll!aura::WindowTreeHost::InitCompositor
|
|
||||||
aura.dll!aura::WindowTreeHost::InitHost
|
|
||||||
ash.dll!ash::DisplayController::AddWindowTreeHostForDisplay
|
|
||||||
ash.dll!ash::DisplayController::CreatePrimaryHost
|
|
||||||
ash.dll!ash::Shell::Init
|
|
||||||
ash.dll!ash::Shell::CreateInstance
|
|
||||||
*!ash::test::AshTestHelper::SetUp
|
|
||||||
*!ash::test::AshTestBase::SetUp
|
|
||||||
|
|
||||||
HANDLE LEAK
|
HANDLE LEAK
|
||||||
name=http://crbug.com/449989
|
name=http://crbug.com/449989
|
||||||
system call NtOpenProcess
|
system call NtOpenProcess
|
||||||
|
@@ -79,7 +79,3 @@ TranslateManagerRenderViewHostTest.*
|
|||||||
SafeBrowsingModuleVerifierWinTest.VerifyModuleExportModified
|
SafeBrowsingModuleVerifierWinTest.VerifyModuleExportModified
|
||||||
SafeBrowsingModuleVerifierWinTest.VerifyModuleModified
|
SafeBrowsingModuleVerifierWinTest.VerifyModuleModified
|
||||||
SafeBrowsingModuleVerifierWinTest.VerifyModuleUnmodified
|
SafeBrowsingModuleVerifierWinTest.VerifyModuleUnmodified
|
||||||
|
|
||||||
# http://crbug.com/448189
|
|
||||||
AXTreeSourceAshTest.*
|
|
||||||
ChromeScreenshotGrabberTest.TakeScreenshot
|
|
||||||
|
@@ -37,6 +37,8 @@ class GFX_EXPORT Screen {
|
|||||||
|
|
||||||
// Sets the global screen for a particular screen type. Only the _NATIVE
|
// Sets the global screen for a particular screen type. Only the _NATIVE
|
||||||
// ScreenType must be provided.
|
// ScreenType must be provided.
|
||||||
|
// NOTE: this does not take ownership of |screen|. Tests must be sure to
|
||||||
|
// reset any state they install.
|
||||||
static void SetScreenInstance(ScreenType type, Screen* instance);
|
static void SetScreenInstance(ScreenType type, Screen* instance);
|
||||||
|
|
||||||
// Returns the global screen for a particular type. Types other than _NATIVE
|
// Returns the global screen for a particular type. Types other than _NATIVE
|
||||||
@@ -45,6 +47,8 @@ class GFX_EXPORT Screen {
|
|||||||
|
|
||||||
// Sets the global ScreenTypeDelegate. May be left unset if the platform
|
// Sets the global ScreenTypeDelegate. May be left unset if the platform
|
||||||
// uses only the _NATIVE ScreenType.
|
// uses only the _NATIVE ScreenType.
|
||||||
|
// NOTE: this does not take ownership of |delegate|. Tests must be sure to
|
||||||
|
// reset any state they install.
|
||||||
static void SetScreenTypeDelegate(ScreenTypeDelegate* delegate);
|
static void SetScreenTypeDelegate(ScreenTypeDelegate* delegate);
|
||||||
|
|
||||||
Screen();
|
Screen();
|
||||||
|
Reference in New Issue
Block a user