// Copyright (c) 2012, 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 main() { test('selectedOptions', () { var element = new SelectElement(); element.multiple = false; var options = [ new OptionElement(), new DivElement(), new OptionElement(data: 'data', value: 'two', selected: true), new DivElement(), new OptionElement(data: 'data', value: 'two', selected: true), new OptionElement(), ]; element.children.addAll(options); expect(element.selectedOptions.length, 1); expect(element.selectedOptions[0], equals(options[4])); }); test('multiple selectedOptions', () { var element = new SelectElement(); element.multiple = true; var options = [ new OptionElement(), new DivElement(), new OptionElement(data: 'data', value: 'two', selected: true), new DivElement(), new OptionElement(data: 'data', value: 'two', selected: true), new OptionElement(), new OptionElement(data: 'data', value: 'two', selected: false), ]; element.children.addAll(options); expect(element.selectedOptions.length, 2); expect(element.selectedOptions[0], equals(options[2])); expect(element.selectedOptions[1], equals(options[4])); }); test('options', () { var element = new SelectElement(); var options = [ new OptionElement(), new OptionElement(data: 'data', value: 'two', selected: true), new OptionElement(data: 'data', value: 'two', selected: true), new OptionElement(), ]; element.children.addAll(options); // Use last to make sure that the list was correctly wrapped. expect(element.options.last, equals(options[3])); }); test('optgroup', () { var element = new Element.html( '', ) as SelectElement; expect(element.options.length, 2); element.selectedIndex = 1; var optGroup = element.children[1]; expect(optGroup is OptGroupElement, isTrue); expect((optGroup.children.single as OptionElement).selected, isTrue); expect(element.selectedOptions, optGroup.children); }); }