AAE-12245: Migrated from event cancelBubble to stopPropagation (#8311)

This commit is contained in:
Ehsan Rezaei 2023-03-06 21:57:51 +01:00 committed by GitHub
parent cb69f34aa7
commit dd91f2eeb6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 70 additions and 18 deletions

View File

@ -36,6 +36,7 @@ import {
} from '@alfresco/adf-core';
import { throwError } from 'rxjs';
import { Component } from '@angular/core';
import { ESCAPE } from '@angular/cdk/keycodes';
@Component({
selector: 'adf-viewer-container-toolbar',
@ -407,6 +408,34 @@ describe('AlfrescoViewerComponent', () => {
});
});
it('should stop propagation on sidebar keydown event [keydown]', fakeAsync(() => {
const customFixture = TestBed.createComponent(ViewerWithCustomSidebarComponent);
const customElement: HTMLElement = customFixture.nativeElement;
const escapeKeyboardEvent = new KeyboardEvent('keydown', { key: ESCAPE.toString() });
const stopPropagationSpy = spyOn(escapeKeyboardEvent, 'stopPropagation');
customFixture.detectChanges();
const viewerSidebarElement = customElement.querySelector('adf-viewer-sidebar');
viewerSidebarElement.dispatchEvent(escapeKeyboardEvent);
expect(stopPropagationSpy).toHaveBeenCalled();
}));
it('should stop propagation on sidebar keyup event [keyup]', fakeAsync(() => {
const customFixture = TestBed.createComponent(ViewerWithCustomSidebarComponent);
const customElement: HTMLElement = customFixture.nativeElement;
const escapeKeyboardEvent = new KeyboardEvent('keyup', { key: ESCAPE.toString() });
const stopPropagationSpy = spyOn(escapeKeyboardEvent, 'stopPropagation');
customFixture.detectChanges();
const viewerSidebarElement = customElement.querySelector('adf-viewer-sidebar');
viewerSidebarElement.dispatchEvent(escapeKeyboardEvent);
expect(stopPropagationSpy).toHaveBeenCalled();
}));
});
describe('error handling', () => {

View File

@ -23,6 +23,7 @@ import { InfoDrawerComponent } from './info-drawer.component';
import { of } from 'rxjs';
import { TranslateService, TranslateModule } from '@ngx-translate/core';
import { CoreTestingModule } from '../testing/core.testing.module';
import { ESCAPE } from '@angular/cdk/keycodes';
describe('InfoDrawerComponent', () => {
let element: HTMLElement;
@ -64,6 +65,24 @@ describe('InfoDrawerComponent', () => {
expect(title.length).toBe(1);
expect(title[0].nativeElement.innerText).toBe('FakeTitle');
});
it('should stop propagation on keydown event', () => {
const escapeKeyboardEvent = new KeyboardEvent('keydown', { key: ESCAPE.toString() });
const stopPropagationSpy = spyOn(escapeKeyboardEvent, 'stopPropagation');
fixture.debugElement.triggerEventHandler('keydown', escapeKeyboardEvent);
expect(stopPropagationSpy).toHaveBeenCalled();
});
it('should stop propagation on keyup event', () => {
const escapeKeyboardEvent = new KeyboardEvent('keyup', { key: ESCAPE.toString() });
const stopPropagationSpy = spyOn(escapeKeyboardEvent, 'stopPropagation');
fixture.debugElement.triggerEventHandler('keyup', escapeKeyboardEvent);
expect(stopPropagationSpy).toHaveBeenCalled();
});
});
@Component({

View File

@ -63,13 +63,13 @@ export class InfoDrawerComponent {
contentBlocks: QueryList<InfoDrawerTabComponent>;
@HostListener('keydown', ['$event'])
onKeyDown(event: KeyboardEvent) {
event.cancelBubble = true;
onKeyDown(event: KeyboardEvent): void {
event.stopPropagation();
}
@HostListener('keyup', ['$event'])
onKeyUp(event: KeyboardEvent) {
event.cancelBubble = true;
onKeyUp(event: KeyboardEvent): void {
event.stopPropagation();
}
showTabLayout(): boolean {

View File

@ -26,12 +26,12 @@ import { ChangeDetectionStrategy, Component, HostListener, ViewEncapsulation } f
})
export class ViewerSidebarComponent {
@HostListener('keydown', ['$event'])
onKeyDown(event: KeyboardEvent) {
event.cancelBubble = true;
onKeyDown(event: KeyboardEvent): void {
event.stopPropagation();
}
@HostListener('keyup', ['$event'])
onKeyUp(event: KeyboardEvent) {
event.cancelBubble = true;
onKeyUp(event: KeyboardEvent): void {
event.stopPropagation();
}
}

View File

@ -1306,10 +1306,12 @@ describe('retrieve metadata on submit', () => {
expect(formContentClicked).toHaveBeenCalledWith(contentLinkModel);
});
it('should cancel bubbling a keydown event', () => {
const escapeKeyboardEvent = new KeyboardEvent('keydown', { keyCode: ESCAPE } as any);
it('should stop propagation on keydown event', () => {
const escapeKeyboardEvent = new KeyboardEvent('keydown', { key: ESCAPE.toString() });
const stopPropagationSpy = spyOn(escapeKeyboardEvent, 'stopPropagation');
fixture.debugElement.triggerEventHandler('keydown', escapeKeyboardEvent);
expect(escapeKeyboardEvent.cancelBubble).toBe(true);
expect(stopPropagationSpy).toHaveBeenCalled();
});
});

View File

@ -133,8 +133,8 @@ export class FormCloudComponent extends FormBaseComponent implements OnChanges,
}
@HostListener('keydown', ['$event'])
onKeyDown(event: KeyboardEvent) {
event.cancelBubble = true;
onKeyDown(event: KeyboardEvent): void {
event.stopPropagation();
}
ngOnChanges(changes: SimpleChanges) {

View File

@ -929,11 +929,13 @@ describe('StartProcessCloudComponent', () => {
component.ngOnChanges({ appName: change });
});
it('should cancel bubbling a keydown event ()', () => {
const escapeKeyboardEvent = new KeyboardEvent('keydown', { keyCode: ESCAPE } as any);
it('should stop propagation on keydown event', () => {
const escapeKeyboardEvent = new KeyboardEvent('keydown', { key: ESCAPE.toString() });
const stopPropagationSpy = spyOn(escapeKeyboardEvent, 'stopPropagation');
fixture.debugElement.triggerEventHandler('keydown', escapeKeyboardEvent);
expect(escapeKeyboardEvent.cancelBubble).toBe(true);
expect(stopPropagationSpy).toHaveBeenCalled();
});
it('should hide title', () => {

View File

@ -147,8 +147,8 @@ export class StartProcessCloudComponent implements OnChanges, OnInit, OnDestroy
}
@HostListener('keydown', ['$event'])
onKeyDown(event: KeyboardEvent) {
event.cancelBubble = true;
onKeyDown(event: KeyboardEvent): void {
event.stopPropagation();
}
hasForm(): boolean {