Removed REQUIRES_STYLE_CHANGE_SIGNALS
[platform/core/uifw/dali-toolkit.git] / automated-tests / src / dali-toolkit / utc-Dali-ProgressBar.cpp
index cb035cd..9e421fd 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2020 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.
@@ -17,6 +17,9 @@
 
 #include <dali-toolkit-test-suite-utils.h>
 #include <dali-toolkit/dali-toolkit.h>
+#include <dali-toolkit/devel-api/controls/progress-bar/progress-bar-devel.h>
+#include <dali-toolkit/devel-api/visuals/arc-visual-properties-devel.h>
+#include <dali-toolkit/devel-api/visuals/visual-properties-devel.h>
 #include <dali/devel-api/actors/actor-devel.h>
 
 using namespace Dali;
@@ -73,7 +76,7 @@ int UtcDaliProgressBarNew(void)
   DALI_TEST_CHECK( progressBar3 == progressBar2 );
 
   //Additional check to ensure object is created by checking if it's registered
-  ObjectRegistry registry = Stage::GetCurrent().GetObjectRegistry();
+  ObjectRegistry registry = application.GetCore().GetObjectRegistry();
   DALI_TEST_CHECK( registry );
 
   gObjectCreatedCallBackCalled = false;
@@ -85,6 +88,22 @@ int UtcDaliProgressBarNew(void)
   END_TEST;
 }
 
+int UtcDaliProgressBarNew2(void)
+{
+  ToolkitTestApplication application;
+  tet_infoline(" UtcDaliProgressBarNew2");
+
+  ProgressBar progressBar1 = DevelProgressBar::New( DevelProgressBar::Style::LINEAR );
+  DALI_TEST_CHECK( progressBar1 );
+
+  ProgressBar progressBar2 = DevelProgressBar::New( DevelProgressBar::Style::CIRCULAR );
+  DALI_TEST_CHECK( progressBar2 );
+
+  DALI_TEST_CHECK( progressBar1.GetStyleName() != progressBar2.GetStyleName() );
+
+  END_TEST;
+}
+
 int UtcDaliProgressBarDestructor(void)
 {
   ToolkitTestApplication application;
@@ -96,6 +115,71 @@ int UtcDaliProgressBarDestructor(void)
   END_TEST;
 }
 
