Update common test util
[platform/core/uifw/dali-toolkit.git] / automated-tests / src / dali-toolkit / dali-toolkit-test-utils / toolkit-style-monitor.cpp
index ba0469d..c17872b 100644 (file)
  *
  */
 
+// HEADER
 #include "toolkit-style-monitor.h"
 
+// EXTERNAL INCLUDES
 #include <dali/public-api/common/dali-common.h>
+#include <dali/public-api/common/vector-wrapper.h>
 #include <dali/public-api/object/base-object.h>
 #include <dali/public-api/signals/dali-signal.h>
 
-namespace Dali
-{
-const std::string Dali::StyleMonitor::DEFAULT_FONT_FAMILY("DefaultFont");
-const std::string Dali::StyleMonitor::DEFAULT_FONT_STYLE("Regular");
-const float       Dali::StyleMonitor::DEFAULT_FONT_SIZE(1.0f);
-}
-
 namespace
 {
 const char* DEFAULT_THEME=
   "{\"styles\":{\n"
   "  \"textlabel\":\n"
   "    {\n"
-  "      \"fontStyle\":\"Regular\",\n"
+  "      \"fontStyle\":{\"weight\":\"normal\"},\n"
   "      \"pointSize\":18\n"
   "    }\n"
   "  }\n"
   "}\n";
 
+struct NamedTheme
+{
+  NamedTheme( const std::string& name, const std::string& theme )
+  : name(name), theme(theme)
+  {
+  }
+
+  std::string name;
+  std::string theme;
+};
+typedef std::vector< NamedTheme > NamedThemes;
+NamedThemes gThemes;
+
 std::string gTheme;
-std::string gFontFamily = Dali::StyleMonitor::DEFAULT_FONT_FAMILY;
-std::string gFontStyle  = Dali::StyleMonitor::DEFAULT_FONT_STYLE;
-float       gFontSize   = Dali::StyleMonitor::DEFAULT_FONT_SIZE;
+std::string gFontFamily("LucidaSans");
+std::string gFontStyle("Regular");
+int         gFontSize(1);
 }
 
 namespace Dali
@@ -81,9 +90,8 @@ public: // Signals
 private:
   Dali::StyleMonitor::StyleChangeSignalType mStyleChangeSignal;
   static Dali::StyleMonitor mToolkitStyleMonitor;
-  std::string mTheme;
 
-  std::string mOutput; //<<< Test output. Use SetThemeFileOutput in a testharness to use it.
+  std::string mTheme;  ///<< Current theme name
 };
 
 Dali::StyleMonitor StyleMonitor::mToolkitStyleMonitor;
@@ -119,7 +127,6 @@ std::string StyleMonitor::GetDefaultFontStyle() const
 float StyleMonitor::GetDefaultFontSize() const
 {
   return gFontSize;
-
 }
 
 const std::string& StyleMonitor::GetTheme() const
@@ -135,6 +142,16 @@ void StyleMonitor::SetTheme(std::string path)
 
 bool StyleMonitor::LoadThemeFile( const std::string& filename, std::string& output )
 {
+  for( NamedThemes::iterator iter = gThemes.begin(); iter != gThemes.end(); ++iter )
+  {
+    NamedTheme& theme = *iter;
+    if( theme.name == filename )
+    {
+      output = theme.theme;
+      return true;
+    }
+  }
+
   if( !gTheme.empty() )
   {
     output = gTheme;
@@ -195,7 +212,7 @@ std::string StyleMonitor::GetDefaultFontStyle() const
   return GetImplementation(*this).GetDefaultFontStyle();
 }
 
-float StyleMonitor::GetDefaultFontSize() const
+int StyleMonitor::GetDefaultFontSize() const
 {
   return GetImplementation(*this).GetDefaultFontSize();
 }
@@ -205,7 +222,7 @@ const std::string& StyleMonitor::GetTheme() const
   return GetImplementation(*this).GetTheme();
 }
 
-void StyleMonitor::SetTheme(std::string themeFilePath)
+void StyleMonitor::SetTheme(const std::string& themeFilePath)
 {
   GetImplementation(*this).SetTheme(themeFilePath);
 }
@@ -215,11 +232,6 @@ StyleMonitor::StyleChangeSignalType& StyleMonitor::StyleChangeSignal()
   return GetImplementation(*this).StyleChangeSignal();
 }
 
-void StyleMonitor::EmitStyleChangeSignal(StyleChange::Type styleChange)
-{
-  GetImplementation(*this).EmitStyleChangeSignal(styleChange);
-}
-
 bool StyleMonitor::LoadThemeFile( const std::string& filename, std::string& output )
 {
   return GetImplementation(*this).LoadThemeFile(filename, output);
@@ -246,9 +258,19 @@ namespace Test
 namespace StyleMonitor
 {
 
-void SetThemeFileOutput( const std::string& output )
+void SetThemeFileOutput( const std::string& name, const std::string& output )
 {
-  gTheme = output;
+  for( NamedThemes::iterator iter = gThemes.begin(); iter != gThemes.end(); ++iter )
+  {
+    NamedTheme& theme = *iter;
+    if( theme.name == name )
+    {
+      theme.theme = output;
+      return;
+    }
+  }
+
+  gThemes.push_back( NamedTheme( name, output ) );
 }
 
 void SetDefaultFontFamily(const std::string& family)