windowing/windowserver/test/tauto/tdevicerotation.cpp
author hgs
Fri, 24 Sep 2010 16:44:34 +0300
changeset 188 1b081cb0800b
permissions -rw-r--r--
201026_1
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
188
1b081cb0800b 201026_1
hgs
parents:
diff changeset
     1
// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
1b081cb0800b 201026_1
hgs
parents:
diff changeset
     2
// All rights reserved.
1b081cb0800b 201026_1
hgs
parents:
diff changeset
     3
// This component and the accompanying materials are made available
1b081cb0800b 201026_1
hgs
parents:
diff changeset
     4
// under the terms of "Eclipse Public License v1.0"
1b081cb0800b 201026_1
hgs
parents:
diff changeset
     5
// which accompanies this distribution, and is available
1b081cb0800b 201026_1
hgs
parents:
diff changeset
     6
// at the URL "http://www.eclipse.org/legal/epl-v10.html".
1b081cb0800b 201026_1
hgs
parents:
diff changeset
     7
//
1b081cb0800b 201026_1
hgs
parents:
diff changeset
     8
// Initial Contributors:
1b081cb0800b 201026_1
hgs
parents:
diff changeset
     9
// Nokia Corporation - initial contribution.
1b081cb0800b 201026_1
hgs
parents:
diff changeset
    10
//
1b081cb0800b 201026_1
hgs
parents:
diff changeset
    11
// Contributors:
1b081cb0800b 201026_1
hgs
parents:
diff changeset
    12
//
1b081cb0800b 201026_1
hgs
parents:
diff changeset
    13
// Description:
1b081cb0800b 201026_1
hgs
parents:
diff changeset
    14
// Set of tests for Tracing Device Rotation. These tests generally test
1b081cb0800b 201026_1
hgs
parents:
diff changeset
    15
// RWsSession::IndicateAppOrientation(...).
1b081cb0800b 201026_1
hgs
parents:
diff changeset
    16
//
1b081cb0800b 201026_1
hgs
parents:
diff changeset
    17
1b081cb0800b 201026_1
hgs
parents:
diff changeset
    18
/**
1b081cb0800b 201026_1
hgs
parents:
diff changeset
    19
 @file
1b081cb0800b 201026_1
hgs
parents:
diff changeset
    20
 @test
1b081cb0800b 201026_1
hgs
parents:
diff changeset
    21
 @internalComponent - Internal Nokia test code
1b081cb0800b 201026_1
hgs
parents:
diff changeset
    22
*/
1b081cb0800b 201026_1
hgs
parents:
diff changeset
    23
1b081cb0800b 201026_1
hgs
parents:
diff changeset
    24
#include "tdevicerotation.h"
1b081cb0800b 201026_1
hgs
parents:
diff changeset
    25
#include "themeserverpropertydefine.h"
1b081cb0800b 201026_1
hgs
parents:
diff changeset
    26
#include "..\..\nga\server\renderorientationtracker.h" 
1b081cb0800b 201026_1
hgs
parents:
diff changeset
    27
#include <hal.h>
1b081cb0800b 201026_1
hgs
parents:
diff changeset
    28
#include <hal_data.h>
1b081cb0800b 201026_1
hgs
parents:
diff changeset
    29
#include <w32std.h>
1b081cb0800b 201026_1
hgs
parents:
diff changeset
    30
1b081cb0800b 201026_1
hgs
parents:
diff changeset
    31
const TInt KPublishTimeout = 1000000; // 1 second in microseconds
1b081cb0800b 201026_1
hgs
parents:
diff changeset
    32
1b081cb0800b 201026_1
hgs
parents:
diff changeset
    33
//
1b081cb0800b 201026_1
hgs
parents:
diff changeset
    34
// CTDeviceRotation Definition
1b081cb0800b 201026_1
hgs
parents:
diff changeset
    35
//
1b081cb0800b 201026_1
hgs
parents:
diff changeset
    36
1b081cb0800b 201026_1
hgs
parents:
diff changeset
    37
CTDeviceRotation::CTDeviceRotation(CTestStep* aStep):
1b081cb0800b 201026_1
hgs
parents:
diff changeset
    38
	CTGraphicsBase(aStep), iWaitForPublishOnNextTest(ETrue)
1b081cb0800b 201026_1
hgs
parents:
diff changeset
    39
	{
1b081cb0800b 201026_1
hgs
parents:
diff changeset
    40
	}
1b081cb0800b 201026_1
hgs
parents:
diff changeset
    41
1b081cb0800b 201026_1
hgs
parents:
diff changeset
    42
