Add move semantics to common and base Toolkit classes
[platform/core/uifw/dali-toolkit.git] / automated-tests / src / dali-toolkit / utc-Dali-TextLabel.cpp
index 884079e..f9128fd 100644 (file)
@@ -230,6 +230,23 @@ int UtcDaliToolkitTextLabelCopyConstructorP(void)
   END_TEST;
 }
 
+int UtcDaliTextLabelMoveConstructor(void)
+{
+  ToolkitTestApplication application;
+
+  TextLabel textLabel = TextLabel::New();
+  textLabel.SetProperty( TextLabel::Property::TEXT, "Test" );
+  DALI_TEST_CHECK( textLabel.GetProperty<std::string>( TextLabel::Property::TEXT ) == "Test" );
+
+  TextLabel moved = std::move( textLabel );
+  DALI_TEST_CHECK( moved );
+  DALI_TEST_EQUALS( 1, moved.GetBaseObject().ReferenceCount(), TEST_LOCATION );
+  DALI_TEST_CHECK( moved.GetProperty<std::string>( TextLabel::Property::TEXT ) == "Test" );
+  DALI_TEST_CHECK( !textLabel );
+
+  END_TEST;
+}
+
 int UtcDaliToolkitTextLabelAssignmentOperatorP(void)
 {
   ToolkitTestApplication application;
@@ -243,6 +260,24 @@ int UtcDaliToolkitTextLabelAssignmentOperatorP(void)
   END_TEST;
 }
 
+int UtcDaliTextLabelMoveAssignment(void)
+{
+  ToolkitTestApplication application;
+
+  TextLabel textLabel = TextLabel::New();
+  textLabel.SetProperty( TextLabel::Property::TEXT, "Test" );
+  DALI_TEST_CHECK( textLabel.GetProperty<std::string>( TextLabel::Property::TEXT ) == "Test" );
+
+  TextLabel moved;
+  moved = std::move( textLabel );
+  DALI_TEST_CHECK( moved );
+  DALI_TEST_EQUALS( 1, moved.GetBaseObject().ReferenceCount(), TEST_LOCATION );
+  DALI_TEST_CHECK( moved.GetProperty<std::string>( TextLabel::Property::TEXT ) == "Test" );
+  DALI_TEST_CHECK( !textLabel );
+
+  END_TEST;
+}
+
 // Positive test case for a method
 int UtcDaliToolkitTextLabelGetPropertyP(void)
 {
@@ -1653,4 +1688,4 @@ int UtcDaliToolkitTextlabelLastCharacterIndex(void)
   DALI_TEST_EQUALS( indexArray.GetElementAt(0).Get<int>(), 10, TEST_LOCATION );
 
   END_TEST;
-}
\ No newline at end of file
+}