2 * Copyright (c) 2023 Samsung Electronics Co., Ltd.
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
18 #include <dali-test-suite-utils.h>
19 #include <dali/devel-api/events/key-event-devel.h>
20 #include <dali/integration-api/events/key-event-integ.h>
21 #include <dali/public-api/dali-core.h>
28 void utc_dali_key_event_startup(void)
30 test_return_value = TET_UNDEF;
33 void utc_dali_key_event_cleanup(void)
35 test_return_value = TET_PASS;
40 // Key Event Test references
41 const static int SHIFT_MODIFIER = 0x1;
42 const static int CTRL_MODIFIER = 0x2;
43 const static int ALT_MODIFIER = 0x4;
44 const static int SHIFT_AND_CTRL_MODIFIER = SHIFT_MODIFIER | CTRL_MODIFIER;
45 const static int SHIFT_AND_ALT_MODIFIER = SHIFT_MODIFIER | ALT_MODIFIER;
46 const static int CTRL_AND_ALT_MODIFIER = CTRL_MODIFIER | ALT_MODIFIER;
48 const static int32_t KEY_INVALID_CODE = -1;
50 const static char* TEST_STRING_1 = "alpha";
52 // Stores data that is populated in the callback and will be read by the TET cases
56 : functorCalled(false)
62 functorCalled = false;
64 receivedKeyEvent.Reset();
70 KeyEvent receivedKeyEvent;
74 // Functor that sets the data when called
75 struct KeyEventReceivedFunctor
77 KeyEventReceivedFunctor(SignalData& data)
82 bool operator()(Actor actor, const KeyEvent& keyEvent)
84 signalData.functorCalled = true;
85 signalData.receivedKeyEvent = keyEvent;
86 signalData.keyedActor = actor;
91 SignalData& signalData;
96 int UtcDaliKeyEventDefaultConstructor(void)
98 TestApplication application; // Reset all test adapter return codes
100 Dali::KeyEvent event = DevelKeyEvent::New();
101 DALI_TEST_CHECK(event);
103 DALI_TEST_EQUALS("", event.GetKeyName(), TEST_LOCATION); // check key name
104 DALI_TEST_EQUALS("", event.GetLogicalKey(), TEST_LOCATION); // check logical key string
105 DALI_TEST_EQUALS("", event.GetKeyString(), TEST_LOCATION); // check key string
106 DALI_TEST_EQUALS(KEY_INVALID_CODE, event.GetKeyCode(), TEST_LOCATION); // check keyCode
107 DALI_TEST_EQUALS(0, event.GetKeyModifier(), TEST_LOCATION); // check modifier
108 DALI_TEST_EQUALS(0lu, event.GetTime(), TEST_LOCATION); // check time
109 DALI_TEST_EQUALS(KeyEvent::DOWN, event.GetState(), TEST_LOCATION); // check state
110 DALI_TEST_EQUALS("", event.GetCompose(), TEST_LOCATION); // check compose
111 DALI_TEST_EQUALS("", event.GetDeviceName(), TEST_LOCATION); // check device name
112 DALI_TEST_EQUALS(Device::Class::NONE, event.GetDeviceClass(), TEST_LOCATION); // check device class
113 DALI_TEST_EQUALS(Device::Subclass::NONE, event.GetDeviceSubclass(), TEST_LOCATION); // check device subclass
114 DALI_TEST_EQUALS(false, event.IsRepeat(), TEST_LOCATION); // check repeat
119 int UtcDaliKeyEventConstructor(void)
121 TestApplication application; // Reset all test adapter return codes
123 Dali::KeyEvent event = DevelKeyEvent::New(TEST_STRING_1, "I", "i", 99, SHIFT_MODIFIER, 0lu, KeyEvent::DOWN, "", "", Device::Class::NONE, Device::Subclass::NONE); // set name to test, key string to i and modifier to shift
124 DALI_TEST_CHECK(event);
126 DALI_TEST_EQUALS(TEST_STRING_1, event.GetKeyName(), TEST_LOCATION); // check key name
127 DALI_TEST_EQUALS("I", event.GetLogicalKey(), TEST_LOCATION); // check logical key string
128 DALI_TEST_EQUALS("i", event.GetKeyString(), TEST_LOCATION); // check key string
129 DALI_TEST_EQUALS(99, event.GetKeyCode(), TEST_LOCATION); // check keyCode
130 DALI_TEST_EQUALS(SHIFT_MODIFIER, event.GetKeyModifier(), TEST_LOCATION); // check modifier
131 DALI_TEST_EQUALS(0lu, event.GetTime(), TEST_LOCATION); // check time
132 DALI_TEST_EQUALS(KeyEvent::DOWN, event.GetState(), TEST_LOCATION); // check state
133 DALI_TEST_EQUALS("", event.GetCompose(), TEST_LOCATION); // check compose
134 DALI_TEST_EQUALS("", event.GetDeviceName(), TEST_LOCATION); // check device name
135 DALI_TEST_EQUALS(Device::Class::NONE, event.GetDeviceClass(), TEST_LOCATION); // check device class
136 DALI_TEST_EQUALS(Device::Subclass::NONE, event.GetDeviceSubclass(), TEST_LOCATION); // check device subclass
141 int UtcDaliKeyEventCopyAssignment(void)
143 // Test Assignment operator
144 Dali::KeyEvent event = DevelKeyEvent::New(TEST_STRING_1, "I", "i", 99, SHIFT_MODIFIER, 0lu, KeyEvent::DOWN, "", "", Device::Class::NONE, Device::Subclass::NONE); // set name to test, key string to i and modifier to shift
145 DALI_TEST_CHECK(event);
147 DALI_TEST_EQUALS(TEST_STRING_1, event.GetKeyName(), TEST_LOCATION); // check key name
148 DALI_TEST_EQUALS("I", event.GetLogicalKey(), TEST_LOCATION); // check logical key string
149 DALI_TEST_EQUALS("i", event.GetKeyString(), TEST_LOCATION); // check key string
150 DALI_TEST_EQUALS(99, event.GetKeyCode(), TEST_LOCATION); // check keyCode
151 DALI_TEST_EQUALS(SHIFT_MODIFIER, event.GetKeyModifier(), TEST_LOCATION); // check modifier
152 DALI_TEST_EQUALS(0lu, event.GetTime(), TEST_LOCATION); // check time
153 DALI_TEST_EQUALS(KeyEvent::DOWN, event.GetState(), TEST_LOCATION); // check state
154 DALI_TEST_EQUALS("", event.GetCompose(), TEST_LOCATION); // check compose
155 DALI_TEST_EQUALS("", event.GetDeviceName(), TEST_LOCATION); // check device name
156 DALI_TEST_EQUALS(Device::Class::NONE, event.GetDeviceClass(), TEST_LOCATION); // check device class
157 DALI_TEST_EQUALS(Device::Subclass::NONE, event.GetDeviceSubclass(), TEST_LOCATION); // check device subclass
159 Dali::KeyEvent event2 = DevelKeyEvent::New(TEST_STRING_1, "J", "j", 88, CTRL_MODIFIER, 0lu, KeyEvent::UP, "", "", Device::Class::USER, Device::Subclass::FINGER); // set name to test, key string to i and modifier to shift
160 DALI_TEST_CHECK(event2);
162 DALI_TEST_EQUALS(TEST_STRING_1, event2.GetKeyName(), TEST_LOCATION); // check key name
163 DALI_TEST_EQUALS("J", event2.GetLogicalKey(), TEST_LOCATION); // check logical key string
164 DALI_TEST_EQUALS("j", event2.GetKeyString(), TEST_LOCATION); // check key string
165 DALI_TEST_EQUALS(88, event2.GetKeyCode(), TEST_LOCATION); // check keyCode
166 DALI_TEST_EQUALS(CTRL_MODIFIER, event2.GetKeyModifier(), TEST_LOCATION); // check modifier
167 DALI_TEST_EQUALS(0lu, event2.GetTime(), TEST_LOCATION); // check time
168 DALI_TEST_EQUALS(KeyEvent::UP, event2.GetState(), TEST_LOCATION); // check state
169 DALI_TEST_EQUALS("", event2.GetCompose(), TEST_LOCATION); // check compose
170 DALI_TEST_EQUALS("", event2.GetDeviceName(), TEST_LOCATION); // check device name
171 DALI_TEST_EQUALS(Device::Class::USER, event2.GetDeviceClass(), TEST_LOCATION); // check device class
172 DALI_TEST_EQUALS(Device::Subclass::FINGER, event2.GetDeviceSubclass(), TEST_LOCATION); // check device subclass
175 DALI_TEST_CHECK(event);
177 DALI_TEST_EQUALS(TEST_STRING_1, event.GetKeyName(), TEST_LOCATION); // check key name
178 DALI_TEST_EQUALS("J", event.GetLogicalKey(), TEST_LOCATION); // check logical key string
179 DALI_TEST_EQUALS("j", event.GetKeyString(), TEST_LOCATION); // check key string
180 DALI_TEST_EQUALS(88, event.GetKeyCode(), TEST_LOCATION); // check keyCode
181 DALI_TEST_EQUALS(CTRL_MODIFIER, event.GetKeyModifier(), TEST_LOCATION); // check modifier
182 DALI_TEST_EQUALS(0lu, event.GetTime(), TEST_LOCATION); // check time
183 DALI_TEST_EQUALS(KeyEvent::UP, event.GetState(), TEST_LOCATION); // check state
184 DALI_TEST_EQUALS("", event.GetCompose(), TEST_LOCATION); // check compose
185 DALI_TEST_EQUALS("", event.GetDeviceName(), TEST_LOCATION); // check device name
186 DALI_TEST_EQUALS(Device::Class::USER, event.GetDeviceClass(), TEST_LOCATION); // check device class
187 DALI_TEST_EQUALS(Device::Subclass::FINGER, event.GetDeviceSubclass(), TEST_LOCATION); // check device subclass
192 int UtcDaliKeyEventCopyConstructor(void)
194 // Test Assignment operator
195 Dali::KeyEvent event = DevelKeyEvent::New(TEST_STRING_1, "I", "i", 99, SHIFT_MODIFIER, 0lu, KeyEvent::DOWN, "", "", Device::Class::NONE, Device::Subclass::NONE); // set name to test, key string to i and modifier to shift
196 DALI_TEST_CHECK(event);
198 DALI_TEST_EQUALS(TEST_STRING_1, event.GetKeyName(), TEST_LOCATION); // check key name
199 DALI_TEST_EQUALS("I", event.GetLogicalKey(), TEST_LOCATION); // check logical key string
200 DALI_TEST_EQUALS("i", event.GetKeyString(), TEST_LOCATION); // check key string
201 DALI_TEST_EQUALS(99, event.GetKeyCode(), TEST_LOCATION); // check keyCode
202 DALI_TEST_EQUALS(SHIFT_MODIFIER, event.GetKeyModifier(), TEST_LOCATION); // check modifier
203 DALI_TEST_EQUALS(0lu, event.GetTime(), TEST_LOCATION); // check time
204 DALI_TEST_EQUALS(KeyEvent::DOWN, event.GetState(), TEST_LOCATION); // check state
205 DALI_TEST_EQUALS("", event.GetCompose(), TEST_LOCATION); // check compose
206 DALI_TEST_EQUALS("", event.GetDeviceName(), TEST_LOCATION); // check device name
207 DALI_TEST_EQUALS(Device::Class::NONE, event.GetDeviceClass(), TEST_LOCATION); // check device class
208 DALI_TEST_EQUALS(Device::Subclass::NONE, event.GetDeviceSubclass(), TEST_LOCATION); // check device subclass
210 KeyEvent event2(event);
211 DALI_TEST_CHECK(event2);
213 DALI_TEST_EQUALS(TEST_STRING_1, event2.GetKeyName(), TEST_LOCATION); // check key name
214 DALI_TEST_EQUALS("I", event2.GetLogicalKey(), TEST_LOCATION); // check logical key string
215 DALI_TEST_EQUALS("i", event2.GetKeyString(), TEST_LOCATION); // check key string
216 DALI_TEST_EQUALS(99, event2.GetKeyCode(), TEST_LOCATION); // check keyCode
217 DALI_TEST_EQUALS(SHIFT_MODIFIER, event2.GetKeyModifier(), TEST_LOCATION); // check modifier
218 DALI_TEST_EQUALS(0lu, event2.GetTime(), TEST_LOCATION); // check time
219 DALI_TEST_EQUALS(KeyEvent::DOWN, event2.GetState(), TEST_LOCATION); // check state
220 DALI_TEST_EQUALS("", event2.GetCompose(), TEST_LOCATION); // check compose
221 DALI_TEST_EQUALS("", event2.GetDeviceName(), TEST_LOCATION); // check device name
222 DALI_TEST_EQUALS(Device::Class::NONE, event2.GetDeviceClass(), TEST_LOCATION); // check device class
223 DALI_TEST_EQUALS(Device::Subclass::NONE, event2.GetDeviceSubclass(), TEST_LOCATION); // check device subclass
228 int UtcDaliKeyEventMoveAssignment(void)
230 // Test Assignment operator
231 Dali::KeyEvent event = DevelKeyEvent::New(TEST_STRING_1, "I", "i", 99, SHIFT_MODIFIER, 0lu, KeyEvent::DOWN, "", "", Device::Class::NONE, Device::Subclass::NONE); // set name to test, key string to i and modifier to shift
232 DALI_TEST_CHECK(event);
234 DALI_TEST_EQUALS(TEST_STRING_1, event.GetKeyName(), TEST_LOCATION); // check key name
235 DALI_TEST_EQUALS("I", event.GetLogicalKey(), TEST_LOCATION); // check logical key string
236 DALI_TEST_EQUALS("i", event.GetKeyString(), TEST_LOCATION); // check key string
237 DALI_TEST_EQUALS(99, event.GetKeyCode(), TEST_LOCATION); // check keyCode
238 DALI_TEST_EQUALS(SHIFT_MODIFIER, event.GetKeyModifier(), TEST_LOCATION); // check modifier
239 DALI_TEST_EQUALS(0lu, event.GetTime(), TEST_LOCATION); // check time
240 DALI_TEST_EQUALS(KeyEvent::DOWN, event.GetState(), TEST_LOCATION); // check state
241 DALI_TEST_EQUALS("", event.GetCompose(), TEST_LOCATION); // check compose
242 DALI_TEST_EQUALS("", event.GetDeviceName(), TEST_LOCATION); // check device name
243 DALI_TEST_EQUALS(Device::Class::NONE, event.GetDeviceClass(), TEST_LOCATION); // check device class
244 DALI_TEST_EQUALS(Device::Subclass::NONE, event.GetDeviceSubclass(), TEST_LOCATION); // check device subclass
247 move = std::move(event);
248 DALI_TEST_CHECK(move);
250 DALI_TEST_EQUALS(TEST_STRING_1, move.GetKeyName(), TEST_LOCATION); // check key name
251 DALI_TEST_EQUALS("I", move.GetLogicalKey(), TEST_LOCATION); // check logical key string
252 DALI_TEST_EQUALS("i", move.GetKeyString(), TEST_LOCATION); // check key string
253 DALI_TEST_EQUALS(99, move.GetKeyCode(), TEST_LOCATION); // check keyCode
254 DALI_TEST_EQUALS(SHIFT_MODIFIER, move.GetKeyModifier(), TEST_LOCATION); // check modifier
255 DALI_TEST_EQUALS(0lu, move.GetTime(), TEST_LOCATION); // check time
256 DALI_TEST_EQUALS(KeyEvent::DOWN, move.GetState(), TEST_LOCATION); // check state
257 DALI_TEST_EQUALS("", move.GetCompose(), TEST_LOCATION); // check compose
258 DALI_TEST_EQUALS("", move.GetDeviceName(), TEST_LOCATION); // check device name
259 DALI_TEST_EQUALS(Device::Class::NONE, move.GetDeviceClass(), TEST_LOCATION); // check device class
260 DALI_TEST_EQUALS(Device::Subclass::NONE, move.GetDeviceSubclass(), TEST_LOCATION); // check device subclass
262 DALI_TEST_CHECK(!event);
267 int UtcDaliKeyEventMoveConstructor(void)
269 // Test Assignment operator
270 Dali::KeyEvent event = DevelKeyEvent::New(TEST_STRING_1, "I", "i", 99, SHIFT_MODIFIER, 0lu, KeyEvent::DOWN, "", "", Device::Class::NONE, Device::Subclass::NONE); // set name to test, key string to i and modifier to shift
271 DALI_TEST_CHECK(event);
273 DALI_TEST_EQUALS(TEST_STRING_1, event.GetKeyName(), TEST_LOCATION); // check key name
274 DALI_TEST_EQUALS("I", event.GetLogicalKey(), TEST_LOCATION); // check logical key string
275 DALI_TEST_EQUALS("i", event.GetKeyString(), TEST_LOCATION); // check key string
276 DALI_TEST_EQUALS(99, event.GetKeyCode(), TEST_LOCATION); // check keyCode
277 DALI_TEST_EQUALS(SHIFT_MODIFIER, event.GetKeyModifier(), TEST_LOCATION); // check modifier
278 DALI_TEST_EQUALS(0lu, event.GetTime(), TEST_LOCATION); // check time
279 DALI_TEST_EQUALS(KeyEvent::DOWN, event.GetState(), TEST_LOCATION); // check state
280 DALI_TEST_EQUALS("", event.GetCompose(), TEST_LOCATION); // check compose
281 DALI_TEST_EQUALS("", event.GetDeviceName(), TEST_LOCATION); // check device name
282 DALI_TEST_EQUALS(Device::Class::NONE, event.GetDeviceClass(), TEST_LOCATION); // check device class
283 DALI_TEST_EQUALS(Device::Subclass::NONE, event.GetDeviceSubclass(), TEST_LOCATION); // check device subclass
285 KeyEvent move = std::move(event);
286 DALI_TEST_CHECK(move);
288 DALI_TEST_EQUALS(TEST_STRING_1, move.GetKeyName(), TEST_LOCATION); // check key name
289 DALI_TEST_EQUALS("I", move.GetLogicalKey(), TEST_LOCATION); // check logical key string
290 DALI_TEST_EQUALS("i", move.GetKeyString(), TEST_LOCATION); // check key string
291 DALI_TEST_EQUALS(99, move.GetKeyCode(), TEST_LOCATION); // check keyCode
292 DALI_TEST_EQUALS(SHIFT_MODIFIER, move.GetKeyModifier(), TEST_LOCATION); // check modifier
293 DALI_TEST_EQUALS(0lu, move.GetTime(), TEST_LOCATION); // check time
294 DALI_TEST_EQUALS(KeyEvent::DOWN, move.GetState(), TEST_LOCATION); // check state
295 DALI_TEST_EQUALS("", move.GetCompose(), TEST_LOCATION); // check compose
296 DALI_TEST_EQUALS("", move.GetDeviceName(), TEST_LOCATION); // check device name
297 DALI_TEST_EQUALS(Device::Class::NONE, move.GetDeviceClass(), TEST_LOCATION); // check device class
298 DALI_TEST_EQUALS(Device::Subclass::NONE, move.GetDeviceSubclass(), TEST_LOCATION); // check device subclass
300 DALI_TEST_CHECK(!event);
305 // Positive test case for a method
306 int UtcDaliKeyEventIsShiftModifier(void)
308 TestApplication application; // Reset all test adapter return codes
310 Dali::KeyEvent event = DevelKeyEvent::New(TEST_STRING_1, "I", "i", 99, CTRL_MODIFIER, 0lu, KeyEvent::DOWN, "", "", Device::Class::NONE, Device::Subclass::NONE); // set name to test, key string to i and modifier to shift
311 DALI_TEST_CHECK(event);
313 DALI_TEST_EQUALS(CTRL_MODIFIER, event.GetKeyModifier(), TEST_LOCATION);
314 DALI_TEST_EQUALS(false, event.IsShiftModifier(), TEST_LOCATION); // check IsShiftModifier
316 DevelKeyEvent::SetKeyModifier(event, SHIFT_MODIFIER); // Set to Shift Modifier
318 DALI_TEST_EQUALS(SHIFT_MODIFIER, event.GetKeyModifier(), TEST_LOCATION); // check able to set
320 DALI_TEST_EQUALS(true, event.IsShiftModifier(), TEST_LOCATION); // check IsShiftModifier
325 // Positive test case for a method
326 int UtcDaliKeyEventIsCtrlModifier(void)
328 TestApplication application; // Reset all test adapter return codes
330 Dali::KeyEvent event = DevelKeyEvent::New(TEST_STRING_1, "I", "i", 99, SHIFT_MODIFIER, 0lu, KeyEvent::DOWN, "", "", Device::Class::NONE, Device::Subclass::NONE); // set name to test, key string to i and modifier to shift
331 DALI_TEST_CHECK(event);
333 DALI_TEST_EQUALS(SHIFT_MODIFIER, event.GetKeyModifier(), TEST_LOCATION);
334 DALI_TEST_EQUALS(false, event.IsCtrlModifier(), TEST_LOCATION); // check IsCtrlModifier
336 DevelKeyEvent::SetKeyModifier(event, CTRL_MODIFIER); // Set to Ctrl Modifier
338 DALI_TEST_EQUALS(CTRL_MODIFIER, event.GetKeyModifier(), TEST_LOCATION); // check able to set
340 DALI_TEST_EQUALS(true, event.IsCtrlModifier(), TEST_LOCATION); // check IsCtrlModifier
344 // Positive test case for a method
345 int UtcDaliKeyEventIsAltModifier(void)
347 TestApplication application; // Reset all test adapter return codes
349 Dali::KeyEvent event = DevelKeyEvent::New(TEST_STRING_1, "I", "i", 99, SHIFT_MODIFIER, 0lu, KeyEvent::DOWN, "", "", Device::Class::NONE, Device::Subclass::NONE); // set name to test, key string to i and modifier to shift
350 DALI_TEST_CHECK(event);
352 DALI_TEST_EQUALS(SHIFT_MODIFIER, event.GetKeyModifier(), TEST_LOCATION);
353 DALI_TEST_EQUALS(false, event.IsAltModifier(), TEST_LOCATION); // check IsAltModifier
355 DevelKeyEvent::SetKeyModifier(event, ALT_MODIFIER); // Set to Alt Modifier
357 DALI_TEST_EQUALS(ALT_MODIFIER, event.GetKeyModifier(), TEST_LOCATION); // check able to set
359 DALI_TEST_EQUALS(true, event.IsAltModifier(), TEST_LOCATION); // IsAltModifier
363 // Positive fail test case for a method
364 int UtcDaliKeyEventIsNotShiftModifier(void)
366 TestApplication application; // Reset all test adapter return codes
368 Dali::KeyEvent event = DevelKeyEvent::New("i", "I", "i", 0, CTRL_MODIFIER, 0lu, KeyEvent::DOWN, "", "", Device::Class::NONE, Device::Subclass::NONE);
370 DALI_TEST_EQUALS(CTRL_MODIFIER, event.GetKeyModifier(), TEST_LOCATION);
372 DALI_TEST_EQUALS(false, event.IsShiftModifier(), TEST_LOCATION);
376 // Positive fail test case for a method
377 int UtcDaliKeyEventIsNotCtrlModifier(void)
379 TestApplication application; // Reset all test adapter return codes
381 Dali::KeyEvent event = DevelKeyEvent::New("i", "I", "i", 0, ALT_MODIFIER, 0lu, KeyEvent::UP, "", "", Device::Class::NONE, Device::Subclass::NONE);
383 DALI_TEST_EQUALS(ALT_MODIFIER, event.GetKeyModifier(), TEST_LOCATION);
385 DALI_TEST_EQUALS(false, event.IsCtrlModifier(), TEST_LOCATION);
389 // Positive fail test case for a method
390 int UtcDaliKeyEventIsNotAltModifier(void)
392 TestApplication application; // Reset all test adapter return codes
394 Dali::KeyEvent event = DevelKeyEvent::New("i", "I", "i", 0, SHIFT_MODIFIER, 0lu, KeyEvent::UP, "", "", Device::Class::NONE, Device::Subclass::NONE);
396 DALI_TEST_EQUALS(SHIFT_MODIFIER, event.GetKeyModifier(), TEST_LOCATION);
398 DALI_TEST_EQUALS(false, event.IsAltModifier(), TEST_LOCATION);
402 // Positive test case for a method
403 int UtcDaliKeyEventANDModifer(void)
405 TestApplication application; // Reset all test adapter return codes
407 Dali::KeyEvent event = DevelKeyEvent::New("i", "I", "i", 0, SHIFT_AND_CTRL_MODIFIER, 0lu, KeyEvent::DOWN, "", "", Device::Class::NONE, Device::Subclass::NONE);
408 DALI_TEST_EQUALS(true, (bool)(event.IsCtrlModifier() & event.IsShiftModifier()), TEST_LOCATION);
410 DevelKeyEvent::SetKeyModifier(event, SHIFT_MODIFIER); // Set to Shift Modifier
412 DALI_TEST_EQUALS(false, (bool)(event.IsCtrlModifier() & event.IsShiftModifier()), TEST_LOCATION);
416 // Positive test case for a method
417 int UtcDaliKeyEventORModifer(void)
419 TestApplication application; // Reset all test adapter return codes
421 Dali::KeyEvent event = DevelKeyEvent::New("i", "I", "i", 0, SHIFT_AND_CTRL_MODIFIER, 0lu, KeyEvent::DOWN, "", "", Device::Class::NONE, Device::Subclass::NONE);
422 DALI_TEST_EQUALS(true, (bool)(event.IsCtrlModifier() | event.IsAltModifier()), TEST_LOCATION);
424 DevelKeyEvent::SetKeyModifier(event, SHIFT_MODIFIER); // Set to Shift Modifier
426 DALI_TEST_EQUALS(false, (bool)(event.IsCtrlModifier() & event.IsAltModifier()), TEST_LOCATION);
430 int UtcDaliIntegrationKeyEvent(void)
432 TestApplication application;
435 Integration::KeyEvent keyEvent;
436 DALI_TEST_EQUALS(keyEvent.type, Integration::Event::Key, TEST_LOCATION);
437 DALI_TEST_CHECK(keyEvent.keyName == std::string());
438 DALI_TEST_CHECK(keyEvent.logicalKey == std::string());
439 DALI_TEST_CHECK(keyEvent.keyString == std::string());
440 DALI_TEST_EQUALS(keyEvent.keyCode, -1, TEST_LOCATION);
441 DALI_TEST_EQUALS(keyEvent.keyModifier, 0, TEST_LOCATION);
442 DALI_TEST_EQUALS(keyEvent.time, 0lu, TEST_LOCATION);
443 DALI_TEST_EQUALS(keyEvent.state, Integration::KeyEvent::DOWN, TEST_LOCATION);
444 DALI_TEST_EQUALS(keyEvent.compose, std::string(), TEST_LOCATION);
445 DALI_TEST_EQUALS(keyEvent.deviceName, std::string(), TEST_LOCATION);
446 DALI_TEST_EQUALS(keyEvent.deviceClass, Device::Class::NONE, TEST_LOCATION);
447 DALI_TEST_EQUALS(keyEvent.deviceSubclass, Device::Subclass::NONE, TEST_LOCATION);
451 const std::string keyName("keyName");
452 const std::string logicalKey("logicalKey");
453 const std::string keyString("keyString");
454 const int keyCode(333);
455 const int keyModifier(312);
456 const unsigned long timeStamp(132);
457 const Integration::KeyEvent::State keyState(Integration::KeyEvent::UP);
458 const std::string compose("compose");
459 const std::string deviceName("hwKeyboard");
460 const Device::Class::Type deviceClass = Device::Class::KEYBOARD;
461 const Device::Subclass::Type deviceSubclass = Device::Subclass::NONE;
463 Integration::KeyEvent keyEvent(keyName, logicalKey, keyString, keyCode, keyModifier, timeStamp, keyState, compose, deviceName, deviceClass, deviceSubclass);
464 DALI_TEST_EQUALS(keyEvent.type, Integration::Event::Key, TEST_LOCATION);
465 DALI_TEST_CHECK(keyEvent.keyName == keyName);
466 DALI_TEST_CHECK(keyEvent.logicalKey == logicalKey);
467 DALI_TEST_CHECK(keyEvent.keyString == keyString);
468 DALI_TEST_EQUALS(keyEvent.keyCode, keyCode, TEST_LOCATION);
469 DALI_TEST_EQUALS(keyEvent.keyModifier, keyModifier, TEST_LOCATION);
470 DALI_TEST_EQUALS(keyEvent.time, timeStamp, TEST_LOCATION);
471 DALI_TEST_EQUALS(keyEvent.state, keyState, TEST_LOCATION);
472 DALI_TEST_EQUALS(keyEvent.compose, compose, TEST_LOCATION);
473 DALI_TEST_EQUALS(keyEvent.deviceName, deviceName, TEST_LOCATION);
474 DALI_TEST_EQUALS(keyEvent.deviceClass, deviceClass, TEST_LOCATION);
475 DALI_TEST_EQUALS(keyEvent.deviceSubclass, deviceSubclass, TEST_LOCATION);
480 int UtcDaliKeyEventSetKeyName(void)
482 TestApplication application;
484 Dali::KeyEvent event = DevelKeyEvent::New(TEST_STRING_1, "I", "i", 99, SHIFT_MODIFIER, 0lu, KeyEvent::DOWN, "", "", Device::Class::NONE, Device::Subclass::NONE);
486 DALI_TEST_EQUALS(TEST_STRING_1, event.GetKeyName(), TEST_LOCATION);
488 DevelKeyEvent::SetKeyName(event, "keyName");
489 DALI_TEST_EQUALS("keyName", event.GetKeyName(), TEST_LOCATION);
494 int UtcDaliKeyEventSetKeyString(void)
496 TestApplication application;
498 Dali::KeyEvent event = DevelKeyEvent::New(TEST_STRING_1, "I", "i", 99, SHIFT_MODIFIER, 0lu, KeyEvent::DOWN, "", "", Device::Class::NONE, Device::Subclass::NONE);
500 DALI_TEST_EQUALS("i", event.GetKeyString(), TEST_LOCATION);
502 DevelKeyEvent::SetKeyString(event, "keyString");
503 DALI_TEST_EQUALS("keyString", event.GetKeyString(), TEST_LOCATION);
508 int UtcDaliKeyEventSetKeyCode(void)
510 TestApplication application;
512 Dali::KeyEvent event = DevelKeyEvent::New(TEST_STRING_1, "I", "i", 99, SHIFT_MODIFIER, 0lu, KeyEvent::DOWN, "", "", Device::Class::NONE, Device::Subclass::NONE);
514 DALI_TEST_EQUALS(99, event.GetKeyCode(), TEST_LOCATION);
516 DevelKeyEvent::SetKeyCode(event, 88);
517 DALI_TEST_EQUALS(88, event.GetKeyCode(), TEST_LOCATION);
522 int UtcDaliKeyEventSetKeyModifier(void)
524 TestApplication application;
526 Dali::KeyEvent event = DevelKeyEvent::New(TEST_STRING_1, "I", "i", 99, SHIFT_MODIFIER, 0lu, KeyEvent::DOWN, "", "", Device::Class::NONE, Device::Subclass::NONE);
528 DALI_TEST_EQUALS(SHIFT_MODIFIER, event.GetKeyModifier(), TEST_LOCATION);
530 DevelKeyEvent::SetKeyModifier(event, ALT_MODIFIER);
531 DALI_TEST_EQUALS(ALT_MODIFIER, event.GetKeyModifier(), TEST_LOCATION);
536 int UtcDaliKeyEventSetTime(void)
538 TestApplication application;
540 Dali::KeyEvent event = DevelKeyEvent::New(TEST_STRING_1, "I", "i", 99, SHIFT_MODIFIER, 0lu, KeyEvent::DOWN, "", "", Device::Class::NONE, Device::Subclass::NONE);
542 DALI_TEST_EQUALS(0lu, event.GetTime(), TEST_LOCATION);
544 DevelKeyEvent::SetTime(event, 100lu);
545 DALI_TEST_EQUALS(100lu, event.GetTime(), TEST_LOCATION);
550 int UtcDaliKeyEventSetState(void)
552 TestApplication application;
554 Dali::KeyEvent event = DevelKeyEvent::New(TEST_STRING_1, "I", "i", 99, SHIFT_MODIFIER, 0lu, KeyEvent::DOWN, "", "", Device::Class::NONE, Device::Subclass::NONE);
556 DALI_TEST_EQUALS(KeyEvent::DOWN, event.GetState(), TEST_LOCATION);
558 DevelKeyEvent::SetState(event, KeyEvent::UP);
559 DALI_TEST_EQUALS(KeyEvent::UP, event.GetState(), TEST_LOCATION);
564 int UtcDaliKeyEventSetRepeat(void)
566 TestApplication application;
568 Dali::KeyEvent event = DevelKeyEvent::New(TEST_STRING_1, "I", "i", 99, SHIFT_MODIFIER, 0lu, KeyEvent::DOWN, "", "", Device::Class::NONE, Device::Subclass::NONE);
570 DALI_TEST_EQUALS(false, event.IsRepeat(), TEST_LOCATION);
572 DevelKeyEvent::SetRepeat(event, true);
573 DALI_TEST_EQUALS(true, event.IsRepeat(), TEST_LOCATION);