11import { MutationObserverFactory } from '@angular/cdk/observers' ;
22import { dispatchFakeEvent } from '@angular/cdk/testing/private' ;
3- import { Component } from '@angular/core' ;
3+ import { Component , DebugElement } from '@angular/core' ;
44import {
55 ComponentFixture ,
66 fakeAsync ,
@@ -731,15 +731,18 @@ describe('MatSlideToggle with forms', () => {
731731 let fixture : ComponentFixture < SlideToggleWithFormControl > ;
732732
733733 let testComponent : SlideToggleWithFormControl ;
734+ let slideToggleDebug : DebugElement ;
734735 let slideToggle : MatSlideToggle ;
735736 let inputElement : HTMLInputElement ;
736737
737738 beforeEach ( ( ) => {
738739 fixture = TestBed . createComponent ( SlideToggleWithFormControl ) ;
739740 fixture . detectChanges ( ) ;
740741
742+ slideToggleDebug = fixture . debugElement . query ( By . directive ( MatSlideToggle ) ) ! ;
743+
741744 testComponent = fixture . debugElement . componentInstance ;
742- slideToggle = fixture . debugElement . query ( By . directive ( MatSlideToggle ) ) ! . componentInstance ;
745+ slideToggle = slideToggleDebug . componentInstance ;
743746 inputElement = fixture . debugElement . query ( By . css ( 'input' ) ) ! . nativeElement ;
744747 } ) ;
745748
@@ -759,6 +762,15 @@ describe('MatSlideToggle with forms', () => {
759762 expect ( slideToggle . disabled ) . toBe ( false ) ;
760763 expect ( inputElement . disabled ) . toBe ( false ) ;
761764 } ) ;
765+
766+ it ( 'should not change focus origin if origin not specified' , ( ) => {
767+ slideToggle . focus ( 'mouse' ) ;
768+ slideToggle . focus ( ) ;
769+ fixture . detectChanges ( ) ;
770+
771+ expect ( slideToggleDebug . nativeElement . classList ) . toContain ( 'cdk-focused' ) ;
772+ expect ( slideToggleDebug . nativeElement . classList ) . toContain ( 'cdk-mouse-focused' ) ;
773+ } ) ;
762774 } ) ;
763775
764776 describe ( 'with form element' , ( ) => {
0 commit comments