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