/*
- * Copyright (c) 2015 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2017 Samsung Electronics Co., Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
// Tests the following functions with different scripts.
//
// void MergeFontDescriptions( const Vector<FontDescriptionRun>& fontDescriptions,
-// Vector<FontId>& fontIds,
-// Vector<bool>& isDefaultFont,
// const TextAbstraction::FontDescription& defaultFontDescription,
// TextAbstraction::PointSize26Dot6 defaultPointSize,
-// CharacterIndex startIndex,
-// Length numberOfCharacters );
+// CharacterIndex characterIndex,
+// TextAbstraction::FontDescription& fontDescription,
+// TextAbstraction::PointSize26Dot6& fontPointSize,
+// bool& isDefaultFont );
//
// Script GetScript( Length index,
// Vector<ScriptRun>::ConstIterator& scriptRunIt,
// void MultilanguageSupport::ValidateFonts( const Vector<Character>& text,
// const Vector<ScriptRun>& scripts,
// const Vector<FontDescriptionRun>& fontDescriptions,
-// FontId defaultFontId,
+// const TextAbstraction::FontDescription& defaultFontDescription,
+// TextAbstraction::PointSize26Dot6 defaultFontPointSize,
// CharacterIndex startIndex,
// Length numberOfCharacters,
// Vector<FontRun>& fonts );
{
const std::string DEFAULT_FONT_DIR( "/resources/fonts" );
-const unsigned int EMOJI_FONT_SIZE = 3968u;
+const unsigned int EMOJI_FONT_SIZE = 3840u; // 60 * 64
const unsigned int NON_DEFAULT_FONT_SIZE = 40u;
struct MergeFontDescriptionsData
};
//////////////////////////////////////////////////////////
-
bool MergeFontDescriptionsTest( const MergeFontDescriptionsData& data )
{
+ TextAbstraction::FontClient fontClient = TextAbstraction::FontClient::Get();
+
Vector<FontId> fontIds;
fontIds.Resize( data.startIndex + data.numberOfCharacters, 0u );
Vector<bool> isDefaultFont;
isDefaultFont.Resize( data.startIndex + data.numberOfCharacters, true );
- MergeFontDescriptions( data.fontDescriptionRuns,
- fontIds,
- isDefaultFont,
- data.defaultFontDescription,
- data.defaultPointSize,
- data.startIndex,
- data.numberOfCharacters );
+ for( unsigned int index = data.startIndex; index < data.startIndex + data.numberOfCharacters; ++index )
+ {
+ TextAbstraction::FontDescription fontDescription;
+ TextAbstraction::PointSize26Dot6 fontPointSize = TextAbstraction::FontClient::DEFAULT_POINT_SIZE;
+
+ MergeFontDescriptions( data.fontDescriptionRuns,
+ data.defaultFontDescription,
+ data.defaultPointSize,
+ index,
+ fontDescription,
+ fontPointSize,
+ isDefaultFont[index] );
+
+ if( !isDefaultFont[index] )
+ {
+ fontIds[index] = fontClient.GetFontId( fontDescription, fontPointSize );
+ }
+ }
if( fontIds.Count() != data.expectedFontIds.Count() )
{
// Get the default font id.
const FontId defaultFontId = fontClient.GetFontId( pathName + DEFAULT_FONT_DIR + data.defaultFont,
data.defaultFontSize );
+ TextAbstraction::FontDescription defaultFontDescription;
+ fontClient.GetDescription( defaultFontId, defaultFontDescription );
+
+ const TextAbstraction::PointSize26Dot6 defaultPointSize = fontClient.GetPointSize( defaultFontId );
Vector<FontRun> fontRuns;
multilanguageSupport.ValidateFonts( utf32,
scripts,
data.fontDescriptionRuns,
- defaultFontId,
+ defaultFontDescription,
+ defaultPointSize,
0u,
numberOfCharacters,
fontRuns );
multilanguageSupport.ValidateFonts( utf32,
scripts,
data.fontDescriptionRuns,
- defaultFontId,
+ defaultFontDescription,
+ defaultPointSize,
data.index,
data.numberOfCharacters,
fontRuns );
},
const_cast<char*>( "DejaVu Sans" ),
11u,
- TextAbstraction::FontWeight::NORMAL,
- TextAbstraction::FontWidth::NORMAL,
- TextAbstraction::FontSlant::NORMAL,
+ TextAbstraction::FontWeight::NONE,
+ TextAbstraction::FontWidth::NONE,
+ TextAbstraction::FontSlant::NONE,
TextAbstraction::FontClient::DEFAULT_POINT_SIZE,
true,
false,
},
NULL,
0u,
- TextAbstraction::FontWeight::NORMAL,
- TextAbstraction::FontWidth::NORMAL,
+ TextAbstraction::FontWeight::NONE,
+ TextAbstraction::FontWidth::NONE,
TextAbstraction::FontSlant::ITALIC,
TextAbstraction::FontClient::DEFAULT_POINT_SIZE,
false,
NULL,
0u,
TextAbstraction::FontWeight::BOLD,
- TextAbstraction::FontWidth::NORMAL,
- TextAbstraction::FontSlant::NORMAL,
+ TextAbstraction::FontWidth::NONE,
+ TextAbstraction::FontSlant::NONE,
TextAbstraction::FontClient::DEFAULT_POINT_SIZE,
false,
true,
},
NULL,
0u,
- TextAbstraction::FontWeight::NORMAL,
- TextAbstraction::FontWidth::NORMAL,
- TextAbstraction::FontSlant::NORMAL,
+ TextAbstraction::FontWeight::NONE,
+ TextAbstraction::FontWidth::NONE,
+ TextAbstraction::FontSlant::NONE,
NON_DEFAULT_FONT_SIZE,
false,
false,
},
NULL,
0u,
- TextAbstraction::FontWeight::NORMAL,
+ TextAbstraction::FontWeight::NONE,
TextAbstraction::FontWidth::EXPANDED,
- TextAbstraction::FontSlant::NORMAL,
+ TextAbstraction::FontSlant::NONE,
TextAbstraction::FontClient::DEFAULT_POINT_SIZE,
false,
false,
// Load some fonts.
fontClient.GetFontId( pathName + DEFAULT_FONT_DIR + "/tizen/TizenSansArabicRegular.ttf" );
fontClient.GetFontId( pathName + DEFAULT_FONT_DIR + "/tizen/TizenSansHebrewRegular.ttf" );
- fontClient.GetFontId( pathName + DEFAULT_FONT_DIR + "/tizen/TizenColorEmoji.ttf", EMOJI_FONT_SIZE );
+ fontClient.GetFontId( pathName + DEFAULT_FONT_DIR + "/tizen/BreezeColorEmoji.ttf", EMOJI_FONT_SIZE );
fontClient.GetFontId( pathName + DEFAULT_FONT_DIR + "/tizen/TizenSansRegular.ttf", pointSize01 );
fontClient.GetFontId( pathName + DEFAULT_FONT_DIR + "/tizen/TizenSansRegular.ttf", pointSize02 );
fontClient.GetFontId( pathName + DEFAULT_FONT_DIR + "/tizen/TizenSansHebrewRegular.ttf", pointSize01 );
// Font id 1 --> TizenSansArabicRegular.ttf
// Font id 2 --> TizenSansHebrewRegular.ttf
- // Font id 3 --> TizenColorEmoji.ttf
+ // Font id 3 --> BreezeColorEmoji.ttf
// Font id 4 --> TizenSansRegular.ttf, size 8
// Font id 5 --> TizenSansRegular.ttf, size 16
// Font id 6 --> TizenSansHebrewRegular.ttf, size 8
0u,
4u
},
- const_cast<char*>( "TizenColorEmoji" ),
- 15u,
+ const_cast<char*>( "BreezeColorEmoji" ),
+ 16u,
TextAbstraction::FontWeight::NORMAL,
TextAbstraction::FontWidth::NORMAL,
TextAbstraction::FontSlant::NORMAL,
fontDescriptions10.PushBack( fontDescription1003 );
fontDescriptions10.PushBack( fontDescription1004 );
+ FontRun fontRun1101 =
+ {
+ {
+ 0u,
+ 22u
+ },
+ 5u
+ };
+ Vector<FontRun> fontRuns11;
+ fontRuns11.PushBack( fontRun1101 );
+
+ FontDescriptionRun fontDescription1101 =
+ {
+ {
+ 0,
+ 22u
+ },
+ const_cast<char*>( "TizenSans" ),
+ 9u,
+ TextAbstraction::FontWeight::NORMAL,
+ TextAbstraction::FontWidth::NORMAL,
+ TextAbstraction::FontSlant::NORMAL,
+ pointSize02,
+ true,
+ false,
+ false,
+ false,
+ true
+ };
+ Vector<FontDescriptionRun> fontDescriptions11;
+ fontDescriptions11.PushBack( fontDescription1101 );
+
const ValidateFontsData data[] =
{
{
{
"Emojis",
"\xF0\x9F\x98\x81\xF0\x9F\x98\x82\xF0\x9F\x98\x83\xF0\x9F\x98\x84",
- "/tizen/TizenColorEmoji.ttf",
+ "/tizen/BreezeColorEmoji.ttf",
EMOJI_FONT_SIZE,
0u,
4u,
fontDescriptions10,
fontRuns10
},
+ {
+ "Unknown script -> changed to LATIN",
+ "WRC – The Official App",
+ "/tizen/TizenSansRegular.ttf",
+ TextAbstraction::FontClient::DEFAULT_POINT_SIZE,
+ 0u,
+ 22u,
+ fontDescriptions11,
+ fontRuns11
+ },
};
- const unsigned int numberOfTests = 10u;
+ const unsigned int numberOfTests = 11u;
for( unsigned int index = 0u; index < numberOfTests; ++index )
{