blob: 22695de47d7832b4ef2de84dc41389720a026451 [file]
// Copyright 2019-present the Material Components for iOS authors. All Rights Reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
#import "MaterialRipple.h"
#import "MaterialSnapshot.h"
#import "../../../src/TabBarView/private/MDCTabBarViewItemView.h"
#import "MDCTabBarView.h"
/** The typical size of an image in a Tab bar. */
static const CGSize kTypicalImageSize = (CGSize){24, 24};
/** The expected height of titles-only or icons-only Tabs. */
static const CGFloat kExpectedHeightTitlesOrIconsOnly = 48;
static NSString *const kItemTitleShort1Latin = @"No";
static NSString *const kItemTitleShort2Latin = @"Facer";
static NSString *const kItemTitleLong1Latin =
@"Quando volumus maluisset cum ei, ad zril quodsi cum.";
static NSString *const kItemTitleShort1Arabic = @"عل";
static NSString *const kItemTitleShort2Arabic = @"قد";
static NSString *const kItemTitleLong1Arabic =
@"عل أخذ استطاعوا الانجليزية. قد وحتّى بزمام التبرعات مكن.";
/** Exposing some internal properties to aid in testing. */
@interface MDCTabBarView (SnapshotTesting)
@property(nonnull, nonatomic, copy) NSArray<UIView *> *itemViews;
@end
@interface MDCTabBarViewLayoutStyleSnapshotTests : MDCSnapshotTestCase
/** The view being snapshotted. */
@property(nonatomic, strong) MDCTabBarView *tabBarView;
/** A typically-sized icon image. */
@property(nonatomic, strong) UIImage *typicalIcon1;
/** A typically-sized icon image. */
@property(nonatomic, strong) UIImage *typicalIcon2;
/** A typically-sized icon image. */
@property(nonatomic, strong) UIImage *typicalIcon3;
/** A tab bar item with a title and image. */
@property(nonatomic, strong) UITabBarItem *item1;
/** A tab bar item with a title and image. */
@property(nonatomic, strong) UITabBarItem *item2;
/** A tab bar item with a title and image. */
@property(nonatomic, strong) UITabBarItem *item3;
/**
Sizes a view to its intrinsic content size with optional extra sizing.
@param view The view to resize.
@param extraSize Additional size (positive or negative) to apply to the view's bounds.
*/
- (void)sizeViewToIntrinsicContentSize:(UIView *)view extraSize:(CGSize)extraSize;
@end
@implementation MDCTabBarViewLayoutStyleSnapshotTests
- (void)setUp {
[super setUp];
// Uncomment below to recreate all the goldens (or add the following line to the specific
// test you wish to recreate the golden for).
// self.recordMode = YES;
self.tabBarView = [[MDCTabBarView alloc] init];
self.tabBarView.barTintColor = UIColor.whiteColor;
self.tabBarView.bounds = CGRectMake(0, 0, 360, kExpectedHeightTitlesOrIconsOnly);
self.typicalIcon1 = [[UIImage mdc_testImageOfSize:kTypicalImageSize
withStyle:MDCSnapshotTestImageStyleFramedX]
imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];
self.typicalIcon2 = [[UIImage mdc_testImageOfSize:kTypicalImageSize
withStyle:MDCSnapshotTestImageStyleDiagonalLines]
imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];
self.typicalIcon3 = [[UIImage mdc_testImageOfSize:kTypicalImageSize
withStyle:MDCSnapshotTestImageStyleEllipses]
imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];
self.item1 = [[UITabBarItem alloc] initWithTitle:kItemTitleLong1Latin
image:self.typicalIcon1
tag:0];
self.item2 = [[UITabBarItem alloc] initWithTitle:kItemTitleShort1Latin
image:self.typicalIcon2
tag:1];
self.item3 = [[UITabBarItem alloc] initWithTitle:kItemTitleShort2Latin
image:self.typicalIcon3
tag:2];
self.tabBarView.items = @[ self.item1, self.item2, self.item3 ];
}
- (void)tearDown {
self.item1 = nil;
self.item2 = nil;
self.item3 = nil;
self.typicalIcon1 = nil;
self.typicalIcon2 = nil;
self.typicalIcon3 = nil;
self.tabBarView = nil;
[super tearDown];
}
#pragma mark - Helpers
- (void)sizeViewToIntrinsicContentSize:(UIView *)view extraSize:(CGSize)extraSize {
CGSize intrinsicContentSize = view.intrinsicContentSize;
view.bounds = CGRectMake(0, 0, intrinsicContentSize.width + extraSize.width,
intrinsicContentSize.height + extraSize.height);
}
- (void)activateRippleInView:(MDCTabBarView *)tabBarView forItem:(UITabBarItem *)item {
NSUInteger indexOfItem = [tabBarView.items indexOfObject:item];
if (indexOfItem == NSNotFound || indexOfItem >= tabBarView.itemViews.count) {
NSAssert(NO, @"(%@) has no associated item view.", item);
return;
}
UIView *itemView = tabBarView.itemViews[indexOfItem];
if (![itemView isKindOfClass:[MDCTabBarViewItemView class]]) {
return;
}
MDCTabBarViewItemView *mdcItemView = (MDCTabBarViewItemView *)itemView;
[mdcItemView.rippleTouchController.rippleView
beginRippleTouchDownAtPoint:CGPointMake(CGRectGetMidX(mdcItemView.bounds),
CGRectGetMidY(mdcItemView.bounds))
animated:NO
completion:nil];
}
- (void)changeToArabicStrings {
self.item1.title = kItemTitleLong1Arabic;
self.item2.title = kItemTitleShort1Arabic;
self.item3.title = kItemTitleShort2Arabic;
}
- (void)generateSnapshotAndVerifyForView:(UIView *)view {
// Needed so that any "scrolling" can take place for the selected item to be visible.
[self activateRippleInView:self.tabBarView forItem:self.item2];
[view layoutIfNeeded];
UIView *snapshotView = [view mdc_addToBackgroundView];
[self snapshotVerifyView:snapshotView];
}
#pragma mark - Fixed Layout
- (void)testFixedLayoutStyleFitSizeLatinLTR {
// When
self.tabBarView.preferredLayoutStyle = MDCTabBarViewLayoutStyleFixed;
// Then
[self sizeViewToIntrinsicContentSize:self.tabBarView extraSize:CGSizeZero];
[self generateSnapshotAndVerifyForView:self.tabBarView];
}
- (void)testFixedLayoutStyleFitSizeArabicRTL {
// When
[self changeToArabicStrings];
[self changeViewToRTL:self.tabBarView];
self.tabBarView.preferredLayoutStyle = MDCTabBarViewLayoutStyleFixed;
// Then
[self sizeViewToIntrinsicContentSize:self.tabBarView extraSize:CGSizeZero];
[self generateSnapshotAndVerifyForView:self.tabBarView];
}
- (void)testFixedLayoutStyleTooNarrowSizeLatinLTR {
// When
self.tabBarView.preferredLayoutStyle = MDCTabBarViewLayoutStyleFixed;
// Then
[self sizeViewToIntrinsicContentSize:self.tabBarView extraSize:CGSizeMake(-100, 0)];
[self generateSnapshotAndVerifyForView:self.tabBarView];
}
- (void)testFixedLayoutStyleTooNarrowSizeArabicRTL {
// When
[self changeToArabicStrings];
[self changeViewToRTL:self.tabBarView];
self.tabBarView.preferredLayoutStyle = MDCTabBarViewLayoutStyleFixed;
// Then
[self sizeViewToIntrinsicContentSize:self.tabBarView extraSize:CGSizeMake(-100, 0)];
[self generateSnapshotAndVerifyForView:self.tabBarView];
}
- (void)testFixedLayoutStyleTooWideSizeLatinLTR {
// When
self.tabBarView.preferredLayoutStyle = MDCTabBarViewLayoutStyleFixed;
// Then
[self sizeViewToIntrinsicContentSize:self.tabBarView extraSize:CGSizeMake(100, 0)];
[self generateSnapshotAndVerifyForView:self.tabBarView];
}
- (void)testFixedLayoutStyleTooWideSizeArabicRTL {
// When
[self changeToArabicStrings];
[self changeViewToRTL:self.tabBarView];
self.tabBarView.preferredLayoutStyle = MDCTabBarViewLayoutStyleFixed;
// Then
[self sizeViewToIntrinsicContentSize:self.tabBarView extraSize:CGSizeMake(100, 0)];
[self generateSnapshotAndVerifyForView:self.tabBarView];
}
- (void)testFixedLayoutContentPaddingLatinLTR {
// When
self.tabBarView.preferredLayoutStyle = MDCTabBarViewLayoutStyleFixed;
[self.tabBarView setContentPadding:UIEdgeInsetsMake(10, 20, 40, 30)
forLayoutStyle:MDCTabBarViewLayoutStyleFixed];
// Then
[self sizeViewToIntrinsicContentSize:self.tabBarView extraSize:CGSizeZero];
[self generateSnapshotAndVerifyForView:self.tabBarView];
}
- (void)testFixedLayoutContentPaddingArabicRTL {
// When
[self changeToArabicStrings];
[self changeViewToRTL:self.tabBarView];
self.tabBarView.preferredLayoutStyle = MDCTabBarViewLayoutStyleFixed;
[self.tabBarView setContentPadding:UIEdgeInsetsMake(10, 20, 40, 30)
forLayoutStyle:MDCTabBarViewLayoutStyleFixed];
// Then
[self sizeViewToIntrinsicContentSize:self.tabBarView extraSize:CGSizeZero];
[self generateSnapshotAndVerifyForView:self.tabBarView];
}
#pragma mark - FixedClusteredCentered Layout
- (void)testFixedClusteredCenteredLayoutStyleFitSizeLatinLTR {
// When
self.tabBarView.preferredLayoutStyle = MDCTabBarViewLayoutStyleFixedClusteredCentered;
// Then
[self sizeViewToIntrinsicContentSize:self.tabBarView extraSize:CGSizeZero];
[self generateSnapshotAndVerifyForView:self.tabBarView];
}
- (void)testFixedClusteredCenteredLayoutStyleFitSizeArabicRTL {
// When
[self changeToArabicStrings];
[self changeViewToRTL:self.tabBarView];
self.tabBarView.preferredLayoutStyle = MDCTabBarViewLayoutStyleFixedClusteredCentered;
// Then
[self sizeViewToIntrinsicContentSize:self.tabBarView extraSize:CGSizeZero];
[self generateSnapshotAndVerifyForView:self.tabBarView];
}
- (void)testFixedClusteredCenteredLayoutStyleTooNarrowSizeLatinLTR {
// When
self.tabBarView.preferredLayoutStyle = MDCTabBarViewLayoutStyleFixedClusteredCentered;
// Then
[self sizeViewToIntrinsicContentSize:self.tabBarView extraSize:CGSizeMake(-100, 0)];
[self generateSnapshotAndVerifyForView:self.tabBarView];
}
- (void)testFixedClusteredCenteredLayoutStyleTooNarrowSizeArabicRTL {
// When
[self changeToArabicStrings];
[self changeViewToRTL:self.tabBarView];
self.tabBarView.preferredLayoutStyle = MDCTabBarViewLayoutStyleFixedClusteredCentered;
// Then
[self sizeViewToIntrinsicContentSize:self.tabBarView extraSize:CGSizeMake(-100, 0)];
[self generateSnapshotAndVerifyForView:self.tabBarView];
}
- (void)testFixedClusteredCenteredLayoutStyleTooWideSizeLatinLTR {
// When
self.tabBarView.preferredLayoutStyle = MDCTabBarViewLayoutStyleFixedClusteredCentered;
// Then
[self sizeViewToIntrinsicContentSize:self.tabBarView extraSize:CGSizeMake(100, 0)];
[self generateSnapshotAndVerifyForView:self.tabBarView];
}
- (void)testFixedClusteredCenteredLayoutStyleTooWideSizeArabicRTL {
// When
[self changeToArabicStrings];
[self changeViewToRTL:self.tabBarView];
self.tabBarView.preferredLayoutStyle = MDCTabBarViewLayoutStyleFixedClusteredCentered;
// Then
[self sizeViewToIntrinsicContentSize:self.tabBarView extraSize:CGSizeMake(100, 0)];
[self generateSnapshotAndVerifyForView:self.tabBarView];
}
- (void)testFixedClusteredCenteredLayoutContentPaddingLatinLTR {
// When
self.tabBarView.preferredLayoutStyle = MDCTabBarViewLayoutStyleFixedClusteredCentered;
[self.tabBarView setContentPadding:UIEdgeInsetsMake(10, 20, 40, 30)
forLayoutStyle:MDCTabBarViewLayoutStyleFixedClusteredCentered];
// Then
// Add padding to make the layout clearer in the snapshots.
[self sizeViewToIntrinsicContentSize:self.tabBarView extraSize:CGSizeMake(100, 0)];
[self generateSnapshotAndVerifyForView:self.tabBarView];
}
- (void)testFixedClusteredCenteredLayoutContentPaddingArabicRTL {
// When
[self changeToArabicStrings];
[self changeViewToRTL:self.tabBarView];
self.tabBarView.preferredLayoutStyle = MDCTabBarViewLayoutStyleFixedClusteredCentered;
[self.tabBarView setContentPadding:UIEdgeInsetsMake(10, 20, 40, 30)
forLayoutStyle:MDCTabBarViewLayoutStyleFixedClusteredCentered];
// Then
// Add padding to make the layout clearer in the snapshots.
[self sizeViewToIntrinsicContentSize:self.tabBarView extraSize:CGSizeMake(100, 0)];
[self generateSnapshotAndVerifyForView:self.tabBarView];
}
#pragma mark - FixedClusteredLeading Layout
- (void)testFixedClusteredLeadingLayoutStyleFitSizeLatinLTR {
// When
self.tabBarView.preferredLayoutStyle = MDCTabBarViewLayoutStyleFixedClusteredLeading;
// Then
[self sizeViewToIntrinsicContentSize:self.tabBarView extraSize:CGSizeZero];
[self generateSnapshotAndVerifyForView:self.tabBarView];
}
- (void)testFixedClusteredLeadingLayoutStyleFitSizeArabicRTL {
// When
[self changeToArabicStrings];
[self changeViewToRTL:self.tabBarView];
self.tabBarView.preferredLayoutStyle = MDCTabBarViewLayoutStyleFixedClusteredLeading;
// Then
[self sizeViewToIntrinsicContentSize:self.tabBarView extraSize:CGSizeZero];
[self generateSnapshotAndVerifyForView:self.tabBarView];
}
- (void)testFixedClusteredLeadingLayoutStyleTooNarrowSizeLatinLTR {
// When
self.tabBarView.preferredLayoutStyle = MDCTabBarViewLayoutStyleFixedClusteredLeading;
// Then
[self sizeViewToIntrinsicContentSize:self.tabBarView extraSize:CGSizeMake(-100, 0)];
[self generateSnapshotAndVerifyForView:self.tabBarView];
}
- (void)testFixedClusteredLeadingLayoutStyleTooNarrowSizeArabicRTL {
// When
[self changeToArabicStrings];
[self changeViewToRTL:self.tabBarView];
self.tabBarView.preferredLayoutStyle = MDCTabBarViewLayoutStyleFixedClusteredLeading;
// Then
[self sizeViewToIntrinsicContentSize:self.tabBarView extraSize:CGSizeMake(-100, 0)];
[self generateSnapshotAndVerifyForView:self.tabBarView];
}
- (void)testFixedClusteredLeadingLayoutStyleTooWideSizeLatinLTR {
// When
self.tabBarView.preferredLayoutStyle = MDCTabBarViewLayoutStyleFixedClusteredLeading;
// Then
[self sizeViewToIntrinsicContentSize:self.tabBarView extraSize:CGSizeMake(100, 0)];
[self generateSnapshotAndVerifyForView:self.tabBarView];
}
- (void)testFixedClusteredLeadingLayoutStyleTooWideSizeArabicRTL {
// When
[self changeToArabicStrings];
[self changeViewToRTL:self.tabBarView];
self.tabBarView.preferredLayoutStyle = MDCTabBarViewLayoutStyleFixedClusteredLeading;
// Then
[self sizeViewToIntrinsicContentSize:self.tabBarView extraSize:CGSizeMake(100, 0)];
[self generateSnapshotAndVerifyForView:self.tabBarView];
}
- (void)testFixedClusteredLeadingLayoutContentPaddingLatinLTR {
// When
self.tabBarView.preferredLayoutStyle = MDCTabBarViewLayoutStyleFixedClusteredLeading;
[self.tabBarView setContentPadding:UIEdgeInsetsMake(10, 20, 40, 30)
forLayoutStyle:MDCTabBarViewLayoutStyleFixedClusteredLeading];
// Then
// Add padding to make the layout clearer in the snapshots.
[self sizeViewToIntrinsicContentSize:self.tabBarView extraSize:CGSizeMake(100, 0)];
[self generateSnapshotAndVerifyForView:self.tabBarView];
}
- (void)testFixedClusteredLeadingLayoutContentPaddingArabicRTL {
// When
[self changeToArabicStrings];
[self changeViewToRTL:self.tabBarView];
self.tabBarView.preferredLayoutStyle = MDCTabBarViewLayoutStyleFixedClusteredLeading;
[self.tabBarView setContentPadding:UIEdgeInsetsMake(10, 20, 40, 30)
forLayoutStyle:MDCTabBarViewLayoutStyleFixedClusteredLeading];
// Then
// Add padding to make the layout clearer in the snapshots.
[self sizeViewToIntrinsicContentSize:self.tabBarView extraSize:CGSizeMake(100, 0)];
[self generateSnapshotAndVerifyForView:self.tabBarView];
}
#pragma mark - FixedClusteredTrailing Layout
- (void)testFixedClusteredTrailingLayoutStyleFitSizeLatinLTR {
// When
self.tabBarView.preferredLayoutStyle = MDCTabBarViewLayoutStyleFixedClusteredTrailing;
// Then
[self sizeViewToIntrinsicContentSize:self.tabBarView extraSize:CGSizeZero];
[self generateSnapshotAndVerifyForView:self.tabBarView];
}
- (void)testFixedClusteredTrailingLayoutStyleFitSizeArabicRTL {
// When
[self changeToArabicStrings];
[self changeViewToRTL:self.tabBarView];
self.tabBarView.preferredLayoutStyle = MDCTabBarViewLayoutStyleFixedClusteredTrailing;
// Then
[self sizeViewToIntrinsicContentSize:self.tabBarView extraSize:CGSizeZero];
[self generateSnapshotAndVerifyForView:self.tabBarView];
}
- (void)testFixedClusteredTrailingLayoutStyleTooNarrowSizeLatinLTR {
// When
self.tabBarView.preferredLayoutStyle = MDCTabBarViewLayoutStyleFixedClusteredTrailing;
// Then
[self sizeViewToIntrinsicContentSize:self.tabBarView extraSize:CGSizeMake(-100, 0)];
[self generateSnapshotAndVerifyForView:self.tabBarView];
}
- (void)testFixedClusteredTrailingLayoutStyleTooNarrowSizeArabicRTL {
// When
[self changeToArabicStrings];
[self changeViewToRTL:self.tabBarView];
self.tabBarView.preferredLayoutStyle = MDCTabBarViewLayoutStyleFixedClusteredTrailing;
// Then
[self sizeViewToIntrinsicContentSize:self.tabBarView extraSize:CGSizeMake(-100, 0)];
[self generateSnapshotAndVerifyForView:self.tabBarView];
}
- (void)testFixedClusteredTrailingLayoutStyleTooWideSizeLatinLTR {
// When
self.tabBarView.preferredLayoutStyle = MDCTabBarViewLayoutStyleFixedClusteredTrailing;
// Then
[self sizeViewToIntrinsicContentSize:self.tabBarView extraSize:CGSizeMake(100, 0)];
[self generateSnapshotAndVerifyForView:self.tabBarView];
}
- (void)testFixedClusteredTrailingLayoutStyleTooWideSizeArabicRTL {
// When
[self changeToArabicStrings];
[self changeViewToRTL:self.tabBarView];
self.tabBarView.preferredLayoutStyle = MDCTabBarViewLayoutStyleFixedClusteredTrailing;
// Then
[self sizeViewToIntrinsicContentSize:self.tabBarView extraSize:CGSizeMake(100, 0)];
[self generateSnapshotAndVerifyForView:self.tabBarView];
}
- (void)testFixedClusteredTrailingLayoutContentPaddingLatinLTR {
// When
self.tabBarView.preferredLayoutStyle = MDCTabBarViewLayoutStyleFixedClusteredTrailing;
[self.tabBarView setContentPadding:UIEdgeInsetsMake(10, 20, 40, 30)
forLayoutStyle:MDCTabBarViewLayoutStyleFixedClusteredTrailing];
// Then
// Add padding to make the layout clearer in the snapshots.
[self sizeViewToIntrinsicContentSize:self.tabBarView extraSize:CGSizeMake(100, 0)];
[self generateSnapshotAndVerifyForView:self.tabBarView];
}
- (void)testFixedClusteredTrailingLayoutContentPaddingArabicRTL {
// When
[self changeToArabicStrings];
[self changeViewToRTL:self.tabBarView];
self.tabBarView.preferredLayoutStyle = MDCTabBarViewLayoutStyleFixedClusteredTrailing;
[self.tabBarView setContentPadding:UIEdgeInsetsMake(10, 20, 40, 30)
forLayoutStyle:MDCTabBarViewLayoutStyleFixedClusteredTrailing];
// Then
// Add padding to make the layout clearer in the snapshots.
[self sizeViewToIntrinsicContentSize:self.tabBarView extraSize:CGSizeMake(100, 0)];
[self generateSnapshotAndVerifyForView:self.tabBarView];
}
#pragma mark - Scrollable Layout
- (void)testScrollableLayoutStyleFitSizeLatinLTR {
// When
self.tabBarView.preferredLayoutStyle = MDCTabBarViewLayoutStyleScrollable;
// Then
[self sizeViewToIntrinsicContentSize:self.tabBarView extraSize:CGSizeZero];
[self generateSnapshotAndVerifyForView:self.tabBarView];
}
- (void)testScrollableLayoutStyleFitSizeArabicRTL {
// When
[self changeToArabicStrings];
[self changeViewToRTL:self.tabBarView];
self.tabBarView.preferredLayoutStyle = MDCTabBarViewLayoutStyleScrollable;
// Then
[self sizeViewToIntrinsicContentSize:self.tabBarView extraSize:CGSizeZero];
[self generateSnapshotAndVerifyForView:self.tabBarView];
}
- (void)testScrollableLayoutStyleTooNarrowSizeLatinLTR {
// When
self.tabBarView.preferredLayoutStyle = MDCTabBarViewLayoutStyleScrollable;
// Then
[self sizeViewToIntrinsicContentSize:self.tabBarView extraSize:CGSizeMake(-100, 0)];
[self generateSnapshotAndVerifyForView:self.tabBarView];
}
- (void)testScrollableLayoutStyleTooNarrowSizeArabicRTL {
// When
[self changeToArabicStrings];
[self changeViewToRTL:self.tabBarView];
self.tabBarView.preferredLayoutStyle = MDCTabBarViewLayoutStyleScrollable;
// Then
[self sizeViewToIntrinsicContentSize:self.tabBarView extraSize:CGSizeMake(-100, 0)];
[self generateSnapshotAndVerifyForView:self.tabBarView];
}
- (void)testScrollableLayoutStyleTooWideSizeLatinLTR {
// When
self.tabBarView.preferredLayoutStyle = MDCTabBarViewLayoutStyleScrollable;
// Then
[self sizeViewToIntrinsicContentSize:self.tabBarView extraSize:CGSizeMake(100, 0)];
[self generateSnapshotAndVerifyForView:self.tabBarView];
}
- (void)testScrollableLayoutStyleTooWideSizeArabicRTL {
// When
[self changeToArabicStrings];
[self changeViewToRTL:self.tabBarView];
self.tabBarView.preferredLayoutStyle = MDCTabBarViewLayoutStyleScrollable;
// Then
[self sizeViewToIntrinsicContentSize:self.tabBarView extraSize:CGSizeMake(100, 0)];
[self generateSnapshotAndVerifyForView:self.tabBarView];
}
- (void)testScrollableLayoutContentPaddingLatinLTR {
// When
self.tabBarView.preferredLayoutStyle = MDCTabBarViewLayoutStyleScrollable;
[self.tabBarView setContentPadding:UIEdgeInsetsMake(10, 20, 40, 30)
forLayoutStyle:MDCTabBarViewLayoutStyleScrollable];
// Then
// Add padding to make the layout clearer in the snapshots.
[self sizeViewToIntrinsicContentSize:self.tabBarView extraSize:CGSizeMake(100, 0)];
[self generateSnapshotAndVerifyForView:self.tabBarView];
}
- (void)testScrollableLayoutContentPaddingArabicRTL {
// When
[self changeToArabicStrings];
[self changeViewToRTL:self.tabBarView];
self.tabBarView.preferredLayoutStyle = MDCTabBarViewLayoutStyleScrollable;
[self.tabBarView setContentPadding:UIEdgeInsetsMake(10, 20, 40, 20)
forLayoutStyle:MDCTabBarViewLayoutStyleScrollable];
// Then
// Add padding to make the layout clearer in the snapshots.
[self sizeViewToIntrinsicContentSize:self.tabBarView extraSize:CGSizeMake(100, 0)];
[self generateSnapshotAndVerifyForView:self.tabBarView];
}
@end