diff --git a/src/lib/tooltip/tooltip.spec.ts b/src/lib/tooltip/tooltip.spec.ts index d05fd3e983e4..1ab5abae667d 100644 --- a/src/lib/tooltip/tooltip.spec.ts +++ b/src/lib/tooltip/tooltip.spec.ts @@ -19,7 +19,8 @@ import {NoopAnimationsModule} from '@angular/platform-browser/animations'; import {Direction, Directionality} from '@angular/cdk/bidi'; import {OverlayContainer, OverlayModule, Scrollable} from '@angular/cdk/overlay'; import {Platform} from '@angular/cdk/platform'; -import {dispatchFakeEvent} from '@angular/cdk/testing'; +import {dispatchFakeEvent, dispatchKeyboardEvent} from '@angular/cdk/testing'; +import {ESCAPE} from '@angular/cdk/keycodes'; import { MdTooltip, MdTooltipModule, @@ -469,6 +470,13 @@ describe('MdTooltip', () => { expect(overlayContainerElement.textContent).toContain(initialTooltipMessage); })); + it('should not throw when pressing ESCAPE', fakeAsync(() => { + expect(() => { + dispatchKeyboardEvent(buttonElement, 'keydown', ESCAPE); + fixture.detectChanges(); + }).not.toThrow(); + })); + }); describe('scrollable usage', () => { diff --git a/src/lib/tooltip/tooltip.ts b/src/lib/tooltip/tooltip.ts index 49aaabfbb9d8..d9fab238996e 100644 --- a/src/lib/tooltip/tooltip.ts +++ b/src/lib/tooltip/tooltip.ts @@ -270,7 +270,7 @@ export class MdTooltip implements OnDestroy { /** Handles the keydown events on the host element. */ _handleKeydown(e: KeyboardEvent) { - if (this._tooltipInstance!.isVisible() && e.keyCode === ESCAPE) { + if (this._isTooltipVisible() && e.keyCode === ESCAPE) { e.stopPropagation(); this.hide(0); }