[Tizen] Add screen and client rotation itself function
[platform/core/uifw/dali-core.git] / automated-tests / src / dali / utc-Dali-KeyEvent.cpp
old mode 100644 (file)
new mode 100755 (executable)
index 66ad021..bdc7d4a
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014 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.
@@ -18,8 +18,9 @@
 #include <iostream>
 
 #include <stdlib.h>
-#include <dali/dali.h>
+#include <dali/public-api/dali-core.h>
 #include <dali/integration-api/events/key-event-integ.h>
+#include <dali/devel-api/events/key-event-devel.h>
 
 #include <dali-test-suite-utils.h>
 
@@ -64,7 +65,7 @@ struct SignalData
     receivedKeyEvent.keyPressedName.clear();
     receivedKeyEvent.keyPressed.clear();
 
-    keyedActor = NULL;
+    keyedActor.Reset();
   }
 
   bool functorCalled;
@@ -105,6 +106,58 @@ int UtcDaliKeyEventConstructor(void)
   END_TEST;
 }
 
+int UtcDaliKeyEventAssignment(void)
+{
+  // Test Assignment operator
+  KeyEvent event(TEST_STRING_1,"i", 99, SHIFT_MODIFIER, 0, KeyEvent::Down);  // set name to test, key string to i and modifier to shift
+
+  DALI_TEST_EQUALS(TEST_STRING_1, event.keyPressedName, TEST_LOCATION); // check key name
+  DALI_TEST_EQUALS("i", event.keyPressed, TEST_LOCATION); // check key string
+  DALI_TEST_EQUALS(99, event.keyCode, TEST_LOCATION); // check keyCode
+  DALI_TEST_EQUALS(SHIFT_MODIFIER, event.keyModifier, TEST_LOCATION); // check modifier
+  DALI_TEST_EQUALS(KeyEvent::Down, event.state, TEST_LOCATION); // check state
+
+  KeyEvent event2(TEST_STRING_1,"j", 88, CTRL_MODIFIER, 0, KeyEvent::Up);  // set name to test, key string to i and modifier to shift
+
+  DALI_TEST_EQUALS(TEST_STRING_1, event2.keyPressedName, TEST_LOCATION); // check key name
+  DALI_TEST_EQUALS("j", event2.keyPressed, TEST_LOCATION); // check key string
+  DALI_TEST_EQUALS(88, event2.keyCode, TEST_LOCATION); // check keyCode
+  DALI_TEST_EQUALS(CTRL_MODIFIER, event2.keyModifier, TEST_LOCATION); // check modifier
+  DALI_TEST_EQUALS(KeyEvent::Up, event2.state, TEST_LOCATION); // check state
+
+  event = event2;
+
+  DALI_TEST_EQUALS(TEST_STRING_1, event.keyPressedName, TEST_LOCATION); // check key name
+  DALI_TEST_EQUALS("j", event.keyPressed, TEST_LOCATION); // check key string
+  DALI_TEST_EQUALS(88, event.keyCode, TEST_LOCATION); // check keyCode
+  DALI_TEST_EQUALS(CTRL_MODIFIER, event.keyModifier, TEST_LOCATION); // check modifier
+  DALI_TEST_EQUALS(KeyEvent::Up, event.state, TEST_LOCATION); // check state
+
+  END_TEST;
+}
+
+int UtcDaliKeyEventCopy(void)
+{
+  // Test Assignment operator
+  KeyEvent event(TEST_STRING_1,"i", 99, SHIFT_MODIFIER, 0, KeyEvent::Down);  // set name to test, key string to i and modifier to shift
+
+  DALI_TEST_EQUALS(TEST_STRING_1, event.keyPressedName, TEST_LOCATION); // check key name
+  DALI_TEST_EQUALS("i", event.keyPressed, TEST_LOCATION); // check key string
+  DALI_TEST_EQUALS(99, event.keyCode, TEST_LOCATION); // check keyCode
+  DALI_TEST_EQUALS(SHIFT_MODIFIER, event.keyModifier, TEST_LOCATION); // check modifier
+  DALI_TEST_EQUALS(KeyEvent::Down, event.state, TEST_LOCATION); // check state
+
+  KeyEvent event2( event );
+
+  DALI_TEST_EQUALS(TEST_STRING_1, event2.keyPressedName, TEST_LOCATION); // check key name
+  DALI_TEST_EQUALS("i", event2.keyPressed, TEST_LOCATION); // check key string
+  DALI_TEST_EQUALS(99, event2.keyCode, TEST_LOCATION); // check keyCode
+  DALI_TEST_EQUALS(SHIFT_MODIFIER, event2.keyModifier, TEST_LOCATION); // check modifier
+  DALI_TEST_EQUALS(KeyEvent::Down, event2.state, TEST_LOCATION); // check state
+
+  END_TEST;
+}
+
 // Positive test case for a method
 int UtcDaliKeyEventIsShiftModifier(void)
 {
@@ -199,11 +252,11 @@ int UtcDaliKeyEventANDModifer(void)
   TestApplication application; // Reset all test adapter return codes
 
   KeyEvent event("i","i", 0, SHIFT_AND_CTRL_MODIFIER, 0, KeyEvent::Down);
-  DALI_TEST_EQUALS(true, event.IsCtrlModifier() & event.IsShiftModifier(), TEST_LOCATION);
+  DALI_TEST_EQUALS(true, (bool)(event.IsCtrlModifier() & event.IsShiftModifier()), TEST_LOCATION);
 
   event.keyModifier = SHIFT_MODIFIER;
 
-  DALI_TEST_EQUALS(false, event.IsCtrlModifier() & event.IsShiftModifier(), TEST_LOCATION);
+  DALI_TEST_EQUALS(false, (bool)(event.IsCtrlModifier() & event.IsShiftModifier()), TEST_LOCATION);
   END_TEST;
 }
 
