| import { __awaiter } from 'tslib'; |
| import { ComponentHarness, HarnessPredicate } from '@angular/cdk/testing'; |
| import { coerceBooleanProperty } from '@angular/cdk/coercion'; |
| |
| /** |
| * @license |
| * Copyright Google LLC All Rights Reserved. |
| * |
| * Use of this source code is governed by an MIT-style license that can be |
| * found in the LICENSE file at https://angular.io/license |
| */ |
| /** Harness for interacting with a standard mat-button-toggle in tests. */ |
| class MatButtonToggleHarness extends ComponentHarness { |
| constructor() { |
| super(...arguments); |
| this._label = this.locatorFor('.mat-button-toggle-label-content'); |
| this._button = this.locatorFor('.mat-button-toggle-button'); |
| } |
| /** |
| * Gets a `HarnessPredicate` that can be used to search for a `MatButtonToggleHarness` that meets |
| * certain criteria. |
| * @param options Options for filtering which button toggle instances are considered a match. |
| * @return a `HarnessPredicate` configured with the given options. |
| */ |
| static with(options = {}) { |
| return new HarnessPredicate(MatButtonToggleHarness, options) |
| .addOption('text', options.text, (harness, text) => HarnessPredicate.stringMatches(harness.getText(), text)) |
| .addOption('name', options.name, (harness, name) => HarnessPredicate.stringMatches(harness.getName(), name)) |
| .addOption('checked', options.checked, (harness, checked) => __awaiter(this, void 0, void 0, function* () { return (yield harness.isChecked()) === checked; })); |
| } |
| /** Gets a boolean promise indicating if the button toggle is checked. */ |
| isChecked() { |
| return __awaiter(this, void 0, void 0, function* () { |
| const checked = (yield this._button()).getAttribute('aria-pressed'); |
| return coerceBooleanProperty(yield checked); |
| }); |
| } |
| /** Gets a boolean promise indicating if the button toggle is disabled. */ |
| isDisabled() { |
| return __awaiter(this, void 0, void 0, function* () { |
| const disabled = (yield this._button()).getAttribute('disabled'); |
| return coerceBooleanProperty(yield disabled); |
| }); |
| } |
| /** Gets a promise for the button toggle's name. */ |
| getName() { |
| return __awaiter(this, void 0, void 0, function* () { |
| return (yield this._button()).getAttribute('name'); |
| }); |
| } |
| /** Gets a promise for the button toggle's aria-label. */ |
| getAriaLabel() { |
| return __awaiter(this, void 0, void 0, function* () { |
| return (yield this._button()).getAttribute('aria-label'); |
| }); |
| } |
| /** Gets a promise for the button toggles's aria-labelledby. */ |
| getAriaLabelledby() { |
| return __awaiter(this, void 0, void 0, function* () { |
| return (yield this._button()).getAttribute('aria-labelledby'); |
| }); |
| } |
| /** Gets a promise for the button toggle's text. */ |
| getText() { |
| return __awaiter(this, void 0, void 0, function* () { |
| return (yield this._label()).text(); |
| }); |
| } |
| /** Gets the appearance that the button toggle is using. */ |
| getAppearance() { |
| return __awaiter(this, void 0, void 0, function* () { |
| const host = yield this.host(); |
| const className = 'mat-button-toggle-appearance-standard'; |
| return (yield host.hasClass(className)) ? 'standard' : 'legacy'; |
| }); |
| } |
| /** Focuses the toggle. */ |
| focus() { |
| return __awaiter(this, void 0, void 0, function* () { |
| return (yield this._button()).focus(); |
| }); |
| } |
| /** Blurs the toggle. */ |
| blur() { |
| return __awaiter(this, void 0, void 0, function* () { |
| return (yield this._button()).blur(); |
| }); |
| } |
| /** Whether the toggle is focused. */ |
| isFocused() { |
| return __awaiter(this, void 0, void 0, function* () { |
| return (yield this._button()).isFocused(); |
| }); |
| } |
| /** Toggle the checked state of the buttons toggle. */ |
| toggle() { |
| return __awaiter(this, void 0, void 0, function* () { |
| return (yield this._button()).click(); |
| }); |
| } |
| /** |
| * Puts the button toggle in a checked state by toggling it if it's |
| * currently unchecked, or doing nothing if it is already checked. |
| */ |
| check() { |
| return __awaiter(this, void 0, void 0, function* () { |
| if (!(yield this.isChecked())) { |
| yield this.toggle(); |
| } |
| }); |
| } |
| /** |
| * Puts the button toggle in an unchecked state by toggling it if it's |
| * currently checked, or doing nothing if it's already unchecked. |
| */ |
| uncheck() { |
| return __awaiter(this, void 0, void 0, function* () { |
| if (yield this.isChecked()) { |
| yield this.toggle(); |
| } |
| }); |
| } |
| } |
| /** The selector for the host element of a `MatButton` instance. */ |
| MatButtonToggleHarness.hostSelector = '.mat-button-toggle'; |
| |
| /** |
| * @license |
| * Copyright Google LLC All Rights Reserved. |
| * |
| * Use of this source code is governed by an MIT-style license that can be |
| * found in the LICENSE file at https://angular.io/license |
| */ |
| |
| /** |
| * @license |
| * Copyright Google LLC All Rights Reserved. |
| * |
| * Use of this source code is governed by an MIT-style license that can be |
| * found in the LICENSE file at https://angular.io/license |
| */ |
| /** Harness for interacting with a standard mat-button-toggle in tests. */ |
| class MatButtonToggleGroupHarness extends ComponentHarness { |
| /** |
| * Gets a `HarnessPredicate` that can be used to search for a `MatButtonToggleGroupHarness` |
| * that meets certain criteria. |
| * @param options Options for filtering which button toggle instances are considered a match. |
| * @return a `HarnessPredicate` configured with the given options. |
| */ |
| static with(options = {}) { |
| return new HarnessPredicate(MatButtonToggleGroupHarness, options); |
| } |
| /** |
| * Gets the button toggles that are inside the group. |
| * @param filter Optionally filters which toggles are included. |
| */ |
| getToggles(filter = {}) { |
| return __awaiter(this, void 0, void 0, function* () { |
| return this.locatorForAll(MatButtonToggleHarness.with(filter))(); |
| }); |
| } |
| /** Gets whether the button toggle group is disabled. */ |
| isDisabled() { |
| return __awaiter(this, void 0, void 0, function* () { |
| return (yield (yield this.host()).getAttribute('aria-disabled')) === 'true'; |
| }); |
| } |
| /** Gets whether the button toggle group is laid out vertically. */ |
| isVertical() { |
| return __awaiter(this, void 0, void 0, function* () { |
| return (yield this.host()).hasClass('mat-button-toggle-vertical'); |
| }); |
| } |
| /** Gets the appearance that the group is using. */ |
| getAppearance() { |
| return __awaiter(this, void 0, void 0, function* () { |
| const host = yield this.host(); |
| const className = 'mat-button-toggle-group-appearance-standard'; |
| return (yield host.hasClass(className)) ? 'standard' : 'legacy'; |
| }); |
| } |
| } |
| /** The selector for the host element of a `MatButton` instance. */ |
| MatButtonToggleGroupHarness.hostSelector = '.mat-button-toggle-group'; |
| |
| /** |
| * @license |
| * Copyright Google LLC All Rights Reserved. |
| * |
| * Use of this source code is governed by an MIT-style license that can be |
| * found in the LICENSE file at https://angular.io/license |
| */ |
| |
| /** |
| * @license |
| * Copyright Google LLC All Rights Reserved. |
| * |
| * Use of this source code is governed by an MIT-style license that can be |
| * found in the LICENSE file at https://angular.io/license |
| */ |
| |
| /** |
| * @license |
| * Copyright Google LLC All Rights Reserved. |
| * |
| * Use of this source code is governed by an MIT-style license that can be |
| * found in the LICENSE file at https://angular.io/license |
| */ |
| |
| export { MatButtonToggleGroupHarness, MatButtonToggleHarness }; |
| //# sourceMappingURL=testing.js.map |