+int UtcDaliImageViewSvgRasterizationFailure(void)
+{
+ ToolkitTestApplication application;
+
+ gResourceReadySignalFired = false;
+
+ ImageView imageView = ImageView::New( TEST_RESOURCE_DIR "/svg1.svg" );
+ imageView.SetProperty( Actor::Property::SIZE, Vector2( 200.f, 200.f ) );
+ imageView.ResourceReadySignal().Connect( &ResourceReadySignal);
+
+ DALI_TEST_EQUALS( imageView.IsResourceReady(), false, TEST_LOCATION );
+
+ application.GetScene().Add( imageView );
+
+ application.SendNotification();
+
+ // loading started, this waits for the loader thread
+ DALI_TEST_EQUALS( Test::WaitForEventThreadTrigger( 1 ), true, TEST_LOCATION );
+
+ application.SendNotification();
+ application.Render(16);
+
+ DALI_TEST_EQUALS( gResourceReadySignalFired, true, TEST_LOCATION );
+ DALI_TEST_EQUALS( imageView.IsResourceReady(), true, TEST_LOCATION );
+ DALI_TEST_EQUALS( imageView.GetVisualResourceStatus( ImageView::Property::IMAGE ), Visual::ResourceStatus::READY, TEST_LOCATION );
+
+ // Reset flag
+ gResourceReadySignalFired = false;
+
+ // Change size
+ imageView.SetProperty( Actor::Property::SIZE, Vector2( 0.f, 0.f ) );
+
+ application.SendNotification();
+
+ // rasterization started, this waits for the rasterize thread
+ DALI_TEST_EQUALS( Test::WaitForEventThreadTrigger( 1 ), true, TEST_LOCATION );
+
+ application.SendNotification();
+ application.Render(16);
+
+ DALI_TEST_EQUALS( gResourceReadySignalFired, true, TEST_LOCATION );
+ DALI_TEST_EQUALS( imageView.IsResourceReady(), true, TEST_LOCATION );
+ // Fail to rasterize because the size is 0.
+ DALI_TEST_EQUALS( imageView.GetVisualResourceStatus( ImageView::Property::IMAGE ), Visual::ResourceStatus::FAILED, TEST_LOCATION );
+
+ END_TEST;
+}
+