CTDeviceRotation::~CTDeviceRotation()
1b081cb0800b 201026_1
hgs
parents:
diff changeset
    43
	{
1b081cb0800b 201026_1
hgs
parents:
diff changeset
    44
    iPublishTimer.Close();
1b081cb0800b 201026_1
hgs
parents:
diff changeset
    45
    
1b081cb0800b 201026_1
hgs
parents:
diff changeset
    46
    iChildWindow.Close();
1b081cb0800b 201026_1
hgs
parents:
diff changeset
    47
    iWindowGroup.Close();
1b081cb0800b 201026_1
hgs
parents:
diff changeset
    48
    iWs.Close();    
1b081cb0800b 201026_1
hgs
parents:
diff changeset
    49
    
1b081cb0800b 201026_1
hgs
parents:
diff changeset
    50
    iSecondChildWindow.Close();
1b081cb0800b 201026_1
hgs
parents:
diff changeset
    51
    iSecondWindowGroup.Close();    
1b081cb0800b 201026_1
hgs
parents:
diff changeset
    52
    iSecondWs.Close();
1b081cb0800b 201026_1
hgs
parents:
diff changeset
    53
   
1b081cb0800b 201026_1
hgs
parents:
diff changeset
    54
    /* This Process called with the argument KThemeServerPropertyDefineCmdDelete, deletes 
1b081cb0800b 201026_1
hgs
parents:
diff changeset
    55
       the theme server RProperty. This is because an RProperty can only be defined and 
1b081cb0800b 201026_1
hgs
parents:
diff changeset
    56
       deleted from within a process with the same UID3 as the RProperty catogory you are 
1b081cb0800b 201026_1
hgs
parents:
diff changeset
    57
       trying to define/delete.*/
1b081cb0800b 201026_1
hgs
parents:
diff changeset
    58
    RProcess themeServerPropertyDefine;
1b081cb0800b 201026_1
hgs
parents:
diff changeset
    59
    TInt err = themeServerPropertyDefine.Create(KThemeServerPropertyDefine,
1b081cb0800b 201026_1
hgs
parents:
diff changeset
    60
            KThemeServerPropertyDefineCmdDelete);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
    61
    if (KErrNone != err)
1b081cb0800b 201026_1
hgs
parents:
diff changeset
    62
        {
1b081cb0800b 201026_1
hgs
parents:
diff changeset
    63
        _LIT(KLog, "themeServerPropertyDefine.Create() failed with error: %d");
1b081cb0800b 201026_1
hgs
parents:
diff changeset
    64
        INFO_PRINTF2(KLog, err);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
    65
        TEST(EFalse);        
1b081cb0800b 201026_1
hgs
parents:
diff changeset
    66
        }
1b081cb0800b 201026_1
hgs
parents:
diff changeset
    67
    //wait for themeServerPropertyDefine process to terminate
1b081cb0800b 201026_1
hgs
parents:
diff changeset
    68
    TRequestStatus themeServerPropertyDefineLogonStatus;
1b081cb0800b 201026_1
hgs
parents:
diff changeset
    69
    themeServerPropertyDefine.Logon(themeServerPropertyDefineLogonStatus);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
    70
    themeServerPropertyDefine.Resume();
1b081cb0800b 201026_1
hgs
parents:
diff changeset
    71
    User::WaitForRequest(themeServerPropertyDefineLogonStatus);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
    72
    if (themeServerPropertyDefineLogonStatus != KErrNone)
1b081cb0800b 201026_1
hgs
parents:
diff changeset
    73
        {
1b081cb0800b 201026_1
hgs
parents:
diff changeset
    74
        _LIT(KLog, "themeServerPropertyDefine.Logon() failed with error: %d");
1b081cb0800b 201026_1
hgs
parents:
diff changeset
    75
        INFO_PRINTF2(KLog, themeServerPropertyDefineLogonStatus);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
    76
        TEST(EFalse);        
1b081cb0800b 201026_1
hgs
parents:
diff changeset
    77
        }
1b081cb0800b 201026_1
hgs
parents:
diff changeset
    78
    themeServerPropertyDefine.Close();
1b081cb0800b 201026_1
hgs
parents:
diff changeset
    79
    
1b081cb0800b 201026_1
hgs
parents:
diff changeset
    80
    iRenderOrientationProperty.Delete(KRenderOrientationCategory, KRenderOrientationKey);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
    81
    iRenderOrientationProperty.Close();
1b081cb0800b 201026_1
hgs
parents:
diff changeset
    82
    iThemeServerOrientationProperty.Close();
1b081cb0800b 201026_1
hgs
parents:
diff changeset
    83
    }
1b081cb0800b 201026_1
hgs
parents:
diff changeset
    84
1b081cb0800b 201026_1
hgs
parents:
diff changeset
    85
