#include <memory>
#include <utility>
#include "base/functional/callback_forward.h"
#include "base/i18n/base_i18n_switches.h"
#include "base/strings/stringprintf.h"
#include "base/strings/utf_string_conversions.h"
#include "base/test/bind.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/ui/browser.h"
#include "chrome/browser/ui/browser_commands.h"
#include "chrome/browser/ui/browser_element_identifiers.h"
#include "chrome/browser/ui/side_search/side_search_config.h"
#include "chrome/browser/ui/toolbar/app_menu_model.h"
#include "chrome/browser/ui/toolbar/bookmark_sub_menu_model.h"
#include "chrome/browser/ui/toolbar/reading_list_sub_menu_model.h"
#include "chrome/browser/ui/views/frame/browser_view.h"
#include "chrome/browser/ui/views/side_panel/side_panel.h"
#include "chrome/browser/ui/views/side_panel/side_panel_coordinator.h"
#include "chrome/browser/ui/views/side_panel/side_panel_entry.h"
#include "chrome/browser/ui/views/side_panel/side_panel_util.h"
#include "chrome/browser/ui/views/toolbar/toolbar_view.h"
#include "chrome/browser/ui/views/user_education/browser_feature_promo_controller.h"
#include "chrome/test/base/in_process_browser_test.h"
#include "chrome/test/interaction/interaction_test_util_browser.h"
#include "chrome/test/interaction/interactive_browser_test.h"
#include "components/user_education/common/events.h"
#include "components/user_education/common/help_bubble.h"
#include "components/user_education/common/help_bubble_factory_registry.h"
#include "components/user_education/common/help_bubble_params.h"
#include "components/user_education/views/help_bubble_view.h"
#include "components/user_education/webui/help_bubble_handler.h"
#include "components/user_education/webui/tracked_element_webui.h"
#include "content/public/test/browser_test.h"
#include "ui/base/interaction/element_identifier.h"
#include "ui/base/interaction/element_tracker.h"
#include "ui/views/interaction/element_tracker_views.h"
#include "ui/views/test/widget_test.h"
namespace {
constexpr char16_t kBubbleBodyText[] = …;
constexpr char16_t kBubbleButtonText[] = …;
constexpr char16_t kCloseButtonAltText[] = …;
DEFINE_LOCAL_ELEMENT_IDENTIFIER_VALUE(…);
class ViewSizeObserver : public views::ViewObserver,
public ui::test::StateObserver<gfx::Size> { … };
DEFINE_LOCAL_STATE_IDENTIFIER_VALUE(…);
}
class HelpBubbleFactoryWebUIInteractiveUiTest : public InteractiveBrowserTest { … };
IN_PROC_BROWSER_TEST_F(HelpBubbleFactoryWebUIInteractiveUiTest,
ShowFloatingHelpBubble) { … }
IN_PROC_BROWSER_TEST_F(HelpBubbleFactoryWebUIInteractiveUiTest,
ShowEmbeddedHelpBubbleAndCloseViaExternalApi) { … }
IN_PROC_BROWSER_TEST_F(HelpBubbleFactoryWebUIInteractiveUiTest,
ShowEmbeddedHelpBubbleAndCloseViaClick) { … }
IN_PROC_BROWSER_TEST_F(HelpBubbleFactoryWebUIInteractiveUiTest,
FloatingHelpBubbleHiddenOnWebUiHidden) { … }
namespace {
constexpr char kSidePanelElementName[] = …;
}
class HelpBubbleFactoryRtlWebUIInteractiveUiTest
: public HelpBubbleFactoryWebUIInteractiveUiTest { … };
IN_PROC_BROWSER_TEST_F(HelpBubbleFactoryRtlWebUIInteractiveUiTest,
ResizeSidePanelSendsUpdate) { … }