|
1 | 1 | import {TestBed, inject} from '@angular/core/testing';
|
2 | 2 | import {Component, NgModule} from '@angular/core';
|
| 3 | +import {dispatchMouseEvent} from '@angular/cdk/testing/private'; |
3 | 4 | import {OverlayModule, OverlayContainer, Overlay} from '../index';
|
4 | 5 | import {OverlayOutsideClickDispatcher} from './overlay-outside-click-dispatcher';
|
5 | 6 | import {ComponentPortal} from '@angular/cdk/portal';
|
6 | 7 |
|
7 |
| - |
8 | 8 | describe('OverlayOutsideClickDispatcher', () => {
|
9 | 9 | let outsideClickDispatcher: OverlayOutsideClickDispatcher;
|
10 | 10 | let overlay: Overlay;
|
@@ -155,6 +155,37 @@ describe('OverlayOutsideClickDispatcher', () => {
|
155 | 155 |
|
156 | 156 | overlayRef.dispose();
|
157 | 157 | });
|
| 158 | + |
| 159 | + it('should dispatch an event when a context menu is triggered outside the overlay', () => { |
| 160 | + const portal = new ComponentPortal(TestComponent); |
| 161 | + const overlayRef = overlay.create(); |
| 162 | + overlayRef.attach(portal); |
| 163 | + const context = document.createElement('div'); |
| 164 | + document.body.appendChild(context); |
| 165 | + |
| 166 | + const spy = jasmine.createSpy('overlay contextmenu spy'); |
| 167 | + overlayRef.outsidePointerEvents().subscribe(spy); |
| 168 | + |
| 169 | + dispatchMouseEvent(context, 'contextmenu'); |
| 170 | + expect(spy).toHaveBeenCalled(); |
| 171 | + |
| 172 | + context.parentNode!.removeChild(context); |
| 173 | + overlayRef.dispose(); |
| 174 | + }); |
| 175 | + |
| 176 | + it('should not dispatch an event when a context menu is triggered inside the overlay', () => { |
| 177 | + const portal = new ComponentPortal(TestComponent); |
| 178 | + const overlayRef = overlay.create(); |
| 179 | + overlayRef.attach(portal); |
| 180 | + |
| 181 | + const spy = jasmine.createSpy('overlay contextmenu spy'); |
| 182 | + overlayRef.outsidePointerEvents().subscribe(spy); |
| 183 | + |
| 184 | + dispatchMouseEvent(overlayRef.overlayElement, 'contextmenu'); |
| 185 | + expect(spy).not.toHaveBeenCalled(); |
| 186 | + |
| 187 | + overlayRef.dispose(); |
| 188 | + }); |
158 | 189 | });
|
159 | 190 |
|
160 | 191 |
|
|
0 commit comments