#include "chrome/browser/ui/views/sharing_hub/sharing_hub_bubble_view_impl.h"
#include "base/containers/adapters.h"
#include "base/containers/to_vector.h"
#include "base/memory/raw_ptr.h"
#include "base/ranges/algorithm.h"
#include "chrome/browser/ui/sharing_hub/fake_sharing_hub_bubble_controller.h"
#include "chrome/browser/ui/views/sharing_hub/sharing_hub_bubble_action_button.h"
#include "chrome/test/base/testing_profile.h"
#include "chrome/test/views/chrome_views_test_base.h"
#include "content/public/browser/site_instance.h"
#include "content/public/test/test_renderer_host.h"
#include "content/public/test/web_contents_tester.h"
#include "testing/gmock/include/gmock/gmock.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "ui/accessibility/ax_node_data.h"
#include "ui/gfx/vector_icon_types.h"
#include "ui/views/accessibility/view_accessibility.h"
Truly;
namespace {
void EnumerateDescendants(views::View* root,
std::vector<views::View*>& result) { … }
std::vector<views::View*> DescendantsMatchingPredicate(
views::View* root,
base::RepeatingCallback<bool(views::View*)> predicate) { … }
bool ViewHasClassName(const std::string& class_name, views::View* view) { … }
std::string AccessibleNameForView(views::View* view) { … }
void Click(views::Button* button) { … }
void SendKeyPress(views::Widget* widget, ui::KeyboardCode key_code) { … }
views::View* FocusedViewOf(views::Widget* widget) { … }
const gfx::VectorIcon kEmptyIcon;
const std::vector<sharing_hub::SharingHubAction> kFirstPartyActions = …;
}
class SharingHubBubbleTest : public ChromeViewsTestBase { … };
TEST_F(SharingHubBubbleTest, AllFirstPartyActionsAppearInOrder) { … }
TEST_F(SharingHubBubbleTest, ClickingActionsCallsController) { … }
TEST_F(SharingHubBubbleTest, ArrowKeysTraverseItemsForward) { … }
TEST_F(SharingHubBubbleTest, ArrowKeysTraverseItemsBackward) { … }