source: trip-planner-front/node_modules/@angular/material/bundles/material-input-testing.umd.js@ 188ee53

Last change on this file since 188ee53 was 6a3a178, checked in by Ema <ema_spirova@…>, 3 years ago

initial commit

  • Property mode set to 100644
File size: 37.8 KB
Line 
1(function (global, factory) {
2 typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/cdk/testing'), require('@angular/material/form-field/testing/control')) :
3 typeof define === 'function' && define.amd ? define('@angular/material/input/testing', ['exports', '@angular/cdk/testing', '@angular/material/form-field/testing/control'], factory) :
4 (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global.ng = global.ng || {}, global.ng.material = global.ng.material || {}, global.ng.material.input = global.ng.material.input || {}, global.ng.material.input.testing = {}), global.ng.cdk.testing, global.ng.material.formField.testing.control));
5}(this, (function (exports, testing, control) { 'use strict';
6
7 /*! *****************************************************************************
8 Copyright (c) Microsoft Corporation.
9
10 Permission to use, copy, modify, and/or distribute this software for any
11 purpose with or without fee is hereby granted.
12
13 THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
14 REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
15 AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
16 INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
17 LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
18 OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
19 PERFORMANCE OF THIS SOFTWARE.
20 ***************************************************************************** */
21 /* global Reflect, Promise */
22 var extendStatics = function (d, b) {
23 extendStatics = Object.setPrototypeOf ||
24 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
25 function (d, b) { for (var p in b)
26 if (Object.prototype.hasOwnProperty.call(b, p))
27 d[p] = b[p]; };
28 return extendStatics(d, b);
29 };
30 function __extends(d, b) {
31 if (typeof b !== "function" && b !== null)
32 throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
33 extendStatics(d, b);
34 function __() { this.constructor = d; }
35 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
36 }
37 var __assign = function () {
38 __assign = Object.assign || function __assign(t) {
39 for (var s, i = 1, n = arguments.length; i < n; i++) {
40 s = arguments[i];
41 for (var p in s)
42 if (Object.prototype.hasOwnProperty.call(s, p))
43 t[p] = s[p];
44 }
45 return t;
46 };
47 return __assign.apply(this, arguments);
48 };
49 function __rest(s, e) {
50 var t = {};
51 for (var p in s)
52 if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
53 t[p] = s[p];
54 if (s != null && typeof Object.getOwnPropertySymbols === "function")
55 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
56 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
57 t[p[i]] = s[p[i]];
58 }
59 return t;
60 }
61 function __decorate(decorators, target, key, desc) {
62 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
63 if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
64 r = Reflect.decorate(decorators, target, key, desc);
65 else
66 for (var i = decorators.length - 1; i >= 0; i--)
67 if (d = decorators[i])
68 r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
69 return c > 3 && r && Object.defineProperty(target, key, r), r;
70 }
71 function __param(paramIndex, decorator) {
72 return function (target, key) { decorator(target, key, paramIndex); };
73 }
74 function __metadata(metadataKey, metadataValue) {
75 if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
76 return Reflect.metadata(metadataKey, metadataValue);
77 }
78 function __awaiter(thisArg, _arguments, P, generator) {
79 function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
80 return new (P || (P = Promise))(function (resolve, reject) {
81 function fulfilled(value) { try {
82 step(generator.next(value));
83 }
84 catch (e) {
85 reject(e);
86 } }
87 function rejected(value) { try {
88 step(generator["throw"](value));
89 }
90 catch (e) {
91 reject(e);
92 } }
93 function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
94 step((generator = generator.apply(thisArg, _arguments || [])).next());
95 });
96 }
97 function __generator(thisArg, body) {
98 var _ = { label: 0, sent: function () { if (t[0] & 1)
99 throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
100 return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function () { return this; }), g;
101 function verb(n) { return function (v) { return step([n, v]); }; }
102 function step(op) {
103 if (f)
104 throw new TypeError("Generator is already executing.");
105 while (_)
106 try {
107 if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done)
108 return t;
109 if (y = 0, t)
110 op = [op[0] & 2, t.value];
111 switch (op[0]) {
112 case 0:
113 case 1:
114 t = op;
115 break;
116 case 4:
117 _.label++;
118 return { value: op[1], done: false };
119 case 5:
120 _.label++;
121 y = op[1];
122 op = [0];
123 continue;
124 case 7:
125 op = _.ops.pop();
126 _.trys.pop();
127 continue;
128 default:
129 if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
130 _ = 0;
131 continue;
132 }
133 if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) {
134 _.label = op[1];
135 break;
136 }
137 if (op[0] === 6 && _.label < t[1]) {
138 _.label = t[1];
139 t = op;
140 break;
141 }
142 if (t && _.label < t[2]) {
143 _.label = t[2];
144 _.ops.push(op);
145 break;
146 }
147 if (t[2])
148 _.ops.pop();
149 _.trys.pop();
150 continue;
151 }
152 op = body.call(thisArg, _);
153 }
154 catch (e) {
155 op = [6, e];
156 y = 0;
157 }
158 finally {
159 f = t = 0;
160 }
161 if (op[0] & 5)
162 throw op[1];
163 return { value: op[0] ? op[1] : void 0, done: true };
164 }
165 }
166 var __createBinding = Object.create ? (function (o, m, k, k2) {
167 if (k2 === undefined)
168 k2 = k;
169 Object.defineProperty(o, k2, { enumerable: true, get: function () { return m[k]; } });
170 }) : (function (o, m, k, k2) {
171 if (k2 === undefined)
172 k2 = k;
173 o[k2] = m[k];
174 });
175 function __exportStar(m, o) {
176 for (var p in m)
177 if (p !== "default" && !Object.prototype.hasOwnProperty.call(o, p))
178 __createBinding(o, m, p);
179 }
180 function __values(o) {
181 var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
182 if (m)
183 return m.call(o);
184 if (o && typeof o.length === "number")
185 return {
186 next: function () {
187 if (o && i >= o.length)
188 o = void 0;
189 return { value: o && o[i++], done: !o };
190 }
191 };
192 throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
193 }
194 function __read(o, n) {
195 var m = typeof Symbol === "function" && o[Symbol.iterator];
196 if (!m)
197 return o;
198 var i = m.call(o), r, ar = [], e;
199 try {
200 while ((n === void 0 || n-- > 0) && !(r = i.next()).done)
201 ar.push(r.value);
202 }
203 catch (error) {
204 e = { error: error };
205 }
206 finally {
207 try {
208 if (r && !r.done && (m = i["return"]))
209 m.call(i);
210 }
211 finally {
212 if (e)
213 throw e.error;
214 }
215 }
216 return ar;
217 }
218 /** @deprecated */
219 function __spread() {
220 for (var ar = [], i = 0; i < arguments.length; i++)
221 ar = ar.concat(__read(arguments[i]));
222 return ar;
223 }
224 /** @deprecated */
225 function __spreadArrays() {
226 for (var s = 0, i = 0, il = arguments.length; i < il; i++)
227 s += arguments[i].length;
228 for (var r = Array(s), k = 0, i = 0; i < il; i++)
229 for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
230 r[k] = a[j];
231 return r;
232 }
233 function __spreadArray(to, from, pack) {
234 if (pack || arguments.length === 2)
235 for (var i = 0, l = from.length, ar; i < l; i++) {
236 if (ar || !(i in from)) {
237 if (!ar)
238 ar = Array.prototype.slice.call(from, 0, i);
239 ar[i] = from[i];
240 }
241 }
242 return to.concat(ar || from);
243 }
244 function __await(v) {
245 return this instanceof __await ? (this.v = v, this) : new __await(v);
246 }
247 function __asyncGenerator(thisArg, _arguments, generator) {
248 if (!Symbol.asyncIterator)
249 throw new TypeError("Symbol.asyncIterator is not defined.");
250 var g = generator.apply(thisArg, _arguments || []), i, q = [];
251 return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i;
252 function verb(n) { if (g[n])
253 i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }
254 function resume(n, v) { try {
255 step(g[n](v));
256 }
257 catch (e) {
258 settle(q[0][3], e);
259 } }
260 function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
261 function fulfill(value) { resume("next", value); }
262 function reject(value) { resume("throw", value); }
263 function settle(f, v) { if (f(v), q.shift(), q.length)
264 resume(q[0][0], q[0][1]); }
265 }
266 function __asyncDelegator(o) {
267 var i, p;
268 return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i;
269 function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : f ? f(v) : v; } : f; }
270 }
271 function __asyncValues(o) {
272 if (!Symbol.asyncIterator)
273 throw new TypeError("Symbol.asyncIterator is not defined.");
274 var m = o[Symbol.asyncIterator], i;
275 return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
276 function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
277 function settle(resolve, reject, d, v) { Promise.resolve(v).then(function (v) { resolve({ value: v, done: d }); }, reject); }
278 }
279 function __makeTemplateObject(cooked, raw) {
280 if (Object.defineProperty) {
281 Object.defineProperty(cooked, "raw", { value: raw });
282 }
283 else {
284 cooked.raw = raw;
285 }
286 return cooked;
287 }
288 ;
289 var __setModuleDefault = Object.create ? (function (o, v) {
290 Object.defineProperty(o, "default", { enumerable: true, value: v });
291 }) : function (o, v) {
292 o["default"] = v;
293 };
294 function __importStar(mod) {
295 if (mod && mod.__esModule)
296 return mod;
297 var result = {};
298 if (mod != null)
299 for (var k in mod)
300 if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k))
301 __createBinding(result, mod, k);
302 __setModuleDefault(result, mod);
303 return result;
304 }
305 function __importDefault(mod) {
306 return (mod && mod.__esModule) ? mod : { default: mod };
307 }
308 function __classPrivateFieldGet(receiver, state, kind, f) {
309 if (kind === "a" && !f)
310 throw new TypeError("Private accessor was defined without a getter");
311 if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver))
312 throw new TypeError("Cannot read private member from an object whose class did not declare it");
313 return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
314 }
315 function __classPrivateFieldSet(receiver, state, value, kind, f) {
316 if (kind === "m")
317 throw new TypeError("Private method is not writable");
318 if (kind === "a" && !f)
319 throw new TypeError("Private accessor was defined without a setter");
320 if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver))
321 throw new TypeError("Cannot write private member to an object whose class did not declare it");
322 return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
323 }
324
325 /** Harness for interacting with a standard Material inputs in tests. */
326 var MatInputHarness = /** @class */ (function (_super) {
327 __extends(MatInputHarness, _super);
328 function MatInputHarness() {
329 return _super !== null && _super.apply(this, arguments) || this;
330 }
331 /**
332 * Gets a `HarnessPredicate` that can be used to search for a `MatInputHarness` that meets
333 * certain criteria.
334 * @param options Options for filtering which input instances are considered a match.
335 * @return a `HarnessPredicate` configured with the given options.
336 */
337 MatInputHarness.with = function (options) {
338 if (options === void 0) { options = {}; }
339 return new testing.HarnessPredicate(MatInputHarness, options)
340 .addOption('value', options.value, function (harness, value) {
341 return testing.HarnessPredicate.stringMatches(harness.getValue(), value);
342 })
343 .addOption('placeholder', options.placeholder, function (harness, placeholder) {
344 return testing.HarnessPredicate.stringMatches(harness.getPlaceholder(), placeholder);
345 });
346 };
347 /** Whether the input is disabled. */
348 MatInputHarness.prototype.isDisabled = function () {
349 return __awaiter(this, void 0, void 0, function () {
350 return __generator(this, function (_a) {
351 switch (_a.label) {
352 case 0: return [4 /*yield*/, this.host()];
353 case 1: return [2 /*return*/, (_a.sent()).getProperty('disabled')];
354 }
355 });
356 });
357 };
358 /** Whether the input is required. */
359 MatInputHarness.prototype.isRequired = function () {
360 return __awaiter(this, void 0, void 0, function () {
361 return __generator(this, function (_a) {
362 switch (_a.label) {
363 case 0: return [4 /*yield*/, this.host()];
364 case 1: return [2 /*return*/, (_a.sent()).getProperty('required')];
365 }
366 });
367 });
368 };
369 /** Whether the input is readonly. */
370 MatInputHarness.prototype.isReadonly = function () {
371 return __awaiter(this, void 0, void 0, function () {
372 return __generator(this, function (_a) {
373 switch (_a.label) {
374 case 0: return [4 /*yield*/, this.host()];
375 case 1: return [2 /*return*/, (_a.sent()).getProperty('readOnly')];
376 }
377 });
378 });
379 };
380 /** Gets the value of the input. */
381 MatInputHarness.prototype.getValue = function () {
382 return __awaiter(this, void 0, void 0, function () {
383 return __generator(this, function (_a) {
384 switch (_a.label) {
385 case 0: return [4 /*yield*/, this.host()];
386 case 1: return [4 /*yield*/, (_a.sent()).getProperty('value')];
387 case 2:
388 // The "value" property of the native input is never undefined.
389 return [2 /*return*/, (_a.sent())];
390 }
391 });
392 });
393 };
394 /** Gets the name of the input. */
395 MatInputHarness.prototype.getName = function () {
396 return __awaiter(this, void 0, void 0, function () {
397 return __generator(this, function (_a) {
398 switch (_a.label) {
399 case 0: return [4 /*yield*/, this.host()];
400 case 1: return [4 /*yield*/, (_a.sent()).getProperty('name')];
401 case 2:
402 // The "name" property of the native input is never undefined.
403 return [2 /*return*/, (_a.sent())];
404 }
405 });
406 });
407 };
408 /**
409 * Gets the type of the input. Returns "textarea" if the input is
410 * a textarea.
411 */
412 MatInputHarness.prototype.getType = function () {
413 return __awaiter(this, void 0, void 0, function () {
414 return __generator(this, function (_a) {
415 switch (_a.label) {
416 case 0: return [4 /*yield*/, this.host()];
417 case 1: return [4 /*yield*/, (_a.sent()).getProperty('type')];
418 case 2:
419 // The "type" property of the native input is never undefined.
420 return [2 /*return*/, (_a.sent())];
421 }
422 });
423 });
424 };
425 /** Gets the placeholder of the input. */
426 MatInputHarness.prototype.getPlaceholder = function () {
427 return __awaiter(this, void 0, void 0, function () {
428 var host, _a, nativePlaceholder, fallback;
429 return __generator(this, function (_b) {
430 switch (_b.label) {
431 case 0: return [4 /*yield*/, this.host()];
432 case 1:
433 host = _b.sent();
434 return [4 /*yield*/, testing.parallel(function () { return [
435 host.getProperty('placeholder'),
436 host.getAttribute('data-placeholder')
437 ]; })];
438 case 2:
439 _a = __read.apply(void 0, [_b.sent(), 2]), nativePlaceholder = _a[0], fallback = _a[1];
440 return [2 /*return*/, nativePlaceholder || fallback || ''];
441 }
442 });
443 });
444 };
445 /** Gets the id of the input. */
446 MatInputHarness.prototype.getId = function () {
447 return __awaiter(this, void 0, void 0, function () {
448 return __generator(this, function (_a) {
449 switch (_a.label) {
450 case 0: return [4 /*yield*/, this.host()];
451 case 1: return [4 /*yield*/, (_a.sent()).getProperty('id')];
452 case 2:
453 // The input directive always assigns a unique id to the input in
454 // case no id has been explicitly specified.
455 return [2 /*return*/, (_a.sent())];
456 }
457 });
458 });
459 };
460 /**
461 * Focuses the input and returns a promise that indicates when the
462 * action is complete.
463 */
464 MatInputHarness.prototype.focus = function () {
465 return __awaiter(this, void 0, void 0, function () {
466 return __generator(this, function (_a) {
467 switch (_a.label) {
468 case 0: return [4 /*yield*/, this.host()];
469 case 1: return [2 /*return*/, (_a.sent()).focus()];
470 }
471 });
472 });
473 };
474 /**
475 * Blurs the input and returns a promise that indicates when the
476 * action is complete.
477 */
478 MatInputHarness.prototype.blur = function () {
479 return __awaiter(this, void 0, void 0, function () {
480 return __generator(this, function (_a) {
481 switch (_a.label) {
482 case 0: return [4 /*yield*/, this.host()];
483 case 1: return [2 /*return*/, (_a.sent()).blur()];
484 }
485 });
486 });
487 };
488 /** Whether the input is focused. */
489 MatInputHarness.prototype.isFocused = function () {
490 return __awaiter(this, void 0, void 0, function () {
491 return __generator(this, function (_a) {
492 switch (_a.label) {
493 case 0: return [4 /*yield*/, this.host()];
494 case 1: return [2 /*return*/, (_a.sent()).isFocused()];
495 }
496 });
497 });
498 };
499 /**
500 * Sets the value of the input. The value will be set by simulating
501 * keypresses that correspond to the given value.
502 */
503 MatInputHarness.prototype.setValue = function (newValue) {
504 return __awaiter(this, void 0, void 0, function () {
505 var inputEl;
506 return __generator(this, function (_a) {
507 switch (_a.label) {
508 case 0: return [4 /*yield*/, this.host()];
509 case 1:
510 inputEl = _a.sent();
511 return [4 /*yield*/, inputEl.clear()];
512 case 2:
513 _a.sent();
514 if (!newValue) return [3 /*break*/, 4];
515 return [4 /*yield*/, inputEl.sendKeys(newValue)];
516 case 3:
517 _a.sent();
518 _a.label = 4;
519 case 4:
520 // Some input types won't respond to key presses (e.g. `color`) so to be sure that the
521 // value is set, we also set the property after the keyboard sequence. Note that we don't
522 // want to do it before, because it can cause the value to be entered twice.
523 return [4 /*yield*/, inputEl.setInputValue(newValue)];
524 case 5:
525 // Some input types won't respond to key presses (e.g. `color`) so to be sure that the
526 // value is set, we also set the property after the keyboard sequence. Note that we don't
527 // want to do it before, because it can cause the value to be entered twice.
528 _a.sent();
529 return [2 /*return*/];
530 }
531 });
532 });
533 };
534 return MatInputHarness;
535 }(control.MatFormFieldControlHarness));
536 // TODO: We do not want to handle `select` elements with `matNativeControl` because
537 // not all methods of this harness work reasonably for native select elements.
538 // For more details. See: https://github.com/angular/components/pull/18221.
539 MatInputHarness.hostSelector = '[matInput], input[matNativeControl], textarea[matNativeControl]';
540
541 /** Harness for interacting with a native `option` in tests. */
542 var MatNativeOptionHarness = /** @class */ (function (_super) {
543 __extends(MatNativeOptionHarness, _super);
544 function MatNativeOptionHarness() {
545 return _super !== null && _super.apply(this, arguments) || this;
546 }
547 /**
548 * Gets a `HarnessPredicate` that can be used to search for a `MatNativeOptionHarness` that meets
549 * certain criteria.
550 * @param options Options for filtering which option instances are considered a match.
551 * @return a `HarnessPredicate` configured with the given options.
552 */
553 MatNativeOptionHarness.with = function (options) {
554 var _this = this;
555 if (options === void 0) { options = {}; }
556 return new testing.HarnessPredicate(MatNativeOptionHarness, options)
557 .addOption('text', options.text, function (harness, title) { return __awaiter(_this, void 0, void 0, function () { var _a, _b; return __generator(this, function (_c) {
558 switch (_c.label) {
559 case 0:
560 _b = (_a = testing.HarnessPredicate).stringMatches;
561 return [4 /*yield*/, harness.getText()];
562 case 1: return [2 /*return*/, _b.apply(_a, [_c.sent(), title])];
563 }
564 }); }); })
565 .addOption('index', options.index, function (harness, index) { return __awaiter(_this, void 0, void 0, function () { return __generator(this, function (_a) {
566 switch (_a.label) {
567 case 0: return [4 /*yield*/, harness.getIndex()];
568 case 1: return [2 /*return*/, (_a.sent()) === index];
569 }
570 }); }); })
571 .addOption('isSelected', options.isSelected, function (harness, isSelected) { return __awaiter(_this, void 0, void 0, function () { return __generator(this, function (_a) {
572 switch (_a.label) {
573 case 0: return [4 /*yield*/, harness.isSelected()];
574 case 1: return [2 /*return*/, (_a.sent()) === isSelected];
575 }
576 }); }); });
577 };
578 /** Gets the option's label text. */
579 MatNativeOptionHarness.prototype.getText = function () {
580 return __awaiter(this, void 0, void 0, function () {
581 return __generator(this, function (_a) {
582 switch (_a.label) {
583 case 0: return [4 /*yield*/, this.host()];
584 case 1: return [2 /*return*/, (_a.sent()).getProperty('label')];
585 }
586 });
587 });
588 };
589 /** Index of the option within the native `select` element. */
590 MatNativeOptionHarness.prototype.getIndex = function () {
591 return __awaiter(this, void 0, void 0, function () {
592 return __generator(this, function (_a) {
593 switch (_a.label) {
594 case 0: return [4 /*yield*/, this.host()];
595 case 1: return [2 /*return*/, (_a.sent()).getProperty('index')];
596 }
597 });
598 });
599 };
600 /** Gets whether the option is disabled. */
601 MatNativeOptionHarness.prototype.isDisabled = function () {
602 return __awaiter(this, void 0, void 0, function () {
603 return __generator(this, function (_a) {
604 switch (_a.label) {
605 case 0: return [4 /*yield*/, this.host()];
606 case 1: return [2 /*return*/, (_a.sent()).getProperty('disabled')];
607 }
608 });
609 });
610 };
611 /** Gets whether the option is selected. */
612 MatNativeOptionHarness.prototype.isSelected = function () {
613 return __awaiter(this, void 0, void 0, function () {
614 return __generator(this, function (_a) {
615 switch (_a.label) {
616 case 0: return [4 /*yield*/, this.host()];
617 case 1: return [2 /*return*/, (_a.sent()).getProperty('selected')];
618 }
619 });
620 });
621 };
622 return MatNativeOptionHarness;
623 }(testing.ComponentHarness));
624 /** Selector used to locate option instances. */
625 MatNativeOptionHarness.hostSelector = 'select[matNativeControl] option';
626
627 /** Harness for interacting with a native `select` in tests. */
628 var MatNativeSelectHarness = /** @class */ (function (_super) {
629 __extends(MatNativeSelectHarness, _super);
630 function MatNativeSelectHarness() {
631 return _super !== null && _super.apply(this, arguments) || this;
632 }
633 /**
634 * Gets a `HarnessPredicate` that can be used to search for a `MatNativeSelectHarness` that meets
635 * certain criteria.
636 * @param options Options for filtering which select instances are considered a match.
637 * @return a `HarnessPredicate` configured with the given options.
638 */
639 MatNativeSelectHarness.with = function (options) {
640 if (options === void 0) { options = {}; }
641 return new testing.HarnessPredicate(MatNativeSelectHarness, options);
642 };
643 /** Gets a boolean promise indicating if the select is disabled. */
644 MatNativeSelectHarness.prototype.isDisabled = function () {
645 return __awaiter(this, void 0, void 0, function () {
646 return __generator(this, function (_a) {
647 switch (_a.label) {
648 case 0: return [4 /*yield*/, this.host()];
649 case 1: return [2 /*return*/, (_a.sent()).getProperty('disabled')];
650 }
651 });
652 });
653 };
654 /** Gets a boolean promise indicating if the select is required. */
655 MatNativeSelectHarness.prototype.isRequired = function () {
656 return __awaiter(this, void 0, void 0, function () {
657 return __generator(this, function (_a) {
658 switch (_a.label) {
659 case 0: return [4 /*yield*/, this.host()];
660 case 1: return [2 /*return*/, (_a.sent()).getProperty('required')];
661 }
662 });
663 });
664 };
665 /** Gets a boolean promise indicating if the select is in multi-selection mode. */
666 MatNativeSelectHarness.prototype.isMultiple = function () {
667 return __awaiter(this, void 0, void 0, function () {
668 return __generator(this, function (_a) {
669 switch (_a.label) {
670 case 0: return [4 /*yield*/, this.host()];
671 case 1: return [2 /*return*/, (_a.sent()).getProperty('multiple')];
672 }
673 });
674 });
675 };
676 /** Gets the name of the select. */
677 MatNativeSelectHarness.prototype.getName = function () {
678 return __awaiter(this, void 0, void 0, function () {
679 return __generator(this, function (_a) {
680 switch (_a.label) {
681 case 0: return [4 /*yield*/, this.host()];
682 case 1: return [4 /*yield*/, (_a.sent()).getProperty('name')];
683 case 2:
684 // The "name" property of the native select is never undefined.
685 return [2 /*return*/, (_a.sent())];
686 }
687 });
688 });
689 };
690 /** Gets the id of the select. */
691 MatNativeSelectHarness.prototype.getId = function () {
692 return __awaiter(this, void 0, void 0, function () {
693 return __generator(this, function (_a) {
694 switch (_a.label) {
695 case 0: return [4 /*yield*/, this.host()];
696 case 1: return [4 /*yield*/, (_a.sent()).getProperty('id')];
697 case 2:
698 // We're guaranteed to have an id, because the `matNativeControl` always assigns one.
699 return [2 /*return*/, (_a.sent())];
700 }
701 });
702 });
703 };
704 /** Focuses the select and returns a void promise that indicates when the action is complete. */
705 MatNativeSelectHarness.prototype.focus = function () {
706 return __awaiter(this, void 0, void 0, function () {
707 return __generator(this, function (_a) {
708 switch (_a.label) {
709 case 0: return [4 /*yield*/, this.host()];
710 case 1: return [2 /*return*/, (_a.sent()).focus()];
711 }
712 });
713 });
714 };
715 /** Blurs the select and returns a void promise that indicates when the action is complete. */
716 MatNativeSelectHarness.prototype.blur = function () {
717 return __awaiter(this, void 0, void 0, function () {
718 return __generator(this, function (_a) {
719 switch (_a.label) {
720 case 0: return [4 /*yield*/, this.host()];
721 case 1: return [2 /*return*/, (_a.sent()).blur()];
722 }
723 });
724 });
725 };
726 /** Whether the select is focused. */
727 MatNativeSelectHarness.prototype.isFocused = function () {
728 return __awaiter(this, void 0, void 0, function () {
729 return __generator(this, function (_a) {
730 switch (_a.label) {
731 case 0: return [4 /*yield*/, this.host()];
732 case 1: return [2 /*return*/, (_a.sent()).isFocused()];
733 }
734 });
735 });
736 };
737 /** Gets the options inside the select panel. */
738 MatNativeSelectHarness.prototype.getOptions = function (filter) {
739 if (filter === void 0) { filter = {}; }
740 return __awaiter(this, void 0, void 0, function () {
741 return __generator(this, function (_a) {
742 return [2 /*return*/, this.locatorForAll(MatNativeOptionHarness.with(filter))()];
743 });
744 });
745 };
746 /**
747 * Selects the options that match the passed-in filter. If the select is in multi-selection
748 * mode all options will be clicked, otherwise the harness will pick the first matching option.
749 */
750 MatNativeSelectHarness.prototype.selectOptions = function (filter) {
751 if (filter === void 0) { filter = {}; }
752 return __awaiter(this, void 0, void 0, function () {
753 var _a, isMultiple, options, _b, host, optionIndexes;
754 var _this = this;
755 return __generator(this, function (_c) {
756 switch (_c.label) {
757 case 0: return [4 /*yield*/, testing.parallel(function () {
758 return [_this.isMultiple(), _this.getOptions(filter)];
759 })];
760 case 1:
761 _a = __read.apply(void 0, [_c.sent(), 2]), isMultiple = _a[0], options = _a[1];
762 if (options.length === 0) {
763 throw Error('Select does not have options matching the specified filter');
764 }
765 return [4 /*yield*/, testing.parallel(function () { return [
766 _this.host(),
767 testing.parallel(function () { return options.slice(0, isMultiple ? undefined : 1).map(function (option) { return option.getIndex(); }); })
768 ]; })];
769 case 2:
770 _b = __read.apply(void 0, [_c.sent(), 2]), host = _b[0], optionIndexes = _b[1];
771 return [4 /*yield*/, host.selectOptions.apply(host, __spreadArray([], __read(optionIndexes)))];
772 case 3:
773 _c.sent();
774 return [2 /*return*/];
775 }
776 });
777 });
778 };
779 return MatNativeSelectHarness;
780 }(control.MatFormFieldControlHarness));
781 MatNativeSelectHarness.hostSelector = 'select[matNativeControl]';
782
783 /**
784 * @license
785 * Copyright Google LLC All Rights Reserved.
786 *
787 * Use of this source code is governed by an MIT-style license that can be
788 * found in the LICENSE file at https://angular.io/license
789 */
790
791 /**
792 * @license
793 * Copyright Google LLC All Rights Reserved.
794 *
795 * Use of this source code is governed by an MIT-style license that can be
796 * found in the LICENSE file at https://angular.io/license
797 */
798
799 exports.MatInputHarness = MatInputHarness;
800 exports.MatNativeOptionHarness = MatNativeOptionHarness;
801 exports.MatNativeSelectHarness = MatNativeSelectHarness;
802
803 Object.defineProperty(exports, '__esModule', { value: true });
804
805})));
806//# sourceMappingURL=material-input-testing.umd.js.map
Note: See TracBrowser for help on using the repository browser.