1414
1515#import < UIKit/UIKit.h>
1616#import < XCTest/XCTest.h>
17+ #import " MDCBadgeAppearance.h"
1718
1819#pragma clang diagnostic push
1920#pragma clang diagnostic ignored "-Wprivate-header"
21+ #import " MDCBottomNavigationBarItem.h"
2022#import " MDCBottomNavigationItemView.h"
2123#pragma clang diagnostic pop
2224
2325#import " supplemental/MDCBottomNavigationSnapshotTestMutableTraitCollection.h"
2426#import " supplemental/MDCBottomNavigationSnapshotTestUtilities.h"
2527#import " supplemental/MDCFakeBottomNavigationBar.h"
2628#import " MDCAvailability.h"
29+ #import " MDCBadgeAppearance.h"
2730#import " MDCBottomNavigationBar.h"
2831#import " MDCRippleTouchController.h"
2932#import " MDCRippleView.h"
@@ -401,7 +404,7 @@ - (void)testShadowColorRespondsToDynamicColor {
401404
402405#pragma mark - Badging
403406
404- - (void )testCustomBadgeColorsSetAfterItems {
407+ - (void )testCustomBadgeColorsOverrideDefaultBadgeAppearanceWhenSetAfterBarItems {
405408 // Given
406409 self.tabItem1 .badgeValue = @" " ;
407410 self.tabItem2 .badgeValue = @" Gray on Yellow" ;
@@ -410,15 +413,34 @@ - (void)testCustomBadgeColorsSetAfterItems {
410413 MDCBottomNavigationBarTestHeightTypical);
411414
412415 // When
413- self.tabItem3 .badgeColor = UIColor.greenColor ;
414- self.navigationBar .itemBadgeBackgroundColor = UIColor.yellowColor ;
415- self.navigationBar .itemBadgeTextColor = UIColor.darkGrayColor ;
416+ MDCBadgeAppearance *greenAppearance = [[MDCBadgeAppearance alloc ] init ];
417+ greenAppearance.font = [UIFont systemFontOfSize: 8.0 ];
418+ greenAppearance.backgroundColor = UIColor.greenColor ;
419+ greenAppearance.textColor = UIColor.darkGrayColor ;
420+ MDCBottomNavigationBarItem *barItem1 =
421+ [[MDCBottomNavigationBarItem alloc ] initWithBarItem: self .tabItem1];
422+ MDCBottomNavigationBarItem *barItem2 =
423+ [[MDCBottomNavigationBarItem alloc ] initWithBarItem: self .tabItem2];
424+ MDCBottomNavigationBarItem *barItem3 =
425+ [[MDCBottomNavigationBarItem alloc ] initWithBarItem: self .tabItem3
426+ badgeAppearance: greenAppearance];
427+ MDCBottomNavigationBarItem *barItem4 =
428+ [[MDCBottomNavigationBarItem alloc ] initWithBarItem: self .tabItem4];
429+ MDCBottomNavigationBarItem *barItem5 =
430+ [[MDCBottomNavigationBarItem alloc ] initWithBarItem: self .tabItem5];
431+ self.navigationBar .barItems = @[ barItem1, barItem2, barItem3, barItem4, barItem5 ];
432+
433+ MDCBadgeAppearance *badgeAppearance = [[MDCBadgeAppearance alloc ] init ];
434+ badgeAppearance.font = [UIFont systemFontOfSize: 8.0 ];
435+ badgeAppearance.backgroundColor = UIColor.yellowColor ;
436+ badgeAppearance.textColor = UIColor.darkGrayColor ;
437+ self.navigationBar .itemBadgeAppearance = badgeAppearance;
416438
417439 // Then
418440 [self generateAndVerifySnapshot ];
419441}
420442
421- - (void )testCustomBadgeColorsSetBeforeItems {
443+ - (void )testCustomBadgeColorsOverrideDefaultBadgeAppearanceWhenSetBeforeBarItems {
422444 // Given
423445 self.tabItem1 .badgeValue = @" " ;
424446 self.tabItem2 .badgeValue = @" Gray on Yellow" ;
@@ -427,11 +449,27 @@ - (void)testCustomBadgeColorsSetBeforeItems {
427449 MDCBottomNavigationBarTestHeightTypical);
428450
429451 // When
430- self.tabItem3 .badgeColor = UIColor.greenColor ;
431- self.navigationBar .itemBadgeBackgroundColor = UIColor.yellowColor ;
432- self.navigationBar .itemBadgeTextColor = UIColor.darkGrayColor ;
433- self.navigationBar .items =
434- @[ self .tabItem1, self .tabItem2, self .tabItem3, self .tabItem4, self .tabItem5 ];
452+ MDCBadgeAppearance *badgeAppearance = [[MDCBadgeAppearance alloc ] init ];
453+ badgeAppearance.font = [UIFont systemFontOfSize: 8.0 ];
454+ badgeAppearance.backgroundColor = UIColor.yellowColor ;
455+ badgeAppearance.textColor = UIColor.darkGrayColor ;
456+ self.navigationBar .itemBadgeAppearance = badgeAppearance;
457+ MDCBadgeAppearance *greenAppearance = [[MDCBadgeAppearance alloc ] init ];
458+ greenAppearance.font = [UIFont systemFontOfSize: 8.0 ];
459+ greenAppearance.backgroundColor = UIColor.greenColor ;
460+ greenAppearance.textColor = UIColor.darkGrayColor ;
461+ MDCBottomNavigationBarItem *barItem1 =
462+ [[MDCBottomNavigationBarItem alloc ] initWithBarItem: self .tabItem1];
463+ MDCBottomNavigationBarItem *barItem2 =
464+ [[MDCBottomNavigationBarItem alloc ] initWithBarItem: self .tabItem2];
465+ MDCBottomNavigationBarItem *barItem3 =
466+ [[MDCBottomNavigationBarItem alloc ] initWithBarItem: self .tabItem3
467+ badgeAppearance: greenAppearance];
468+ MDCBottomNavigationBarItem *barItem4 =
469+ [[MDCBottomNavigationBarItem alloc ] initWithBarItem: self .tabItem4];
470+ MDCBottomNavigationBarItem *barItem5 =
471+ [[MDCBottomNavigationBarItem alloc ] initWithBarItem: self .tabItem5];
472+ self.navigationBar .barItems = @[ barItem1, barItem2, barItem3, barItem4, barItem5 ];
435473
436474 // Then
437475 [self generateAndVerifySnapshot ];
@@ -446,9 +484,27 @@ - (void)testClearBadgeColorsRendersClearBackgroundAndUILabelDefaultTextColor {
446484 MDCBottomNavigationBarTestHeightTypical);
447485
448486 // When
449- self.tabItem3 .badgeColor = UIColor.greenColor ;
450- self.navigationBar .itemBadgeBackgroundColor = [UIColor clearColor ];
451- self.navigationBar .itemBadgeTextColor = nil ;
487+ MDCBadgeAppearance *greenAppearance = [[MDCBadgeAppearance alloc ] init ];
488+ greenAppearance.font = [UIFont systemFontOfSize: 8.0 ];
489+ greenAppearance.backgroundColor = UIColor.greenColor ;
490+ greenAppearance.textColor = UIColor.blackColor ;
491+ MDCBottomNavigationBarItem *barItem1 =
492+ [[MDCBottomNavigationBarItem alloc ] initWithBarItem: self .tabItem1];
493+ MDCBottomNavigationBarItem *barItem2 =
494+ [[MDCBottomNavigationBarItem alloc ] initWithBarItem: self .tabItem2];
495+ MDCBottomNavigationBarItem *barItem3 =
496+ [[MDCBottomNavigationBarItem alloc ] initWithBarItem: self .tabItem3
497+ badgeAppearance: greenAppearance];
498+ MDCBottomNavigationBarItem *barItem4 =
499+ [[MDCBottomNavigationBarItem alloc ] initWithBarItem: self .tabItem4];
500+ MDCBottomNavigationBarItem *barItem5 =
501+ [[MDCBottomNavigationBarItem alloc ] initWithBarItem: self .tabItem5];
502+ self.navigationBar .barItems = @[ barItem1, barItem2, barItem3, barItem4, barItem5 ];
503+ MDCBadgeAppearance *badgeAppearance = [[MDCBadgeAppearance alloc ] init ];
504+ badgeAppearance.font = [UIFont systemFontOfSize: 8.0 ];
505+ badgeAppearance.backgroundColor = UIColor.clearColor ;
506+ badgeAppearance.textColor = nil ;
507+ self.navigationBar .itemBadgeAppearance = badgeAppearance;
452508
453509 // Then
454510 [self generateAndVerifySnapshot ];
@@ -463,9 +519,27 @@ - (void)testNilBadgeColorsRendersTintBackgroundAndUILabelDefaultTextColor {
463519 MDCBottomNavigationBarTestHeightTypical);
464520
465521 // When
466- self.tabItem3 .badgeColor = UIColor.greenColor ;
467- self.navigationBar .itemBadgeBackgroundColor = nil ;
468- self.navigationBar .itemBadgeTextColor = nil ;
522+ MDCBadgeAppearance *greenAppearance = [[MDCBadgeAppearance alloc ] init ];
523+ greenAppearance.font = [UIFont systemFontOfSize: 8.0 ];
524+ greenAppearance.backgroundColor = UIColor.greenColor ;
525+ greenAppearance.textColor = UIColor.blackColor ;
526+ MDCBottomNavigationBarItem *barItem1 =
527+ [[MDCBottomNavigationBarItem alloc ] initWithBarItem: self .tabItem1];
528+ MDCBottomNavigationBarItem *barItem2 =
529+ [[MDCBottomNavigationBarItem alloc ] initWithBarItem: self .tabItem2];
530+ MDCBottomNavigationBarItem *barItem3 =
531+ [[MDCBottomNavigationBarItem alloc ] initWithBarItem: self .tabItem3
532+ badgeAppearance: greenAppearance];
533+ MDCBottomNavigationBarItem *barItem4 =
534+ [[MDCBottomNavigationBarItem alloc ] initWithBarItem: self .tabItem4];
535+ MDCBottomNavigationBarItem *barItem5 =
536+ [[MDCBottomNavigationBarItem alloc ] initWithBarItem: self .tabItem5];
537+ self.navigationBar .barItems = @[ barItem1, barItem2, barItem3, barItem4, barItem5 ];
538+ MDCBadgeAppearance *badgeAppearance = [[MDCBadgeAppearance alloc ] init ];
539+ badgeAppearance.font = [UIFont systemFontOfSize: 8.0 ];
540+ badgeAppearance.backgroundColor = nil ;
541+ badgeAppearance.textColor = nil ;
542+ self.navigationBar .itemBadgeAppearance = badgeAppearance;
469543
470544 // Then
471545 [self generateAndVerifySnapshot ];
@@ -479,7 +553,9 @@ - (void)testCustomBadgeTextFontSetBeforeItems {
479553 MDCBottomNavigationBarTestHeightTypical);
480554
481555 // When
482- self.navigationBar .itemBadgeTextFont = [UIFont systemFontOfSize: 10.0 ];
556+ MDCBadgeAppearance *badgeAppearance = [[MDCBadgeAppearance alloc ] init ];
557+ badgeAppearance.font = [UIFont systemFontOfSize: 10.0 ];
558+ self.navigationBar .itemBadgeAppearance = badgeAppearance;
483559 self.navigationBar .items =
484560 @[ self .tabItem1, self .tabItem2, self .tabItem3, self .tabItem4, self .tabItem5 ];
485561
@@ -497,7 +573,9 @@ - (void)testCustomBadgeTextFontSetAfterItems {
497573 // When
498574 self.navigationBar .items =
499575 @[ self .tabItem1, self .tabItem2, self .tabItem3, self .tabItem4, self .tabItem5 ];
500- self.navigationBar .itemBadgeTextFont = [UIFont systemFontOfSize: 10.0 ];
576+ MDCBadgeAppearance *badgeAppearance = [[MDCBadgeAppearance alloc ] init ];
577+ badgeAppearance.font = [UIFont systemFontOfSize: 10.0 ];
578+ self.navigationBar .itemBadgeAppearance = badgeAppearance;
501579
502580 // Then
503581 [self generateAndVerifySnapshot ];
0 commit comments