@@ -213,11 +266,11 @@ int UtcDaliKeyEventORModifer(void)
   TestApplication application; // Reset all test adapter return codes
 
   KeyEvent event("i","i", 0, SHIFT_AND_CTRL_MODIFIER, 0, KeyEvent::Down);
-  DALI_TEST_EQUALS(true, event.IsCtrlModifier() | event.IsAltModifier(), TEST_LOCATION);
+  DALI_TEST_EQUALS(true, (bool)(event.IsCtrlModifier() | event.IsAltModifier()), TEST_LOCATION);
 
   event.keyModifier = SHIFT_MODIFIER;
 
-  DALI_TEST_EQUALS(false, event.IsCtrlModifier() & event.IsAltModifier(), TEST_LOCATION);
+  DALI_TEST_EQUALS(false, (bool)(event.IsCtrlModifier() & event.IsAltModifier()), TEST_LOCATION);
   END_TEST;
 }
 
@@ -227,11 +280,11 @@ int UtcDaliKeyEventState(void)
   TestApplication application; // Reset all test adapter return codes
 
   KeyEvent event("i","i", 0, SHIFT_AND_CTRL_MODIFIER, 0, KeyEvent::Down);
-  DALI_TEST_EQUALS(true, event.IsCtrlModifier() | event.IsAltModifier(), TEST_LOCATION);
+  DALI_TEST_EQUALS(true, (bool)(event.IsCtrlModifier() | event.IsAltModifier()), TEST_LOCATION);
 
   event.keyModifier = SHIFT_MODIFIER;
 
-  DALI_TEST_EQUALS(false, event.IsCtrlModifier() & event.IsAltModifier(), TEST_LOCATION);
+  DALI_TEST_EQUALS(false, (bool)(event.IsCtrlModifier() & event.IsAltModifier()), TEST_LOCATION);
   END_TEST;
 }
 
@@ -243,29 +296,119 @@ int UtcDaliIntegrationKeyEvent(void)
     Integration::KeyEvent keyEvent;
     DALI_TEST_EQUALS( keyEvent.type, Integration::Event::Key, TEST_LOCATION );
     DALI_TEST_CHECK( keyEvent.keyName == std::string() );
+    DALI_TEST_CHECK( keyEvent.logicalKey == std::string() );
     DALI_TEST_CHECK( keyEvent.keyString == std::string() );
     DALI_TEST_EQUALS( keyEvent.keyCode, -1, TEST_LOCATION );
     DALI_TEST_EQUALS( keyEvent.keyModifier, 0, TEST_LOCATION );
-    DALI_TEST_EQUALS( keyEvent.time, 0u, TEST_LOCATION );
+    DALI_TEST_EQUALS( keyEvent.time, 0lu, TEST_LOCATION );
     DALI_TEST_EQUALS( keyEvent.state, Integration::KeyEvent::Down, TEST_LOCATION);
   }
 
   {
     const std::string keyName("keyName");
+    const std::string logicalKey("logicalKey");
     const std::string keyString("keyString");
     const int keyCode(333);
     const int keyModifier(312);
     const unsigned long timeStamp(132);
     const Integration::KeyEvent::State keyState(Integration::KeyEvent::Up);
+    const std::string compose("compose");
+    const std::string deviceName("hwKeyboard");
+    const Device::Class::Type deviceClass = Device::Class::KEYBOARD;
+    const Device::Subclass::Type deviceSubclass = Device::Subclass::NONE;
 
-    Integration::KeyEvent keyEvent(keyName, keyString, keyCode, keyModifier, timeStamp, keyState);
+    Integration::KeyEvent keyEvent(keyName, logicalKey, keyString, keyCode, keyModifier, timeStamp, keyState, compose, deviceName, deviceClass, deviceSubclass );
     DALI_TEST_EQUALS( keyEvent.type, Integration::Event::Key, TEST_LOCATION );
     DALI_TEST_CHECK( keyEvent.keyName == keyName );
+    DALI_TEST_CHECK( keyEvent.logicalKey == logicalKey );
     DALI_TEST_CHECK( keyEvent.keyString == keyString );
     DALI_TEST_EQUALS( keyEvent.keyCode, keyCode, TEST_LOCATION );
     DALI_TEST_EQUALS( keyEvent.keyModifier, keyModifier, TEST_LOCATION );
     DALI_TEST_EQUALS( keyEvent.time, timeStamp, TEST_LOCATION );
     DALI_TEST_EQUALS( keyEvent.state, keyState, TEST_LOCATION);
+    DALI_TEST_EQUALS( keyEvent.compose, compose, TEST_LOCATION);
+    DALI_TEST_EQUALS( keyEvent.deviceName, deviceName, TEST_LOCATION);
+    DALI_TEST_EQUALS( keyEvent.deviceClass, deviceClass, TEST_LOCATION);
+    DALI_TEST_EQUALS( keyEvent.deviceSubclass, deviceSubclass, TEST_LOCATION);
   }
   END_TEST;
 }
