render_widget_test.h revision 90dce4d38c5ff5333bea97d859d4e484e27edf0c
1// Copyright (c) 2012 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#ifndef CONTENT_PUBLIC_TEST_RENDER_WIDGET_TEST_H_ 6#define CONTENT_PUBLIC_TEST_RENDER_WIDGET_TEST_H_ 7 8#include "base/basictypes.h" 9#include "base/files/file_path.h" 10#include "content/public/test/render_view_test.h" 11 12class SkBitmap; 13 14namespace gfx { 15class Size; 16} 17 18namespace content { 19 20class RenderWidgetTest : public RenderViewTest { 21 public: 22 RenderWidgetTest(); 23 24 protected: 25 static const int kNumBytesPerPixel; 26 static const int kLargeWidth; 27 static const int kLargeHeight; 28 static const int kSmallWidth; 29 static const int kSmallHeight; 30 static const int kTextPositionX; 31 static const int kTextPositionY; 32 static const uint32 kRedARGB; 33 34 // Helper function which calls OnMsgPaintAtSize and also paints the result 35 // in the given bitmap. The widget is resized to |page_size| before we paint 36 // and the final image is resized to |desired_size|. This method is virtual so 37 // that TestResizeAndPaint() can be reused by subclasses of this test class. 38 virtual void ResizeAndPaint(const gfx::Size& page_size, 39 const gfx::Size& desired_size, 40 SkBitmap* snapshot); 41 42 // Test for ResizeAndPaint. 43 void TestResizeAndPaint(); 44 45 // Test for OnResize and Resize. 46 void TestOnResize(); 47 48 // Helper function which returns true if the given bitmap contains the given 49 // ARGB color and false otherwise. 50 bool ImageContainsColor(const SkBitmap& bitmap, uint32 argb_color); 51 52 // This can be used for debugging if you want to output a bitmap 53 // image to a file. 54 // FilePath tmp_path; 55 // file_util::CreateTemporaryFile(&tmp_path); 56 // OutputBitmapToFile(bitmap, tmp_path); 57 // LOG(INFO) << "Bitmap image stored at: " << tmp_path.value(); 58 void OutputBitmapToFile(const SkBitmap& bitmap, 59 const base::FilePath& file_path); 60}; 61 62} // namespace content 63 64#endif // CONTENT_PUBLIC_TEST_RENDER_WIDGET_TEST_H_ 65