@@ -41,11 +41,13 @@ describe('MdButtonToggle', () => {
41
41
} ) ) ;
42
42
43
43
describe ( 'inside of an exclusive selection group' , ( ) => {
44
+
44
45
let fixture : ComponentFixture < ButtonTogglesInsideButtonToggleGroup > ;
45
46
let groupDebugElement : DebugElement ;
46
47
let groupNativeElement : HTMLElement ;
47
48
let buttonToggleDebugElements : DebugElement [ ] ;
48
49
let buttonToggleNativeElements : HTMLElement [ ] ;
50
+ let buttonToggleLabelElements : HTMLLabelElement [ ] ;
49
51
let groupInstance : MdButtonToggleGroup ;
50
52
let buttonToggleInstances : MdButtonToggle [ ] ;
51
53
let testComponent : ButtonTogglesInsideButtonToggleGroup ;
@@ -62,8 +64,13 @@ describe('MdButtonToggle', () => {
62
64
groupInstance = groupDebugElement . injector . get ( MdButtonToggleGroup ) ;
63
65
64
66
buttonToggleDebugElements = fixture . debugElement . queryAll ( By . directive ( MdButtonToggle ) ) ;
65
- buttonToggleNativeElements =
66
- buttonToggleDebugElements . map ( debugEl => debugEl . nativeElement ) ;
67
+
68
+ buttonToggleNativeElements = buttonToggleDebugElements
69
+ . map ( debugEl => debugEl . nativeElement ) ;
70
+
71
+ buttonToggleLabelElements = fixture . debugElement . queryAll ( By . css ( 'label' ) )
72
+ . map ( debugEl => debugEl . nativeElement ) ;
73
+
67
74
buttonToggleInstances = buttonToggleDebugElements . map ( debugEl => debugEl . componentInstance ) ;
68
75
} ) ;
69
76
} ) ) ;
@@ -133,15 +140,19 @@ describe('MdButtonToggle', () => {
133
140
let changeSpy = jasmine . createSpy ( 'button-toggle change listener' ) ;
134
141
buttonToggleInstances [ 0 ] . change . subscribe ( changeSpy ) ;
135
142
136
- buttonToggleInstances [ 0 ] . checked = true ;
143
+
144
+ buttonToggleLabelElements [ 0 ] . click ( ) ;
137
145
fixture . detectChanges ( ) ;
138
146
tick ( ) ;
139
147
expect ( changeSpy ) . toHaveBeenCalled ( ) ;
140
148
141
- buttonToggleInstances [ 0 ] . checked = false ;
149
+ buttonToggleLabelElements [ 0 ] . click ( ) ;
142
150
fixture . detectChanges ( ) ;
143
151
tick ( ) ;
144
- expect ( changeSpy ) . toHaveBeenCalledTimes ( 2 ) ;
152
+
153
+ // The default browser behavior is to not emit a change event, when the value was set
154
+ // to false. That's why the change event was only triggered once.
155
+ expect ( changeSpy ) . toHaveBeenCalledTimes ( 1 ) ;
145
156
} ) ) ;
146
157
147
158
it ( 'should emit a change event from the button toggle group' , fakeAsync ( ( ) => {
0 commit comments