Title: [115733] trunk/Source/WebKit/chromium
Revision
115733
Author
[email protected]
Date
2012-05-01 09:59:33 -0700 (Tue, 01 May 2012)

Log Message

WebKit test RenderTableCellDeathTest.CanSetRow is failing as of r115705
https://bugs.webkit.org/show_bug.cgi?id=85274

Reviewed by Ojan Vafai.

The tests were crashing as we were creating a RenderTableCell without any RenderTableRow parent
which shouldn't happen inside the render tree.

Using RenderTableCell to access RenderTableRow was artificial and the checks have now been moved
to using a RenderTableRow directly.

* WebKit.gyp:
* WebKit.gypi:
Added the new file.

* tests/RenderTableCellTest.cpp:
Removed the row index tests as they are now in the following file.

* tests/RenderTableRowTest.cpp: Copied from Source/WebKit/chromium/tests/RenderTableCellTest.cpp.
Changed a bit the row index tests and re-enabled them.

Modified Paths

Added Paths

Diff

Modified: trunk/Source/WebKit/chromium/ChangeLog (115732 => 115733)


--- trunk/Source/WebKit/chromium/ChangeLog	2012-05-01 16:52:04 UTC (rev 115732)
+++ trunk/Source/WebKit/chromium/ChangeLog	2012-05-01 16:59:33 UTC (rev 115733)
@@ -1,3 +1,26 @@
+2012-05-01  Julien Chaffraix  <[email protected]>
+
+        WebKit test RenderTableCellDeathTest.CanSetRow is failing as of r115705
+        https://bugs.webkit.org/show_bug.cgi?id=85274
+
+        Reviewed by Ojan Vafai.
+
+        The tests were crashing as we were creating a RenderTableCell without any RenderTableRow parent
+        which shouldn't happen inside the render tree.
+
+        Using RenderTableCell to access RenderTableRow was artificial and the checks have now been moved
+        to using a RenderTableRow directly.
+
+        * WebKit.gyp:
+        * WebKit.gypi:
+        Added the new file.
+
+        * tests/RenderTableCellTest.cpp:
+        Removed the row index tests as they are now in the following file.
+
+        * tests/RenderTableRowTest.cpp: Copied from Source/WebKit/chromium/tests/RenderTableCellTest.cpp.
+        Changed a bit the row index tests and re-enabled them.
+
 2012-05-01  Pavel Feldman  <[email protected]>
 
         WebKit unit tests RenderTableCellDeathTest.CanSetRow* are failing as of r115705

Modified: trunk/Source/WebKit/chromium/WebKit.gyp (115732 => 115733)


--- trunk/Source/WebKit/chromium/WebKit.gyp	2012-05-01 16:52:04 UTC (rev 115732)
+++ trunk/Source/WebKit/chromium/WebKit.gyp	2012-05-01 16:59:33 UTC (rev 115733)
@@ -740,6 +740,7 @@
                                 'tests/LevelDBTest.cpp',
                                 'tests/PopupMenuTest.cpp',
                                 'tests/RenderTableCellTest.cpp',
+                                'tests/RenderTableRowTest.cpp',
                                 'tests/WebFrameTest.cpp',
                                 'tests/WebPageNewSerializerTest.cpp',
                                 'tests/WebPageSerializerTest.cpp',

Modified: trunk/Source/WebKit/chromium/WebKit.gypi (115732 => 115733)


--- trunk/Source/WebKit/chromium/WebKit.gypi	2012-05-01 16:52:04 UTC (rev 115732)
+++ trunk/Source/WebKit/chromium/WebKit.gypi	2012-05-01 16:59:33 UTC (rev 115733)
@@ -123,6 +123,7 @@
             'tests/PODRedBlackTreeTest.cpp',
             'tests/RegionTest.cpp',
             'tests/RenderTableCellTest.cpp',
+            'tests/RenderTableRowTest.cpp',
             'tests/ScrollbarLayerChromiumTest.cpp',
             'tests/TextureCopierTest.cpp',
             'tests/TextureManagerTest.cpp',

Modified: trunk/Source/WebKit/chromium/tests/RenderTableCellTest.cpp (115732 => 115733)


--- trunk/Source/WebKit/chromium/tests/RenderTableCellTest.cpp	2012-05-01 16:52:04 UTC (rev 115732)
+++ trunk/Source/WebKit/chromium/tests/RenderTableCellTest.cpp	2012-05-01 16:59:33 UTC (rev 115733)
@@ -91,29 +91,12 @@
     EXPECT_EQ(columnIndex, m_cell->col());
 }
 
-// FIXME: https://bugs.webkit.org/show_bug.cgi?id=85274.
-// row() returns 0 by test design.
-TEST_F(RenderTableCellDeathTest, DISABLED_CanSetRow)
-{
-    static const unsigned rowIndex = 10;
-    m_cell->row()->setRowIndex(rowIndex);
-    EXPECT_EQ(rowIndex, m_cell->rowIndex());
-}
-
 TEST_F(RenderTableCellDeathTest, CanSetColumnToMaxColumnIndex)
 {
     m_cell->setCol(maxColumnIndex);
     EXPECT_EQ(maxColumnIndex, m_cell->col());
 }
 
