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'; } from '@alfresco/adf-core';
import { throwError } from 'rxjs'; import { throwError } from 'rxjs';
import { Component } from '@angular/core'; import { Component } from '@angular/core';
import { ESCAPE } from '@angular/cdk/keycodes';
@Component({ @Component({
selector: 'adf-viewer-container-toolbar', 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', () => { describe('error handling', () => {

View File

@ -23,6 +23,7 @@ import { InfoDrawerComponent } from './info-drawer.component';
import { of } from 'rxjs'; import { of } from 'rxjs';
import { TranslateService, TranslateModule } from '@ngx-translate/core'; import { TranslateService, TranslateModule } from '@ngx-translate/core';
import { CoreTestingModule } from '../testing/core.testing.module'; import { CoreTestingModule } from '../testing/core.testing.module';
import { ESCAPE } from '@angular/cdk/keycodes';
describe('InfoDrawerComponent', () => { describe('InfoDrawerComponent', () => {
let element: HTMLElement; let element: HTMLElement;
@ -64,6 +65,24 @@ describe('InfoDrawerComponent', () => {
expect(title.length).toBe(1); expect(title.length).toBe(1);
expect(title[0].nativeElement.innerText).toBe('FakeTitle'); 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({ @Component({

View File

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

View File

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

View File

@ -1306,10 +1306,12 @@ describe('retrieve metadata on submit', () => {
expect(formContentClicked).toHaveBeenCalledWith(contentLinkModel); expect(formContentClicked).toHaveBeenCalledWith(contentLinkModel);
}); });
it('should cancel bubbling a keydown event', () => { it('should stop propagation on keydown event', () => {
const escapeKeyboardEvent = new KeyboardEvent('keydown', { keyCode: ESCAPE } as any); const escapeKeyboardEvent = new KeyboardEvent('keydown', { key: ESCAPE.toString() });
const stopPropagationSpy = spyOn(escapeKeyboardEvent, 'stopPropagation');
fixture.debugElement.triggerEventHandler('keydown', escapeKeyboardEvent); 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']) @HostListener('keydown', ['$event'])
onKeyDown(event: KeyboardEvent) { onKeyDown(event: KeyboardEvent): void {
event.cancelBubble = true; event.stopPropagation();
} }
ngOnChanges(changes: SimpleChanges) { ngOnChanges(changes: SimpleChanges) {

View File

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

View File

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