+
+int UtcDaliIntegrationKeyEventConvertor(void)
+{
+  TestApplication application;
+
+  KeyEvent event(TEST_STRING_1,"i", 99, SHIFT_MODIFIER, 0lu, KeyEvent::Down);  // set name to test, key string to i and modifier to shift
+
+  Integration::KeyEvent keyEvent( event );
+
+  DALI_TEST_EQUALS( keyEvent.type, Integration::Event::Key, TEST_LOCATION );
+  DALI_TEST_CHECK( keyEvent.keyName == TEST_STRING_1 );
+  DALI_TEST_CHECK( keyEvent.logicalKey == "" );
+  DALI_TEST_CHECK( keyEvent.keyString == "i" );
+  DALI_TEST_EQUALS( keyEvent.keyCode, 99, TEST_LOCATION );
+  DALI_TEST_EQUALS( keyEvent.keyModifier, SHIFT_MODIFIER, TEST_LOCATION );
+  DALI_TEST_EQUALS( keyEvent.time, 0lu, TEST_LOCATION );
+  DALI_TEST_EQUALS( keyEvent.state, Integration::KeyEvent::Down, TEST_LOCATION);
+  DALI_TEST_EQUALS( keyEvent.compose, "", TEST_LOCATION);
+  DALI_TEST_EQUALS( keyEvent.deviceName, "", TEST_LOCATION);
+  DALI_TEST_EQUALS( keyEvent.deviceClass, Device::Class::NONE, TEST_LOCATION);
+  DALI_TEST_EQUALS( keyEvent.deviceSubclass, Device::Subclass::NONE, TEST_LOCATION);
+
+  END_TEST;
+}
+
+int UtcDaliKeyEventSetCompose(void)
+{
+  TestApplication application;
+
+  KeyEvent event(TEST_STRING_1,"i", 99, SHIFT_MODIFIER, 0lu, KeyEvent::Down);
+
+  DALI_TEST_EQUALS( event.GetCompose(), "", TEST_LOCATION);
+
+  END_TEST;
+}
+
+int UtcDaliKeyEventSetDeviceName(void)
+{
+  TestApplication application;
+
+  KeyEvent event(TEST_STRING_1,"i", 99, SHIFT_MODIFIER, 0lu, KeyEvent::Down);
+
+  DALI_TEST_EQUALS( event.GetDeviceName(), "", TEST_LOCATION);
+
+  END_TEST;
+}
+
+int UtcDaliKeyEventSetDeviceClass(void)
+{
+  TestApplication application;
+
+  KeyEvent event(TEST_STRING_1,"i", 99, SHIFT_MODIFIER, 0lu, KeyEvent::Down);
+
+  DALI_TEST_EQUALS( event.GetDeviceClass(), Device::Class::NONE, TEST_LOCATION);
+
+  END_TEST;
+}
+
+int UtcDaliKeyEventSetDeviceSubclass(void)
+{
+  TestApplication application;
+
+  KeyEvent event(TEST_STRING_1,"i", 99, SHIFT_MODIFIER, 0lu, KeyEvent::Down);
+
+  DALI_TEST_EQUALS( event.GetDeviceSubclass(), Device::Subclass::NONE, TEST_LOCATION);
+
+  END_TEST;
+}
+
+int UtcDaliKeyEventSetLogicalKey(void)
+{
+  TestApplication application;
+
+  KeyEvent event(TEST_STRING_1,"i", 99, SHIFT_MODIFIER, 0lu, KeyEvent::Down);
+
+  DALI_TEST_EQUALS( DevelKeyEvent::GetLogicalKey( event ), "", TEST_LOCATION );
+
+  END_TEST;
+}