diff options
author | nfullagar@chromium.org <nfullagar@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-11-01 23:54:24 +0000 |
---|---|---|
committer | nfullagar@chromium.org <nfullagar@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-11-01 23:54:24 +0000 |
commit | dc893008253dc6c8c848ea2cf82d2967fab4a63f (patch) | |
tree | 3cfdc9acce4bc964585b37b93a027ecbcee7ed1e /ppapi/tests | |
parent | 791178a2456543854442c9e3196cb03ab75bc13c (diff) | |
download | chromium_src-dc893008253dc6c8c848ea2cf82d2967fab4a63f.zip chromium_src-dc893008253dc6c8c848ea2cf82d2967fab4a63f.tar.gz chromium_src-dc893008253dc6c8c848ea2cf82d2967fab4a63f.tar.bz2 |
Add more tests to ppapi/tests/test_image_data.cc, to facilitate
removal of corresponding NaCl PPAPI test.
Add IsImageDataFormatSupported() static method to PPAPI cpp interface.
Add comments to indicate which formats are always supported.
TEST=test_image_data
BUG=http://code.google.com/p/chromium/issues/detail?id=154400
Review URL: https://chromiumcodereview.appspot.com/11348022
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@165557 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ppapi/tests')
-rw-r--r-- | ppapi/tests/test_image_data.cc | 89 | ||||
-rw-r--r-- | ppapi/tests/test_image_data.h | 11 |
2 files changed, 76 insertions, 24 deletions
diff --git a/ppapi/tests/test_image_data.cc b/ppapi/tests/test_image_data.cc index f101147..d5b78f0 100644 --- a/ppapi/tests/test_image_data.cc +++ b/ppapi/tests/test_image_data.cc @@ -20,6 +20,8 @@ bool TestImageData::Init() { void TestImageData::RunTests(const std::string& filter) { instance_->LogTest("InvalidFormat", TestInvalidFormat()); + instance_->LogTest("GetNativeFormat", TestGetNativeFormat()); + instance_->LogTest("IsImageDataFormatSupported", TestFormatSupported()); instance_->LogTest("InvalidSize", TestInvalidSize()); instance_->LogTest("HugeSize", TestHugeSize()); instance_->LogTest("InitToZero", TestInitToZero()); @@ -36,23 +38,40 @@ std::string TestImageData::TestInvalidFormat() { pp::Size(16, 16), true); if (!b.is_null()) return "Negative image data format accepted"; + PASS(); +} +std::string TestImageData::SubTestFormatSupported(PP_ImageDataFormat format) { + if (!pp::ImageData::IsImageDataFormatSupported(format)) + return "ImageData::IsImageDataFormatSupported(format) returned false"; PASS(); } -std::string TestImageData::TestInvalidSize() { - pp::ImageData zero_size(instance_, PP_IMAGEDATAFORMAT_BGRA_PREMUL, - pp::Size(0, 0), true); +std::string TestImageData::TestFormatSupported() { + ASSERT_SUBTEST_SUCCESS(SubTestFormatSupported( + PP_IMAGEDATAFORMAT_BGRA_PREMUL)); + ASSERT_SUBTEST_SUCCESS(SubTestFormatSupported( + PP_IMAGEDATAFORMAT_RGBA_PREMUL)); + PASS(); +} + +std::string TestImageData::TestGetNativeFormat() { + PP_ImageDataFormat format = pp::ImageData::GetNativeImageDataFormat(); + if (!pp::ImageData::IsImageDataFormatSupported(format)) + return "ImageData::GetNativeImageDataFormat() returned unsupported format"; + PASS(); +} + +std::string TestImageData::SubTestInvalidSize(PP_ImageDataFormat format) { + pp::ImageData zero_size(instance_, format, pp::Size(0, 0), true); if (!zero_size.is_null()) return "Zero width and height accepted"; - pp::ImageData zero_height(instance_, PP_IMAGEDATAFORMAT_BGRA_PREMUL, - pp::Size(16, 0), true); + pp::ImageData zero_height(instance_, format, pp::Size(16, 0), true); if (!zero_height.is_null()) return "Zero height accepted"; - pp::ImageData zero_width(instance_, PP_IMAGEDATAFORMAT_BGRA_PREMUL, - pp::Size(0, 16), true); + pp::ImageData zero_width(instance_, format, pp::Size(0, 16), true); if (!zero_width.is_null()) return "Zero width accepted"; @@ -61,7 +80,7 @@ std::string TestImageData::TestInvalidSize() { negative_height.height = -2; PP_Resource rsrc = image_data_interface_->Create( instance_->pp_instance(), - PP_IMAGEDATAFORMAT_BGRA_PREMUL, + format, &negative_height, PP_TRUE); if (rsrc) return "Negative height accepted"; @@ -71,7 +90,7 @@ std::string TestImageData::TestInvalidSize() { negative_width.height = 16; rsrc = image_data_interface_->Create( instance_->pp_instance(), - PP_IMAGEDATAFORMAT_BGRA_PREMUL, + format, &negative_width, PP_TRUE); if (rsrc) return "Negative width accepted"; @@ -79,27 +98,38 @@ std::string TestImageData::TestInvalidSize() { PASS(); } -std::string TestImageData::TestHugeSize() { - pp::ImageData huge_size(instance_, PP_IMAGEDATAFORMAT_BGRA_PREMUL, +std::string TestImageData::TestInvalidSize() { + ASSERT_SUBTEST_SUCCESS(SubTestInvalidSize(PP_IMAGEDATAFORMAT_BGRA_PREMUL)); + ASSERT_SUBTEST_SUCCESS(SubTestInvalidSize(PP_IMAGEDATAFORMAT_RGBA_PREMUL)); + PASS(); +} + +std::string TestImageData::SubTestHugeSize(PP_ImageDataFormat format) { + pp::ImageData huge_size(instance_, format, pp::Size(100000000, 100000000), true); if (!huge_size.is_null()) return "31-bit overflow size accepted"; PASS(); } -std::string TestImageData::TestInitToZero() { +std::string TestImageData::TestHugeSize() { + ASSERT_SUBTEST_SUCCESS(SubTestHugeSize(PP_IMAGEDATAFORMAT_BGRA_PREMUL)); + ASSERT_SUBTEST_SUCCESS(SubTestHugeSize(PP_IMAGEDATAFORMAT_RGBA_PREMUL)); + PASS(); +} + +std::string TestImageData::SubTestInitToZero(PP_ImageDataFormat format) { const int w = 5; const int h = 6; - pp::ImageData img(instance_, PP_IMAGEDATAFORMAT_BGRA_PREMUL, - pp::Size(w, h), true); + pp::ImageData img(instance_, format, pp::Size(w, h), true); if (img.is_null()) return "Could not create bitmap"; // Basic validity checking of the bitmap. This also tests "describe" since - // that's where the image data object got its imfo from. + // that's where the image data object got its info from. if (img.size().width() != w || img.size().height() != h) return "Wrong size"; - if (img.format() != PP_IMAGEDATAFORMAT_BGRA_PREMUL) + if (img.format() != format) return "Wrong format"; if (img.stride() < w * 4) return "Stride too small"; @@ -116,6 +146,23 @@ std::string TestImageData::TestInitToZero() { PASS(); } +std::string TestImageData::TestInitToZero() { + ASSERT_SUBTEST_SUCCESS(SubTestInitToZero(PP_IMAGEDATAFORMAT_BGRA_PREMUL)); + ASSERT_SUBTEST_SUCCESS(SubTestInitToZero(PP_IMAGEDATAFORMAT_RGBA_PREMUL)); + PASS(); +} + +std::string TestImageData::SubTestIsImageData(PP_ImageDataFormat format) { + // Make a valid image resource. + const int w = 16, h = 16; + pp::ImageData img(instance_, format, pp::Size(w, h), true); + if (img.is_null()) + return "Couldn't create image data"; + if (!image_data_interface_->IsImageData(img.pp_resource())) + return "Image data should be identified as an image"; + PASS(); +} + std::string TestImageData::TestIsImageData() { // Test that a NULL resource isn't an image data. pp::Resource null_resource; @@ -130,13 +177,7 @@ std::string TestImageData::TestIsImageData() { if (image_data_interface_->IsImageData(device.pp_resource())) return "Device context was reported as an image"; - // Make a valid image resource. - pp::ImageData img(instance_, PP_IMAGEDATAFORMAT_BGRA_PREMUL, - pp::Size(w, h), true); - if (img.is_null()) - return "Couldn't create image data"; - if (!image_data_interface_->IsImageData(img.pp_resource())) - return "Image data should be identified as an image"; - + ASSERT_SUBTEST_SUCCESS(SubTestIsImageData(PP_IMAGEDATAFORMAT_BGRA_PREMUL)); + ASSERT_SUBTEST_SUCCESS(SubTestIsImageData(PP_IMAGEDATAFORMAT_RGBA_PREMUL)); PASS(); } diff --git a/ppapi/tests/test_image_data.h b/ppapi/tests/test_image_data.h index b555d6d..9e1441c 100644 --- a/ppapi/tests/test_image_data.h +++ b/ppapi/tests/test_image_data.h @@ -5,6 +5,8 @@ #ifndef PPAPI_TESTS_TEST_IMAGE_DATA_H_ #define PPAPI_TESTS_TEST_IMAGE_DATA_H_ +#include <string> + #include "ppapi/c/ppb_image_data.h" #include "ppapi/tests/test_case.h" @@ -18,11 +20,20 @@ class TestImageData : public TestCase { private: std::string TestInvalidFormat(); + std::string TestGetNativeFormat(); + std::string TestFormatSupported(); std::string TestInvalidSize(); std::string TestHugeSize(); std::string TestInitToZero(); std::string TestIsImageData(); + // Subtests used by tests above; pass in a pixel format. + std::string SubTestFormatSupported(PP_ImageDataFormat format); + std::string SubTestInvalidSize(PP_ImageDataFormat format); + std::string SubTestHugeSize(PP_ImageDataFormat format); + std::string SubTestInitToZero(PP_ImageDataFormat format); + std::string SubTestIsImageData(PP_ImageDataFormat format); + // Used by the tests that access the C API directly. const PPB_ImageData* image_data_interface_; }; |