@@ -25,6 +25,7 @@ describe('MdButtonToggle', () => {
2525 ButtonTogglesInsideButtonToggleGroup ,
2626 ButtonToggleGroupWithNgModel ,
2727 ButtonTogglesInsideButtonToggleGroupMultiple ,
28+ ButtonToggleGroupWithInitialValue ,
2829 StandaloneButtonToggle ,
2930 ] ,
3031 } ) ;
@@ -320,6 +321,29 @@ describe('MdButtonToggle', () => {
320321 expect ( testComponent . modelValue ) . toBe ( 'red' ) ;
321322 expect ( testComponent . lastEvent . value ) . toBe ( 'red' ) ;
322323 } ) ) ;
324+
325+ } ) ;
326+
327+ describe ( 'with initial value and change event' , ( ) => {
328+
329+ it ( 'should not fire an initial change event' , async ( ( ) => {
330+ let fixture = TestBed . createComponent ( ButtonToggleGroupWithInitialValue ) ;
331+ let testComponent = fixture . debugElement . componentInstance ;
332+ let groupDebugElement = fixture . debugElement . query ( By . directive ( MdButtonToggleGroup ) ) ;
333+ let groupInstance : MdButtonToggleGroup = groupDebugElement . injector . get ( MdButtonToggleGroup ) ;
334+
335+ fixture . detectChanges ( ) ;
336+
337+ expect ( groupInstance . value ) . toBe ( 'red' ) ;
338+ expect ( testComponent . lastEvent ) . toBeFalsy ( ) ;
339+
340+ groupInstance . value = 'green' ;
341+ fixture . detectChanges ( ) ;
342+
343+ expect ( groupInstance . value ) . toBe ( 'green' ) ;
344+ expect ( testComponent . lastEvent . value ) . toBe ( 'green' ) ;
345+ } ) ) ;
346+
323347 } ) ;
324348
325349 describe ( 'inside of a multiple selection group' , ( ) => {
@@ -532,3 +556,15 @@ class ButtonTogglesInsideButtonToggleGroupMultiple {
532556 `
533557} )
534558class StandaloneButtonToggle { }
559+
560+ @Component ( {
561+ template : `
562+ <md-button-toggle-group (change)="lastEvent = $event" value="red">
563+ <md-button-toggle value="red">Value Red</md-button-toggle>
564+ <md-button-toggle value="green">Value Green</md-button-toggle>
565+ </md-button-toggle-group>
566+ `
567+ } )
568+ class ButtonToggleGroupWithInitialValue {
569+ lastEvent : MdButtonToggleChange ;
570+ }
0 commit comments