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 PPAPI_TESTS_TEST_IMAGE_DATA_H_
6#define PPAPI_TESTS_TEST_IMAGE_DATA_H_
7
8#include <string>
9
10#include "ppapi/c/ppb_image_data.h"
11#include "ppapi/tests/test_case.h"
12
13class TestImageData : public TestCase {
14 public:
15  TestImageData(TestingInstance* instance) : TestCase(instance) {}
16
17  // TestCase implementation.
18  virtual bool Init();
19  virtual void RunTests(const std::string& filter);
20
21 private:
22  std::string TestInvalidFormat();
23  std::string TestGetNativeFormat();
24  std::string TestFormatSupported();
25  std::string TestInvalidSize();
26  std::string TestHugeSize();
27  std::string TestInitToZero();
28  std::string TestIsImageData();
29
30  // Subtests used by tests above; pass in a pixel format.
31  std::string SubTestFormatSupported(PP_ImageDataFormat format);
32  std::string SubTestInvalidSize(PP_ImageDataFormat format);
33  std::string SubTestHugeSize(PP_ImageDataFormat format);
34  std::string SubTestInitToZero(PP_ImageDataFormat format);
35  std::string SubTestIsImageData(PP_ImageDataFormat format);
36
37  // Used by the tests that access the C API directly.
38  const PPB_ImageData* image_data_interface_;
39};
40
41#endif  // PPAPI_TESTS_TEST_IMAGE_DATA_H_
42