1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
|
// Copyright 2023 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_UI_TEST_POPUP_TEST_BASE_H_
#define CHROME_BROWSER_UI_TEST_POPUP_TEST_BASE_H_
#include <string>
#include "chrome/test/base/in_process_browser_test.h"
namespace content {
class ToRenderFrameHost;
}
namespace display {
class Display;
}
// Supports browser tests of popup windows created with window.open().
// https://html.spec.whatwg.org/multipage/nav-history-apis.html#dom-open-dev
class PopupTestBase : public InProcessBrowserTest {
public:
PopupTestBase() = default;
PopupTestBase(const PopupTestBase&) = delete;
PopupTestBase& operator=(const PopupTestBase&) = delete;
protected:
~PopupTestBase() override = default;
// InProcessBrowserTest:
void SetUpCommandLine(base::CommandLine* command_line) override;
// Returns the popup opened by running `script` in `browser`'s active tab.
// `script` executes with a user gesture when `user_gesture` is true.
static Browser* OpenPopup(Browser* browser,
const std::string& script,
bool user_gesture = true);
// Returns the popup opened by running `script` in `adapter`'s frame.
// `script` executes with a user gesture when `user_gesture` is true.
static Browser* OpenPopup(const content::ToRenderFrameHost& adapter,
const std::string& script,
bool user_gesture = true);
// Waits for the browser window to move or resize by the given threshold.
static void WaitForBoundsChange(Browser* browser, int move_by, int resize_by);
// Grants window-management permission in `browser`'s active tab.
// Caches a ScreenDetails interface object as `window.screenDetails`.
// https://www.w3.org/TR/window-management/#screendetails
static void SetUpWindowManagement(Browser* browser);
// Returns the display nearest `browser`'s window; see display::Screen.
static display::Display GetDisplayNearestBrowser(const Browser* browser);
// Waits for any active user activation to expire.
// TODO(crbug.com/40276892): Improve and consolidate this to a common
// function.
static void WaitForUserActivationExpiry(Browser* browser);
};
#endif // CHROME_BROWSER_UI_TEST_POPUP_TEST_BASE_H_
|