+int UtcDaliProgressBarCopyConstructor(void)
+{
+  ToolkitTestApplication application;
+
+  ProgressBar progressBar = ProgressBar::New();
+  DALI_TEST_CHECK( progressBar );
+
+  ProgressBar copy( progressBar );
+  DALI_TEST_CHECK( copy );
+
+  END_TEST;
+}
+
+int UtcDaliProgressBarCopyAssignment(void)
+{
+  ToolkitTestApplication application;
+
+  ProgressBar progressBar = ProgressBar::New();
+  DALI_TEST_CHECK( progressBar );
+
+  ProgressBar copy;
+  copy = progressBar;
+  DALI_TEST_CHECK( copy );
+  DALI_TEST_EQUALS( progressBar, copy, TEST_LOCATION );
+
+  END_TEST;
+}
+
+int UtcDaliProgressBarMoveConstructor(void)
+{
+  ToolkitTestApplication application;
+
+  ProgressBar progressBar = ProgressBar::New();
+  DALI_TEST_EQUALS( 1, progressBar.GetBaseObject().ReferenceCount(), TEST_LOCATION );
+  progressBar.SetProperty( Actor::Property::SENSITIVE, false );
+  DALI_TEST_CHECK( false == progressBar.GetProperty< bool >( Actor::Property::SENSITIVE ) );
+
+  ProgressBar moved = std::move( progressBar );
+  DALI_TEST_CHECK( moved );
+  DALI_TEST_EQUALS( 1, moved.GetBaseObject().ReferenceCount(), TEST_LOCATION );
+  DALI_TEST_CHECK( false == moved.GetProperty< bool >( Actor::Property::SENSITIVE ) );
+  DALI_TEST_CHECK( !progressBar );
+
+  END_TEST;
+}
+
+int UtcDaliProgressBarMoveAssignment(void)
+{
+  ToolkitTestApplication application;
+
+  ProgressBar progressBar = ProgressBar::New();
+  DALI_TEST_EQUALS( 1, progressBar.GetBaseObject().ReferenceCount(), TEST_LOCATION );
+  progressBar.SetProperty( Actor::Property::SENSITIVE, false );
+  DALI_TEST_CHECK( false == progressBar.GetProperty< bool >( Actor::Property::SENSITIVE ) );
+
+  ProgressBar moved;
+  moved = std::move( progressBar );
+  DALI_TEST_CHECK( moved );
+  DALI_TEST_EQUALS( 1, moved.GetBaseObject().ReferenceCount(), TEST_LOCATION );
+  DALI_TEST_CHECK( false == moved.GetProperty< bool >( Actor::Property::SENSITIVE ) );
+  DALI_TEST_CHECK( !progressBar );
+
+  END_TEST;
+}
+
 int UtcDaliProgressBarDownCast(void)
 {
   ToolkitTestApplication application;
@@ -122,11 +206,11 @@ int UtcDaliProgressBarSignals(void)
 
   // Create the ProgressBar actor
   ProgressBar progressBar = ProgressBar::New();
-  Stage::GetCurrent().Add( progressBar );
+  application.GetScene().Add( progressBar );
   progressBar.SetProperty( Actor::Property::PARENT_ORIGIN,ParentOrigin::TOP_LEFT);
   progressBar.SetProperty( Actor::Property::ANCHOR_POINT,ParentOrigin::TOP_LEFT);
-  progressBar.SetSize( Vector2( Stage::GetCurrent().GetSize().x, 20.0f ) );
-  progressBar.SetPosition( 0.0f, 0.0f );
+  progressBar.SetProperty( Actor::Property::SIZE, Vector2( application.GetScene().GetSize().x, 20.0f ) );
+  progressBar.SetProperty( Actor::Property::POSITION, Vector2( 0.0f, 0.0f ));
   progressBar.ValueChangedSignal().Connect( &OnProgressBarValueChanged );
 
   progressBar.SetProperty(ProgressBar::Property::PROGRESS_VALUE, 0.2f);
@@ -155,10 +239,10 @@ int UtcDaliProgressBarSetPropertyP(void)
   ProgressBar progressBar = ProgressBar::New();
   progressBar.SetProperty( Actor::Property::PARENT_ORIGIN,ParentOrigin::TOP_LEFT);
   progressBar.SetProperty( Actor::Property::ANCHOR_POINT,ParentOrigin::TOP_LEFT);
-  progressBar.SetSize( Vector2( Stage::GetCurrent().GetSize().x, 20.0f ) );
-  progressBar.SetPosition( 0.0f, 0.0f );
+  progressBar.SetProperty( Actor::Property::SIZE, Vector2( application.GetScene().GetSize().x, 20.0f ) );
+  progressBar.SetProperty( Actor::Property::POSITION, Vector2( 0.0f, 0.0f ));
   progressBar.ValueChangedSignal().Connect( &OnProgressBarValueChanged );
-  Stage::GetCurrent().Add(progressBar);
+  application.GetScene().Add(progressBar);
   application.SendNotification();
   application.Render();
 
@@ -302,11 +386,11 @@ int UtcDaliProgressBarSetPropertyP1(void)
   ProgressBar progressBar = ProgressBar::New();
   progressBar.SetProperty( Actor::Property::PARENT_ORIGIN,ParentOrigin::TOP_LEFT);
   progressBar.SetProperty( Actor::Property::ANCHOR_POINT,ParentOrigin::TOP_LEFT);
-  progressBar.SetSize( Vector2( Stage::GetCurrent().GetSize().x, 20.0f ) );
-  progressBar.SetPosition( 0.0f, 0.0f );
+  progressBar.SetProperty( Actor::Property::SIZE, Vector2( application.GetScene().GetSize().x, 20.0f ) );
+  progressBar.SetProperty( Actor::Property::POSITION, Vector2( 0.0f, 0.0f ));
   progressBar.ValueChangedSignal().Connect( &OnProgressBarValueChanged );
 
-  Stage::GetCurrent().Add(progressBar);
+  application.GetScene().Add(progressBar);
   application.SendNotification();
   application.Render();
 
@@ -375,7 +459,7 @@ int UtcDaliProgressBarSetPropertyP2(void)
   ProgressBar progressBar = ProgressBar::New();
   progressBar.SetProperty( Actor::Property::PARENT_ORIGIN,ParentOrigin::TOP_LEFT);
   progressBar.SetProperty( Actor::Property::ANCHOR_POINT,ParentOrigin::TOP_LEFT);
-  progressBar.SetPosition( 0.0f, 0.0f );
+  progressBar.SetProperty( Actor::Property::POSITION, Vector2( 0.0f, 0.0f ));
   progressBar.SetProperty(ProgressBar::Property::LABEL_VISUAL, "test");
   progressBar.SetProperty(ProgressBar::Property::INDETERMINATE, true);
   progressBar.SetProperty(ProgressBar::Property::TRACK_VISUAL, trackImage);
@@ -395,8 +479,8 @@ int UtcDaliProgressBarSetPropertyP2(void)
   progressBar.SetProperty(ProgressBar::Property::SECONDARY_PROGRESS_VALUE, 0.3f);
 
   progressBar.SetResizePolicy( ResizePolicy::FIXED, Dimension::ALL_DIMENSIONS );
-  progressBar.SetSize( Vector2( Stage::GetCurrent().GetSize().x, 20.0f ) );
-  Stage::GetCurrent().Add(progressBar);
+  progressBar.SetProperty( Actor::Property::SIZE, Vector2( application.GetScene().GetSize().x, 20.0f ) );
+  application.GetScene().Add(progressBar);
   application.SendNotification();
   application.Render();
 
@@ -410,3 +494,104 @@ int UtcDaliProgressBarSetPropertyP2(void)
 
   END_TEST;
 }
