@@ -1243,10 +1243,6 @@ describe('MatTooltip', () => {
12431243 platform . ANDROID = true ;
12441244 } ) ;
12451245
1246- afterEach ( ( ) => {
1247- jasmine . clock ( ) . uninstall ( ) ;
1248- } ) ;
1249-
12501246 it ( 'should have a delay when showing on touchstart' , async ( ) => {
12511247 const fixture = TestBed . createComponent ( BasicTooltipDemo ) ;
12521248 fixture . detectChanges ( ) ;
@@ -1288,58 +1284,52 @@ describe('MatTooltip', () => {
12881284 expect ( event . defaultPrevented ) . toBe ( false ) ;
12891285 } ) ;
12901286
1291- it ( 'should close on touchend with a delay' , ( ) => {
1292- jasmine . clock ( ) . install ( ) ;
1287+ it ( 'should close on touchend with a delay' , async ( ) => {
12931288 const fixture = TestBed . createComponent ( BasicTooltipDemo ) ;
12941289 fixture . detectChanges ( ) ;
12951290 const button : HTMLButtonElement = fixture . nativeElement . querySelector ( 'button' ) ;
12961291
12971292 dispatchFakeEvent ( button , 'touchstart' ) ;
12981293 fixture . detectChanges ( ) ;
1299- jasmine . clock ( ) . tick ( 500 ) ; // Finish the open delay.
1300- jasmine . clock ( ) . tick ( 0 ) ; // Finish the show delay.
1294+ await wait ( 500 ) ; // Finish the open delay.
1295+ await wait ( 0 ) ; // Finish the show delay.
13011296 fixture . detectChanges ( ) ;
13021297 finishCurrentTooltipAnimation ( overlayContainerElement , true ) ; // Finish the animation.
1303- assertTooltipInstance ( fixture . componentInstance . tooltip , true ) ;
1298+ const tooltip = fixture . componentInstance . tooltip ;
1299+ assertTooltipInstance ( tooltip , true ) ;
1300+ const hideSpy = spyOn ( tooltip . _tooltipInstance ! , 'hide' ) . and . callThrough ( ) ;
13041301
13051302 dispatchFakeEvent ( button , 'touchend' ) ;
13061303 fixture . detectChanges ( ) ;
1307- jasmine . clock ( ) . tick ( 1000 ) ; // 2/3 through the delay
1308- assertTooltipInstance ( fixture . componentInstance . tooltip , true ) ;
1309-
1310- jasmine . clock ( ) . tick ( 500 ) ; // Finish the delay.
1311- fixture . detectChanges ( ) ;
1312- finishCurrentTooltipAnimation ( overlayContainerElement , false ) ; // Finish the exit animation.
13131304
1314- assertTooltipInstance ( fixture . componentInstance . tooltip , false ) ;
1315- jasmine . clock ( ) . uninstall ( ) ;
1305+ // The tooltip should start hiding using the `touchendHideDelay`, but remain visible for now.
1306+ expect ( hideSpy ) . toHaveBeenCalledOnceWith ( 1500 ) ;
1307+ expect ( tooltip . _isTooltipVisible ( ) ) . toBe ( true ) ;
1308+ assertTooltipInstance ( tooltip , true ) ;
13161309 } ) ;
13171310
1318- it ( 'should close on touchcancel with a delay' , ( ) => {
1319- jasmine . clock ( ) . install ( ) ;
1311+ it ( 'should close on touchcancel with a delay' , async ( ) => {
13201312 const fixture = TestBed . createComponent ( BasicTooltipDemo ) ;
13211313 fixture . detectChanges ( ) ;
13221314 const button : HTMLButtonElement = fixture . nativeElement . querySelector ( 'button' ) ;
13231315
13241316 dispatchFakeEvent ( button , 'touchstart' ) ;
13251317 fixture . detectChanges ( ) ;
1326- jasmine . clock ( ) . tick ( 500 ) ; // Finish the open delay.
1327- jasmine . clock ( ) . tick ( 0 ) ; // Finish the show delay.
1318+ await wait ( 500 ) ; // Finish the open delay.
1319+ await wait ( 0 ) ; // Finish the show delay.
13281320 fixture . detectChanges ( ) ;
13291321 finishCurrentTooltipAnimation ( overlayContainerElement , true ) ; // Finish the animation.
1330- assertTooltipInstance ( fixture . componentInstance . tooltip , true ) ;
1322+ const tooltip = fixture . componentInstance . tooltip ;
1323+ assertTooltipInstance ( tooltip , true ) ;
1324+ const hideSpy = spyOn ( tooltip . _tooltipInstance ! , 'hide' ) . and . callThrough ( ) ;
13311325
13321326 dispatchFakeEvent ( button , 'touchcancel' ) ;
13331327 fixture . detectChanges ( ) ;
1334- jasmine . clock ( ) . tick ( 1000 ) ; // 2/3 through the delay
1335- assertTooltipInstance ( fixture . componentInstance . tooltip , true ) ;
1336-
1337- jasmine . clock ( ) . tick ( 500 ) ; // Finish the delay.
1338- fixture . detectChanges ( ) ;
1339- finishCurrentTooltipAnimation ( overlayContainerElement , false ) ; // Finish the exit animation.
13401328
1341- assertTooltipInstance ( fixture . componentInstance . tooltip , false ) ;
1342- jasmine . clock ( ) . uninstall ( ) ;
1329+ // The tooltip should start hiding using the `touchendHideDelay`, but remain visible for now.
1330+ expect ( hideSpy ) . toHaveBeenCalledOnceWith ( 1500 ) ;
1331+ expect ( tooltip . _isTooltipVisible ( ) ) . toBe ( true ) ;
1332+ assertTooltipInstance ( tooltip , true ) ;
13431333 } ) ;
13441334
13451335 it ( 'should disable native touch interactions' , ( ) => {
0 commit comments