@@ -205,6 +205,7 @@ describe('MatButtonToggle without forms', () => {
205
205
declarations : [
206
206
ButtonTogglesInsideButtonToggleGroup ,
207
207
ButtonTogglesInsideButtonToggleGroupMultiple ,
208
+ FalsyButtonTogglesInsideButtonToggleGroupMultiple ,
208
209
ButtonToggleGroupWithInitialValue ,
209
210
StandaloneButtonToggle ,
210
211
ButtonToggleWithAriaLabel ,
@@ -694,6 +695,22 @@ describe('MatButtonToggle without forms', () => {
694
695
expect ( fixture . componentInstance . toggleGroup . value ) . toBe ( 'Seven' ) ;
695
696
expect ( fixture . componentInstance . toggles . toArray ( ) [ 2 ] . checked ) . toBe ( true ) ;
696
697
} ) ;
698
+
699
+ it ( 'should select falsy button toggle value in multiple selection' , ( ) => {
700
+ const fixture = TestBed . createComponent ( FalsyButtonTogglesInsideButtonToggleGroupMultiple ) ;
701
+ fixture . detectChanges ( ) ;
702
+
703
+ expect ( fixture . componentInstance . toggles . toArray ( ) [ 0 ] . checked ) . toBe ( true ) ;
704
+ expect ( fixture . componentInstance . toggles . toArray ( ) [ 1 ] . checked ) . toBe ( false ) ;
705
+ expect ( fixture . componentInstance . toggles . toArray ( ) [ 2 ] . checked ) . toBe ( false ) ;
706
+
707
+ fixture . componentInstance . value = [ 0 , false ] ;
708
+ fixture . detectChanges ( ) ;
709
+
710
+ expect ( fixture . componentInstance . toggles . toArray ( ) [ 0 ] . checked ) . toBe ( true ) ;
711
+ expect ( fixture . componentInstance . toggles . toArray ( ) [ 1 ] . checked ) . toBe ( false ) ;
712
+ expect ( fixture . componentInstance . toggles . toArray ( ) [ 2 ] . checked ) . toBe ( true ) ;
713
+ } ) ;
697
714
} ) ;
698
715
699
716
@Component ( {
@@ -748,6 +765,21 @@ class ButtonTogglesInsideButtonToggleGroupMultiple {
748
765
isVertical : boolean = false ;
749
766
}
750
767
768
+ @Component ( {
769
+ template : `
770
+ <mat-button-toggle-group multiple [value]="value">
771
+ <mat-button-toggle [value]="0">Eggs</mat-button-toggle>
772
+ <mat-button-toggle [value]="null">Flour</mat-button-toggle>
773
+ <mat-button-toggle [value]="false">Sugar</mat-button-toggle>
774
+ <mat-button-toggle>Sugar</mat-button-toggle>
775
+ </mat-button-toggle-group>
776
+ `
777
+ } )
778
+ class FalsyButtonTogglesInsideButtonToggleGroupMultiple {
779
+ value : ( '' | number | null | undefined | boolean ) [ ] = [ 0 ] ;
780
+ @ViewChildren ( MatButtonToggle ) toggles : QueryList < MatButtonToggle > ;
781
+ }
782
+
751
783
@Component ( {
752
784
template : `
753
785
<mat-button-toggle>Yes</mat-button-toggle>
0 commit comments