Newer
Older
commit-queue@webkit.org
committed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
<!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>