2 // Copyright (c) 2014 Samsung Electronics Co., Ltd.
4 // Licensed under the Flora License, Version 1.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://floralicense.org/license/
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.
24 #include <adaptors/tizen/internal/common/key-impl.h>
25 #include <dali/public-api/events/key-event.h>
27 #include <dali/public-api/dali-core.h>
32 #include <dali/dali.h>
35 #include <dali-test-suite-utils.h>
39 static void Startup();
40 static void Cleanup();
43 void (*tet_startup)() = Startup;
44 void (*tet_cleanup)() = Cleanup;
47 #define MAX_NUMBER_OF_TESTS 10000
49 struct tet_testlist tet_testlist[MAX_NUMBER_OF_TESTS];
53 POSITIVE_TC_IDX = 0x01,
57 // Add test functionality for all APIs in the class (Positive and Negative)
58 TEST_FUNCTION( UtcDaliKeyIsKey, POSITIVE_TC_IDX );
59 TEST_FUNCTION( UtcDaliKeyIsKeyNegative, NEGATIVE_TC_IDX );
60 TEST_FUNCTION( UtcDaliKeyIsDeviceButton, POSITIVE_TC_IDX );
62 // Copied from key-impl.cpp
65 const char* keyName; ///< X string representation
66 const int daliKeyCode; ///< Dali Enum Representation
67 const bool deviceButton; ///< Whether the key is from a button on the device
70 // Taken from key-impl.cpp
71 KeyLookup KeyLookupTable[]=
73 // KeyName DALi Equivalent true if device key
74 { "Escape", DALI_KEY_ESCAPE, false },
75 { "Menu", DALI_KEY_MENU, false },
76 { KEY_CAMERA, DALI_KEY_CAMERA, false },
77 { KEY_CONFIG, DALI_KEY_CONFIG, false },
78 { KEY_POWER, DALI_KEY_POWER, true },
79 { KEY_PAUSE, DALI_KEY_PAUSE, false },
80 { KEY_CANCEL, DALI_KEY_CANCEL, false },
81 { KEY_PLAYCD, DALI_KEY_PLAY_CD, false },
82 { KEY_STOPCD, DALI_KEY_STOP_CD, false },
83 { KEY_PAUSECD, DALI_KEY_PAUSE_CD, false },
84 { KEY_NEXTSONG, DALI_KEY_NEXT_SONG, false },
85 { KEY_PREVIOUSSONG, DALI_KEY_PREVIOUS_SONG, false },
86 { KEY_REWIND, DALI_KEY_REWIND, false },
87 { KEY_FASTFORWARD, DALI_KEY_FASTFORWARD, false },
88 { KEY_MEDIA, DALI_KEY_MEDIA, false },
89 { KEY_PLAYPAUSE, DALI_KEY_PLAY_PAUSE, false },
90 { KEY_MUTE, DALI_KEY_MUTE, false },
91 { KEY_SEND, DALI_KEY_SEND, true },
92 { KEY_SELECT, DALI_KEY_SELECT, true },
93 { KEY_END, DALI_KEY_END, true },
94 { KEY_MENU, DALI_KEY_MENU, true },
95 { KEY_HOME, DALI_KEY_HOME, true },
96 { KEY_BACK, DALI_KEY_BACK, true },
97 { KEY_HOMEPAGE, DALI_KEY_HOMEPAGE, false },
98 { KEY_WEBPAGE, DALI_KEY_WEBPAGE, false },
99 { KEY_MAIL, DALI_KEY_MAIL, false },
100 { KEY_SCREENSAVER, DALI_KEY_SCREENSAVER, false },
101 { KEY_BRIGHTNESSUP, DALI_KEY_BRIGHTNESS_UP, false },
102 { KEY_BRIGHTNESSDOWN, DALI_KEY_BRIGHTNESS_DOWN, false },
103 { KEY_SOFTKBD, DALI_KEY_SOFT_KBD, false },
104 { KEY_QUICKPANEL, DALI_KEY_QUICK_PANEL, false },
105 { KEY_TASKSWITCH, DALI_KEY_TASK_SWITCH, false },
106 { KEY_APPS, DALI_KEY_APPS, false },
107 { KEY_SEARCH, DALI_KEY_SEARCH, false },
108 { KEY_VOICE, DALI_KEY_VOICE, false },
109 { KEY_LANGUAGE, DALI_KEY_LANGUAGE, false },
110 { KEY_VOLUMEUP, DALI_KEY_VOLUME_UP, true },
111 { KEY_VOLUMEDOWN, DALI_KEY_VOLUME_DOWN, true },
113 const std::size_t KEY_LOOKUP_COUNT = (sizeof( KeyLookupTable))/ (sizeof(KeyLookup));
115 // Called only once before first test is run.
116 static void Startup()
120 // Called only once after last test is run
121 static void Cleanup()
125 // Generate a KeyPressEvent to send to Core
126 Dali::KeyEvent GenerateKeyPress( const std::string& keyName )
129 keyPress.keyPressedName = keyName;
133 void UtcDaliKeyIsKey()
135 TestApplication application;
137 for ( std::size_t i = 0; i < KEY_LOOKUP_COUNT; ++i )
139 tet_printf( "Checking %s", KeyLookupTable[i].keyName );
140 DALI_TEST_CHECK( IsKey( GenerateKeyPress( KeyLookupTable[i].keyName ), KeyLookupTable[i].daliKeyCode ) );
144 void UtcDaliKeyIsKeyNegative()
146 TestApplication application;
149 DALI_TEST_CHECK( IsKey( GenerateKeyPress( "invalid-key-name" ), DALI_KEY_MUTE ) == false );
151 // Compare with another key value
152 for ( std::size_t i = 0; i < KEY_LOOKUP_COUNT; ++i )
154 tet_printf( "Checking %s", KeyLookupTable[i].keyName );
155 DALI_TEST_CHECK( IsKey( GenerateKeyPress( KeyLookupTable[i].keyName ), KeyLookupTable[ ( i + 1 ) % KEY_LOOKUP_COUNT ].daliKeyCode ) == false );
159 void UtcDaliKeyIsDeviceButton()
161 TestApplication application;
163 for ( std::size_t i = 0; i < KEY_LOOKUP_COUNT; ++i )
165 tet_printf( "Checking %s", KeyLookupTable[i].keyName );
166 DALI_TEST_CHECK( Dali::Internal::Adaptor::KeyLookup::IsDeviceButton( KeyLookupTable[i].keyName ) == KeyLookupTable[i].deviceButton );