[dali_2.3.19] Merge branch 'devel/master'
[platform/core/uifw/dali-toolkit.git] / automated-tests / src / dali-toolkit-styling / utc-Dali-StyleManager.cpp
old mode 100755 (executable)
new mode 100644 (file)
index 25b652a..0d6c4ae
@@ -1,5 +1,5 @@
  /*
- * Copyright (c) 2019 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2022 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.
@@ -34,6 +34,9 @@
 #include <dali-toolkit/devel-api/styling/style-manager-devel.h>
 #include <dali/integration-api/events/key-event-integ.h>
 
+// for Internal::StyleManager
+#include <dali-toolkit/internal/styling/style-manager-impl.h>
+
 using namespace Dali;
 using namespace Dali::Toolkit;
 
@@ -230,8 +233,8 @@ int UtcDaliStyleManagerApplyTheme(void)
   // Add 2 buttons to test how many times the signal is sent
   Test::TestButton testButton = Test::TestButton::New();
   Test::TestButton testButton2 = Test::TestButton::New();
-  Stage::GetCurrent().Add( testButton );
-  Stage::GetCurrent().Add( testButton2 );
+  application.GetScene().Add( testButton );
+  application.GetScene().Add( testButton2 );
   StyleChangedSignalChecker styleChangedSignalHandler;
   StyleChangedSignalChecker styleChangedSignalHandler2;
   StyleManager styleManager = StyleManager::Get();
@@ -350,7 +353,7 @@ int UtcDaliStyleManagerApplyDefaultTheme(void)
   ToolkitTestApplication application;
 
   Test::TestButton testButton = Test::TestButton::New();
-  Stage::GetCurrent().Add( testButton );
+  application.GetScene().Add( testButton );
   StyleChangedSignalChecker styleChangedSignalHandler;
   StyleManager styleManager = StyleManager::Get();
 
@@ -491,8 +494,8 @@ int UtcDaliStyleManagerApplyStyle(void)
   // Add 2 buttons
   Test::TestButton testButton = Test::TestButton::New();
   Test::TestButton testButton2 = Test::TestButton::New();
-  Stage::GetCurrent().Add( testButton );
-  Stage::GetCurrent().Add( testButton2 );
+  application.GetScene().Add( testButton );
+  application.GetScene().Add( testButton2 );
   StyleChangedSignalChecker styleChangedSignalHandler;
   StyleManager styleManager = StyleManager::Get();
 
@@ -559,8 +562,8 @@ int UtcDaliStyleManagerIncludeStyleP(void)
   // Add 2 buttons
   Test::TestButton testButton = Test::TestButton::New();
   Test::TestButton testButton2 = Test::TestButton::New();
-  Stage::GetCurrent().Add( testButton );
-  Stage::GetCurrent().Add( testButton2 );
+  application.GetScene().Add( testButton );
+  application.GetScene().Add( testButton2 );
   StyleChangedSignalChecker styleChangedSignalHandler;
   StyleManager styleManager = StyleManager::Get();
 
@@ -611,8 +614,8 @@ int UtcDaliStyleManagerIncludeStyleN(void)
   // Add 2 buttons
   Test::TestButton testButton = Test::TestButton::New();
   Test::TestButton testButton2 = Test::TestButton::New();
-  Stage::GetCurrent().Add( testButton );
-  Stage::GetCurrent().Add( testButton2 );
+  application.GetScene().Add( testButton );
+  application.GetScene().Add( testButton2 );
   StyleChangedSignalChecker styleChangedSignalHandler;
   StyleManager styleManager = StyleManager::Get();
 
@@ -646,13 +649,13 @@ int UtcDaliStyleManagerStyleChangedSignalFontFamily(void)
 
   std::string labelStr("Label");
   Toolkit::TextLabel label = Toolkit::TextLabel::New(labelStr);
-  Stage::GetCurrent().Add( label );
+  application.GetScene().Add( label );
 
   Toolkit::TextField field = Toolkit::TextField::New();
-  Stage::GetCurrent().Add( field );
+  application.GetScene().Add( field );
 
   Toolkit::TextEditor editor = Toolkit::TextEditor::New();
-  Stage::GetCurrent().Add( editor );
+  application.GetScene().Add( editor );
 
   StyleChangedSignalChecker styleChangedSignalHandler;
   Dali::StyleMonitor styleMonitor = Dali::StyleMonitor::Get();
@@ -727,10 +730,10 @@ int UtcDaliStyleManagerStyleChangedSignalFontSize(void)
 
   std::string labelStr("Label");
   Toolkit::TextLabel label = Toolkit::TextLabel::New(labelStr);
-  Stage::GetCurrent().Add( label );
+  application.GetScene().Add( label );
 
   Toolkit::TextLabel label2 = Toolkit::TextLabel::New(labelStr);
-  Stage::GetCurrent().Add( label2 );
+  application.GetScene().Add( label2 );
 
   StyleChangedSignalChecker styleChangedSignalHandler;
   StyleMonitor styleMonitor = StyleMonitor::Get();
@@ -810,10 +813,10 @@ int UtcDaliStyleManagerStyleChangedSignalFontSizeTextField(void)
   std::string fieldStr("Field");
   Toolkit::TextField field = Toolkit::TextField::New();
   field.SetProperty( Toolkit::TextField::Property::TEXT, fieldStr );
-  Stage::GetCurrent().Add( field );
+  application.GetScene().Add( field );
 
   Toolkit::TextField field2 = Toolkit::TextField::New();
-  Stage::GetCurrent().Add( field2 );
+  application.GetScene().Add( field2 );
   field2.SetProperty( Toolkit::TextField::Property::TEXT, fieldStr );
 
   StyleChangedSignalChecker styleChangedSignalHandler;
@@ -893,10 +896,10 @@ int UtcDaliStyleManagerStyleChangedSignalFontSizeTextEditor(void)
   std::string editorStr("Editor");
   Toolkit::TextEditor editor = Toolkit::TextEditor::New();
   editor.SetProperty( Toolkit::TextEditor::Property::TEXT, editorStr );
-  Stage::GetCurrent().Add( editor );
+  application.GetScene().Add( editor );
 
   Toolkit::TextEditor editor2 = Toolkit::TextEditor::New();
-  Stage::GetCurrent().Add( editor2 );
+  application.GetScene().Add( editor2 );
   editor2.SetProperty( Toolkit::TextEditor::Property::TEXT, editorStr );
 
   StyleChangedSignalChecker styleChangedSignalHandler;
@@ -953,7 +956,7 @@ int UtcDaliStyleManagerSetState01(void)
 
   DummyControl actor = DummyControl::New(true);
   actor.SetStyleName("BasicControl");
-  Stage::GetCurrent().Add(actor);
+  application.GetScene().Add(actor);
 
   Impl::DummyControl& dummyImpl = static_cast<Impl::DummyControl&>(actor.GetImplementation());
   Integration::ResourcePointer ninePatch = CustomizeNinePatch( application, 30, 30 );
@@ -1029,7 +1032,7 @@ int UtcDaliStyleManagerSetState02(void)
 
   DummyControl actor = DummyControl::New(true);
   actor.SetStyleName("BasicControl");
-  Stage::GetCurrent().Add(actor);
+  application.GetScene().Add(actor);
 
   Impl::DummyControl& dummyImpl = static_cast<Impl::DummyControl&>(actor.GetImplementation());
   Integration::ResourcePointer ninePatch = CustomizeNinePatch( application, 30, 30 );
@@ -1109,7 +1112,7 @@ int UtcDaliStyleManagerSetState03N(void)
 
   DummyControl actor = DummyControl::New(true);
   actor.SetStyleName("NoStyles");
-  Stage::GetCurrent().Add(actor);
+  application.GetScene().Add(actor);
 
   Impl::DummyControl& dummyImpl = static_cast<Impl::DummyControl&>(actor.GetImplementation());
   Property::Map propertyMap;
@@ -1158,7 +1161,7 @@ int UtcDaliStyleManagerSetState04N(void)
 
   DummyControl actor = DummyControl::New(true);
   actor.SetStyleName("NoStateStyle");
-  Stage::GetCurrent().Add(actor);
+  application.GetScene().Add(actor);
 
   Impl::DummyControl& dummyImpl = static_cast<Impl::DummyControl&>(actor.GetImplementation());
   Property::Map propertyMap;
@@ -1208,7 +1211,7 @@ int UtcDaliStyleManagerSetSubState01(void)
   actor.SetProperty(DevelControl::Property::STATE, "NORMAL");
   actor.SetProperty(DevelControl::Property::SUB_STATE, "SELECTED");
   actor.SetStyleName("ComplexControl");
-  Stage::GetCurrent().Add(actor);
+  application.GetScene().Add(actor);
 
   Integration::ResourcePointer ninePatch = CustomizeNinePatch( application, 30, 30 );
 
@@ -1252,7 +1255,7 @@ int UtcDaliStyleManagerSetSubState02(void)
   tet_infoline( "Setting state to NORMAL/SELECTED before re-styling\n");
 
   actor.SetStyleName("ComplexControl");
-  Stage::GetCurrent().Add(actor);
+  application.GetScene().Add(actor);
 
   Integration::ResourcePointer ninePatch = CustomizeNinePatch( application, 30, 30 );
 
@@ -1344,13 +1347,72 @@ int UtcDaliStyleManagerConfigSectionTest(void)
   // For coverage
   Toolkit::TextEditor editor = Toolkit::TextEditor::New();
   editor.SetProperty( Actor::Property::KEYBOARD_FOCUSABLE, true );
-  Stage::GetCurrent().Add( editor );
+  application.GetScene().Add( editor );
 
   Toolkit::KeyboardFocusManager::Get().SetCurrentFocusActor( editor );
 
-  application.ProcessEvent( Integration::KeyEvent( "", "", "", DALI_KEY_ESCAPE, 0, 0, Integration::KeyEvent::Down, "", "", Device::Class::NONE, Device::Subclass::NONE ) );
+  application.ProcessEvent( Integration::KeyEvent( "", "", "", DALI_KEY_ESCAPE, 0, 0, Integration::KeyEvent::DOWN, "", "", Device::Class::NONE, Device::Subclass::NONE ) );
   application.SendNotification();
   application.Render();
 
   END_TEST;
 }
+
+
+int UtcDaliStyleManagerNewWithAdditionalBehavior(void)
+{
+  ToolkitTestApplication application;
+
+  Toolkit::StyleManager            styleManager     = StyleManager::Get();
+  Toolkit::Internal::StyleManager& styleManagerImpl = GetImpl(styleManager);
+
+  auto checkup = [&styleManagerImpl](int enableStyleChangeSignal, const Control& control){
+    DALI_TEST_EQUALS( enableStyleChangeSignal, styleManagerImpl.ControlStyleChangeSignal().GetConnectionCount(), TEST_LOCATION );
+  };
+
+  // Default New
+  // Note: TextField and TextEditor have TextSelectionPopup
+  tet_infoline( "Check whether ControlStyleChangeSignal connected in default New\n");
+  checkup(1, Control::New());
+  checkup(1, ImageView::New());
+  checkup(1, ImageView::New("url"));
+  checkup(1, ImageView::New("url", Dali::ImageDimensions(32u, 32u)));
+  checkup(1, TextLabel::New());
+  checkup(1, TextLabel::New("text"));
+  checkup(2, TextField::New());
+  checkup(2, TextEditor::New());
+
+  // New with additional behaviour, but enable style change signals
+  tet_infoline( "Check whether ControlStyleChangeSignal connected in non-disable style change signals\n");
+  checkup(1, Control::New(Toolkit::Control::ControlBehaviour::CONTROL_BEHAVIOUR_DEFAULT));
+  checkup(1, Control::New(Toolkit::Control::ControlBehaviour::DISABLE_SIZE_NEGOTIATION));
+  checkup(1, Control::New(Toolkit::Control::ControlBehaviour::REQUIRES_KEYBOARD_NAVIGATION_SUPPORT));
+  checkup(1, ImageView::New(Toolkit::Control::ControlBehaviour::CONTROL_BEHAVIOUR_DEFAULT));
+  checkup(1, ImageView::New(Toolkit::Control::ControlBehaviour::CONTROL_BEHAVIOUR_DEFAULT, "url"));
+  checkup(1, ImageView::New(Toolkit::Control::ControlBehaviour::CONTROL_BEHAVIOUR_DEFAULT, "url", Dali::ImageDimensions(32u, 32u)));
+  checkup(1, ImageView::New(Toolkit::Control::ControlBehaviour::DISABLE_SIZE_NEGOTIATION));
+  checkup(1, ImageView::New(Toolkit::Control::ControlBehaviour::DISABLE_SIZE_NEGOTIATION, "url"));
+  checkup(1, ImageView::New(Toolkit::Control::ControlBehaviour::DISABLE_SIZE_NEGOTIATION, "url", Dali::ImageDimensions(32u, 32u)));
+  checkup(1, TextLabel::New(Toolkit::Control::ControlBehaviour::CONTROL_BEHAVIOUR_DEFAULT));
+  checkup(1, TextLabel::New(Toolkit::Control::ControlBehaviour::CONTROL_BEHAVIOUR_DEFAULT, "text"));
+  checkup(1, TextLabel::New(Toolkit::Control::ControlBehaviour::DISABLE_SIZE_NEGOTIATION));
+  checkup(1, TextLabel::New(Toolkit::Control::ControlBehaviour::DISABLE_SIZE_NEGOTIATION, "text"));
+  checkup(2, TextField::New(Toolkit::Control::ControlBehaviour::CONTROL_BEHAVIOUR_DEFAULT));
+  checkup(2, TextField::New(Toolkit::Control::ControlBehaviour::DISABLE_SIZE_NEGOTIATION));
+  checkup(2, TextEditor::New(Toolkit::Control::ControlBehaviour::CONTROL_BEHAVIOUR_DEFAULT));
+  checkup(2, TextEditor::New(Toolkit::Control::ControlBehaviour::DISABLE_SIZE_NEGOTIATION));
+
+  // New with additional behaviour, so disable style change signals
+  tet_infoline( "Check whether ControlStyleChangeSignal did not connected\n");
+  checkup(0, Control::New(Toolkit::Control::ControlBehaviour::DISABLE_STYLE_CHANGE_SIGNALS));
+  checkup(0, Control::New(Toolkit::Control::ControlBehaviour(Toolkit::Control::ControlBehaviour::DISABLE_STYLE_CHANGE_SIGNALS | Toolkit::Control::ControlBehaviour::DISABLE_SIZE_NEGOTIATION)));
+  checkup(0, ImageView::New(Toolkit::Control::ControlBehaviour::DISABLE_STYLE_CHANGE_SIGNALS));
+  checkup(0, ImageView::New(Toolkit::Control::ControlBehaviour::DISABLE_STYLE_CHANGE_SIGNALS, "url"));
+  checkup(0, ImageView::New(Toolkit::Control::ControlBehaviour::DISABLE_STYLE_CHANGE_SIGNALS, "url", Dali::ImageDimensions(32u, 32u)));
+  checkup(0, TextLabel::New(Toolkit::Control::ControlBehaviour::DISABLE_STYLE_CHANGE_SIGNALS));
+  checkup(0, TextLabel::New(Toolkit::Control::ControlBehaviour::DISABLE_STYLE_CHANGE_SIGNALS, "text"));
+  checkup(1, TextField::New(Toolkit::Control::ControlBehaviour::DISABLE_STYLE_CHANGE_SIGNALS));
+  checkup(1, TextEditor::New(Toolkit::Control::ControlBehaviour::DISABLE_STYLE_CHANGE_SIGNALS));
+
+  END_TEST;
+}