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

Unified Diff: chrome/test/automation/automation_proxy_uitest.cc

Issue 8416024: Re-land 107645 with static initializers removed. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: remove static initializers Created 9 years, 2 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 side-by-side diff with in-line comments
Download patch
Index: chrome/test/automation/automation_proxy_uitest.cc
diff --git a/chrome/test/automation/automation_proxy_uitest.cc b/chrome/test/automation/automation_proxy_uitest.cc
index 22ed3076fe1ec12623e281ec5120ca88823f6f37..9b2d4dfe19efcf41b2f0c567a469199d422ced6d 100644
--- a/chrome/test/automation/automation_proxy_uitest.cc
+++ b/chrome/test/automation/automation_proxy_uitest.cc
@@ -10,6 +10,7 @@
#include "base/file_util.h"
#include "base/i18n/rtl.h"
#include "base/json/json_value_serializer.h"
+#include "base/md5.h"
#include "base/memory/scoped_ptr.h"
#include "base/scoped_temp_dir.h"
#include "base/string_util.h"
@@ -1529,8 +1530,7 @@ class AutomationProxySnapshotTest : public UITest {
// Asserts that the given png file can be read and decoded into the given
// bitmap.
- void AssertReadPNG(const FilePath& filename, SkBitmap* bitmap) {
- DCHECK(bitmap);
+ void AssertReadPNG(const FilePath& filename, std::string* data) {
ASSERT_TRUE(file_util::PathExists(filename));
int64 size64;
@@ -1540,13 +1540,9 @@ class AutomationProxySnapshotTest : public UITest {
// Read and decode image.
int size = static_cast<int>(size64);
- scoped_array<char> data(new char[size]);
- int bytes_read = file_util::ReadFile(filename, &data[0], size);
+ data->resize(size);
+ int bytes_read = file_util::ReadFile(filename, &(*data)[0], size);
ASSERT_EQ(size, bytes_read);
- ASSERT_TRUE(gfx::PNGCodec::Decode(
- reinterpret_cast<unsigned char*>(&data[0]),
- bytes_read,
- bitmap));
}
// Returns the file path for the directory for these tests appended with
@@ -1566,113 +1562,26 @@ class AutomationProxySnapshotTest : public UITest {
ScopedTempDir snapshot_dir_;
};
-// See http://crbug.com/63022.
-#if defined(OS_LINUX)
-#define MAYBE_ContentLargerThanView FAILS_ContentLargerThanView
-#else
-#define MAYBE_ContentLargerThanView ContentLargerThanView
-#endif
// Tests that taking a snapshot when the content is larger than the view
// produces a snapshot equal to the content size.
-TEST_F(AutomationProxySnapshotTest, MAYBE_ContentLargerThanView) {
- scoped_refptr<BrowserProxy> browser(automation()->GetBrowserWindow(0));
- ASSERT_TRUE(browser.get());
-
- // Resize the window to guarantee that the content is larger than the view.
- scoped_refptr<WindowProxy> window(browser->GetWindow());
- ASSERT_TRUE(window.get());
- ASSERT_TRUE(window->SetBounds(gfx::Rect(300, 400)));
-
- scoped_refptr<TabProxy> tab(browser->GetTab(0));
- ASSERT_TRUE(tab.get());
-
- ASSERT_EQ(AUTOMATION_MSG_NAVIGATION_SUCCESS,
- tab->NavigateToURL(GetTestUrl("set_size.html", "600,800")));
-
- ASSERT_TRUE(tab->CaptureEntirePageAsPNG(snapshot_path_));
-
- SkBitmap bitmap;
- ASSERT_NO_FATAL_FAILURE(AssertReadPNG(snapshot_path_, &bitmap));
- ASSERT_EQ(600, bitmap.width());
- ASSERT_EQ(800, bitmap.height());
-}
-
-// Tests taking a large snapshot works.
-#if defined(OS_LINUX)
-// See http://code.google.com/p/chromium/issues/detail?id=89777
-#define MAYBE_LargeSnapshot DISABLED_LargeSnapshot
-#else
-#define MAYBE_LargeSnapshot LargeSnapshot
-#endif
-TEST_F(AutomationProxySnapshotTest, MAYBE_LargeSnapshot) {
- scoped_refptr<BrowserProxy> browser(automation()->GetBrowserWindow(0));
- ASSERT_TRUE(browser.get());
-
- scoped_refptr<TabProxy> tab(browser->GetTab(0));
- ASSERT_TRUE(tab.get());
-
- // 2000x2000 creates an approximately 15 MB bitmap.
- // Don't increase this too much. At least my linux box has SHMMAX set at
- // 32 MB.
- ASSERT_EQ(AUTOMATION_MSG_NAVIGATION_SUCCESS,
- tab->NavigateToURL(GetTestUrl("set_size.html", "2000,2000")));
-
- ASSERT_TRUE(tab->CaptureEntirePageAsPNG(snapshot_path_));
-
- SkBitmap bitmap;
- ASSERT_NO_FATAL_FAILURE(AssertReadPNG(snapshot_path_, &bitmap));
- ASSERT_EQ(2000, bitmap.width());
- ASSERT_EQ(2000, bitmap.height());
-}
-
-#if defined(OS_MACOSX)
-// Most pixels on mac are slightly off.
-#define MAYBE_ContentsCorrect DISABLED_ContentsCorrect
-#elif defined(OS_LINUX)
-// See http://crbug.com/63022.
-#define MAYBE_ContentsCorrect FAILS_ContentsCorrect
-#else
-#define MAYBE_ContentsCorrect ContentsCorrect
-#endif
-
-// Tests that the snapshot contents are correct.
-TEST_F(AutomationProxySnapshotTest, MAYBE_ContentsCorrect) {
+TEST_F(AutomationProxySnapshotTest, ContentLargerThanView) {
+ const char kReferenceMd5[] = "3d594850fd25cb116338cb3610afe18e";
scoped_refptr<BrowserProxy> browser(automation()->GetBrowserWindow(0));
ASSERT_TRUE(browser.get());
-
- const gfx::Size img_size(400, 300);
- scoped_refptr<WindowProxy> window(browser->GetWindow());
- ASSERT_TRUE(window.get());
- ASSERT_TRUE(window->SetBounds(gfx::Rect(img_size)));
-
scoped_refptr<TabProxy> tab(browser->GetTab(0));
ASSERT_TRUE(tab.get());
ASSERT_EQ(AUTOMATION_MSG_NAVIGATION_SUCCESS,
- tab->NavigateToURL(GetTestUrl("just_image.html", "")));
+ tab->NavigateToURL(GetTestUrl("set_size.html", "2000,2500")));
ASSERT_TRUE(tab->CaptureEntirePageAsPNG(snapshot_path_));
- SkBitmap snapshot_bmp;
- ASSERT_NO_FATAL_FAILURE(AssertReadPNG(snapshot_path_, &snapshot_bmp));
- ASSERT_EQ(img_size.width(), snapshot_bmp.width());
- ASSERT_EQ(img_size.height(), snapshot_bmp.height());
-
- SkBitmap reference_bmp;
- ASSERT_NO_FATAL_FAILURE(AssertReadPNG(GetTestFilePath("image.png"),
- &reference_bmp));
- ASSERT_EQ(img_size.width(), reference_bmp.width());
- ASSERT_EQ(img_size.height(), reference_bmp.height());
-
- SkAutoLockPixels lock_snapshot(snapshot_bmp);
- SkAutoLockPixels lock_reference(reference_bmp);
- int diff_pixels_count = 0;
- for (int x = 0; x < img_size.width(); ++x) {
- for (int y = 0; y < img_size.height(); ++y) {
- if (*snapshot_bmp.getAddr32(x, y) != *reference_bmp.getAddr32(x, y)) {
- ++diff_pixels_count;
- }
- }
+ std::string data;
+ ASSERT_NO_FATAL_FAILURE(AssertReadPNG(snapshot_path_, &data));
+ EXPECT_STREQ(kReferenceMd5, base::MD5String(data).c_str());
+ if (CommandLine::ForCurrentProcess()->HasSwitch("dump-test-image")) {
+ FilePath path(FILE_PATH_LITERAL("snapshot.png"));
+ EXPECT_EQ(file_util::WriteFile(path, &data[0], data.length()),
+ static_cast<int>(data.length()));
}
- ASSERT_EQ(diff_pixels_count, 0);
}

Powered by Google App Engine
This is Rietveld 408576698