+
+int UtcDaliProgressBarSetPropertyP3(void)
+{
+  ToolkitTestApplication application;
+  tet_infoline( "UtcDaliProgressBarSetPropertyP3" );
+
+  ProgressBar progressBar = ProgressBar::New();
+  progressBar.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT);
+  progressBar.SetProperty( Actor::Property::ANCHOR_POINT, ParentOrigin::TOP_LEFT);
+  progressBar.SetProperty( Actor::Property::SIZE, Vector2( application.GetScene().GetSize().x, application.GetScene().GetSize().y ) );
+  application.GetScene().Add( progressBar );
+  application.SendNotification();
+  application.Render();
+
+  {
+    // Set arc visual to the SECONDARY_PROGRESS_VISUAL
+    const float expected = 180.0f;
+
+    Property::Map map;
+    map["visualType"] = "ARC";
+    map["thickness"] = 4.0f;
+    map["mixColor"] = Color::BLUE;
+    map["sweepAngle"] = 60;
+    progressBar.SetProperty(ProgressBar::Property::SECONDARY_PROGRESS_VISUAL, map);
+    progressBar.SetProperty(ProgressBar::Property::SECONDARY_PROGRESS_VALUE, 0.5f); // This should change visual's sweep angle.
+
+    Property::Value value = progressBar.GetProperty( ProgressBar::Property::SECONDARY_PROGRESS_VISUAL );
+    Property::Map* resultMap = value.GetMap();
+    DALI_TEST_CHECK( resultMap );
+
+    Property::Value* sweepAngle = resultMap->Find( DevelArcVisual::Property::SWEEP_ANGLE );
+    float result = 0.0f;
+    sweepAngle->Get( result );
+    DALI_TEST_EQUALS( result, expected, TEST_LOCATION );
+  }
+
+  {
+    // Set arc visual to the PROGRESS_VISUAL
+    const float expected = 90.0f;
+
+    Property::Map map;
+    map["visualType"] = "ARC";
+    map["thickness"] = 4.0f;
+    map["mixColor"] = Color::RED;
+    map["sweepAngle"] = 60;
+    progressBar.SetProperty(ProgressBar::Property::PROGRESS_VISUAL, map);
+    progressBar.SetProperty(ProgressBar::Property::PROGRESS_VALUE, 0.25f); // This should change visual's sweep angle.
+
+    Property::Value value = progressBar.GetProperty( ProgressBar::Property::PROGRESS_VISUAL );
+    Property::Map* resultMap = value.GetMap();
+    DALI_TEST_CHECK( resultMap );
+
+    Property::Value* sweepAngle = resultMap->Find( DevelArcVisual::Property::SWEEP_ANGLE );
+    float result = 0.0f;
+    sweepAngle->Get( result );
+    DALI_TEST_EQUALS( result, expected, TEST_LOCATION );
+  }
+
+  {
+    // Set arc visual to the INDETERMINATE_VISUAL
+    const Vector4 expected = Color::GREEN;
+
+    Property::Map map;
+    map["visualType"] = "ARC";
+    map["thickness"] = 4.0f;
+    map["mixColor"] = expected;
+    progressBar.SetProperty(ProgressBar::Property::INDETERMINATE_VISUAL, map);
+
+    Property::Value value = progressBar.GetProperty( ProgressBar::Property::INDETERMINATE_VISUAL );
+    Property::Map* resultMap = value.GetMap();
+    DALI_TEST_CHECK( resultMap );
+
+    Property::Value* mixColor = resultMap->Find( Visual::Property::MIX_COLOR );
+    Vector4 result;
+    mixColor->Get( result );
+    DALI_TEST_EQUALS( result, expected, TEST_LOCATION );
+  }
+
+  {
+    // Set arc visual to the TRACK_VISUAL
+    const Vector4 expected = Color::YELLOW;
+
+    Property::Map map;
+    map["visualType"] = "ARC";
+    map["thickness"] = 0.4f;
+    map["mixColor"] = expected;
+    progressBar.SetProperty( ProgressBar::Property::TRACK_VISUAL, map );
+    progressBar.SetProperty( ProgressBar::Property::INDETERMINATE, true ); // This should not change track visual's properties.
+
+    Property::Value value = progressBar.GetProperty( ProgressBar::Property::TRACK_VISUAL );
+    Property::Map* resultMap = value.GetMap();
+    DALI_TEST_CHECK( resultMap );
+
+    Property::Value* mixColor = resultMap->Find( Visual::Property::MIX_COLOR );
+    Vector4 result;
+    mixColor->Get( result );
+    DALI_TEST_EQUALS( result, expected, TEST_LOCATION );
+  }
+
+  END_TEST;
+}