kerneltest/e32test/window/t_keyrepeat.cpp
author hgs
Tue, 02 Nov 2010 15:42:21 +0000
changeset 301 172f33f13d7d
parent 271 dc268b18d709
permissions -rw-r--r--
201043_12
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
271
dc268b18d709 201037_07
hgs
parents:
diff changeset
     1
// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
dc268b18d709 201037_07
hgs
parents:
diff changeset
     2
// All rights reserved.
dc268b18d709 201037_07
hgs
parents:
diff changeset
     3
// This component and the accompanying materials are made available
dc268b18d709 201037_07
hgs
parents:
diff changeset
     4
// under the terms of the License "Eclipse Public License v1.0"
dc268b18d709 201037_07
hgs
parents:
diff changeset
     5
// which accompanies this distribution, and is available
dc268b18d709 201037_07
hgs
parents:
diff changeset
     6
// at the URL "http://www.eclipse.org/legal/epl-v10.html".
dc268b18d709 201037_07
hgs
parents:
diff changeset
     7
//
dc268b18d709 201037_07
hgs
parents:
diff changeset
     8
// Initial Contributors:
dc268b18d709 201037_07
hgs
parents:
diff changeset
     9
// Nokia Corporation - initial contribution.
dc268b18d709 201037_07
hgs
parents:
diff changeset
    10
//
dc268b18d709 201037_07
hgs
parents:
diff changeset
    11
// Contributors:
dc268b18d709 201037_07
hgs
parents:
diff changeset
    12
//
dc268b18d709 201037_07
hgs
parents:
diff changeset
    13
// Description:
dc268b18d709 201037_07
hgs
parents:
diff changeset
    14
// e32test\window\t_keyrepeat.cpp
dc268b18d709 201037_07
hgs
parents:
diff changeset
    15
// Overview:
dc268b18d709 201037_07
hgs
parents:
diff changeset
    16
// Test the TRawEvent APIS and events related to keyrepeat
dc268b18d709 201037_07
hgs
parents:
diff changeset
    17
// Tests both user and kernel side functions
dc268b18d709 201037_07
hgs
parents:
diff changeset
    18
// API Information:
dc268b18d709 201037_07
hgs
parents:
diff changeset
    19
// UserSvr, TRawEvent
dc268b18d709 201037_07
hgs
parents:
diff changeset
    20
// Details:
dc268b18d709 201037_07
hgs
parents:
diff changeset
    21
// Platforms/Drives/Compatibility:
dc268b18d709 201037_07
hgs
parents:
diff changeset
    22
// All.
dc268b18d709 201037_07
hgs
parents:
diff changeset
    23
// Assumptions/Requirement/Pre-requisites: 
dc268b18d709 201037_07
hgs
parents:
diff changeset
    24
// Failures and causes:
dc268b18d709 201037_07
hgs
parents:
diff changeset
    25
// 
dc268b18d709 201037_07
hgs
parents:
diff changeset
    26
//
dc268b18d709 201037_07
hgs
parents:
diff changeset
    27
dc268b18d709 201037_07
hgs
parents:
diff changeset
    28
#define __E32TEST_EXTENSION__
dc268b18d709 201037_07
hgs
parents:
diff changeset
    29
dc268b18d709 201037_07
hgs
parents:
diff changeset
    30
#include <e32test.h>
dc268b18d709 201037_07
hgs
parents:
diff changeset
    31
#include <e32svr.h>
dc268b18d709 201037_07
hgs
parents:
diff changeset
    32
#include <e32cmn.h>
dc268b18d709 201037_07
hgs
parents:
diff changeset
    33
#include <e32cmn_private.h>
dc268b18d709 201037_07
hgs
parents:
diff changeset
    34
#include "d_keyrepeat.h"
dc268b18d709 201037_07
hgs
parents:
diff changeset
    35
dc268b18d709 201037_07
hgs
parents:
diff changeset
    36
LOCAL_D RTest test(_L("T_KEYREPEAT"));
dc268b18d709 201037_07
hgs
parents:
diff changeset
    37
dc268b18d709 201037_07
hgs
parents:
diff changeset
    38
RTestKeyRepeatLdd gLdd;
dc268b18d709 201037_07
hgs
parents:
diff changeset
    39
dc268b18d709 201037_07
hgs
parents:
diff changeset
    40
// default constructor
dc268b18d709 201037_07
hgs
parents:
diff changeset
    41
RKeyEvent::RKeyEvent()
dc268b18d709 201037_07
hgs
parents:
diff changeset
    42
	{
dc268b18d709 201037_07
hgs
parents:
diff changeset
    43
	}
dc268b18d709 201037_07
hgs
parents:
diff changeset
    44
dc268b18d709 201037_07
hgs
parents:
diff changeset
    45
// constructor for RKeyEvent
dc268b18d709 201037_07
hgs
parents:
diff changeset
    46
RKeyEvent::RKeyEvent(TStdScanCode aKey, TInt aRepeatCount)
dc268b18d709 201037_07
hgs
parents:
diff changeset
    47
: iKey(aKey), iRepeatCount(aRepeatCount)
dc268b18d709 201037_07
hgs
parents:
diff changeset
    48
	{
dc268b18d709 201037_07
hgs
parents:
diff changeset
    49
	}
dc268b18d709 201037_07
hgs
parents:
diff changeset
    50
dc268b18d709 201037_07
hgs
parents:
diff changeset
    51
