blob: 67979bee2f0848448e8af1fbf708fdcd061ef6c6 [file] [log] [blame]
/*
* Copyright (c) 2014, 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.
*/
/**
* @description Test setting valid and invalid properties of HTMLMeterElement.
*/
import "dart:html";
import "../../../../Utils/expect.dart";
import "../../../testcommon.dart";
main() {
var m = document.createElement('meter');
debug("Test values before properties were set");
shouldBe(m.min, 0);
shouldBe(m.value, 0);
shouldBe(m.max, 1);
shouldBe(m.low, 0);
shouldBe(m.high, 1);
shouldBe(m.optimum, 0.5);
debug("Set valid values");
m.min = -10;
m.value = 7e1;
m.max = 1e2;
m.low = 10.1;
m.high = 99.5;
m.optimum = 70;
shouldBe(m.min, -10);
shouldBe(m.value, 70);
shouldBe(m.max, 100);
shouldBe(m.low, 10.1);
shouldBe(m.high, 99.5);
shouldBe(m.optimum, 70);
debug("Set attributes to improper values - 1");
m.min = -10;
m.value = 200;
m.max = 100.0;
m.low = 200;
m.high = -50;
//m.optimum = null;
shouldBe(m.min, -10);
shouldBe(m.value, 100);
shouldBe(m.max, 100);
shouldBe(m.low, 100);
shouldBe(m.high, 100);
//shouldBe(m.optimum, 0);
debug("Set attributes to improper values - 2");
m.min = 200.0;
m.value = -200.0;
m.max = 0;
//m.low = null;
shouldBe(m.min, 200.0);
shouldBe(m.value, 200.0);
shouldBe(m.max, 200.0);
//shouldBe(m.low, 200.0);
debug("Set attributes to improper values - 3");
m.min = 100.0;
m.value = 200.0;
m.max = 50;
m.low = 10;
m.high = 15e1;
m.optimum = 12.5;
shouldBe(m.min, 100.0);
shouldBe(m.value, 100.0);
shouldBe(m.max, 100.0);
shouldBe(m.low, 100.0);
shouldBe(m.high, 100.0);
shouldBe(m.optimum, 100.0);
debug("Set attributes to improper values - 4");
m.min = 0.0;
m.value = 250.0;
m.max = 200;
m.low = -10;
m.high = 15e2;
m.optimum = 12.5;
shouldBe(m.min, 0.0);
shouldBe(m.value, 200.0);
shouldBe(m.max, 200.0);
shouldBe(m.low, 0.0);
shouldBe(m.high, 200.0);
shouldBe(m.optimum, 12.5);
debug("Set attributes to valid numbers");
m.setAttribute("min", "0");
m.setAttribute("value", "5");
m.setAttribute("max", "10");
shouldBe(m.value, 5);
shouldBe(m.max, 10);
shouldBe(int.parse(m.getAttribute('value')), 5);
shouldBe(int.parse(m.getAttribute('max')), 10);
debug("Set attributes to invalid values");
m.setAttribute("value", "ABC");
m.setAttribute("max", "#");
shouldBe(m.value, 0);
shouldBe(m.max, 1);
shouldBe(m.getAttribute('value'), 'ABC');
shouldBe(m.getAttribute('max'), '#');
debug("Set attributes to numbers with leading spaces");
m.setAttribute("value", " 5");
m.setAttribute("min", " 5");
m.setAttribute("max", " 5");
m.setAttribute("low", " 5");
m.setAttribute("high", " 5");
m.setAttribute("optimum", " 5");
shouldBe(m.value, 0);
shouldBe(m.min, 0);
shouldBe(m.max, 1);
shouldBe(m.low, 0);
shouldBe(m.high, 1);
shouldBe(m.optimum, 0.5);
}