#include <dali-toolkit-test-suite-utils.h>
#include <dali-toolkit/dali-toolkit.h>
+#include <dali/devel-api/scripting/scripting.h>
using namespace Dali;
using namespace Toolkit;
namespace
{
const char* TEST_IMAGE_FILE_NAME = "gallery_image_01.jpg";
+const char* TEST_IMAGE_FILE_NAME2 = "gallery_image_02.jpg";
+
+void TestImage( ImageView imageView, BufferImage image )
+{
+ Property::Value value = imageView.GetProperty( imageView.GetPropertyIndex( "image" ) );
+
+ Property::Map map;
+ DALI_TEST_CHECK( value.Get( map ) );
+
+ DALI_TEST_CHECK( map.Find( "width" ) );
+ DALI_TEST_CHECK( map.Find( "height" ) );
+ DALI_TEST_CHECK( map.Find( "type" ) );
+
+ int width = 0;
+ DALI_TEST_CHECK( map[ "width" ].Get( width ) );
+ DALI_TEST_EQUALS( (unsigned int)width, image.GetWidth(), TEST_LOCATION );
+
+ int height = 0;
+ DALI_TEST_CHECK( map[ "height" ].Get( height ) );
+ DALI_TEST_EQUALS( (unsigned int)height, image.GetHeight(), TEST_LOCATION );
+
+ std::string type;
+ DALI_TEST_CHECK( map[ "type" ].Get( type ) );
+ DALI_TEST_EQUALS( type, "BufferImage", TEST_LOCATION );
+}
+
+void TestImage( ImageView imageView, ResourceImage image )
+{
+ Property::Value value = imageView.GetProperty( imageView.GetPropertyIndex( "image" ) );
+
+ Property::Map map;
+ DALI_TEST_CHECK( value.Get( map ) );
+
+ if( map.Find( "width" ) )
+ {
+ int width = 0;
+ DALI_TEST_CHECK( map[ "width" ].Get( width ) );
+ DALI_TEST_EQUALS( (unsigned int)width, image.GetWidth(), TEST_LOCATION );
+ }
+
+ if( map.Find( "height" ) )
+ {
+ int height = 0;
+ DALI_TEST_CHECK( map[ "height" ].Get( height ) );
+ DALI_TEST_EQUALS( (unsigned int)height, image.GetHeight(), TEST_LOCATION );
+ }
+
+ DALI_TEST_CHECK( map.Find( "type" ) );
+
+ std::string type;
+ DALI_TEST_CHECK( map[ "type" ].Get( type ) );
+ DALI_TEST_EQUALS( type, "ResourceImage", TEST_LOCATION );
+
+ std::string filename;
+ DALI_TEST_CHECK( map[ "filename" ].Get( filename ) );
+ DALI_TEST_EQUALS( filename, image.GetUrl(), TEST_LOCATION );
+}
+
+void TestUrl( ImageView imageView, const std::string url )
+{
+ Property::Value value = imageView.GetProperty( imageView.GetPropertyIndex( "image" ) );
+
+ std::string urlActual;
+ DALI_TEST_CHECK( value.Get( urlActual ) );
+ DALI_TEST_EQUALS( urlActual, url, TEST_LOCATION );
+}
+
} // namespace
int UtcDaliImageViewNewP(void)
{
TestApplication application;
- Image image = CreateBufferImage( 100, 200, Vector4( 1.f, 1.f, 1.f, 1.f ) );
+ BufferImage image = CreateBufferImage( 100, 200, Vector4( 1.f, 1.f, 1.f, 1.f ) );
ImageView imageView = ImageView::New( image );
DALI_TEST_CHECK( imageView );
- DALI_TEST_EQUALS( image, imageView.GetImage(), TEST_LOCATION );
+ TestImage( imageView, image );
END_TEST;
}
ImageView imageView = ImageView::New( TEST_IMAGE_FILE_NAME );
DALI_TEST_CHECK( imageView );
- DALI_TEST_CHECK( imageView.GetImage() );
- Property::Value val = imageView.GetProperty( imageView.GetPropertyIndex( "resource-url" ) );
- std::string resource_url;
- DALI_TEST_CHECK( val.Get( resource_url ) );
- DALI_TEST_EQUALS( resource_url, TEST_IMAGE_FILE_NAME, TEST_LOCATION );
-
- Image image = imageView.GetImage();
- DALI_TEST_CHECK( image );
-
- ResourceImage resourceImage = ResourceImage::DownCast( image );
- DALI_TEST_CHECK( resourceImage );
- DALI_TEST_EQUALS( resourceImage.GetUrl(), TEST_IMAGE_FILE_NAME, TEST_LOCATION );
+ TestUrl( imageView, TEST_IMAGE_FILE_NAME );
END_TEST;
}
END_TEST;
}
-int UtcDaliImageViewSetGetProperty(void)
+int UtcDaliImageViewSetGetProperty01(void)
{
ToolkitTestApplication application;
ImageView imageView = ImageView::New();
- Property::Index idx = imageView.GetPropertyIndex( "resource-url" );
- DALI_TEST_EQUALS( idx, ImageView::Property::RESOURCE_URL, TEST_LOCATION );
+ Property::Index idx = imageView.GetPropertyIndex( "image" );
+ DALI_TEST_EQUALS( idx, (Property::Index)ImageView::Property::IMAGE, TEST_LOCATION );
imageView.SetProperty( idx, TEST_IMAGE_FILE_NAME );
- Property::Value val = imageView.GetProperty( idx );
- std::string resource_url;
- DALI_TEST_CHECK( val.Get( resource_url ) );
- DALI_TEST_EQUALS( resource_url, TEST_IMAGE_FILE_NAME, TEST_LOCATION );
+ TestUrl( imageView, TEST_IMAGE_FILE_NAME );
- Image image = imageView.GetImage();
- DALI_TEST_CHECK( image );
+ END_TEST;
+}
- ResourceImage resourceImage = ResourceImage::DownCast( image );
- DALI_TEST_CHECK( resourceImage );
- DALI_TEST_EQUALS( resourceImage.GetUrl(), TEST_IMAGE_FILE_NAME, TEST_LOCATION );
+int UtcDaliImageViewSetGetProperty02(void)
+{
+ ToolkitTestApplication application;
+
+ Image image = CreateBufferImage( 10, 10, Color::WHITE );
+ ImageView imageView = ImageView::New(image);
+ Vector4 fullImageRect( 0.f, 0.f, 1.f, 1.f );
+
+ Stage::GetCurrent().Add( imageView );
+
+ application.SendNotification();
+ application.Render();
+ TestGlAbstraction& gl = application.GetGlAbstraction();
+
+ Vector4 pixelAreaUniform;
+ DALI_TEST_CHECK( gl.GetUniformValue<Vector4>( "pixelArea", pixelAreaUniform ) );
+ DALI_TEST_EQUALS( pixelAreaUniform, fullImageRect, TEST_LOCATION );
+
+ Property::Value value = imageView.GetProperty( ImageView::Property::PIXEL_AREA );
+ Vector4 pixelAreaValue;
+ DALI_TEST_CHECK( value.Get(pixelAreaValue) );
+ DALI_TEST_EQUALS( pixelAreaValue, fullImageRect, TEST_LOCATION );
+
+ Vector4 pixelAreaSet( 0.2f, 0.2f, 0.3f, 0.3f );
+ imageView.SetProperty( ImageView::Property::PIXEL_AREA, pixelAreaSet);
+
+ application.SendNotification();
+ application.Render();
+
+ value = imageView.GetProperty( ImageView::Property::PIXEL_AREA );
+ value.Get(pixelAreaValue);
+ DALI_TEST_EQUALS( pixelAreaValue, pixelAreaSet, TEST_LOCATION );
+
+ DALI_TEST_CHECK( gl.GetUniformValue<Vector4>( "pixelArea", pixelAreaUniform ) );
+ DALI_TEST_EQUALS( pixelAreaUniform, pixelAreaSet, TEST_LOCATION );
END_TEST;
}
-
int UtcDaliImageViewSizeWithBackground(void)
{
ToolkitTestApplication application;
application.SendNotification();
application.Render();
- DALI_TEST_EQUALS( imageView.GetCurrentSize().width, width, TEST_LOCATION );
- DALI_TEST_EQUALS( imageView.GetCurrentSize().height, height, TEST_LOCATION );
+ DALI_TEST_EQUALS( imageView.GetCurrentSize().width, (float)width, TEST_LOCATION );
+ DALI_TEST_EQUALS( imageView.GetCurrentSize().height, (float)height, TEST_LOCATION );
END_TEST;
}
application.SendNotification();
application.Render();
- DALI_TEST_EQUALS( imageView.GetCurrentSize().width, width, TEST_LOCATION );
- DALI_TEST_EQUALS( imageView.GetCurrentSize().height, height, TEST_LOCATION );
+ DALI_TEST_EQUALS( imageView.GetCurrentSize().width, (float)width, TEST_LOCATION );
+ DALI_TEST_EQUALS( imageView.GetCurrentSize().height, (float)height, TEST_LOCATION );
END_TEST;
}
application.SendNotification();
application.Render();
- DALI_TEST_EQUALS( imageView.GetHeightForWidth( width ), height, TEST_LOCATION );
- DALI_TEST_EQUALS( imageView.GetWidthForHeight( height ), width, TEST_LOCATION );
+ DALI_TEST_EQUALS( imageView.GetHeightForWidth( width ), (float)height, TEST_LOCATION );
+ DALI_TEST_EQUALS( imageView.GetWidthForHeight( height ), (float)width, TEST_LOCATION );
END_TEST;
}
{
ToolkitTestApplication application;
- int width = 300;
- int height = 400;
- Image image = CreateBufferImage( width, height, Vector4( 1.f, 1.f, 1.f, 1.f ) );
+ int width1 = 300;
+ int height1 = 400;
+ BufferImage image1 = CreateBufferImage( width1, height1, Vector4( 1.f, 1.f, 1.f, 1.f ) );
ImageView imageView = ImageView::New();
- imageView.SetImage( image );
+ imageView.SetImage( image1 );
- std::string resource_url;
- Property::Value val = imageView.GetProperty( imageView.GetPropertyIndex( "resource-url" ) );
- DALI_TEST_CHECK( val.Get( resource_url ) );
- DALI_TEST_CHECK( resource_url.empty() );
+ TestImage( imageView, image1 );
+
+ int width2 = 600;
+ int height2 = 500;
+ BufferImage image2 = CreateBufferImage( width2, height2, Vector4( 1.f, 1.f, 1.f, 1.f ) );
+ imageView.SetImage( image2 );
+
+ TestImage( imageView, image2 );
END_TEST;
}
-int UtcDaliImageViewSetResourceImage(void)
+int UtcDaliImageViewSetImageUrl(void)
{
ToolkitTestApplication application;
- Image image = ResourceImage::New( TEST_IMAGE_FILE_NAME );
ImageView imageView = ImageView::New();
- imageView.SetImage( image );
+ imageView.SetImage( TEST_IMAGE_FILE_NAME );
+ TestUrl( imageView, TEST_IMAGE_FILE_NAME );
- std::string resource_url;
- Property::Value val = imageView.GetProperty( imageView.GetPropertyIndex( "resource-url" ) );
- DALI_TEST_CHECK( val.Get( resource_url ) );
- DALI_TEST_EQUALS( resource_url, TEST_IMAGE_FILE_NAME, TEST_LOCATION );
+
+ imageView.SetImage( TEST_IMAGE_FILE_NAME2 );
+ TestUrl( imageView, TEST_IMAGE_FILE_NAME2 );
END_TEST;
}
application.SendNotification();
application.Render();
- Image image1 = ResourceImage::New( TEST_IMAGE_FILE_NAME );
+ ResourceImage image1 = ResourceImage::New( TEST_IMAGE_FILE_NAME );
imageView.SetImage( image1 );
-
- Image image2 = imageView.GetImage();
- DALI_TEST_EQUALS( image1, image2, TEST_LOCATION );
+ TestImage( imageView, image1 );
int width = 300;
int height = 400;
- Image image3 = CreateBufferImage( width, height, Vector4( 1.f, 1.f, 1.f, 1.f ) );
- imageView.SetImage( image3 );
-
- Image image4 = imageView.GetImage();
- DALI_TEST_EQUALS( image3, image4, TEST_LOCATION );
+ BufferImage image2 = CreateBufferImage( width, height, Vector4( 1.f, 1.f, 1.f, 1.f ) );
+ imageView.SetImage( image2 );
+ TestImage( imageView, image2 );
END_TEST;
}
application.SendNotification();
application.Render();
- Image image1 = ResourceImage::New( TEST_IMAGE_FILE_NAME );
+ ResourceImage image1 = ResourceImage::New( TEST_IMAGE_FILE_NAME );
imageView.SetImage( image1 );
+ TestImage( imageView, image1 );
+
+ Image image2;
+ imageView.SetImage( image2 );
- Image image2 = imageView.GetImage();
- DALI_TEST_EQUALS( image1, image2, TEST_LOCATION );
+ Property::Value value = imageView.GetProperty( imageView.GetPropertyIndex( "image" ) );
- Image image3;
- imageView.SetImage( image3 );
+ //the value should be empty
+ std::string url;
+ DALI_TEST_CHECK( !value.Get( url ) );
- Image image4 = imageView.GetImage();
- DALI_TEST_CHECK( !image4 );
+ Property::Map map;
+ DALI_TEST_CHECK( !value.Get( map ) );
END_TEST;
}
application.Render();
Stage::GetCurrent().Remove( imageView );
- Image image1 = ResourceImage::New( TEST_IMAGE_FILE_NAME );
+ ResourceImage image1 = ResourceImage::New( TEST_IMAGE_FILE_NAME );
imageView.SetImage( image1 );
-
- Image image2 = imageView.GetImage();
- DALI_TEST_EQUALS( image1, image2, TEST_LOCATION );
+ TestImage( imageView, image1 );
int width = 300;
int height = 400;
- Image image3 = CreateBufferImage( width, height, Vector4( 1.f, 1.f, 1.f, 1.f ) );
- imageView.SetImage( image3 );
-
- Image image4 = imageView.GetImage();
- DALI_TEST_EQUALS( image3, image4, TEST_LOCATION );
+ BufferImage image2 = CreateBufferImage( width, height, Vector4( 1.f, 1.f, 1.f, 1.f ) );
+ imageView.SetImage( image2 );
+ TestImage( imageView, image2 );
END_TEST;
}
application.Render();
Stage::GetCurrent().Remove( imageView );
- Image image1 = ResourceImage::New( TEST_IMAGE_FILE_NAME );
+ ResourceImage image1 = ResourceImage::New( TEST_IMAGE_FILE_NAME );
imageView.SetImage( image1 );
+ TestImage( imageView, image1 );
- Image image2 = imageView.GetImage();
- DALI_TEST_EQUALS( image1, image2, TEST_LOCATION );
+ Image image2;
+ imageView.SetImage( image2 );
- Image image3;
- imageView.SetImage( image3 );
+ Property::Value value = imageView.GetProperty( imageView.GetPropertyIndex( "image" ) );
- Image image4 = imageView.GetImage();
- DALI_TEST_CHECK( !image4 );
+ //the value should be empty
+ std::string url;
+ DALI_TEST_CHECK( !value.Get( url ) );
+
+ Property::Map map;
+ DALI_TEST_CHECK( !value.Get( map ) );
END_TEST;
}
ImageView imageView = ImageView::New();
imageView.SetImage( image1 );
- Image image2 = imageView.GetImage();
- DALI_TEST_CHECK( !image2 );
+ Property::Value value = imageView.GetProperty( imageView.GetPropertyIndex( "image" ) );
+
+ //the value should be empty
+ std::string url;
+ DALI_TEST_CHECK( !value.Get( url ) );
+
+ Property::Map map;
+ DALI_TEST_CHECK( !value.Get( map ) );
std::string resource_url;
- Property::Value val = imageView.GetProperty( imageView.GetPropertyIndex( "resource-url" ) );
- DALI_TEST_CHECK( val.Get( resource_url ) );
- DALI_TEST_CHECK( resource_url.empty() );
+ Property::Value val = imageView.GetProperty( imageView.GetPropertyIndex( "image" ) );
+ DALI_TEST_CHECK( !val.Get( resource_url ) );
+
+ END_TEST;
+}
+
+int UtcDaliImageViewSetImageTypeChangesP(void)
+{
+ ToolkitTestApplication application;
+
+ ImageView imageView = ImageView::New();
+
+
+ std::string url;
+ Property::Map map;
+
+ Property::Value value = imageView.GetProperty( imageView.GetPropertyIndex( "image" ) );
+ DALI_TEST_CHECK( ! value.Get( url ) ); // Value should be empty
+ DALI_TEST_CHECK( ! value.Get( map ) ); // Value should be empty
+
+ // Set a URL
+ imageView.SetImage( "TEST_URL" );
+ value = imageView.GetProperty( imageView.GetPropertyIndex( "image" ) );
+
+ DALI_TEST_CHECK( value.Get( url ) ); // Value should NOT be empty
+ DALI_TEST_CHECK( ! value.Get( map ) ); // Value should be empty
+
+ // Set an empty Image
+ imageView.SetImage( Image() );
+ value = imageView.GetProperty( imageView.GetPropertyIndex( "image" ) );
+
+ DALI_TEST_CHECK( ! value.Get( url ) ); // Value should be empty
+ DALI_TEST_CHECK( ! value.Get( map ) ); // Value should be empty
+
+ // Set an Image
+ ResourceImage image1 = ResourceImage::New( TEST_IMAGE_FILE_NAME );
+ imageView.SetImage( image1 );
+ value = imageView.GetProperty( imageView.GetPropertyIndex( "image" ) );
+
+ DALI_TEST_CHECK( ! value.Get( url ) ); // Value should be empty
+ DALI_TEST_CHECK( value.Get( map ) ); // Value should NOT be empty
+
+ // Set an empty URL
+ imageView.SetImage( "" );
+ value = imageView.GetProperty( imageView.GetPropertyIndex( "image" ) );
+
+ DALI_TEST_CHECK( ! value.Get( url ) ); // Value should be empty
+ DALI_TEST_CHECK( ! value.Get( map ) ); // Value should be empty
+
+ END_TEST;
+}
+
+int UtcDaliImageViewResourceUrlP(void)
+{
+ ToolkitTestApplication application;
+
+ ImageView imageView = ImageView::New();
+ DALI_TEST_CHECK( imageView.GetProperty( ImageView::Property::RESOURCE_URL ).Get< std::string >().empty() );
+
+ imageView.SetProperty( ImageView::Property::RESOURCE_URL, "TestString" );
+ DALI_TEST_EQUALS( imageView.GetProperty( ImageView::Property::RESOURCE_URL ).Get< std::string >(), "TestString", TEST_LOCATION );
END_TEST;
}