Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(507)

Side by Side Diff: LayoutTests/fast/dom/characterdata-api-arguments.html

Issue 24199003: Improve exception messages for Source/core/dom/CharacterData.cpp (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: rebaseline. Created 7 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | LayoutTests/fast/dom/characterdata-api-arguments-expected.txt » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 <!DOCTYPE html> 1 <!DOCTYPE html>
2 <html> 2 <html>
3 <head> 3 <head>
4 <link rel="help" href="http://www.w3.org/TR/2012/WD-dom-20121206/#interface-char acterdata"> 4 <link rel="help" href="http://www.w3.org/TR/2012/WD-dom-20121206/#interface-char acterdata">
5 <script src="../js/resources/js-test-pre.js"></script> 5 <script src="../js/resources/js-test-pre.js"></script>
6 </head> 6 </head>
7 <body> 7 <body>
8 <script> 8 <script>
9 description("Tests that the CharacterData API arguments are correctly validated. "); 9 description("Tests that the CharacterData API arguments are correctly validated. ");
10 10
11 var text = document.createTextNode("abcd"); 11 var text = document.createTextNode("abcd");
12 shouldBeEqualToString("text.data", "abcd"); 12 shouldBeEqualToString("text.data", "abcd");
13 shouldBe("text.__proto__.__proto__", "CharacterData.prototype"); 13 shouldBe("text.__proto__.__proto__", "CharacterData.prototype");
14 14
15 // appendData() 15 // appendData()
16 shouldNotThrow("text.appendData('efg')"); 16 shouldNotThrow("text.appendData('efg')");
17 shouldBeEqualToString("text.data", "abcdefg"); 17 shouldBeEqualToString("text.data", "abcdefg");
18 shouldThrow("text.appendData()", "'TypeError: Not enough arguments'"); 18 shouldThrow("text.appendData()", "'TypeError: Not enough arguments'");
19 shouldBeEqualToString("text.data", "abcdefg"); 19 shouldBeEqualToString("text.data", "abcdefg");
20 20
21 // insertData() 21 // insertData()
22 text.data = "efg"; 22 text.data = "efg";
23 shouldNotThrow("text.insertData(0, 'abcd')"); 23 shouldNotThrow("text.insertData(0, 'abcd')");
24 shouldBeEqualToString("text.data", "abcdefg"); 24 shouldBeEqualToString("text.data", "abcdefg");
25 shouldThrow("text.insertData()", "'TypeError: Not enough arguments'"); 25 shouldThrow("text.insertData()", "'TypeError: Not enough arguments'");
26 shouldBeEqualToString("text.data", "abcdefg"); 26 shouldBeEqualToString("text.data", "abcdefg");
27 shouldThrow("text.insertData(0)", "'TypeError: Not enough arguments'"); 27 shouldThrow("text.insertData(0)", "'TypeError: Not enough arguments'");
28 shouldBeEqualToString("text.data", "abcdefg"); 28 shouldBeEqualToString("text.data", "abcdefg");
29 shouldThrow("text.insertData(999, 'test')", "'IndexSizeError: Index or size was negative, or greater than the allowed value.'"); // offset greater than length. 29 shouldThrow("text.insertData(999, 'test')", '"IndexSizeError: Failed to execute \'insertData\' on \'CharacterData\': The offset 999 is greater than the node\'s length (7)."');
30 shouldBeEqualToString("text.data", "abcdefg"); 30 shouldBeEqualToString("text.data", "abcdefg");
31 shouldNotThrow("text.insertData(-4294967294, 'test')"); // Wraps to 2, which is a valid offset. 31 shouldNotThrow("text.insertData(-4294967294, 'test')"); // Wraps to 2, which is a valid offset.
32 shouldBeEqualToString("text.data", "abtestcdefg"); 32 shouldBeEqualToString("text.data", "abtestcdefg");
33 33
34 // deleteData() 34 // deleteData()
35 text.data = "abcdefg"; 35 text.data = "abcdefg";
36 shouldNotThrow("text.deleteData(4, 3)"); 36 shouldNotThrow("text.deleteData(4, 3)");
37 shouldBeEqualToString("text.data", "abcd"); 37 shouldBeEqualToString("text.data", "abcd");
38 shouldThrow("text.deleteData()", "'TypeError: Not enough arguments'"); 38 shouldThrow("text.deleteData()", "'TypeError: Not enough arguments'");
39 shouldBeEqualToString("text.data", "abcd"); 39 shouldBeEqualToString("text.data", "abcd");
40 shouldThrow("text.deleteData(0)", "'TypeError: Not enough arguments'"); 40 shouldThrow("text.deleteData(0)", "'TypeError: Not enough arguments'");
41 shouldBeEqualToString("text.data", "abcd"); 41 shouldBeEqualToString("text.data", "abcd");
42 shouldThrow("text.deleteData(999, 3)", "'IndexSizeError: Index or size was negat ive, or greater than the allowed value.'"); // offset greater than length. 42 shouldThrow("text.deleteData(999, 3)", '"IndexSizeError: Failed to execute \'del eteData\' on \'CharacterData\': The offset 999 is greater than the node\'s lengt h (4)."');
43 shouldBeEqualToString("text.data", "abcd"); 43 shouldBeEqualToString("text.data", "abcd");
44 shouldThrow("text.deleteData(-1, 3)", "'IndexSizeError: Index or size was negati ve, or greater than the allowed value.'"); // Wraps to 4294967295 which is great er than the data length 44 shouldThrow("text.deleteData(-1, 3)", '"IndexSizeError: Failed to execute \'dele teData\' on \'CharacterData\': The offset 4294967295 is greater than the node\'s length (4)."'); // Wraps to 4294967295 which is greater than the data length
45 shouldBeEqualToString("text.data", "abcd"); 45 shouldBeEqualToString("text.data", "abcd");
46 shouldNotThrow("text.deleteData(-4294967294, 2)"); // Wraps to 2, which is a val id offset. 46 shouldNotThrow("text.deleteData(-4294967294, 2)"); // Wraps to 2, which is a val id offset.
47 shouldBeEqualToString("text.data", "ab"); 47 shouldBeEqualToString("text.data", "ab");
48 shouldNotThrow("text.deleteData(1, 999)"); // Length argument is too large, shou ld be adjusted. 48 shouldNotThrow("text.deleteData(1, 999)"); // Length argument is too large, shou ld be adjusted.
49 shouldBeEqualToString("text.data", "a"); 49 shouldBeEqualToString("text.data", "a");
50 50
51 // ReplaceData() 51 // ReplaceData()
52 text.data = "efg"; 52 text.data = "efg";
53 shouldNotThrow("text.replaceData(0, 0, 'abcd')"); 53 shouldNotThrow("text.replaceData(0, 0, 'abcd')");
54 shouldBeEqualToString("text.data", "abcdefg"); 54 shouldBeEqualToString("text.data", "abcdefg");
55 shouldThrow("text.replaceData()", "'TypeError: Not enough arguments'"); 55 shouldThrow("text.replaceData()", "'TypeError: Not enough arguments'");
56 shouldBeEqualToString("text.data", "abcdefg"); 56 shouldBeEqualToString("text.data", "abcdefg");
57 shouldThrow("text.replaceData(0)", "'TypeError: Not enough arguments'"); 57 shouldThrow("text.replaceData(0)", "'TypeError: Not enough arguments'");
58 shouldBeEqualToString("text.data", "abcdefg"); 58 shouldBeEqualToString("text.data", "abcdefg");
59 shouldThrow("text.replaceData(0, 0)", "'TypeError: Not enough arguments'"); 59 shouldThrow("text.replaceData(0, 0)", "'TypeError: Not enough arguments'");
60 shouldBeEqualToString("text.data", "abcdefg"); 60 shouldBeEqualToString("text.data", "abcdefg");
61 shouldThrow("text.replaceData(999, 3, 'test')", "'IndexSizeError: Index or size was negative, or greater than the allowed value.'"); // offset greater than leng th. 61 shouldThrow("text.replaceData(999, 3, 'test')", '"IndexSizeError: Failed to exec ute \'replaceData\' on \'CharacterData\': The offset 999 is greater than the nod e\'s length (7)."');
62 shouldBeEqualToString("text.data", "abcdefg"); 62 shouldBeEqualToString("text.data", "abcdefg");
63 shouldThrow("text.replaceData(-1, 3, 'test')", "'IndexSizeError: Index or size w as negative, or greater than the allowed value.'"); // Wraps to 4294967295 which is greater than the data length 63 shouldThrow("text.replaceData(-1, 3, 'test')", '"IndexSizeError: Failed to execu te \'replaceData\' on \'CharacterData\': The offset 4294967295 is greater than t he node\'s length (7)."'); // Wraps to 4294967295 which is greater than the data length
64 shouldBeEqualToString("text.data", "abcdefg"); 64 shouldBeEqualToString("text.data", "abcdefg");
65 shouldNotThrow("text.replaceData(-4294967294, 0, 'test')"); // Wraps to 2, which is a valid offset. 65 shouldNotThrow("text.replaceData(-4294967294, 0, 'test')"); // Wraps to 2, which is a valid offset.
66 shouldBeEqualToString("text.data", "abtestcdefg"); 66 shouldBeEqualToString("text.data", "abtestcdefg");
67 shouldNotThrow("text.replaceData(1, 999, 'aaa')"); // Length argument is too lar ge, should be adjusted. 67 shouldNotThrow("text.replaceData(1, 999, 'aaa')"); // Length argument is too lar ge, should be adjusted.
68 shouldBeEqualToString("text.data", "aaaa"); 68 shouldBeEqualToString("text.data", "aaaa");
69 69
70 // substringData() 70 // substringData()
71 text.data = "abcdefg"; 71 text.data = "abcdefg";
72 shouldBeEqualToString("text.substringData(4, 3)", "efg"); 72 shouldBeEqualToString("text.substringData(4, 3)", "efg");
73 shouldThrow("text.substringData()", "'TypeError: Not enough arguments'"); 73 shouldThrow("text.substringData()", "'TypeError: Not enough arguments'");
74 shouldThrow("text.substringData(0)", "'TypeError: Not enough arguments'"); 74 shouldThrow("text.substringData(0)", "'TypeError: Not enough arguments'");
75 shouldBeEqualToString("text.substringData(4, 999)", "efg"); // Length argument i s too large, should be adjusted. 75 shouldBeEqualToString("text.substringData(4, 999)", "efg"); // Length argument i s too large, should be adjusted.
76 shouldBeEqualToString("text.substringData(4, -1)", "efg"); // Length argument is too large (after wrapping), should be adjusted. 76 shouldBeEqualToString("text.substringData(4, -1)", "efg"); // Length argument is too large (after wrapping), should be adjusted.
77 shouldThrow("text.substringData(-1, 2)", "'IndexSizeError: Index or size was neg ative, or greater than the allowed value.'"); // Wraps to 4294967295 which is gr eater than the data length 77 shouldThrow("text.substringData(-1, 2)", '"IndexSizeError: Failed to execute \'s ubstringData\' on \'CharacterData\': The offset 4294967295 is greater than the n ode\'s length (7)."'); // Wraps to 4294967295 which is greater than the data len gth
78 shouldBeEqualToString("text.substringData(-4294967294, 3)", "cde"); // Wraps to 2, which is a valid offset. 78 shouldBeEqualToString("text.substringData(-4294967294, 3)", "cde"); // Wraps to 2, which is a valid offset.
79 79
80 </script> 80 </script>
81 <script src="../js/resources/js-test-post.js"></script> 81 <script src="../js/resources/js-test-post.js"></script>
82 </body> 82 </body>
83 </html> 83 </html>
OLDNEW
« no previous file with comments | « no previous file | LayoutTests/fast/dom/characterdata-api-arguments-expected.txt » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698