From 947ec754628ca1b236a10d185aba99879ef24efe Mon Sep 17 00:00:00 2001 From: Xiangyin Ma Date: Tue, 26 May 2015 18:32:09 +0100 Subject: [PATCH] UTC coverage for public-api/images Change-Id: Ief02f31b952f94d9d20c141af2301ebfeee366c2 --- .../src/dali/utc-Dali-FrameBufferImage.cpp | 30 +++ automated-tests/src/dali/utc-Dali-NativeImage.cpp | 19 ++ .../src/dali/utc-Dali-NinePatchImages.cpp | 219 ++++++++++++++------- automated-tests/src/dali/utc-Dali-Pixel.cpp | 4 + 4 files changed, 204 insertions(+), 68 deletions(-) diff --git a/automated-tests/src/dali/utc-Dali-FrameBufferImage.cpp b/automated-tests/src/dali/utc-Dali-FrameBufferImage.cpp index 7e86c5c..3188c98 100644 --- a/automated-tests/src/dali/utc-Dali-FrameBufferImage.cpp +++ b/automated-tests/src/dali/utc-Dali-FrameBufferImage.cpp @@ -96,6 +96,36 @@ int UtcDaliFrameBufferImageNew02(void) END_TEST; } +int UtcDaliFrameBufferImageNew03(void) +{ + TestApplication application; + + tet_infoline("UtcDaliFrameBufferImageNew03 - FrameBufferImage::New(NativeImageInterface&, ReleasePolicy)"); + + // invoke default handle constructor + FrameBufferImage image; + TestNativeImagePointer nativeImage = TestNativeImage::New(16, 16); + + DALI_TEST_CHECK( !image ); + + // initialise handle with UNUSED release policy + image = FrameBufferImage::New(*(nativeImage.Get()), Image::UNUSED); + + DALI_TEST_CHECK( image ); + DALI_TEST_EQUALS( image.GetReleasePolicy(), Image::UNUSED, TEST_LOCATION ); + + // initialise handle with NEVER release policy + image.Reset(); + DALI_TEST_CHECK( !image ); + + image = FrameBufferImage::New(*(nativeImage.Get()), Image::NEVER); + + DALI_TEST_CHECK( image ); + DALI_TEST_EQUALS( image.GetReleasePolicy(), Image::NEVER, TEST_LOCATION ); + + END_TEST; +} + int UtcDaliFrameBufferImageDownCast(void) { TestApplication application; diff --git a/automated-tests/src/dali/utc-Dali-NativeImage.cpp b/automated-tests/src/dali/utc-Dali-NativeImage.cpp index bf7b98b..9082546 100644 --- a/automated-tests/src/dali/utc-Dali-NativeImage.cpp +++ b/automated-tests/src/dali/utc-Dali-NativeImage.cpp @@ -53,6 +53,25 @@ int UtcDaliNativeImageNew(void) END_TEST; } +int UtcDaliNativeImageCopyConstructor(void) +{ + TestApplication application; + + tet_infoline("UtcDaliNativeImageCopyConstructor - NativeImage::NativeImage( const NativeImage& )"); + + NativeImage image1; + DALI_TEST_CHECK( !image1 ); + + TestNativeImagePointer nativeImage = TestNativeImage::New(16, 16); + image1 = NativeImage::New(*(nativeImage.Get())); + NativeImage image2( image1 ); + + DALI_TEST_CHECK( image2 ); + DALI_TEST_EQUALS( image1, image2, TEST_LOCATION ); + + END_TEST; +} + int UtcDaliNativeImageDownCast(void) { TestApplication application; diff --git a/automated-tests/src/dali/utc-Dali-NinePatchImages.cpp b/automated-tests/src/dali/utc-Dali-NinePatchImages.cpp index 21ee17a..5e0fc4c 100644 --- a/automated-tests/src/dali/utc-Dali-NinePatchImages.cpp +++ b/automated-tests/src/dali/utc-Dali-NinePatchImages.cpp @@ -112,30 +112,16 @@ void AddChildRegionsToImage( Integration::Bitmap* image, unsigned int imageWidth } } -} // namespace - -int UtcDaliNinePatch01(void) +NinePatchImage CustomizeNinePatch( TestApplication& application, + unsigned int ninePatchImageWidth, + unsigned int ninePatchImageHeight, + const Vector4& requiredStretchBorder, + bool addChildRegion = false, + Vector4 requiredChildRegion = Vector4::ZERO ) { - /* Stretch region left(3) top(2) right (3) bottom (2) - * ss - * OOOOOO - * OOOOOOc - * sOOooOOc - * sOOooOOc - * OOOOOOc - * OOOOOO - * cccc - */ - - TestApplication application; TestPlatformAbstraction& platform = application.GetPlatform(); - tet_infoline("UtcDaliNinePatchImage - Stretch Regions"); - - const unsigned int ninePatchImageHeight = 8; - const unsigned int ninePatchImageWidth = 8; Pixel::Format pixelFormat = Pixel::RGBA8888; - const Vector4 requiredStretchBorder( 3, 3, 3, 3); tet_infoline("Create Bitmap"); platform.SetClosestImageSize(Vector2( ninePatchImageWidth, ninePatchImageHeight)); @@ -147,40 +133,138 @@ int UtcDaliNinePatch01(void) tet_infoline("Add Stretch regions to Bitmap"); AddStretchRegionsToImage( bitmap, ninePatchImageWidth, ninePatchImageHeight, requiredStretchBorder, pixelFormat ); + if( addChildRegion ) + { + tet_infoline("Add Child regions to Bitmap"); + AddChildRegionsToImage( bitmap, ninePatchImageWidth, ninePatchImageHeight, requiredChildRegion, pixelFormat ); + } + tet_infoline("Getting resource"); Integration::ResourcePointer resourcePtr(bitmap); platform.SetResourceLoaded( 0, Dali::Integration::ResourceBitmap, resourcePtr ); Image image = ResourceImage::New( "blah.#.png" ); - DALI_TEST_CHECK( image ); tet_infoline("Assign image to ImageActor"); ImageActor imageActor = ImageActor::New( image ); - DALI_TEST_CHECK( imageActor ); Stage::GetCurrent().Add( imageActor ); tet_infoline("Downcast Image to a nine-patch image\n"); NinePatchImage ninePatchImage = NinePatchImage::DownCast( image ); - DALI_TEST_CHECK( ninePatchImage ); - if ( ninePatchImage ) - { - tet_infoline("Get Stretch regions from NinePatch"); - Vector4 stretchBorders = ninePatchImage.GetStretchBorders(); - tet_printf("stretchBorders left(%f) right(%f) top(%f) bottom(%f)\n", stretchBorders.x, stretchBorders.z, stretchBorders.y, stretchBorders.w ); - DALI_TEST_CHECK( stretchBorders == requiredStretchBorder ); - } - else - { - tet_infoline("Image not NinePatch"); - test_return_value = TET_FAIL; - } + return ninePatchImage; +} + +} // namespace + +int UtcDaliNinePatchImageNew(void) +{ + TestApplication application; + tet_infoline("UtcDaliNinePatchImageNew - NinePatchImage::New(const std::string&)"); + + // invoke default handle constructor + NinePatchImage image; + + DALI_TEST_CHECK( !image ); + + // initialise handle + image = NinePatchImage::New("blah.#.png"); + + DALI_TEST_CHECK( image ); + END_TEST; +} + +int UtcDaliNinePatchImageDowncast(void) +{ + TestApplication application; + tet_infoline("UtcDaliNinePatchImageDowncast - NinePatchImage::DownCast(BaseHandle)"); + + NinePatchImage image = NinePatchImage::New("blah.#.png"); + + BaseHandle object(image); + + NinePatchImage image2 = NinePatchImage::DownCast(object); + DALI_TEST_CHECK(image2); + + NinePatchImage image3 = DownCast< NinePatchImage >(object); + DALI_TEST_CHECK(image3); + + BaseHandle unInitializedObject; + NinePatchImage image4 = NinePatchImage::DownCast(unInitializedObject); + DALI_TEST_CHECK(!image4); + + NinePatchImage image5 = DownCast< NinePatchImage >(unInitializedObject); + DALI_TEST_CHECK(!image5); + + Image image6 = NinePatchImage::New("blah.#.png"); + NinePatchImage image7 = NinePatchImage::DownCast(image6); + DALI_TEST_CHECK(image7); END_TEST; } -int UtcDaliNinePatch02(void) +int UtcDaliNinePatchImageCopyConstructor(void) { + TestApplication application; + + tet_infoline("UtcDaliNinePatchImageCopyConstructor - NinePatchImage::NinePatchImage( const NinePatchImage& )"); + + NinePatchImage image1; + DALI_TEST_CHECK( !image1 ); + + image1 = NinePatchImage::New("blah.#.png"); + NinePatchImage image2( image1 ); + + DALI_TEST_CHECK( image2 ); + DALI_TEST_EQUALS( image1, image2, TEST_LOCATION ); + + END_TEST; +} + +int UtcDaliNinePatchImageGetStrechBorders(void) +{ + TestApplication application; + tet_infoline("UtcDaliNinePatchImageGetStrechBorders - NinePatchImage::GetStretchBorders()"); + + /* Stretch region left(2) top(2) right (2) bottom (2) + * ss + * OOOOOO + * OOOOOOc + * sOOooOOc + * sOOooOOc + * OOOOOOc + * OOOOOO + * cccc + */ + + const unsigned int ninePatchImageHeight = 8; + const unsigned int ninePatchImageWidth = 8; + const Vector4 requiredStretchBorder( 3, 3, 3, 3); + + NinePatchImage ninePatchImage = CustomizeNinePatch( application,ninePatchImageWidth, ninePatchImageHeight, requiredStretchBorder ); + DALI_TEST_CHECK( ninePatchImage ); + + if ( ninePatchImage ) + { + tet_infoline("Get Stretch regions from NinePatch"); + Vector4 stretchBorders = ninePatchImage.GetStretchBorders(); + tet_printf("stretchBorders left(%f) right(%f) top(%f) bottom(%f)\n", stretchBorders.x, stretchBorders.z, stretchBorders.y, stretchBorders.w ); + DALI_TEST_CHECK( stretchBorders == requiredStretchBorder ); + } + else + { + tet_infoline("Image not NinePatch"); + test_return_value = TET_FAIL; + } + + END_TEST; +} + +int UtcDaliNinePatchImageGetChildRectangle(void) +{ + TestApplication application; + tet_infoline("UtcDaliNinePatchImageGetChildRectangle - NinePatchImage::GetChildRectangle()"); + /* Child region x(2) y(2) width (4) height (4) * * ss @@ -193,43 +277,12 @@ int UtcDaliNinePatch02(void) * cccc */ - TestApplication application; - TestPlatformAbstraction& platform = application.GetPlatform(); - - tet_infoline("UtcDaliNinePatchImage - Child Regions"); - const unsigned int ninePatchImageHeight = 8; const unsigned int ninePatchImageWidth = 8; - Pixel::Format pixelFormat = Pixel::RGBA8888; const Vector4 requiredChildRegion( 2, 2, 2, 2 ); const Vector4 requiredStretchBorder( 3, 3, 3, 3); - tet_infoline("Create Bitmap"); - platform.SetClosestImageSize(Vector2( ninePatchImageWidth, ninePatchImageHeight)); - Integration::Bitmap* bitmap = CreateBitmap( ninePatchImageWidth, ninePatchImageHeight, 0xFF, pixelFormat ); - - tet_infoline("Clear border regions"); - InitialiseRegionsToZeroAlpha( bitmap, ninePatchImageWidth, ninePatchImageHeight, pixelFormat ); - - tet_infoline("Add Stretch regions to Bitmap"); - AddStretchRegionsToImage( bitmap, ninePatchImageWidth, ninePatchImageHeight, requiredStretchBorder, pixelFormat ); - - tet_infoline("Add Child regions to Bitmap"); - AddChildRegionsToImage( bitmap, ninePatchImageWidth, ninePatchImageHeight, requiredChildRegion, pixelFormat ); - - tet_infoline("Getting resource"); - Integration::ResourcePointer resourcePtr(bitmap); - platform.SetResourceLoaded( 0, Dali::Integration::ResourceBitmap, resourcePtr ); - Image image = ResourceImage::New( "blah.#.png" ); - DALI_TEST_CHECK( image ); - - tet_infoline("Assign image to ImageActor"); - ImageActor imageActor = ImageActor::New( image ); - DALI_TEST_CHECK( imageActor ); - Stage::GetCurrent().Add( imageActor ); - - tet_infoline("Downcast Image to a nine-patch image\n"); - NinePatchImage ninePatchImage = NinePatchImage::DownCast( image ); + NinePatchImage ninePatchImage = CustomizeNinePatch( application,ninePatchImageWidth, ninePatchImageHeight, requiredStretchBorder, true, requiredChildRegion ); DALI_TEST_CHECK( ninePatchImage ); if ( ninePatchImage ) @@ -248,3 +301,33 @@ int UtcDaliNinePatch02(void) END_TEST; } + +int UtcDaliNinePatchImageCreateCroppedBufferImage(void) +{ + TestApplication application; + tet_infoline("UtcDaliNinePatchImageCreateCroppedBufferImage - NinePatchImage::CreateCroppedBufferImage()"); + + const unsigned int ninePatchImageHeight = 8; + const unsigned int ninePatchImageWidth = 8; + const Vector4 requiredStretchBorder( 1,1,1,1); + + NinePatchImage ninePatchImage = CustomizeNinePatch( application,ninePatchImageWidth, ninePatchImageHeight, requiredStretchBorder ); + DALI_TEST_CHECK( ninePatchImage ); + + if ( ninePatchImage ) + { + BufferImage newImage = ninePatchImage.CreateCroppedBufferImage(); + DALI_TEST_CHECK( newImage ); + + DALI_TEST_EQUALS( newImage.GetPixelFormat(), Pixel::RGBA8888, TEST_LOCATION ); + + DALI_TEST_EQUALS( newImage.GetBufferSize(), 36*4, TEST_LOCATION ); + } + else + { + tet_infoline("Image not NinePatch"); + test_return_value = TET_FAIL; + } + + END_TEST; +} diff --git a/automated-tests/src/dali/utc-Dali-Pixel.cpp b/automated-tests/src/dali/utc-Dali-Pixel.cpp index c73d261..bc2e9c8 100644 --- a/automated-tests/src/dali/utc-Dali-Pixel.cpp +++ b/automated-tests/src/dali/utc-Dali-Pixel.cpp @@ -79,6 +79,7 @@ int UtcDaliPixelHasAlpha(void) DALI_TEST_CHECK( Pixel::HasAlpha( Pixel::COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 ) == true ); DALI_TEST_CHECK( Pixel::HasAlpha( Pixel::COMPRESSED_RGBA8_ETC2_EAC ) == true ); DALI_TEST_CHECK( Pixel::HasAlpha( Pixel::COMPRESSED_SRGB8_ALPHA8_ETC2_EAC) == true ); + END_TEST; } @@ -107,6 +108,9 @@ int UtcDaliPixelGetBytesPerPixel(void) DALI_TEST_CHECK( Pixel::GetBytesPerPixel(Pixel::BGRA8888) == 4); DALI_TEST_CHECK( Pixel::GetBytesPerPixel(Pixel::L8) == 1); + + DALI_TEST_CHECK( Pixel::GetBytesPerPixel(Pixel::COMPRESSED_R11_EAC) == 0); + END_TEST; } -- 2.7.4