void LoadDeviceDriver()
dc268b18d709 201037_07
hgs
parents:
diff changeset
    52
	{
dc268b18d709 201037_07
hgs
parents:
diff changeset
    53
	TInt r;
dc268b18d709 201037_07
hgs
parents:
diff changeset
    54
dc268b18d709 201037_07
hgs
parents:
diff changeset
    55
	r=User::LoadLogicalDevice(KLddName);
dc268b18d709 201037_07
hgs
parents:
diff changeset
    56
	test_KErrNone(r);
dc268b18d709 201037_07
hgs
parents:
diff changeset
    57
	
dc268b18d709 201037_07
hgs
parents:
diff changeset
    58
	r=gLdd.Open();
dc268b18d709 201037_07
hgs
parents:
diff changeset
    59
	test_KErrNone(r);
dc268b18d709 201037_07
hgs
parents:
diff changeset
    60
	}
dc268b18d709 201037_07
hgs
parents:
diff changeset
    61
dc268b18d709 201037_07
hgs
parents:
diff changeset
    62
void UnloadDeviceDriver()
dc268b18d709 201037_07
hgs
parents:
diff changeset
    63
	{
dc268b18d709 201037_07
hgs
parents:
diff changeset
    64
	TInt r;
dc268b18d709 201037_07
hgs
parents:
diff changeset
    65
	gLdd.Close();
dc268b18d709 201037_07
hgs
parents:
diff changeset
    66
dc268b18d709 201037_07
hgs
parents:
diff changeset
    67
	r = User::FreeLogicalDevice(KLddName);
dc268b18d709 201037_07
hgs
parents:
diff changeset
    68
	test_KErrNone(r);
dc268b18d709 201037_07
hgs
parents:
diff changeset
    69
	User::After(100000);
dc268b18d709 201037_07
hgs
parents:
diff changeset
    70
	}
dc268b18d709 201037_07
hgs
parents:
diff changeset
    71
dc268b18d709 201037_07
hgs
parents:
diff changeset
    72
dc268b18d709 201037_07
hgs
parents:
diff changeset
    73
GLDEF_C TInt E32Main()
dc268b18d709 201037_07
hgs
parents:
diff changeset
    74
//
dc268b18d709 201037_07
hgs
parents:
diff changeset
    75
//
dc268b18d709 201037_07
hgs
parents:
diff changeset
    76
    {
dc268b18d709 201037_07
hgs
parents:
diff changeset
    77
 	test.Title();
dc268b18d709 201037_07
hgs
parents:
diff changeset
    78
	test.Start(_L("Testing user side TRawEvent::SetRepeat and ::Repeats API"));
dc268b18d709 201037_07
hgs
parents:
diff changeset
    79
	TInt numRepeats=10;
dc268b18d709 201037_07
hgs
parents:
diff changeset
    80
dc268b18d709 201037_07
hgs
parents:
diff changeset
    81
	// create event objects
dc268b18d709 201037_07
hgs
parents:
diff changeset
    82
	RKeyEvent theKeyEvent(EStdKeySpace, numRepeats);
dc268b18d709 201037_07
hgs
parents:
diff changeset
    83
	TRawEvent theEvent;
dc268b18d709 201037_07
hgs
parents:
diff changeset
    84
	// set repeat
dc268b18d709 201037_07
hgs
parents:
diff changeset
    85
	theEvent.SetRepeat(TRawEvent::EKeyRepeat, theKeyEvent.iKey, theKeyEvent.iRepeatCount);
dc268b18d709 201037_07
hgs
parents:
diff changeset
    86
	// send event
dc268b18d709 201037_07
hgs
parents:
diff changeset
    87
	test_KErrNone(UserSvr::AddEvent(theEvent));
dc268b18d709 201037_07
hgs
parents:
diff changeset
    88
	// check repeat value
dc268b18d709 201037_07
hgs
parents:
diff changeset
    89
	test_Equal(theKeyEvent.iRepeatCount, theEvent.Repeats());
dc268b18d709 201037_07
hgs
parents:
diff changeset
    90
	test.Printf(_L("T_KEYREPEAT: USER SIDE TEST Successfully Completed\n"));
dc268b18d709 201037_07
hgs
parents:
diff changeset
    91
dc268b18d709 201037_07
hgs
parents:
diff changeset
    92
	test.Next(_L("Testing kernel side TRawEvent::SetRepeat and ::Repeats API"));
dc268b18d709 201037_07
hgs
parents:
diff changeset
    93
dc268b18d709 201037_07
hgs
parents:
diff changeset
    94
	LoadDeviceDriver();
dc268b18d709 201037_07
hgs
parents:
diff changeset
    95
	// call kernel side to set repeat values and send the event
dc268b18d709 201037_07
hgs
parents:
diff changeset
    96
	test_KErrNone(gLdd.SetRepeat(theKeyEvent));
dc268b18d709 201037_07
hgs
parents:
diff changeset
    97
	// call kernel side to check that the repeat count was set correctly
dc268b18d709 201037_07
hgs
parents:
diff changeset
    98
	test_KErrNone(gLdd.Repeats());
dc268b18d709 201037_07
hgs
parents:
diff changeset
    99
dc268b18d709 201037_07
hgs
parents:
diff changeset
   100
	UnloadDeviceDriver();
dc268b18d709 201037_07
hgs
parents:
diff changeset
   101
	test.Printf(_L("T_KEYREPEAT: KERNEL SIDE TEST Successfully Completed\n"));
dc268b18d709 201037_07
hgs
parents:
diff changeset
   102
dc268b18d709 201037_07
hgs
parents:
diff changeset
   103
	test.End();
dc268b18d709 201037_07
hgs
parents:
diff changeset
   104
	test.Close();
dc268b18d709 201037_07
hgs
parents:
diff changeset
   105
    return KErrNone;
dc268b18d709 201037_07
hgs
parents:
diff changeset
   106
    }
dc268b18d709 201037_07
hgs
parents:
diff changeset
   107