blob: 3294c72f4da3703535f544f4accd85a78a767a14 [file] [log] [blame]
<!DOCTYPE html>
<html>
<head>
<title>CSSOM - CSSStyleDeclaration - Text - Serialization - Delimiters</title>
<link rel="author" title="Glenn Adams" href="mailto:glenn@skynav.com"/>
<link rel="help" href="http://www.w3.org/TR/cssom/#the-cssstyledeclaration-interface"/>
<meta name="flags" content="dom"/>
<script src="../resources/testharness.js"></script>
<script src="../resources/testharnessreport.js"></script>
</head>
<body>
<div id="log"></div>
<div id="box"></div>
<script>
var style = document.getElementById('box').style;
var delim = new RegExp ( /(\s*\;\s*)/ );
function countDelimiters(s) {
var k = ( s.split(delim).length - 1 ) / 2;
return k;
}
function getNthDelimiter(s,n) {
if ( n > 0 ) {
var sa = s.split(delim);
var k = 1;
for ( var i in sa ) {
var s = sa[i];
var m = delim.exec(s);
if ( m && ( m.length > 1 ) ) {
if ( k++ == n ) {
return s;
}
}
}
}
return '';
}
test(function(){
style.cssText = "";
assert_equals(countDelimiters(style.cssText), 0);
assert_equals(getNthDelimiter(style.cssText,0), "");
assert_equals(style.cssText, "");
}, 'inline style - text - delimiters - zero declarations');
test(function(){
style.cssText = "left: 10px";
assert_equals(countDelimiters(style.cssText), 1);
assert_equals(getNthDelimiter(style.cssText,1), ";");
assert_equals(style.cssText, "left: 10px;");
}, 'inline style - text - delimiters - one declaration');
test(function(){
style.cssText = "left: 10px; right: 20px";
assert_equals(countDelimiters(style.cssText), 2);
assert_equals(getNthDelimiter(style.cssText,1), "; ");
assert_equals(getNthDelimiter(style.cssText,2), ";");
assert_equals(style.cssText, "left: 10px; right: 20px;");
}, 'inline style - text - delimiters - two declarations');
</script>
</body>
</html>