Skip to content

Commit e152794

Browse files
committed
.
1 parent c1baf99 commit e152794

File tree

1 file changed

+56
-1
lines changed

1 file changed

+56
-1
lines changed

src/lib/button-toggle/button-toggle.spec.ts

Lines changed: 56 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -218,6 +218,8 @@ describe('MdButtonToggle without forms', () => {
218218
ButtonTogglesInsideButtonToggleGroupMultiple,
219219
ButtonToggleGroupWithInitialValue,
220220
StandaloneButtonToggle,
221+
ButtonToggleWithAriaLabel,
222+
ButtonToggleWithAriaLabelledby,
221223
],
222224
});
223225

@@ -592,8 +594,49 @@ describe('MdButtonToggle without forms', () => {
592594
});
593595

594596
});
595-
});
596597

598+
describe('with provided aria-label ', () => {
599+
let checkboxDebugElement: DebugElement;
600+
let checkboxNativeElement: HTMLElement;
601+
let inputElement: HTMLInputElement;
602+
603+
it('should use the provided aria-label', () => {
604+
let fixture = TestBed.createComponent(ButtonToggleWithAriaLabel);
605+
checkboxDebugElement = fixture.debugElement.query(By.directive(MdButtonToggle));
606+
checkboxNativeElement = checkboxDebugElement.nativeElement;
607+
inputElement = <HTMLInputElement>checkboxNativeElement.querySelector('input');
608+
609+
fixture.detectChanges();
610+
expect(inputElement.getAttribute('aria-label')).toBe('Super effective');
611+
});
612+
});
613+
614+
describe('with provided aria-labelledby ', () => {
615+
let checkboxDebugElement: DebugElement;
616+
let checkboxNativeElement: HTMLElement;
617+
let inputElement: HTMLInputElement;
618+
619+
it('should use the provided aria-labelledby', () => {
620+
let fixture = TestBed.createComponent(ButtonToggleWithAriaLabelledby);
621+
checkboxDebugElement = fixture.debugElement.query(By.directive(MdButtonToggle));
622+
checkboxNativeElement = checkboxDebugElement.nativeElement;
623+
inputElement = <HTMLInputElement>checkboxNativeElement.querySelector('input');
624+
625+
fixture.detectChanges();
626+
expect(inputElement.getAttribute('aria-labelledby')).toBe('some-id');
627+
});
628+
629+
it('should not assign aria-labelledby if none is provided', () => {
630+
let fixture = TestBed.createComponent(StandaloneButtonToggle);
631+
checkboxDebugElement = fixture.debugElement.query(By.directive(MdButtonToggle));
632+
checkboxNativeElement = checkboxDebugElement.nativeElement;
633+
inputElement = <HTMLInputElement>checkboxNativeElement.querySelector('input');
634+
635+
fixture.detectChanges();
636+
expect(inputElement.getAttribute('aria-labelledby')).toBe(null);
637+
});
638+
});
639+
});
597640

598641
@Component({
599642
template: `
@@ -674,3 +717,15 @@ class ButtonToggleGroupWithInitialValue {
674717
class ButtonToggleGroupWithFormControl {
675718
control = new FormControl();
676719
}
720+
721+
/** Simple test component with an aria-label set. */
722+
@Component({
723+
template: `<md-button-toggle aria-label="Super effective"></md-button-toggle>`
724+
})
725+
class ButtonToggleWithAriaLabel { }
726+
727+
/** Simple test component with an aria-label set. */
728+
@Component({
729+
template: `<md-button-toggle aria-labelledby="some-id"></md-button-toggle>`
730+
})
731+
class ButtonToggleWithAriaLabelledby {}

0 commit comments

Comments
 (0)