70 lines
2.1 KiB
HTML
70 lines
2.1 KiB
HTML
<!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>
|