@@ -205,6 +205,7 @@ describe('MatButtonToggle without forms', () => {
205205 declarations : [
206206 ButtonTogglesInsideButtonToggleGroup ,
207207 ButtonTogglesInsideButtonToggleGroupMultiple ,
208+ FalsyButtonTogglesInsideButtonToggleGroupMultiple ,
208209 ButtonToggleGroupWithInitialValue ,
209210 StandaloneButtonToggle ,
210211 ButtonToggleWithAriaLabel ,
@@ -694,6 +695,22 @@ describe('MatButtonToggle without forms', () => {
694695 expect ( fixture . componentInstance . toggleGroup . value ) . toBe ( 'Seven' ) ;
695696 expect ( fixture . componentInstance . toggles . toArray ( ) [ 2 ] . checked ) . toBe ( true ) ;
696697 } ) ;
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+ } ) ;
697714} ) ;
698715
699716@Component ( {
@@ -748,6 +765,21 @@ class ButtonTogglesInsideButtonToggleGroupMultiple {
748765 isVertical : boolean = false ;
749766}
750767
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+
751783@Component ( {
752784 template : `
753785 <mat-button-toggle>Yes</mat-button-toggle>
0 commit comments