| // Copyright (c) 2020, the Dart project authors. Please see the AUTHORS file | |
| // for details. All rights reserved. Use of this source code is governed by a | |
| // BSD-style license that can be found in the LICENSE file. | |
| import 'dart:html'; | |
| import 'package:expect/legacy/minitest.dart'; // ignore: deprecated_member_use_from_same_package | |
| void check(element, String type, [bool supported = true]) { | |
| expect(element is InputElement, true); | |
| if (supported) { | |
| expect(element.type, type); | |
| } else { | |
| expect(element.type, 'text'); | |
| } | |
| } | |
| main() { | |
| test('hidden', () { | |
| check(new HiddenInputElement(), 'hidden'); | |
| }); | |
| test('search', () { | |
| check(new SearchInputElement(), 'search', SearchInputElement.supported); | |
| }); | |
| test('text', () { | |
| check(new TextInputElement(), 'text'); | |
| }); | |
| test('url', () { | |
| check(new UrlInputElement(), 'url', UrlInputElement.supported); | |
| }); | |
| test('telephone', () { | |
| check(new TelephoneInputElement(), 'tel', TelephoneInputElement.supported); | |
| }); | |
| test('email', () { | |
| check(new EmailInputElement(), 'email', EmailInputElement.supported); | |
| }); | |
| test('password', () { | |
| check(new PasswordInputElement(), 'password'); | |
| }); | |
| test('date', () { | |
| check(new DateInputElement(), 'date', DateInputElement.supported); | |
| }); | |
| test('month', () { | |
| check(new MonthInputElement(), 'month', MonthInputElement.supported); | |
| }); | |
| test('week', () { | |
| check(new WeekInputElement(), 'week', WeekInputElement.supported); | |
| }); | |
| test('time', () { | |
| check(new TimeInputElement(), 'time', TimeInputElement.supported); | |
| if (TimeInputElement.supported) { | |
| var element = new TimeInputElement(); | |
| var now = new DateTime.now(); | |
| element.valueAsDate = now; | |
| expect(element.valueAsDate is DateTime, isTrue); | |
| // Bug 8813, setting it is just going to the epoch. | |
| //expect(element.valueAsDate, now); | |
| } | |
| }); | |
| test('datetime-local', () { | |
| check( | |
| new LocalDateTimeInputElement(), | |
| 'datetime-local', | |
| LocalDateTimeInputElement.supported, | |
| ); | |
| }); | |
| test('number', () { | |
| check(new NumberInputElement(), 'number', NumberInputElement.supported); | |
| }); | |
| test('range', () { | |
| check(new RangeInputElement(), 'range', RangeInputElement.supported); | |
| }); | |
| test('checkbox', () { | |
| check(new CheckboxInputElement(), 'checkbox'); | |
| }); | |
| test('radio', () { | |
| check(new RadioButtonInputElement(), 'radio'); | |
| }); | |
| test('file', () { | |
| check(new FileUploadInputElement(), 'file'); | |
| }); | |
| test('submit', () { | |
| check(new SubmitButtonInputElement(), 'submit'); | |
| }); | |
| test('image', () { | |
| check(new ImageButtonInputElement(), 'image'); | |
| }); | |
| test('reset', () { | |
| check(new ResetButtonInputElement(), 'reset'); | |
| }); | |
| test('button', () { | |
| check(new ButtonInputElement(), 'button'); | |
| }); | |
| } |