[HTML] Default argument to HTMLTableSectionElement.insertRow() should be -1
authorch.dumez@samsung.com <ch.dumez@samsung.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 6 May 2014 17:54:40 +0000 (17:54 +0000)
committerch.dumez@samsung.com <ch.dumez@samsung.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 6 May 2014 17:54:40 +0000 (17:54 +0000)
https://bugs.webkit.org/show_bug.cgi?id=132570

Reviewed by Darin Adler.

Source/WebCore:
HTMLTableSectionElement.insertRow()'s argument default value should be -1, not
0, as per the specification:
http://www.whatwg.org/specs/web-apps/current-work/multipage/tabular-data.html#the-tbody-element

The new behavior matches the one of Firefox 29 and IE11, and soon Blink:
https://code.google.com/p/chromium/issues/detail?id=369803

Test: fast/dom/HTMLTableSectionElement/insertRow-default-argument.html

* html/HTMLTableSectionElement.h:
* html/HTMLTableSectionElement.idl:

LayoutTests:
Add layout test to test that the default argument to
HTMLTableSectionElement.insertRow() is -1.

* fast/dom/HTMLTableSectionElement/insertRow-default-argument-expected.txt: Added.
* fast/dom/HTMLTableSectionElement/insertRow-default-argument.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@168365 268f45cc-cd09-0410-ab3c-d52691b4dbfc

LayoutTests/ChangeLog
LayoutTests/fast/dom/HTMLTableSectionElement/insertRow-default-argument-expected.txt [new file with mode: 0644]
LayoutTests/fast/dom/HTMLTableSectionElement/insertRow-default-argument.html [new file with mode: 0644]
Source/WebCore/ChangeLog
Source/WebCore/html/HTMLTableSectionElement.h
Source/WebCore/html/HTMLTableSectionElement.idl

index ccee977..1dd4be4 100644 (file)
@@ -1,3 +1,16 @@
+2014-05-06  Christophe Dumez  <ch.dumez@samsung.com>
+
+        [HTML] Default argument to HTMLTableSectionElement.insertRow() should be -1
+        https://bugs.webkit.org/show_bug.cgi?id=132570
+
+        Reviewed by Darin Adler.
+
+        Add layout test to test that the default argument to
+        HTMLTableSectionElement.insertRow() is -1.
+
+        * fast/dom/HTMLTableSectionElement/insertRow-default-argument-expected.txt: Added.
+        * fast/dom/HTMLTableSectionElement/insertRow-default-argument.html: Added.
+
 2014-05-06  Andrei Bucur  <abucur@adobe.com>
 
         [CSS Regions] Optimize the number of regions invalidations
diff --git a/LayoutTests/fast/dom/HTMLTableSectionElement/insertRow-default-argument-expected.txt b/LayoutTests/fast/dom/HTMLTableSectionElement/insertRow-default-argument-expected.txt
new file mode 100644 (file)
index 0000000..6470120
--- /dev/null
@@ -0,0 +1,15 @@
+Tests that HTMLTableSectionElement.insertRow()'s default argument is -1.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS tb.__proto__ is HTMLTableSectionElement.prototype
+PASS rows.length is 4
+PASS rows[0].innerHTML is "0"
+PASS rows[1].innerHTML is "1"
+PASS rows[2].innerHTML is "2"
+PASS rows[3].innerHTML is "3"
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
diff --git a/LayoutTests/fast/dom/HTMLTableSectionElement/insertRow-default-argument.html b/LayoutTests/fast/dom/HTMLTableSectionElement/insertRow-default-argument.html
new file mode 100644 (file)
index 0000000..eaddae4
--- /dev/null
@@ -0,0 +1,28 @@
+<!DOCTYPE html>
+<html>
+<head>
+<link rel="help" href="http://www.whatwg.org/specs/web-apps/current-work/multipage/tabular-data.html#the-tbody-element">
+<script src="../../../resources/js-test-pre.js"></script>
+</head>
+<body>
+<script>
+description("Tests that HTMLTableSectionElement.insertRow()'s default argument is -1.");
+
+var tb = document.createElement("tbody");
+shouldBe("tb.__proto__", "HTMLTableSectionElement.prototype");
+
+tb.insertRow().innerHTML = "1"; // Should append.
+tb.insertRow().innerHTML = "2"; // Should append.
+tb.insertRow(-1).innerHTML = "3"; // Should append.
+tb.insertRow(0).innerHTML = "0"; // Should prepend.
+
+var rows = tb.rows;
+shouldBe("rows.length", "4");
+shouldBeEqualToString("rows[0].innerHTML", "0");
+shouldBeEqualToString("rows[1].innerHTML", "1");
+shouldBeEqualToString("rows[2].innerHTML", "2");
+shouldBeEqualToString("rows[3].innerHTML", "3");
+</script>
+<script src="../../../resources/js-test-post.js"></script>
+</body>
+</html>
index b78c969..a245438 100644 (file)
@@ -1,3 +1,22 @@
+2014-05-06  Christophe Dumez  <ch.dumez@samsung.com>
+
+        [HTML] Default argument to HTMLTableSectionElement.insertRow() should be -1
+        https://bugs.webkit.org/show_bug.cgi?id=132570
+
+        Reviewed by Darin Adler.
+
+        HTMLTableSectionElement.insertRow()'s argument default value should be -1, not
+        0, as per the specification:
+        http://www.whatwg.org/specs/web-apps/current-work/multipage/tabular-data.html#the-tbody-element
+
+        The new behavior matches the one of Firefox 29 and IE11, and soon Blink:
+        https://code.google.com/p/chromium/issues/detail?id=369803
+
+        Test: fast/dom/HTMLTableSectionElement/insertRow-default-argument.html
+
+        * html/HTMLTableSectionElement.h:
+        * html/HTMLTableSectionElement.idl:
+
 2014-05-05  Enrica Casucci  <enrica@apple.com>
 
         REGRESSION(r155957): Selection rects are incorrect when the selection contains BR elements.
index 7825e68..e97e290 100644 (file)
@@ -35,6 +35,7 @@ class HTMLTableSectionElement final : public HTMLTablePartElement {
 public:
     static PassRefPtr<HTMLTableSectionElement> create(const QualifiedName&, Document&);
 
+    PassRefPtr<HTMLElement> insertRow(ExceptionCode& ec) { return insertRow(-1, ec); }
     PassRefPtr<HTMLElement> insertRow(int index, ExceptionCode&);
     void deleteRow(int index, ExceptionCode&);
 
index c66d806..e9ae2a5 100644 (file)
@@ -26,7 +26,7 @@
     [Reflect=charoff] attribute DOMString chOff;
     [Reflect] attribute DOMString vAlign;
     readonly attribute HTMLCollection rows;
-    [RaisesException] HTMLElement insertRow([Default=Undefined] optional long index);
+    [RaisesException] HTMLElement insertRow(optional long index);
     [RaisesException] void deleteRow([Default=Undefined] optional long index);
 };