tizen beta release
[profile/ivi/webkit-efl.git] / LayoutTests / svg / dom / length-list-parser.html
1 <html>
2 <head>
3 <script src="../../fast/js/resources/js-test-pre.js"></script>
4 <script src="resources/scripted-random.js"></script>
5 </head>
6 <body>
7 <p id="description"></p>
8 <div id="console"></div>
9 <script>
10     description("This test fuzzes the length list parser with semi-random attribute values and dumps the results of any values that parse successfully.");
11     
12     var characters = [
13         "0",
14         // Long numeric string to force crossing page boundaries.
15         "-0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001",
16         "1",
17         "2",
18         "3",
19         "4",
20         "5",
21         "6",
22         "7",
23         "8",
24         "9",
25         ".",
26         "e",
27         "+",
28         "-",
29         ",",
30         " ",
31         "\t"
32     ];
33     
34     var textElement = document.createElementNS("http://www.w3.org/2000/svg", "text");
35     function parseLengthList(string)
36     {
37         textElement.setAttributeNS(null, "x", string);
38
39         var lengthList = textElement.x.baseVal;
40         if (!lengthList.numberOfItems)
41             return;
42
43         var debugStr = "Parsed as " + lengthList.numberOfItems + " length(s)";
44         debugStr += " [ ";
45         for (var i = 0; i < lengthList.numberOfItems; i++) { //>
46             debugStr += lengthList.getItem(i).valueAsString;
47             if (i < lengthList.numberOfItems - 1) //>
48                 debugStr += ", ";
49         }
50         debugStr += " ]";
51         debugStr += ": " + string;
52         debug(debugStr);
53     }
54
55     function fuzz()
56     {
57         // Random assortments of valid characters
58         for (var i = 0; i < 250; i++) { //>
59             var lengthList = "";
60             var count = Math.scriptedRandomInt(100);
61             for (var j = 0; j < count; j++) { //>
62                 lengthList += characters[Math.scriptedRandomInt(characters.length)];
63             }
64             parseLengthList(lengthList);
65         }
66         
67         // Empty-ish length lists
68         parseLengthList("");
69         parseLengthList(String.fromCharCode(0));
70     }
71     
72     fuzz();
73
74 </script>
75 <script src="../../fast/js/resources/js-test-post.js"></script>
76 </html>