2 * Copyright (c) 2019 Samsung Electronics Co., Ltd.
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
23 #include <dali-toolkit-test-suite-utils.h>
24 #include <dali-toolkit/dali-toolkit.h>
25 #include <toolkit-text-utils.h>
28 #include <dali-toolkit/devel-api/text/bitmap-font.h>
29 #include <dali/devel-api/text-abstraction/bitmap-font.h>
30 #include <dali-toolkit/devel-api/text/text-utils-devel.h>
31 #include <devel-api/adaptor-framework/image-loading.h>
37 using namespace Toolkit;
42 const std::string TEST_IMAGE_FILE_NAME1 = TEST_RESOURCE_DIR "/application-icon-20.png";
43 const std::string TEST_IMAGE_FILE_NAME2 = TEST_RESOURCE_DIR "/application-icon-26.png";
45 const std::vector<std::string> embeddedItems = { TEST_IMAGE_FILE_NAME2, TEST_IMAGE_FILE_NAME2, TEST_IMAGE_FILE_NAME2, TEST_IMAGE_FILE_NAME2, TEST_IMAGE_FILE_NAME2 };
47 struct CircularTextData
49 std::string description;
51 DevelText::RendererParameters& textParameters;
52 const std::vector<std::string>& embeddedItems;
57 bool CircularRenderTest( const CircularTextData& data )
61 Dali::Vector<Dali::Toolkit::DevelText::EmbeddedItemInfo> embeddedItemLayout;
63 Devel::PixelBuffer pixelBuffer = Toolkit::DevelText::Render( data.textParameters, embeddedItemLayout );
65 const int dstWidth = static_cast<int>( pixelBuffer.GetWidth() );
66 const int dstHeight = static_cast<int>( pixelBuffer.GetHeight() );
68 unsigned int index = 0u;
69 for( const auto& itemLayout : embeddedItemLayout )
71 int width = static_cast<int>( itemLayout.size.width );
72 int height = static_cast<int>( itemLayout.size.height );
73 int x = static_cast<int>( itemLayout.position.x );
74 int y = static_cast<int>( itemLayout.position.y );
76 Dali::Devel::PixelBuffer itemPixelBuffer = Dali::LoadImageFromFile( data.embeddedItems[index++] );
77 itemPixelBuffer.Resize( width, height );
78 itemPixelBuffer.Rotate( itemLayout.angle );
80 width = static_cast<int>( itemPixelBuffer.GetWidth() );
81 height = static_cast<int>( itemPixelBuffer.GetHeight() );
83 Dali::Pixel::Format itemPixelFormat = itemPixelBuffer.GetPixelFormat();
85 // Check if the item is out of the buffer.
86 if( ( x + width < 0 ) ||
89 ( y - height > dstHeight ) )
91 // The embedded item is completely out of the buffer.
95 // Crop if it exceeds the boundaries of the destination buffer.
100 int newWidth = width;
101 int newHeight = height;
108 cropX = std::abs( x );
116 if( cropX + newWidth > dstWidth )
119 newWidth -= ( ( cropX + newWidth ) - dstWidth );
125 newHeight += layoutY;
126 cropY = std::abs(layoutY);
130 if( cropY + newHeight > dstHeight )
133 newHeight -= ( ( cropY + newHeight ) - dstHeight );
136 uint16_t uiCropX = static_cast<uint16_t>(cropX);
137 uint16_t uiCropY = static_cast<uint16_t>(cropY);
138 uint16_t uiNewWidth = static_cast<uint16_t>(newWidth);
139 uint16_t uiNewHeight = static_cast<uint16_t>(newHeight);
143 itemPixelBuffer.Crop( uiCropX, uiCropY, uiNewWidth, uiNewHeight );
146 // Blend the item pixel buffer with the text's color according its blending mode.
147 if( Dali::TextAbstraction::ColorBlendingMode::MULTIPLY == itemLayout.colorBlendingMode )
149 Dali::Devel::PixelBuffer buffer = Dali::Devel::PixelBuffer::New( uiNewWidth,
153 unsigned char* bufferPtr = buffer.GetBuffer();
154 const unsigned char* itemBufferPtr = itemPixelBuffer.GetBuffer();
155 const unsigned int bytesPerPixel = Dali::Pixel::GetBytesPerPixel(itemPixelFormat);
156 const unsigned int size = uiNewWidth * uiNewHeight * bytesPerPixel;
158 for (unsigned int i = 0u; i < size; i += bytesPerPixel)
160 *(bufferPtr + 0u) = static_cast<unsigned char>( static_cast<float>( *(itemBufferPtr + 0u) ) * data.textParameters.textColor.r );
161 *(bufferPtr + 1u) = static_cast<unsigned char>( static_cast<float>( *(itemBufferPtr + 1u) ) * data.textParameters.textColor.g );
162 *(bufferPtr + 2u) = static_cast<unsigned char>( static_cast<float>( *(itemBufferPtr + 2u) ) * data.textParameters.textColor.b );
163 *(bufferPtr + 3u) = static_cast<unsigned char>( static_cast<float>( *(itemBufferPtr + 3u) ) * data.textParameters.textColor.a );
165 itemBufferPtr += bytesPerPixel;
166 bufferPtr += bytesPerPixel;
169 itemPixelBuffer = buffer;
172 Dali::Toolkit::DevelText::UpdateBuffer(itemPixelBuffer, pixelBuffer, layoutX, layoutY, data.blend);
180 int UtcDaliTextCircularBitmapFont(void)
182 ToolkitTestApplication application;
183 tet_infoline(" UtcDaliTextCircularBitmapFont");
185 Dali::Toolkit::DevelText::BitmapFontDescription description;
186 Dali::Toolkit::DevelText::Glyph glyph;
187 glyph.url = "BitmapFontUrl";
188 glyph.utf8 = "BitmapFontUrl";
189 glyph.ascender = 1.f;
190 glyph.descender = 1.f;
191 description.glyphs.push_back( glyph );
193 TextAbstraction::BitmapFont bitmapFont;
194 Dali::Toolkit::DevelText::CreateBitmapFont( description, bitmapFont );
196 for( const auto& bitmapGlyph : bitmapFont.glyphs )
198 if( glyph.url != bitmapGlyph.url )
200 std::cout << " different output string : " << bitmapGlyph.url << ", expected : " << glyph.url << " " << std::endl;
201 tet_result(TET_FAIL);
205 tet_result(TET_PASS);
209 int UtcDaliTextCircularShadowText(void)
211 ToolkitTestApplication application;
212 tet_infoline(" UtcDaliTextCircularShadowText");
214 Dali::Toolkit::DevelText::ShadowParameters shadowParameters;
215 Devel::PixelBuffer outPixelBuffer;
216 shadowParameters.input = Devel::PixelBuffer::New( 100, 100, Pixel::RGBA8888 );
217 shadowParameters.textColor = Color::BLACK;
218 shadowParameters.color = Color::BLACK;
219 shadowParameters.offset.x = 10u;
220 shadowParameters.offset.y = 10u;
221 shadowParameters.blendShadow = true;
222 outPixelBuffer = Dali::Toolkit::DevelText::CreateShadow( shadowParameters );
223 DALI_TEST_CHECK( outPixelBuffer );
224 DALI_TEST_EQUALS( outPixelBuffer.GetPixelFormat(), Pixel::RGBA8888, TEST_LOCATION );
226 shadowParameters.blendShadow = false;
227 outPixelBuffer = Dali::Toolkit::DevelText::CreateShadow( shadowParameters );
228 DALI_TEST_CHECK( outPixelBuffer );
229 DALI_TEST_EQUALS( outPixelBuffer.GetPixelFormat(), Pixel::RGBA8888, TEST_LOCATION );
231 shadowParameters.input = Devel::PixelBuffer::New( 100, 100, Pixel::A8 );
232 outPixelBuffer = Dali::Toolkit::DevelText::CreateShadow( shadowParameters );
233 DALI_TEST_CHECK( outPixelBuffer );
234 DALI_TEST_EQUALS( outPixelBuffer.GetPixelFormat(), Pixel::RGBA8888, TEST_LOCATION );
236 tet_result(TET_PASS);
240 int UtcDaliTextCircularPixelBufferText(void)
242 ToolkitTestApplication application;
243 tet_infoline(" UtcDaliTextCircularPixelBufferText");
245 Devel::PixelBuffer pixbuf = Devel::PixelBuffer::New( 10, 10, Pixel::A8 );
247 Devel::PixelBuffer pixelBufferRgba = Dali::Toolkit::DevelText::ConvertToRgba8888( pixbuf, color, true );
248 pixelBufferRgba = Dali::Toolkit::DevelText::ConvertToRgba8888( pixbuf, color, false );
249 DALI_TEST_CHECK( pixelBufferRgba );
250 DALI_TEST_EQUALS( pixelBufferRgba.GetPixelFormat(), Pixel::RGBA8888, TEST_LOCATION );
252 pixbuf = Devel::PixelBuffer::New( 10, 10, Pixel::RGBA8888 );
253 pixelBufferRgba = Dali::Toolkit::DevelText::ConvertToRgba8888( pixbuf, color, false );
254 DALI_TEST_CHECK( pixelBufferRgba );
255 DALI_TEST_EQUALS( pixelBufferRgba.GetPixelFormat(), Pixel::RGBA8888, TEST_LOCATION );
257 tet_result(TET_PASS);
261 int UtcDaliTextCircularNoText(void)
263 ToolkitTestApplication application;
264 tet_infoline(" UtcDaliTextCircularNoText");
266 Dali::Toolkit::DevelText::RendererParameters textParameters;
267 textParameters.text = "";
268 textParameters.fontSize = 25.f;
269 textParameters.textWidth = 360u;
270 textParameters.textHeight = 360u;
272 CircularTextData data =
281 if( !CircularRenderTest( data ) )
283 tet_result(TET_FAIL);
286 textParameters.text = "<item 'width'=26 'height'=26/>";
287 textParameters.markupEnabled = true;
288 if( !CircularRenderTest( data ) )
290 tet_result(TET_FAIL);
293 tet_result(TET_PASS);
297 int UtcDaliTextCircularIncrementAngle(void)
300 ToolkitTestApplication application;
301 tet_infoline(" UtcDaliTextCircularIncrementAngle");
303 const std::string image1 = "<item 'width'=26 'height'=26 'url'='" + TEST_IMAGE_FILE_NAME1 + "'/>";
304 const std::string image2 = "<item 'width'=26 'height'=26/>";
306 Dali::Toolkit::DevelText::RendererParameters textParameters;
307 textParameters.text = "Hello " + image1 + " world " + image2 + " this " + image1 + " is " + image2 + " a " + image1 + " demo " + image2 + " of " + image1 + " circular " + image2 + " text " + image1 + " width " + image2 + " icons.";
308 textParameters.horizontalAlignment = "center";
309 textParameters.verticalAlignment = "center";
310 textParameters.circularAlignment = "center";
311 textParameters.fontFamily = "SamsungUI";
312 textParameters.fontWeight = "";
313 textParameters.fontWidth = "";
314 textParameters.fontSlant = "";
315 textParameters.layout = "circular";
316 textParameters.textColor = Color::BLACK;
317 textParameters.fontSize = 25.f;
318 textParameters.textWidth = 360u;
319 textParameters.textHeight = 360u;
320 textParameters.radius = 180u;
321 textParameters.beginAngle = 15.f;
322 textParameters.incrementAngle = 0.f;
323 textParameters.ellipsisEnabled = true;
324 textParameters.markupEnabled = true;
327 CircularTextData data =
336 if( !CircularRenderTest( data ) )
338 tet_result(TET_FAIL);
341 tet_result(TET_PASS);
347 int UtcDaliTextCircularMarkup(void)
349 ToolkitTestApplication application;
350 tet_infoline(" UtcDaliTextCircularMarkup");
352 Dali::Toolkit::DevelText::RendererParameters textParameters;
353 textParameters.text = "Hello World Hello World Hello World Hello World Hello World Hello World Hello World Hello World Hello World Hello World Hello World Hello World Hello World";
354 textParameters.horizontalAlignment = "center";
355 textParameters.verticalAlignment = "center";
356 textParameters.circularAlignment = "center";
357 textParameters.fontFamily = "SamsungUI";
358 textParameters.fontWeight = "";
359 textParameters.fontWidth = "";
360 textParameters.fontSlant = "";
361 textParameters.layout = "circular";
362 textParameters.textColor = Color::BLACK;
363 textParameters.fontSize = 25.f;
364 textParameters.textWidth = 360u;
365 textParameters.textHeight = 360u;
366 textParameters.radius = 180u;
367 textParameters.beginAngle = 15.f;
368 textParameters.incrementAngle = 360.f;
369 textParameters.ellipsisEnabled = true;
370 textParameters.markupEnabled = false;
372 CircularTextData data =
381 if( !CircularRenderTest( data ) )
383 tet_result(TET_FAIL);
386 tet_result(TET_PASS);
390 int UtcDaliTextCircularFont(void)
392 ToolkitTestApplication application;
393 tet_infoline(" UtcDaliTextCircularFont");
395 const std::string image1 = "<item 'width'=26 'height'=26 'url'='" + TEST_IMAGE_FILE_NAME1 + "'/>";
396 const std::string image2 = "<item 'width'=26 'height'=26/>";
398 Dali::Toolkit::DevelText::RendererParameters textParameters;
399 textParameters.text = "Hello " + image1 + " world " + image2 + " this " + image1 + " is " + image2 + " a " + image1 + " demo " + image2 + " of " + image1 + " circular " + image2 + " text " + image1 + " width " + image2 + " icons.";
400 textParameters.horizontalAlignment = "center";
401 textParameters.verticalAlignment = "center";
402 textParameters.circularAlignment = "center";
403 textParameters.fontFamily = "SamsungUI";
404 textParameters.fontWeight = "thin";
405 textParameters.fontWidth = "condensed";
406 textParameters.fontSlant = "normal";
407 textParameters.layout = "circular";
408 textParameters.textColor = Color::BLACK;
409 textParameters.fontSize = 25.f;
410 textParameters.textWidth = 360u;
411 textParameters.textHeight = 360u;
412 textParameters.radius = 180u;
413 textParameters.beginAngle = 15.f;
414 textParameters.incrementAngle = 360.f;
415 textParameters.ellipsisEnabled = true;
416 textParameters.markupEnabled = true;
418 CircularTextData data =
427 if( !CircularRenderTest( data ) )
429 tet_result(TET_FAIL);
432 tet_result(TET_PASS);
436 int UtcDaliTextCircularAlignment(void)
439 ToolkitTestApplication application;
440 tet_infoline(" UtcDaliTextCircularAlignment");
442 const std::string image1 = "<item 'width'=26 'height'=26 'url'='" + TEST_IMAGE_FILE_NAME1 + "'/>";
443 const std::string image2 = "<item 'width'=26 'height'=26/>";
445 Dali::Toolkit::DevelText::RendererParameters textParameters;
446 textParameters.text = "Hello " + image1 + " world " + image2 + " this " + image1 + " is " + image2 + " a " + image1 + " demo " + image2 + " of " + image1 + " circular " + image2 + " text " + image1 + " width " + image2 + " icons.";
447 textParameters.horizontalAlignment = "center";
448 textParameters.verticalAlignment = "center";
449 textParameters.circularAlignment = "center";
450 textParameters.fontFamily = "SamsungUI";
451 textParameters.fontWeight = "";
452 textParameters.fontWidth = "";
453 textParameters.fontSlant = "";
454 textParameters.layout = "circular";
455 textParameters.textColor = Color::BLACK;
456 textParameters.fontSize = 25.f;
457 textParameters.textWidth = 360u;
458 textParameters.textHeight = 360u;
459 textParameters.radius = 180u;
460 textParameters.beginAngle = 15.f;
461 textParameters.incrementAngle = 360.f;
462 textParameters.ellipsisEnabled = true;
463 textParameters.markupEnabled = true;
465 CircularTextData data =
474 if( !CircularRenderTest( data ) )
476 tet_result(TET_FAIL);
479 textParameters.horizontalAlignment = "begin";
480 textParameters.verticalAlignment = "top";
481 textParameters.circularAlignment = "begin";
483 if( !CircularRenderTest( data ) )
485 tet_result(TET_FAIL);
488 textParameters.horizontalAlignment = "end";
489 textParameters.verticalAlignment = "bottom";
490 textParameters.circularAlignment = "end";
492 if( !CircularRenderTest( data ) )
494 tet_result(TET_FAIL);
497 tet_result(TET_PASS);
501 int UtcDaliTextCircularRTL(void)
503 ToolkitTestApplication application;
504 tet_infoline(" UtcDaliTextCircularRTL");
506 const std::string image1 = "<item 'width'=26 'height'=26 'url'='" + TEST_IMAGE_FILE_NAME1 + "'/>";
507 const std::string image2 = "<item 'width'=26 'height'=26/>";
509 Dali::Toolkit::DevelText::RendererParameters textParameters;
510 textParameters.text = "مرحبا بالعالم" + image1 + " hello world " + image2 + " this " + image1 + " is " + image2 + " a " + image1 + " demo " + image2 + " of " + image1 + " circular " + image2 + " text " + image1 + " width " + image2 + " icons.";
511 textParameters.horizontalAlignment = "center";
512 textParameters.verticalAlignment = "center";
513 textParameters.circularAlignment = "center";
514 textParameters.fontFamily = "SamsungUI";
515 textParameters.fontWeight = "";
516 textParameters.fontWidth = "";
517 textParameters.fontSlant = "";
518 textParameters.layout = "circular";
519 textParameters.textColor = Color::BLACK;
520 textParameters.fontSize = 25.f;
521 textParameters.textWidth = 360u;
522 textParameters.textHeight = 360u;
523 textParameters.radius = 180u;
524 textParameters.beginAngle = 15.f;
525 textParameters.incrementAngle = 360.f;
526 textParameters.ellipsisEnabled = true;
527 textParameters.markupEnabled = true;
529 CircularTextData data =
538 if( !CircularRenderTest( data ) )
540 tet_result(TET_FAIL);
543 textParameters.circularAlignment = "begin";
544 if( !CircularRenderTest( data ) )
546 tet_result(TET_FAIL);
549 textParameters.circularAlignment = "end";
550 if( !CircularRenderTest( data ) )
552 tet_result(TET_FAIL);
555 textParameters.text = "שלום עולם مرحبا بالعالم שלום עולם مرحبا بالعالم שלום עולם مرحبا بالعالم";
556 textParameters.layout = "singleLine";
557 textParameters.horizontalAlignment = "end";
558 textParameters.fontSize = 90.f;
559 if( !CircularRenderTest( data ) )
561 tet_result(TET_FAIL);
564 tet_result(TET_PASS);
568 int UtcDaliTextCircularN(void)
571 ToolkitTestApplication application;
572 tet_infoline(" UtcDaliTextCircularN");
574 const std::string image1 = "<item 'width'=26 'height'=26 'url'='" + TEST_IMAGE_FILE_NAME1 + "'/>";
575 const std::string image2 = "<item 'width'=26 'height'=26/>";
577 Dali::Toolkit::DevelText::RendererParameters textParameters;
578 textParameters.text = "hello " + image1 + " world " + image2 + " this " + image1 + " is " + image2 + " a " + image1 + " demo " + image2 + " of " + image1 + " circular " + image2 + " text " + image1 + " width " + image2 + " icons.";
579 textParameters.horizontalAlignment = "center";
580 textParameters.verticalAlignment = "center";
581 textParameters.circularAlignment = "center";
582 textParameters.fontFamily = "SamsungUI";
583 textParameters.fontWeight = "";
584 textParameters.fontWidth = "";
585 textParameters.fontSlant = "";
586 textParameters.layout = "singleLine";
587 textParameters.textColor = Color::BLACK;
588 textParameters.fontSize = 25.f;
589 textParameters.textWidth = 360u;
590 textParameters.textHeight = 360u;
591 textParameters.radius = 180u;
592 textParameters.beginAngle = 15.f;
593 textParameters.incrementAngle = 360.f;
594 textParameters.ellipsisEnabled = true;
595 textParameters.markupEnabled = true;
597 CircularTextData data =
606 if( !CircularRenderTest( data ) )
608 tet_result(TET_FAIL);
611 textParameters.verticalAlignment = "top";
612 if( !CircularRenderTest( data ) )
614 tet_result(TET_FAIL);
617 textParameters.verticalAlignment = "bottom";
618 if( !CircularRenderTest( data ) )
620 tet_result(TET_FAIL);
623 textParameters.textWidth = 90u;
624 if( !CircularRenderTest( data ) )
626 tet_result(TET_FAIL);
629 tet_result(TET_PASS);
633 int UtcDaliTextCircularBlend(void)
635 tet_infoline(" UtcDaliTextCircularN");
637 ToolkitTestApplication application;
638 Stage stage = Stage::GetCurrent();
639 stage.SetBackgroundColor( Color::WHITE );
640 stage.SetBackgroundColor( Vector4( 0.04f, 0.345f, 0.392f, 1.0f ) );
643 const std::string image1 = "<item 'width'=26 'height'=26 'url'='" + TEST_IMAGE_FILE_NAME1 + "'/>";
644 const std::string image2 = "<item 'width'=26 'height'=26/>";
646 Dali::Toolkit::DevelText::RendererParameters textParameters;
647 textParameters.text = "hello " + image1 + " world " + image2 + " this " + image1 + " is " + image2 + " a " + image1 + " demo " + image2 + " of " + image1 + " circular " + image2 + " text " + image1 + " width " + image2 + " icons.";
648 textParameters.horizontalAlignment = "center";
649 textParameters.verticalAlignment = "center";
650 textParameters.circularAlignment = "center";
651 textParameters.fontFamily = "SamsungUI";
652 textParameters.fontWeight = "";
653 textParameters.fontWidth = "";
654 textParameters.fontSlant = "";
655 textParameters.layout = "circular";
656 textParameters.textColor = Color::BLACK;
657 textParameters.fontSize = 25.f;
658 textParameters.textWidth = 360u;
659 textParameters.textHeight = 360u;
660 textParameters.radius = 180u;
661 textParameters.beginAngle = 15.f;
662 textParameters.incrementAngle = 360.f;
663 textParameters.ellipsisEnabled = true;
664 textParameters.markupEnabled = true;
666 CircularTextData data =
675 if( !CircularRenderTest( data ) )
677 tet_result(TET_FAIL);
680 tet_result(TET_PASS);
684 int UtcDaliTextCircularEllipsis(void)
686 tet_infoline(" UtcDaliTextCircularEllipsis");
688 ToolkitTestApplication application;
690 const std::string image1 = "<item 'width'=26 'height'=26 'url'='" + TEST_IMAGE_FILE_NAME1 + "'/>";
691 const std::string image2 = "<item 'width'=26 'height'=26/>";
693 Dali::Toolkit::DevelText::RendererParameters textParameters;
694 textParameters.text = "hello " + image1 + " world " + image2 + " this " + image1 + " is " + image2 + " a " + image1 + " demo " + image2 + " of " + image1 + " circular " + image2 + " text " + image1 + " width " + image2 + " icons.";
695 textParameters.horizontalAlignment = "center";
696 textParameters.verticalAlignment = "center";
697 textParameters.circularAlignment = "center";
698 textParameters.fontFamily = "SamsungUI";
699 textParameters.fontWeight = "";
700 textParameters.fontWidth = "";
701 textParameters.fontSlant = "";
702 textParameters.layout = "circular";
703 textParameters.textColor = Color::BLACK;
704 textParameters.fontSize = 25.f;
705 textParameters.textWidth = 360u;
706 textParameters.textHeight = 360u;
707 textParameters.radius = 180u;
708 textParameters.beginAngle = 15.f;
709 textParameters.incrementAngle = 360.f;
710 textParameters.ellipsisEnabled = false;
711 textParameters.markupEnabled = true;
713 CircularTextData data =
722 if( !CircularRenderTest( data ) )
724 tet_result(TET_FAIL);
727 textParameters.layout = "singleLine";
728 textParameters.textHeight = 50u;
729 textParameters.ellipsisEnabled = true;
731 if( !CircularRenderTest( data ) )
733 tet_result(TET_FAIL);
736 tet_result(TET_PASS);
740 int UtcDaliTextCircularEmoji(void)
742 tet_infoline(" UtcDaliTextCircularEmoji");
744 ToolkitTestApplication application;
746 const std::string image1 = "<item 'width'=26 'height'=26 'url'='" + TEST_IMAGE_FILE_NAME1 + "'/>";
747 const std::string image2 = "<item 'width'=26 'height'=26/>";
749 Dali::Toolkit::DevelText::RendererParameters textParameters;
750 textParameters.text = "<font family='BreezeColorEmoji' size='60'>\xF0\x9F\x98\x81 \xF0\x9F\x98\x82 \xF0\x9F\x98\x83 \xF0\x9F\x98\x84</font>";
751 textParameters.horizontalAlignment = "center";
752 textParameters.verticalAlignment = "center";
753 textParameters.circularAlignment = "center";
754 textParameters.fontFamily = "SamsungUI";
755 textParameters.fontWeight = "";
756 textParameters.fontWidth = "";
757 textParameters.fontSlant = "";
758 textParameters.layout = "circular";
759 textParameters.textColor = Color::BLACK;
760 textParameters.fontSize = 25.f;
761 textParameters.textWidth = 360u;
762 textParameters.textHeight = 360u;
763 textParameters.radius = 180u;
764 textParameters.beginAngle = 15.f;
765 textParameters.incrementAngle = 360.f;
766 textParameters.ellipsisEnabled = true;
767 textParameters.markupEnabled = true;
769 CircularTextData data =
778 if( !CircularRenderTest( data ) )
780 tet_result(TET_FAIL);
783 tet_result(TET_PASS);
787 int UtcDaliTextUpdateBufferFormatCheck(void)
789 tet_infoline(" UtcDaliTextUpdateBufferFormatCheck");
790 ToolkitTestApplication application;
792 Devel::PixelBuffer srcBuffer = Devel::PixelBuffer::New( 10, 10, Pixel::RGBA8888 );
793 Devel::PixelBuffer dstBuffer = Devel::PixelBuffer::New( 10, 10, Pixel::A8 );
795 Dali::Toolkit::DevelText::UpdateBuffer(srcBuffer, dstBuffer, 0, 0, true);
797 tet_result(TET_PASS);
801 int UtcDaliTextCircularTextColor(void)
803 tet_infoline(" UtcDaliTextCircularTextColor");
805 ToolkitTestApplication application;
807 const std::string image1 = "<item 'width'=26 'height'=26 'url'='" + TEST_IMAGE_FILE_NAME1 + "'/>";
808 const std::string image2 = "<item 'width'=26 'height'=26/>";
810 Dali::Toolkit::DevelText::RendererParameters textParameters;
811 textParameters.text = "hello " + image1 + " <color value='blue'>world</color> " + image2 + " this " + image1 + " is " + image2 + " a " + image1 + " demo " + image2 + " of " + image1 + " circular " + image2 + " text " + image1 + " width " + image2 + " icons.";
812 textParameters.horizontalAlignment = "center";
813 textParameters.verticalAlignment = "center";
814 textParameters.circularAlignment = "center";
815 textParameters.fontFamily = "SamsungUI";
816 textParameters.fontWeight = "";
817 textParameters.fontWidth = "";
818 textParameters.fontSlant = "";
819 textParameters.layout = "circular";
820 textParameters.textColor = Color::BLACK;
821 textParameters.fontSize = 25.f;
822 textParameters.textWidth = 360u;
823 textParameters.textHeight = 360u;
824 textParameters.radius = 180u;
825 textParameters.beginAngle = 15.f;
826 textParameters.incrementAngle = 360.f;
827 textParameters.ellipsisEnabled = true;
828 textParameters.markupEnabled = true;
830 CircularTextData data =
839 if( !CircularRenderTest( data ) )
841 tet_result(TET_FAIL);
844 tet_result(TET_PASS);
848 int UtcDaliTextCircularColorBlend(void)
850 tet_infoline(" UtcDaliTextCircularColorBlend");
852 ToolkitTestApplication application;
854 const std::string image1 = "<item 'width'=26 'height'=26 'url'='" + TEST_IMAGE_FILE_NAME1 + "' 'color-blending'=multiply/>";
855 const std::string image2 = "<item 'width'=26 'height'=26/>";
857 Dali::Toolkit::DevelText::RendererParameters textParameters;
858 textParameters.text = "hello " + image1 + " world " + image2 + " this " + image1 + " is " + image2 + " a " + image1 + " demo " + image2 + " of " + image1 + " circular " + image2 + " text " + image1 + " width " + image2 + " icons.";
859 textParameters.horizontalAlignment = "center";
860 textParameters.verticalAlignment = "center";
861 textParameters.circularAlignment = "center";
862 textParameters.fontFamily = "SamsungUI";
863 textParameters.fontWeight = "";
864 textParameters.fontWidth = "";
865 textParameters.fontSlant = "";
866 textParameters.layout = "circular";
867 textParameters.textColor = Color::BLACK;
868 textParameters.fontSize = 25.f;
869 textParameters.textWidth = 360u;
870 textParameters.textHeight = 360u;
871 textParameters.radius = 180u;
872 textParameters.beginAngle = 15.f;
873 textParameters.incrementAngle = 360.f;
874 textParameters.ellipsisEnabled = true;
875 textParameters.markupEnabled = true;
877 CircularTextData data =
886 if( !CircularRenderTest( data ) )
888 tet_result(TET_FAIL);
891 tet_result(TET_PASS);