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