blob: 0a5bca2eb2e0282b1ecc5e1aa5c5b14078cb142f [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 This test checks that text-justify parses properly the
* properties from CSS 3 Text.
*/
import "dart:html";
import "../../../../testcommon.dart";
import "../../../../../Utils/async_utils.dart";
main() {
document.body.setInnerHtml('''
<div id="test"></div>
<div id="ancestor"><div id="child"></div></div>
<div id="console"><div>
''', treeSanitizer: new NullTreeSanitizer());
var element, ancestor, presettedValue;
testElementStyle(value)
{
shouldBe(element.style.textJustify, value);
shouldBe(element.style.getPropertyValue('text-justify'), value);
}
testComputedStyle(value)
{
var computedStyle = getComputedStyle(element, null);
shouldBe(computedStyle.textJustify, value);
shouldBe(computedStyle.getPropertyValue('text-justify'), value);
}
valueSettingTest(value)
{
debug("Value '" + value + "':");
element.style.textJustify = value;
testElementStyle(value);
testComputedStyle(value);
debug('');
}
invalidValueSettingTest(value, presettedValue)
{
debug("Invalid value test - '" + value + "':");
element.style.textJustify = value;
testElementStyle(presettedValue);
testComputedStyle(presettedValue);
debug('');
}
ownValueTest(ancestorValue, childValue)
{
debug("Value of ancestor is '" + ancestorValue + ", while child is '" + childValue + "':");
ancestor.style.textJustify = ancestorValue;
document.getElementById('child').style.textJustify = childValue;
testElementStyle(childValue);
testComputedStyle(childValue);
debug('');
}
computedValueSettingTest(value, expectedComputedValue)
{
debug("Computed value test - '" + value + "':");
if (value == 'inherit')
ancestor.style.textJustify = expectedComputedValue;
element.style.textJustify = value;
testElementStyle(value);
testComputedStyle(expectedComputedValue);
debug('');
}
element = document.getElementById('test');
valueSettingTest('none');
valueSettingTest('inter-word');
valueSettingTest('distribute');
presettedValue = 'none';
debug("Presetted value is none");
element.style.textJustify = presettedValue;
invalidValueSettingTest('green', presettedValue);
invalidValueSettingTest('inline', presettedValue);
presettedValue = 'distribute';
debug("Presetted value is distribute");
element.style.textJustify = presettedValue;
invalidValueSettingTest('solid', presettedValue);
invalidValueSettingTest('normal', presettedValue);
element = document.getElementById('child');
ancestor = document.getElementById('ancestor');
computedValueSettingTest('inherit', 'none');
computedValueSettingTest('inherit', 'distribute');
computedValueSettingTest('initial', 'auto');
ownValueTest("inter-word", "distribute");
ownValueTest("none", "inter-word");
}