|
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;
|
@@ -147,6 +147,37 @@ describe('OverlayOutsideClickDispatcher', () => {
|
147 | 147 | buttonShouldNotDetach.parentNode!.removeChild(buttonShouldNotDetach);
|
148 | 148 | overlayRef.dispose();
|
149 | 149 | });
|
| 150 | + |
| 151 | + it('should dispatch an event when a context menu is triggered outside the overlay', () => { |
| 152 | + const portal = new ComponentPortal(TestComponent); |
| 153 | + const overlayRef = overlay.create(); |
| 154 | + overlayRef.attach(portal); |
| 155 | + const context = document.createElement('div'); |
| 156 | + document.body.appendChild(context); |
| 157 | + |
| 158 | + const spy = jasmine.createSpy('overlay contextmenu spy'); |
| 159 | + overlayRef.outsidePointerEvents().subscribe(spy); |
| 160 | + |
| 161 | + dispatchMouseEvent(context, 'contextmenu'); |
| 162 | + expect(spy).toHaveBeenCalled(); |
| 163 | + |
| 164 | + context.parentNode!.removeChild(context); |
| 165 | + overlayRef.dispose(); |
| 166 | + }); |
| 167 | + |
| 168 | + it('should not dispatch an event when a context menu is triggered inside the overlay', () => { |
| 169 | + const portal = new ComponentPortal(TestComponent); |
| 170 | + const overlayRef = overlay.create(); |
| 171 | + overlayRef.attach(portal); |
| 172 | + |
| 173 | + const spy = jasmine.createSpy('overlay contextmenu spy'); |
| 174 | + overlayRef.outsidePointerEvents().subscribe(spy); |
| 175 | + |
| 176 | + dispatchMouseEvent(overlayRef.overlayElement, 'contextmenu'); |
| 177 | + expect(spy).not.toHaveBeenCalled(); |
| 178 | + |
| 179 | + overlayRef.dispose(); |
| 180 | + }); |
150 | 181 | });
|
151 | 182 |
|
152 | 183 |
|
|
0 commit comments