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 12 class SkBitmap; 13 14 namespace gfx { 15 class Size; 16 } 17 18 namespace content { 19 20 class 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 // base::CreateTemporaryFile(&tmp_path); 56 // OutputBitmapToFile(bitmap, tmp_path); 57 // VLOG(0) << "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