// Copyright 2022 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#import "ios/chrome/browser/bubble/ui_bundled/bubble_unittest_util.h"
#import "base/apple/foundation_util.h"
#import "ios/chrome/browser/bubble/ui_bundled/bubble_constants.h"
UIView* GetViewOfClassWithIdentifier(Class ui_class,
NSString* accessibility_identifier,
BubbleView* bubble_view) {
for (UIView* subview in bubble_view.subviews) {
if ([subview isKindOfClass:ui_class] &&
subview.accessibilityIdentifier == accessibility_identifier) {
return subview;
}
}
return nil;
}
UIButton* GetCloseButtonFromBubbleView(BubbleView* bubble_view) {
return base::apple::ObjCCastStrict<UIButton>(GetViewOfClassWithIdentifier(
[UIButton class], kBubbleViewCloseButtonIdentifier, bubble_view));
}
UILabel* GetTitleLabelFromBubbleView(BubbleView* bubble_view) {
return base::apple::ObjCCastStrict<UILabel>(GetViewOfClassWithIdentifier(
[UILabel class], kBubbleViewTitleLabelIdentifier, bubble_view));
}
UIImageView* GetImageViewFromBubbleView(BubbleView* bubble_view) {
return base::apple::ObjCCastStrict<UIImageView>(GetViewOfClassWithIdentifier(
[UIImageView class], kBubbleViewImageViewIdentifier, bubble_view));
}
UIButton* GetSnoozeButtonFromBubbleView(BubbleView* bubble_view) {
return base::apple::ObjCCastStrict<UIButton>(GetViewOfClassWithIdentifier(
[UIButton class], kBubbleViewSnoozeButtonIdentifier, bubble_view));
}
UIView* GetArrowViewFromBubbleView(BubbleView* bubble_view) {
return GetViewOfClassWithIdentifier(
[UIView class], kBubbleViewArrowViewIdentifier, bubble_view);
}