-// FIXME: https://bugs.webkit.org/show_bug.cgi?id=85274.
-// row() returns 0 by test design.
-TEST_F(RenderTableCellDeathTest, DISABLED_CanSetRowToMaxRowIndex)
-{
-    m_cell->row()->setRowIndex(maxRowIndex);
-    EXPECT_EQ(maxRowIndex, m_cell->rowIndex());
-}
-
 // FIXME: Re-enable these tests once ASSERT_DEATH is supported for Android.
 // See: https://bugs.webkit.org/show_bug.cgi?id=74089
 #if !OS(ANDROID)
@@ -123,21 +106,11 @@
     ASSERT_DEATH(m_cell->setCol(maxColumnIndex + 1), "");
 }
 
-TEST_F(RenderTableCellDeathTest, CrashIfRowOverflowOnSetting)
-{
-    ASSERT_DEATH(m_cell->row()->setRowIndex(maxRowIndex + 1), "");
-}
-
 TEST_F(RenderTableCellDeathTest, CrashIfSettingUnsetColumnIndex)
 {
     ASSERT_DEATH(m_cell->setCol(unsetColumnIndex), "");
 }
 
-TEST_F(RenderTableCellDeathTest, CrashIfSettingUnsetRowIndex)
-{
-    ASSERT_DEATH(m_cell->row()->setRowIndex(unsetRowIndex), "");
-}
-
 #endif
 
 }

Copied: trunk/Source/WebKit/chromium/tests/RenderTableRowTest.cpp (from rev 115730, trunk/Source/WebKit/chromium/tests/RenderTableCellTest.cpp) (0 => 115733)


--- trunk/Source/WebKit/chromium/tests/RenderTableRowTest.cpp	                        (rev 0)
+++ trunk/Source/WebKit/chromium/tests/RenderTableRowTest.cpp	2012-05-01 16:59:33 UTC (rev 115733)
@@ -0,0 +1,118 @@
+/*
+ * Copyright (C) 2012 Google Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1.  Redistributions of source code must retain the above copyright
+ *     notice, this list of conditions and the following disclaimer.
+ * 2.  Redistributions in binary form must reproduce the above copyright
+ *     notice, this list of conditions and the following disclaimer in the
+ *     documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+// FIXME: If we get the TestWebKitAPI framework to bring a full Frame + DOM stack
+// in a portable way, this test should be shared with all ports!
+
+#include "config.h"
+
+#include "RenderTableRow.h"
+
+#include "Document.h"
+#include "Frame.h"
+#include "FrameTestHelpers.h"
+#include "RenderArena.h"
+#include "WebFrame.h"
+#include "WebFrameImpl.h"
+#include "WebView.h"
+
+#include <gtest/gtest.h>
+
+using namespace WebKit;
+
+namespace WebCore {
+
+namespace {
+
+class RenderTableRowDeathTest : public testing::Test {
+    // It's unfortunate that we have to get the whole browser stack to test one RenderObject
+    // but the code needs it.
+    static Frame* frame()
+    {
+        static WebView* webView;
+
+        if (webView)
+            return static_cast<WebFrameImpl*>(webView->mainFrame())->frame();
+
+        webView = FrameTestHelpers::createWebViewAndLoad("about:blank");
+        webView->setFocus(true);
+        return static_cast<WebFrameImpl*>(webView->mainFrame())->frame();
+    }
+
+    static Document* document()
+    {
+        return frame()->document();
+    }
+
+    static RenderArena* arena()
+    {
+        return document()->renderArena();
+    }
+
+    virtual void SetUp()
+    {
+        m_row = new (arena()) RenderTableRow(document());
+    }
+
+    virtual void TearDown()
+    {
+        m_row->destroy();
+    }
+
+protected:
+    RenderTableRow* m_row;
+};
+
+TEST_F(RenderTableRowDeathTest, CanSetRow)
+{
+    static const unsigned rowIndex = 10;
+    m_row->setRowIndex(rowIndex);
+    EXPECT_EQ(rowIndex, m_row->rowIndex());
+}
+
+TEST_F(RenderTableRowDeathTest, CanSetRowToMaxRowIndex)
+{
+    m_row->setRowIndex(maxRowIndex);
+    EXPECT_EQ(maxRowIndex, m_row->rowIndex());
+}
+
+// FIXME: Re-enable these tests once ASSERT_DEATH is supported for Android.
+// See: https://bugs.webkit.org/show_bug.cgi?id=74089
+#if !OS(ANDROID)
+
+TEST_F(RenderTableRowDeathTest, CrashIfRowOverflowOnSetting)
+{
+    ASSERT_DEATH(m_row->setRowIndex(maxRowIndex + 1), "");
+}
+
+TEST_F(RenderTableRowDeathTest, CrashIfSettingUnsetRowIndex)
+{
+    ASSERT_DEATH(m_row->setRowIndex(unsetRowIndex), "");
+}
+
+#endif
+
+}
+
+} // namespace WebCore
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to