void CTDeviceRotation::ConstructL()
1b081cb0800b 201026_1
hgs
parents:
diff changeset
    86
    {
1b081cb0800b 201026_1
hgs
parents:
diff changeset
    87
    TInt err = iWs.Connect();
1b081cb0800b 201026_1
hgs
parents:
diff changeset
    88
    TESTL(err == KErrNone);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
    89
            
1b081cb0800b 201026_1
hgs
parents:
diff changeset
    90
    err = iSecondWs.Connect();
1b081cb0800b 201026_1
hgs
parents:
diff changeset
    91
    TESTL(KErrNone == err);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
    92
    
1b081cb0800b 201026_1
hgs
parents:
diff changeset
    93
    iWs.SetAutoFlush(ETrue);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
    94
    iSecondWs.SetAutoFlush(ETrue);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
    95
    
1b081cb0800b 201026_1
hgs
parents:
diff changeset
    96
    iWindowGroup = RWindowGroup(iWs);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
    97
    err = iWindowGroup.Construct(iWs.Handle());
1b081cb0800b 201026_1
hgs
parents:
diff changeset
    98
    TESTL(KErrNone == err);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
    99
    iWindowGroup.SetOrdinalPosition(0,1);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   100
    
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   101
    iChildWindow = RWindow(iWs);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   102
    err = iChildWindow.Construct(iWindowGroup, reinterpret_cast<TUint32>(&iChildWindow));
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   103
    TESTL(KErrNone == err);    
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   104
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   105
    iSecondWindowGroup = RWindowGroup(iSecondWs);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   106
    err = iSecondWindowGroup.Construct(iSecondWs.Handle());
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   107
    TESTL(KErrNone == err);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   108
    iSecondWindowGroup.SetOrdinalPosition(1,1);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   109
    
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   110
    iSecondChildWindow = RWindow(iSecondWs);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   111
    err = iSecondChildWindow.Construct(iSecondWindowGroup, reinterpret_cast<TUint32>(&iSecondChildWindow));
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   112
    TESTL(KErrNone == err);    
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   113
    
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   114
    err= iRenderOrientationProperty.Attach(KRenderOrientationCategory, KRenderOrientationKey, EOwnerThread);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   115
    TESTL(KErrNone == err);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   116
    iRenderOrientationProperty.Subscribe(iRenderOrientationStatus);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   117
    
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   118
    /* This Process called with the argument KThemeServerPropertyDefineCmdDefine, defines
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   119
       the theme server catagory to be the same as the theme servers process ID. This is 
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   120
       because an RProperty can only be defined and deleted from within a process with the 
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   121
       same UID3 as the RProperty catogory you are trying to define/delete.*/
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   122
    RProcess themeServerPropertyDefine;
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   123
    err = themeServerPropertyDefine.Create(KThemeServerPropertyDefine,KThemeServerPropertyDefineCmdDefine);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   124
    TESTL(KErrNone == err);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   125
    TRequestStatus themeServerPropertyDefineLogonStatus;
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   126
    themeServerPropertyDefine.Logon(themeServerPropertyDefineLogonStatus);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   127
    themeServerPropertyDefine.Resume();
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   128
    User::WaitForRequest(themeServerPropertyDefineLogonStatus);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   129
    TESTL(KErrNone == themeServerPropertyDefineLogonStatus.Int()); 
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   130
    themeServerPropertyDefine.Close(); 
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   131
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   132
    err = iThemeServerOrientationProperty.Attach(KThemeOrientationCategory, KThemeOrientationKey, EOwnerThread);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   133
    TESTL(KErrNone == err);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   134
    
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   135
    SimulateThemeServerOrientation(EDisplayOrientationNormal);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   136
    
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   137
    iPublishTimer.CreateLocal();
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   138
    }
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   139
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   140
void CTDeviceRotation::SimulateThemeServerOrientation(TRenderOrientation aOrientation)
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   141
    {
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   142
    _LIT(KFunctionInfo, "SimulateThemeServerOrientation(aOrientation = %d)");
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   143
    INFO_PRINTF2(KFunctionInfo, aOrientation);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   144
    TInt err = iThemeServerOrientationProperty.Set(aOrientation);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   145
    if (KErrNone != err)
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   146
        {
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   147
        _LIT(KLog,"iThemeServerOrientationProperty.Set(%d) failed with err %d");
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   148
        INFO_PRINTF3(KLog,aOrientation,err);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   149
        TEST(EFalse);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   150
        }
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   151
    switch(aOrientation)
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   152
        {
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   153
        case EDisplayOrientationNormal:
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   154
        case EDisplayOrientation90CW:
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   155
        case EDisplayOrientation180:
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   156
        case EDisplayOrientation270CW:
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   157
            {
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   158
            if(KErrNone == err)
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   159
                {
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   160
                iCurrentThemeServerOrientation = aOrientation;            
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   161
                }                
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   162
            break;
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   163
            }
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   164
        default:
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   165
            _LIT(KLog, "This orientation is not supported by theme server.");
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   166
        	INFO_PRINTF1(KLog);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   167
        }
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   168
    }
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   169
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   170
void CTDeviceRotation::IsOrientationCorrect(TRenderOrientation aExpectedOrientation)
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   171
    {
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   172
    // timer to timeout when nothing is published
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   173
    iPublishTimer.After(iPublishTimerStatus, KPublishTimeout);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   174
    
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   175
    // wait for either
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   176
    User::WaitForRequest(iRenderOrientationStatus, iPublishTimerStatus);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   177
    
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   178
    // check that the orientation was published or not, as expected
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   179
    if(iWaitForPublishOnNextTest)
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   180
        {
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   181
        // Check that it really has published
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   182
        if(iRenderOrientationStatus.Int()==KErrNone && iPublishTimerStatus.Int()==KRequestPending)
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   183
            {
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   184
            iPublishTimer.Cancel();
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   185
            // re-subscribe
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   186
            iRenderOrientationProperty.Subscribe(iRenderOrientationStatus);            
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   187
            }
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   188
        else
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   189
            {
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   190
            _LIT(KLog,"Timed out (%d) while waiting for render orientation %d to be published");
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   191
            INFO_PRINTF3(KLog,iRenderOrientationStatus.Int(),aExpectedOrientation);        
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   192
            TEST(EFalse);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   193
            }
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   194
        }
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   195
    else
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   196
        {
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   197
        // Check that it really hasn't published    
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   198
        if(iRenderOrientationStatus.Int()!=KRequestPending)
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   199
            {
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   200
            _LIT(KLog,"Render Orientation %d was published (%d) when not expected (timeout = %d)");
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   201
            INFO_PRINTF4(KLog,aExpectedOrientation, iRenderOrientationStatus.Int(),iPublishTimerStatus.Int());
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   202
            iPublishTimer.Cancel();
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   203
            TEST(EFalse);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   204
            }
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   205
        else if(iPublishTimerStatus.Int()!=KErrNone)
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   206
            {
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   207
            _LIT(KLog,"Timeout failure %d");
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   208
            INFO_PRINTF2(KLog,iPublishTimerStatus.Int());           
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   209
            TEST(EFalse);        
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   210
            }
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   211
        
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   212
        // reset to default
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   213
        iWaitForPublishOnNextTest = ETrue;
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   214
        }
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   215
    
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   216
    // Retrieve the value.
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   217
    TInt orientation;
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   218
    TInt err = iRenderOrientationProperty.Get(orientation);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   219
    if(KErrNone != err)
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   220
           {
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   221
           _LIT(KLog,"iThemeServerOrientationProperty.Get(...) failed with err %d");
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   222
           INFO_PRINTF2(KLog,err);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   223
           TEST(EFalse);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   224
           }
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   225
    else if(aExpectedOrientation == EDisplayOrientationAuto)
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   226
        {
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   227
        TEST(orientation == iCurrentThemeServerOrientation);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   228
        CheckHalSetting(iCurrentThemeServerOrientation);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   229
        }
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   230
    else
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   231
        {
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   232
        TEST(orientation == aExpectedOrientation);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   233
        CheckHalSetting(static_cast<TRenderOrientation>(orientation));
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   234
        }
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   235
    }
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   236
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   237
void CTDeviceRotation::CheckHalSetting(TRenderOrientation aOrientation)
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   238
    {
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   239
    HALData::TDigitiserOrientation halOrientationExp = static_cast<HALData::TDigitiserOrientation>
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   240
            (HALData::EDigitiserOrientation_000 + (aOrientation - EDisplayOrientationNormal));
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   241
    TInt halOrientation;
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   242
    TInt err = HAL::Get(iWs.GetFocusScreen(), HALData::EDigitiserOrientation, halOrientation);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   243
    if (err != KErrNotSupported)
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   244
        {
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   245
        if (err != KErrNone)
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   246
            {
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   247
            _LIT(KLog,"Getting HAL orientation attribute returned error %d when no error expected");
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   248
            INFO_PRINTF2(KLog,err);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   249
            }
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   250
        TEST(err==KErrNone);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   251
        if (halOrientationExp != halOrientation)
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   252
            {
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   253
            _LIT(KLog,"HAL orientation is %d when expected to be %d");
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   254
            INFO_PRINTF3(KLog, halOrientation, halOrientationExp);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   255
            }
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   256
        TEST(halOrientationExp==halOrientation);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   257
        }
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   258
    else
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   259
        {
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   260
        _LIT(KLog,"HAL-Orientation HALData::EDigitiserOrientation isn't supported by Driver");
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   261
        INFO_PRINTF1(KLog);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   262
        }
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   263
    }
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   264
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   265
void CTDeviceRotation::TestIndicateAppOrientation(TRenderOrientation aOrientation)
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   266
	{
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   267
    _LIT(KTestInfo, "TestIndicateAppOrientation(aOrientation = %d)");
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   268
    INFO_PRINTF2(KTestInfo, aOrientation);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   269
	if (EDisplayOrientationIgnore == aOrientation)
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   270
	    {
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   271
        TEST(EFalse);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   272
        _LIT(KLog, "TestIndicateAppOrientation(TRenderOrientation aOrientation) cannot be used with EDisplayOrientationIgnore");
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   273
        INFO_PRINTF1(KLog);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   274
	    }
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   275
	iWs.IndicateAppOrientation(aOrientation);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   276
	iWindowGroup.SetOrdinalPosition(0);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   277
	IsOrientationCorrect(aOrientation);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   278
	}
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   279
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   280
void CTDeviceRotation::TestIndicateAppOrientation(TRenderOrientation aOrientation, TRenderOrientation aSecondOrientation)
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   281
    {
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   282
    _LIT(KTestInfo, "TestIndicateAppOrientation(aOrientation = %d, aSecondOrientation = %d)");
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   283
    INFO_PRINTF3(KTestInfo, aOrientation, aSecondOrientation);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   284
    //Inform window serve the orientation status
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   285
    iWs.IndicateAppOrientation(aOrientation);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   286
    iSecondWs.IndicateAppOrientation(aSecondOrientation);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   287
    
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   288
    iWindowGroup.SetOrdinalPosition(0,1);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   289
    iSecondWindowGroup.SetOrdinalPosition(1,1);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   290
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   291
    if(aOrientation != EDisplayOrientationIgnore)
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   292
        {
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   293
        IsOrientationCorrect(aOrientation);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   294
        }
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   295
    else
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   296
        {
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   297
        IsOrientationCorrect(aSecondOrientation);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   298
        }
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   299
    }
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   300
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   301
void CTDeviceRotation::TestAppOrientationOnSwap(TRenderOrientation aOrientation, TRenderOrientation aSecondOrientation)
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   302
    {    
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   303
    _LIT(KTestInfo, "TestAppOrientationOnSwap(aOrientation = %d, aSecondOrientation = %d)");
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   304
    INFO_PRINTF3(KTestInfo, aOrientation, aSecondOrientation);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   305
    
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   306
    iWs.IndicateAppOrientation(aOrientation);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   307
    iSecondWs.IndicateAppOrientation(aSecondOrientation);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   308
    
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   309
    iSecondWindowGroup.SetOrdinalPosition(0);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   310
    if (aSecondOrientation != EDisplayOrientationIgnore)
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   311
        {
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   312
        IsOrientationCorrect(aSecondOrientation);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   313
        }
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   314
    else
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   315
        {
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   316
        IsOrientationCorrect(aOrientation);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   317
        }
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   318
    }
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   319
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   320
void CTDeviceRotation::RunTestCaseL(TInt aCurTestCase)
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   321
	{
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   322
    _LIT(KNewLine, "\n");
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   323
    (reinterpret_cast<CTDeviceRotationStep*>(iStep))->SetTestStepID(KUnknownSYMTestCaseIDName);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   324
	switch(aCurTestCase)
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   325
		{
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   326
	    case 1:
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   327
            _LIT(KTestStepID1,"Test Initial Orientations");
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   328
            (reinterpret_cast<CTDeviceRotationStep*>(iStep))->SetTestStepID(KTestStepID1);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   329
            INFO_PRINTF1(KNewLine);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   330
            INFO_PRINTF1(KTestStepID1);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   331
            TestInitialOrientation();
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   332
            break;
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   333
		case 2:
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   334
    	    _LIT(KTestStepID2,"Test Fixed Orientations");
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   335
            (reinterpret_cast<CTDeviceRotationStep*>(iStep))->SetTestStepID(KTestStepID2);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   336
            INFO_PRINTF1(KNewLine);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   337
            INFO_PRINTF1(KTestStepID2);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   338
            TestFixedOrientations();
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   339
			break;
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   340
		case 3:
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   341
    	    _LIT(KTestStepID3,"Test Auto Orientation");
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   342
		    (reinterpret_cast<CTDeviceRotationStep*>(iStep))->SetTestStepID(KTestStepID3);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   343
		    INFO_PRINTF1(KNewLine);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   344
		    INFO_PRINTF1(KTestStepID3);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   345
		    TestAutoOrientation();
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   346
			break;
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   347
		case 4:
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   348
            _LIT(KTestStepID4,"Test Ignore Orientation");
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   349
            (reinterpret_cast<CTDeviceRotationStep*>(iStep))->SetTestStepID(KTestStepID4);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   350
            INFO_PRINTF1(KNewLine);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   351
            INFO_PRINTF1(KTestStepID4);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   352
            TestIgnoreOrientation();
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   353
			break;
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   354
        case 5:
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   355
            _LIT(KTestStepID5,"Test Swap Orientations");
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   356
            (reinterpret_cast<CTDeviceRotationStep*>(iStep))->SetTestStepID(KTestStepID5);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   357
            INFO_PRINTF1(KNewLine);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   358
            INFO_PRINTF1(KTestStepID5);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   359
            TestFixedOrientationsOnWindowSwap();
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   360
			break;
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   361
        case 6:
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   362
            _LIT(KTestStepID6,"Test Auto Swap Orientations");
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   363
            (reinterpret_cast<CTDeviceRotationStep*>(iStep))->SetTestStepID(KTestStepID6);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   364
            INFO_PRINTF1(KNewLine);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   365
            INFO_PRINTF1(KTestStepID6);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   366
            TestAutoOrientationOnWindowSwap();
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   367
            break;
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   368
        case 7:
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   369
            _LIT(KTestStepID7,"Test Ignore Swap Orientations");
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   370
            (reinterpret_cast<CTDeviceRotationStep*>(iStep))->SetTestStepID(KTestStepID7);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   371
            INFO_PRINTF1(KNewLine);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   372
            INFO_PRINTF1(KTestStepID7);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   373
            TestIgnoreOrientationOnWindowSwap();
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   374
			break;
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   375
        case 8:
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   376
            _LIT(KTestStepID8,"Test Auto Swap Orientations");
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   377
            (reinterpret_cast<CTDeviceRotationStep*>(iStep))->SetTestStepID(KTestStepID8);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   378
            INFO_PRINTF1(KNewLine);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   379
            INFO_PRINTF1(KTestStepID8);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   380
            TestIgnoreAutoOrientationOnWindowSwap();
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   381
            break;
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   382
        case 9:
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   383
            _LIT(KTestStepID9,"Test Invalid App Orientations");
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   384
            (reinterpret_cast<CTDeviceRotationStep*>(iStep))->SetTestStepID(KTestStepID9);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   385
            INFO_PRINTF1(KNewLine);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   386
            INFO_PRINTF1(KTestStepID9);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   387
            TestInvalidAppOrientation();
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   388
            break;
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   389
        case 10:
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   390
            _LIT(KTestStepID10,"Test Invalid Theme Server Orientations");
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   391
            (reinterpret_cast<CTDeviceRotationStep*>(iStep))->SetTestStepID(KTestStepID10);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   392
            INFO_PRINTF1(KNewLine);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   393
            INFO_PRINTF1(KTestStepID10);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   394
            TestInvalidThemeServerOrientation();
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   395
            break;
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   396
		default:
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   397
            (reinterpret_cast<CTDeviceRotationStep*>(iStep))->SetTestStepID(KNotATestSYMTestCaseIDName);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   398
			(reinterpret_cast<CTDeviceRotationStep*>(iStep))->CloseTMSGraphicsStep();
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   399
			TestComplete();
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   400
		}
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   401
	(reinterpret_cast<CTDeviceRotationStep*>(iStep))->RecordTestResultL();
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   402
	}
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   403
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   404
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   405
/**
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   406
 @SYMTestCaseID             GRAPHICS-WSERV-DEVICEROTATION-0001
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   407
 @SYMTestCaseDesc           Test Auto Orientation
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   408
 @SYMPREQ                   460936 Tracking Device Rotation
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   409
 @SYMTestPriority           1
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   410
 @SYMTestPurpose            To test that we can return the correct initial orientation value from 
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   411
                            the windwoserver.
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   412
 @SYMPrerequisites          An RProperty is set up to subscribe to notifications of 
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   413
                            windowserver orientation changes.
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   414
                            We have set up an RWindowGroup at the foreground and not altered its
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   415
                            indicated orientation.
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   416
 @SYMTestActions            1) Get the value of the orientation as published by window server.
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   417
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   418
 @SYMTestExpectedResults    The windowserver should return EDisplayOrientationNormal
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   419
 */
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   420
void CTDeviceRotation::TestInitialOrientation()
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   421
    {
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   422
    iWaitForPublishOnNextTest = EFalse;
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   423
    IsOrientationCorrect(EDisplayOrientationNormal);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   424
    }
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   425
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   426
/**
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   427
 @SYMTestCaseID             GRAPHICS-WSERV-DEVICEROTATION-0002
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   428
 @SYMTestCaseDesc           Test Fixed Orientations
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   429
 @SYMPREQ                   460936 Tracking Device Rotation
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   430
 @SYMTestPriority           1
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   431
 @SYMTestPurpose            To test that we can return the correct orientation value from 
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   432
                            the windwoserver after we indicate the application orientation
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   433
                            as fixed values using RWsSession::IndicateAppOrientation. Any 
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   434
                            theme server orientations should be ignored.
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   435
 @SYMPrerequisites          An RProperty is set up to subscribe to notifications of 
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   436
                            windowserver orientation changes.
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   437
                            An RProperty is set up to publish Theme server Orientation changes. 
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   438
                            We have set up an RWindowGroup in the foreground.
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   439
                            Windowserver orientation currently set to EDisplayOrientationNormal.
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   440
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   441
 @SYMTestActions            1) Set Theme Server orientation to EDisplayOrientation90CW.
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   442
                            2) Set the RWindowgroup in ordinal position 0 to a fixed orientation.
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   443
                            3) Check the published orinetation value in windowserver.
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   444
                            4) Repeat steps 2) and 3) for all fixed orientations
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   445
                            3) Set Theme Server orientation to EDisplayOrientationNormal.
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   446
                            4) Repeat Steps 2-4).
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   447
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   448
 @SYMTestExpectedResults    The orientation set in step 2) should always be the same as the 
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   449
                            orientation set in step 2)
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   450
 */
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   451
void CTDeviceRotation::TestFixedOrientations()
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   452
    {
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   453
    iWaitForPublishOnNextTest = EFalse;
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   454
    SimulateThemeServerOrientation(EDisplayOrientation90CW);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   455
    TestIndicateAppOrientation(EDisplayOrientationNormal);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   456
    TestIndicateAppOrientation(EDisplayOrientation90CW);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   457
    TestIndicateAppOrientation(EDisplayOrientation180);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   458
    TestIndicateAppOrientation(EDisplayOrientation270CW);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   459
    
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   460
    SimulateThemeServerOrientation(EDisplayOrientationNormal);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   461
    TestIndicateAppOrientation(EDisplayOrientationNormal);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   462
    TestIndicateAppOrientation(EDisplayOrientation90CW);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   463
    TestIndicateAppOrientation(EDisplayOrientation180);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   464
    TestIndicateAppOrientation(EDisplayOrientation270CW);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   465
    
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   466
    SimulateThemeServerOrientation(EDisplayOrientation180);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   467
    TestIndicateAppOrientation(EDisplayOrientationNormal);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   468
    TestIndicateAppOrientation(EDisplayOrientation90CW);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   469
    TestIndicateAppOrientation(EDisplayOrientation180);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   470
    TestIndicateAppOrientation(EDisplayOrientation270CW);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   471
    
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   472
    SimulateThemeServerOrientation(EDisplayOrientation270CW);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   473
    TestIndicateAppOrientation(EDisplayOrientationNormal);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   474
    TestIndicateAppOrientation(EDisplayOrientation90CW);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   475
    TestIndicateAppOrientation(EDisplayOrientation180);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   476
    TestIndicateAppOrientation(EDisplayOrientation270CW);    
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   477
    }
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   478
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   479
/**
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   480
 @SYMTestCaseID             GRAPHICS-WSERV-DEVICEROTATION-0003
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   481
 @SYMTestCaseDesc           Test Auto Orientation
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   482
 @SYMPREQ                   460936 Tracking Device Rotation
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   483
 @SYMTestPriority           1
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   484
 @SYMTestPurpose            To test that we can return the correct orientation value from 
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   485
                            the windwoserver after we indicate the application orientation
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   486
                            as auto values using RWsSession::IndicateAppOrientation. The wserv
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   487
                            should publish the theme server orientation changes only.
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   488
 @SYMPrerequisites          An RProperty is set up to subscribe to notifications of 
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   489
                            windowserver orientation changes.
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   490
                            An RProperty is set up to publish Theme server Orientation changes.
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   491
                            We have set up an RWindowGroup in the foreground.
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   492
                            WindowServer orinetation is not set to EDisplayOrientation90CW.
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   493
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   494
 @SYMTestActions            1) Set Theme Server orientation to EDisplayOrientation90CW.
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   495
                            2) Set the RWindowgroup in ordinal position 0 to auto orientation.
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   496
                            3) Check the published orinetation value in windowserver.
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   497
                            4) Set Theme Server orientation to EDisplayOrientationNormal.
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   498
                            5) Check the value of the orientation as published by window server.
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   499
                            6) Repeat 4) and 5) for EDisplayOrientation180 and 
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   500
                               EDisplayOrientation270CW
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   501
                            7) repeat 4) and 5) again for EDisplayOrientation270CW
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   502
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   503
 @SYMTestExpectedResults    We should get expected notifications where orientations have changed.
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   504
                            The orientation checked in step 3) should be the theme server 
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   505
                            orientation set in step 1).
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   506
                            The orientations checked in step 5) should be the theme server 
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   507
                            orientations set in step 4).
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   508
                            We should recieve no notification for step 7).
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   509
 */
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   510
void CTDeviceRotation::TestAutoOrientation()
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   511
    {
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   512
    SimulateThemeServerOrientation(EDisplayOrientation90CW);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   513
    TestIndicateAppOrientation(EDisplayOrientationAuto);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   514
    SimulateThemeServerOrientation(EDisplayOrientationNormal);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   515
    IsOrientationCorrect(iCurrentThemeServerOrientation);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   516
    // Now flip it upside down to ensure that nothing assumes this will only be updated incrementally
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   517
    SimulateThemeServerOrientation(EDisplayOrientation180);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   518
    IsOrientationCorrect(iCurrentThemeServerOrientation);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   519
    SimulateThemeServerOrientation(EDisplayOrientation270CW);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   520
    IsOrientationCorrect(iCurrentThemeServerOrientation);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   521
    
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   522
    // And check that wserv doesn't publish if the theme server publishes the existing orientation
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   523
    SimulateThemeServerOrientation(EDisplayOrientation270CW);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   524
    iWaitForPublishOnNextTest = EFalse;    
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   525
    IsOrientationCorrect(iCurrentThemeServerOrientation);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   526
    }
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   527
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   528
/**
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   529
 @SYMTestCaseID             GRAPHICS-WSERV-DEVICEROTATION-0004
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   530
 @SYMTestCaseDesc           Test Ignore Orientation
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   531
 @SYMPREQ                   460936 Tracking Device Rotation
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   532
 @SYMTestPriority           1
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   533
 @SYMTestPurpose            To test that we can return the correct orientation value from 
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   534
                            the windwoserver after we indicate the front applications 
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   535
                            orientation as ignore.  
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   536
 @SYMPrerequisites          An RProperty is set up to subscribe to notifications of 
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   537
                            windowserver orientation changes.
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   538
                            An RProperty is set up to publish Theme server Orientation changes.
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   539
                            We have set up two RWindowGroups in the ordinal positions 0 and 1. 
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   540
                            WindowServer orinetation is not set to EDisplayOrientationNormal.
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   541
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   542
 @SYMTestActions            1) Set Theme Server orientation to EDisplayOrientation90CW.
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   543
                            2) Set the RWindowGroup in ordinal position 0 to a ignore orientation.
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   544
                            3) Set the RWindowgroup in ordinal position 1 to a fixed orientation.
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   545
                            4) Check the published orinetation value in windowserver.
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   546
                            5) Repeat steps 2-4) varying the fixed orientation set in step 2).
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   547
                            6) Set Theme Server orientation to EDisplayOrientation90CW.
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   548
                            7) Set the RWindowGroup in ordinal position 0 to a ignore orientation.
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   549
                            8) Set the RWindowgroup in ordinal position 1 to a fixed orientation.
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   550
                            9) Check the published orinetation value in windowserver.
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   551
                            10) Set Theme Server orientation to EDisplayOrientationNormal.
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   552
                            11) Check the published orinetation value in windowserver.
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   553
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   554
 @SYMTestExpectedResults    We should get expected notifications where orientations have changed.
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   555
                            All orientations checked in step 4) should be the fixed orientations 
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   556
                            of the windows in ordinal position 1, as set in step 3).
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   557
                            The orientation checked in step 9) should be the theme server 
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   558
                            orientation set in step 6).
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   559
                            The orientation checked in step 11) should be the theme server 
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   560
                            orientation set in step 10).
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   561
 */
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   562
void CTDeviceRotation::TestIgnoreOrientation()
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   563
    {
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   564
    SimulateThemeServerOrientation(EDisplayOrientation90CW);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   565
    TestIndicateAppOrientation(EDisplayOrientationIgnore, EDisplayOrientationNormal);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   566
    TestIndicateAppOrientation(EDisplayOrientationIgnore, EDisplayOrientation90CW);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   567
    TestIndicateAppOrientation(EDisplayOrientationIgnore, EDisplayOrientation180);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   568
    TestIndicateAppOrientation(EDisplayOrientationIgnore, EDisplayOrientation270CW);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   569
    
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   570
    SimulateThemeServerOrientation(EDisplayOrientation90CW);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   571
    TestIndicateAppOrientation(EDisplayOrientationIgnore, EDisplayOrientationAuto);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   572
    SimulateThemeServerOrientation(EDisplayOrientationNormal);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   573
    IsOrientationCorrect(iCurrentThemeServerOrientation);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   574
    }
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   575
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   576
/**
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   577
 @SYMTestCaseID             GRAPHICS-WSERV-DEVICEROTATION-0005
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   578
 @SYMTestCaseDesc           Test Fixed Orientations On Swap
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   579
 @SYMPREQ                   460936 Tracking Device Rotation
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   580
 @SYMTestPriority           1
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   581
 @SYMTestPurpose            To test that we get notifactation of a change in orientation and can 
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   582
                            return the correct orientation value from the windwoserver after we 
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   583
                            swap windows with varying fixed orienations.  
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   584
 @SYMPrerequisites          An RProperty is set up to subscribe to notifications of 
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   585
                            windowserver orientation changes.
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   586
                            We have set up two RWindowGroups in the ordinal positions 0 and 1. 
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   587
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   588
 @SYMTestActions            1) Set the RWindowGroup in ordinal position 0 to a fixed orientation.
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   589
                            2) Set the RWindowgroup in ordinal position 1 to a fixed orientation.
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   590
                            3) Check the published orinetation value in windowserver.
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   591
                            4) Move the RWindowGroup ordinal position 1 to the ordinal position 0.
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   592
                            5) Check the published orinetation value in windowserver.
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   593
                            6) Repeat steps 1-5 but vary the values the fixed orientation of the 
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   594
                               RWindows set in steps 1) and 2)
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   595
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   596
 @SYMTestExpectedResults    We should get expected notifications where orientations have changed.
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   597
                            All orientations checked in step 3) should be the fixed orientations 
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   598
                            of the windows in ordinal position 0, as set in step 1).
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   599
                            The orientations checked in step 5) should be the fixed orientations 
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   600
                            of the windows which was in ordinal position 1 before each swap, as 
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   601
                            set in step 2).
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   602
 */
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   603
void CTDeviceRotation::TestFixedOrientationsOnWindowSwap()
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   604
    {
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   605
    iWaitForPublishOnNextTest = EFalse;
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   606
    TestIndicateAppOrientation(EDisplayOrientationNormal, EDisplayOrientationNormal);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   607
    iWaitForPublishOnNextTest = EFalse;
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   608
    TestAppOrientationOnSwap(EDisplayOrientationNormal, EDisplayOrientationNormal);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   609
    TestIndicateAppOrientation(EDisplayOrientationNormal, EDisplayOrientation90CW);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   610
    TestAppOrientationOnSwap(EDisplayOrientationNormal, EDisplayOrientation90CW);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   611
    TestIndicateAppOrientation(EDisplayOrientation90CW, EDisplayOrientationNormal);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   612
    TestAppOrientationOnSwap(EDisplayOrientation90CW, EDisplayOrientationNormal);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   613
    }
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   614
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   615
/**
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   616
 @SYMTestCaseID             GRAPHICS-WSERV-DEVICEROTATION-0006
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   617
 @SYMTestCaseDesc           Test Auto Orientations On Swap
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   618
 @SYMPREQ                   460936 Tracking Device Rotation
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   619
 @SYMTestPriority           1
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   620
 @SYMTestPurpose            To test that we get notifactation of a change in orientation and can 
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   621
                            return the correct orientation value from the windwoserver after we 
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   622
                            swap windows with auto orienations.  
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   623
 @SYMPrerequisites          An RProperty is set up to subscribe to notifications of 
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   624
                            windowserver orientation changes.
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   625
                            An RProperty is set up to publish Theme server Orientation changes.
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   626
                            We have set up two RWindowGroups in the ordinal positions 0 and 1.
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   627
                            WindowServer orinetation is not set to EDisplayOrientation270CW. 
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   628
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   629
 @SYMTestActions            1) Set the theme server orientation.
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   630
                            2) Set the RWindowGroup in ordinal position 0 to a fixed orientation.
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   631
                            3) Set the RWindowGroup in ordinal position 1 to auto orientation.
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   632
                            4) Check the published orinetation value in windowserver.
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   633
                            5) Move the RWindowGroup ordinal position 1 to the ordinal position 0. 
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   634
                            6) Check the published orinetation value in windowserver.
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   635
                            7) Repeat steps 1-6 but vary the values of the theme server 
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   636
                               orientation in step 1) and the fixed orientation of the frontwindow
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   637
                               in 2)
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   638
 @SYMTestExpectedResults    We should get expected notifications where orientations have changed.
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   639
                            All orientations checked in step 4) should be the fixed orientations 
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   640
                            of the front windows, which have been set in step 2).
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   641
                            All orientations checked in step 6) should be the theme server 
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   642
                            orientations set in step 1)
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   643
 */
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   644
void CTDeviceRotation::TestAutoOrientationOnWindowSwap()
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   645
    {
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   646
    SimulateThemeServerOrientation(EDisplayOrientation90CW);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   647
    TestIndicateAppOrientation(EDisplayOrientation270CW, EDisplayOrientationAuto);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   648
    TestAppOrientationOnSwap(EDisplayOrientation270CW, EDisplayOrientationAuto);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   649
    SimulateThemeServerOrientation(EDisplayOrientationNormal);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   650
    TestIndicateAppOrientation(EDisplayOrientationAuto, EDisplayOrientation180);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   651
    TestAppOrientationOnSwap(EDisplayOrientationAuto, EDisplayOrientation180);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   652
    
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   653
    SimulateThemeServerOrientation(EDisplayOrientation90CW);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   654
    TestIndicateAppOrientation(EDisplayOrientation90CW, EDisplayOrientationAuto);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   655
    iWaitForPublishOnNextTest = EFalse;
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   656
    TestAppOrientationOnSwap(EDisplayOrientation90CW, EDisplayOrientationAuto);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   657
    SimulateThemeServerOrientation(EDisplayOrientationNormal);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   658
    TestIndicateAppOrientation(EDisplayOrientationAuto, EDisplayOrientationNormal);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   659
    iWaitForPublishOnNextTest = EFalse;
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   660
    TestAppOrientationOnSwap(EDisplayOrientationAuto, EDisplayOrientationNormal);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   661
    }
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   662
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   663
/**
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   664
 @SYMTestCaseID             GRAPHICS-WSERV-DEVICEROTATION-0007
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   665
 @SYMTestCaseDesc           Test Swap Orientations with Ignore Orientation
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   666
 @SYMPREQ                   460936 Tracking Device Rotation
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   667
 @SYMTestPriority           1
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   668
 @SYMTestPurpose            To test that we get notifactation of a change in orientation and can 
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   669
                            return the correct orientation value from the windwoserver after we 
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   670
                            swap windows with ignore orienations.  
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   671
 @SYMPrerequisites          An RProperty is set up to subscribe to notifications of 
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   672
                            windowserver orientation changes.
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   673
                            An RProperty is set up to publish Theme server Orientation changes.
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   674
                            We have set up two RWindowGroups in the ordinal positions 0 and 1. 
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   675
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   676
 @SYMTestActions            1) Set the theme server orientation.
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   677
                            2) Set the RWindowGroup in ordinal position 0 to ignore orientation.
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   678
                            3) Set the RWindowGroup in ordinal position 1 to a fixed orientation.
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   679
                            4) Check the published orinetation value in windowserver.
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   680
                            5) Move the RWindowGroup ordinal position 1 to the ordinal position 0. 
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   681
                            6) Check the published orinetation value in windowserver.
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   682
                            7) Repeat steps 1-6 but vary the values of the theme server 
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   683
                               orientation in step 1) and the fixed orientation of the frontwindow
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   684
                               in 3)
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   685
                            8) Set the theme server orientation.
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   686
                            9) Set the RWindowGroup in ordinal position 0 to a fixedorientation.
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   687
                            10) Set the RWindowGroup in ordinal position 1 to ignore orienation.
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   688
                            11) Repeat steps 4-6) 
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   689
                            12) Repeat steps 8-11) but vary the values of the theme server 
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   690
                               orientation in step 8) and the fixed orientation of the 
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   691
                               RwindowGroup in 9)                            
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   692
                               
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   693
 @SYMTestExpectedResults    We should get expected notifications where orientations have changed.
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   694
                            All orientations checked in step 4) and 6) should be the fixed 
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   695
                            orientations RWindowGroups which have been set in step 3).
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   696
                            All orientations checked in step 11) should be the fixed orientations 
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   697
                            of the front RWindowGroups which have been set in step 9).
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   698
*/
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   699
void CTDeviceRotation::TestIgnoreOrientationOnWindowSwap()
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   700
    {
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   701
    SimulateThemeServerOrientation(EDisplayOrientation90CW);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   702
    TestIndicateAppOrientation(EDisplayOrientationIgnore, EDisplayOrientation270CW);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   703
    TestAppOrientationOnSwap(EDisplayOrientationIgnore, EDisplayOrientation180);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   704
    
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   705
    SimulateThemeServerOrientation(EDisplayOrientationNormal);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   706
    TestIndicateAppOrientation(EDisplayOrientationIgnore, EDisplayOrientationNormal);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   707
    TestAppOrientationOnSwap(EDisplayOrientationIgnore, EDisplayOrientation90CW);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   708
    
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   709
    SimulateThemeServerOrientation(EDisplayOrientation90CW);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   710
    TestIndicateAppOrientation(EDisplayOrientation270CW, EDisplayOrientationIgnore);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   711
    TestAppOrientationOnSwap(EDisplayOrientation180, EDisplayOrientationIgnore);    
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   712
    
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   713
    SimulateThemeServerOrientation(EDisplayOrientationNormal);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   714
    TestIndicateAppOrientation(EDisplayOrientationNormal, EDisplayOrientationIgnore);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   715
    TestAppOrientationOnSwap(EDisplayOrientation90CW, EDisplayOrientationIgnore);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   716
    }
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   717
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   718
/**
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   719
 @SYMTestCaseID             GRAPHICS-WSERV-DEVICEROTATION-0008
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   720
 @SYMTestCaseDesc           Test Swap Orientations with Auto and Ignore Orientations
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   721
 @SYMPREQ                   460936 Tracking Device Rotation
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   722
 @SYMTestPriority           1
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   723
 @SYMTestPurpose            To test that we get notifactation of a change in orientation and can 
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   724
                            return the correct orientation value from the windwoserver after we 
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   725
                            swap windows with auto and ignore orienations.  
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   726
 @SYMPrerequisites          An RProperty is set up to subscribe to notifications of 
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   727
                            windowserver orientation changes.
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   728
                            An RProperty is set up to publish Theme server Orientation changes.
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   729
                            We have set up two RWindowGroups in the ordinal positions 0 and 1. 
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   730
 @SYMTestActions            1) Set the theme server orientation to EDisplayOrientationNormal.
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   731
                            2) Set the RWindowGroup in ordinal position 0 to auto orientation.
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   732
                            3) Set the RWindowGroup in ordinal position 1 to ignore orientation.
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   733
                            4) Check the published orinetation value in windowserver.
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   734
                            5) Set the theme server orientation to EDisplayOrientation90CW.
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   735
                            6) Check the published orinetation value in windowserver.
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   736
                            7) Set the theme server orientation to EDisplayOrientationNormal.
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   737
                            8) Move the RWindowGroup in ordinal position 1 to ordinal position 0.
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   738
                            9) Check the published orinetation value in windowserver.
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   739
                            10) Set the theme server orientation to EDisplayOrientation90CW.
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   740
                            11) Check the published orinetation value in windowserver.
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   741
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   742
 @SYMTestExpectedResults    We should get expected notifications where orientations have changed.
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   743
                            The orientations checked in step 4), 6), 9) and  11) should all be 
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   744
                            the orientations set to the themeserver in steps 1), 5), 8) and 10)
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   745
                            respecvtively. 
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   746
*/
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   747
void CTDeviceRotation::TestIgnoreAutoOrientationOnWindowSwap()
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   748
    {
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   749
    SimulateThemeServerOrientation(EDisplayOrientationNormal);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   750
    TestIndicateAppOrientation(EDisplayOrientationAuto, EDisplayOrientationIgnore);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   751
    SimulateThemeServerOrientation(EDisplayOrientation90CW);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   752
    IsOrientationCorrect(iCurrentThemeServerOrientation);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   753
    
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   754
    SimulateThemeServerOrientation(EDisplayOrientationNormal);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   755
    iSecondWindowGroup.SetOrdinalPosition(0);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   756
    IsOrientationCorrect(iCurrentThemeServerOrientation);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   757
    SimulateThemeServerOrientation(EDisplayOrientation90CW);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   758
    IsOrientationCorrect(iCurrentThemeServerOrientation);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   759
    }
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   760
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   761
/**
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   762
 @SYMTestCaseID             GRAPHICS-WSERV-DEVICEROTATION-0009
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   763
 @SYMTestCaseDesc           Test Invalid App Orientation
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   764
 @SYMPREQ                   ###TrackingDeviceRotation### TODO replace me
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   765
 @SYMTestPriority           1
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   766
 @SYMTestPurpose            To test that an invalid orientation is ignored.
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   767
 @SYMPrerequisites          An RProperty is set up to subscribe to notifications of 
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   768
                            windowserver orientation changes.
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   769
                            An RProperty is set up to publish Theme server Orientation changes.
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   770
                            We have set up an RWindowGroup in ordinal position 0.
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   771
 @SYMTestActions            1) Set the theme server orientation to EDisplayOrientationNormal.
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   772
                            2) Set the RWindowGroup in ordinal position 0 to 
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   773
                               EDisplayOrientation90CW.
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   774
                            4) Check the published orinetation value in windowserver.
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   775
                            5) Set the RWindowGroup in ordinal position 0 to an invalid 
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   776
                               orientation.
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   777
                            6) Check the published orinetation value in windowserver.
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   778
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   779
 @SYMTestExpectedResults    Wserv should publish an orientation change for 2) but not for 5).
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   780
                            The orientations checked in steps 4) and 6) should both be the 
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   781
                            orientation set in step 2).
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   782
*/
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   783
void CTDeviceRotation::TestInvalidAppOrientation()
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   784
	{
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   785
	SimulateThemeServerOrientation(EDisplayOrientationNormal);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   786
	TestIndicateAppOrientation(EDisplayOrientation90CW);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   787
	iWs.IndicateAppOrientation(static_cast<TRenderOrientation>(1000));
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   788
	iWaitForPublishOnNextTest = EFalse;
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   789
	IsOrientationCorrect(EDisplayOrientation90CW);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   790
	}
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   791
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   792
/**
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   793
 @SYMTestCaseID             GRAPHICS-WSERV-DEVICEROTATION-0010
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   794
 @SYMTestCaseDesc           Test Invalid Theme Server Orientation
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   795
 @SYMPREQ                   ###TrackingDeviceRotation### TODO replace me
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   796
 @SYMTestPriority           1
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   797
 @SYMTestPurpose            To test that an invalid theme server orientation is ignored when
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   798
                            the app orientation has been set to auto.
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   799
 @SYMPrerequisites          An RProperty is set up to subscribe to notifications of 
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   800
                            windowserver orientation changes.
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   801
                            An RProperty is set up to publish Theme server Orientation changes.
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   802
                            We have set up an RWindowGroup in ordinal position 0.
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   803
 @SYMTestActions            1) Set the theme server orientation to EDisplayOrientationNormal.
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   804
                            2) Set the RWindowGroup in ordinal position 0 to 
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   805
                               EDisplayOrientationAuto.
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   806
                            4) Check the published orinetation value in windowserver.
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   807
                            5) Set the theme server orientation to an invalid orientation.
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   808
                            6) Check the published orinetation value in windowserver.
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   809
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   810
 @SYMTestExpectedResults    Wserv should publish an orientation change for 2) but not for 5).
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   811
                            The orientations checked in steps 4) and 6) should both be the 
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   812
                            theme server orientation set in step 1).
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   813
*/
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   814
void CTDeviceRotation::TestInvalidThemeServerOrientation()
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   815
	{
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   816
	SimulateThemeServerOrientation(EDisplayOrientationNormal);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   817
	TestIndicateAppOrientation(EDisplayOrientationAuto);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   818
	SimulateThemeServerOrientation(static_cast<TRenderOrientation>(5000));
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   819
	iWaitForPublishOnNextTest = EFalse;
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   820
	IsOrientationCorrect(EDisplayOrientationNormal);
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   821
	}
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   822
1b081cb0800b 201026_1
hgs
parents:
diff changeset
   823
__CONSTRUCT_STEP__(DeviceRotation)