logsui/logsengine/logssymbianos/tsrc/ut_logssymbianos/src/ut_logsforegroundwatcher.cpp
author hgs
Fri, 17 Sep 2010 16:47:32 +0300
changeset 18 acd4e87b24b4
permissions -rw-r--r--
201037
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
18
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
hgs
parents:
diff changeset
     3
* All rights reserved.
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
hgs
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
hgs
parents:
diff changeset
     8
*
hgs
parents:
diff changeset
     9
* Initial Contributors:
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
hgs
parents:
diff changeset
    11
*
hgs
parents:
diff changeset
    12
* Contributors:
hgs
parents:
diff changeset
    13
*
hgs
parents:
diff changeset
    14
* Description:
hgs
parents:
diff changeset
    15
*
hgs
parents:
diff changeset
    16
*/
hgs
parents:
diff changeset
    17
#include "ut_logsforegroundwatcher.h"
hgs
parents:
diff changeset
    18
#include "logsforegroundwatcher.h"
hgs
parents:
diff changeset
    19
hgs
parents:
diff changeset
    20
#include <QtTest/QtTest>
hgs
parents:
diff changeset
    21
#include <coemain.h>
hgs
parents:
diff changeset
    22
#include <apacmdln.h>
hgs
parents:
diff changeset
    23
hgs
parents:
diff changeset
    24
CCoeEnv* testEnv = 0;
hgs
parents:
diff changeset
    25
bool testCommandlineExists = false;
hgs
parents:
diff changeset
    26
bool testCommandLineCommandBg = false;
hgs
parents:
diff changeset
    27
bool testCommandLineSetForProcess = false;
hgs
parents:
diff changeset
    28
hgs
parents:
diff changeset
    29
CCoeEnv* CCoeEnv::Static()
hgs
parents:
diff changeset
    30
{
hgs
parents:
diff changeset
    31
    if ( !testEnv ){
hgs
parents:
diff changeset
    32
        testEnv = new CCoeEnv();
hgs
parents:
diff changeset
    33
    }
hgs
parents:
diff changeset
    34
    return testEnv;
hgs
parents:
diff changeset
    35
}
hgs
parents:
diff changeset
    36
hgs
parents:
diff changeset
    37
CCoeEnv::CCoeEnv() : CActive(EPriorityNormal)
hgs
parents:
diff changeset
    38
{
hgs
parents:
diff changeset
    39
    
hgs
parents:
diff changeset
    40
}
hgs
parents:
diff changeset
    41
hgs
parents:
diff changeset
    42
CCoeEnv::~CCoeEnv()
hgs
parents:
diff changeset
    43
{
hgs
parents:
diff changeset
    44
}
hgs
parents:
diff changeset
    45
hgs
parents:
diff changeset
    46
void CCoeEnv::AddForegroundObserverL(MCoeForegroundObserver& /*aForegroundObserver*/)
hgs
parents:
diff changeset
    47
{
hgs
parents:
diff changeset
    48
    
hgs
parents:
diff changeset
    49
}
hgs
parents:
diff changeset
    50
hgs
parents:
diff changeset
    51
void CCoeEnv::RemoveForegroundObserver(MCoeForegroundObserver& /*aForegroundObserver*/)
hgs
parents:
diff changeset
    52
{
hgs
parents:
diff changeset
    53
    
hgs
parents:
diff changeset
    54
}
hgs
parents:
diff changeset
    55
hgs
parents:
diff changeset
    56
TInt CApaCommandLine::GetCommandLineFromProcessEnvironment(CApaCommandLine*& aCommandLine)
hgs
parents:
diff changeset
    57
{
hgs
parents:
diff changeset
    58
    if ( testCommandlineExists ){
hgs
parents:
diff changeset
    59
        aCommandLine = CApaCommandLine::NewL();
hgs
parents:
diff changeset
    60
        if ( testCommandLineCommandBg ){
hgs
parents:
diff changeset
    61
            TRAP_IGNORE( aCommandLine->SetCommandL(EApaCommandBackground) )
hgs
parents:
diff changeset
    62
        } else {
hgs
parents:
diff changeset
    63
            TRAP_IGNORE( aCommandLine->SetCommandL(EApaCommandRun) )
hgs
parents:
diff changeset
    64
        }
hgs
parents:
diff changeset
    65
    } else {
hgs
parents:
diff changeset
    66
        aCommandLine = 0;
hgs
parents:
diff changeset
    67
    }
hgs
parents:
diff changeset
    68
    return KErrNone;
hgs
parents:
diff changeset
    69
}
hgs
parents:
diff changeset
    70
hgs
parents:
diff changeset
    71
void CApaCommandLine::SetProcessEnvironmentL(RProcess& /*aProcess*/) const
hgs
parents:
diff changeset
    72
{
hgs
parents:
diff changeset
    73
    if ( Command() == EApaCommandBackground ){
hgs
parents:
diff changeset
    74
        testCommandLineSetForProcess = true;
hgs
parents:
diff changeset
    75
    }
hgs
parents:
diff changeset
    76
}
hgs
parents:
diff changeset
    77
hgs
parents:
diff changeset
    78
void UT_LogsForegroundWatcher::initTestCase()
hgs
parents:
diff changeset
    79
{
hgs
parents:
diff changeset
    80
}
hgs
parents:
diff changeset
    81
hgs
parents:
diff changeset
    82
void UT_LogsForegroundWatcher::cleanupTestCase()
hgs
parents:
diff changeset
    83
{
hgs
parents:
diff changeset
    84
    delete testEnv;
hgs
parents:
diff changeset
    85
    testEnv = 0;
hgs
parents:
diff changeset
    86
}
hgs
parents:
diff changeset
    87
hgs
parents:
diff changeset
    88
void UT_LogsForegroundWatcher::init()
hgs
parents:
diff changeset
    89
{
hgs
parents:
diff changeset
    90
    mWatcher = new LogsForegroundWatcher();
hgs
parents:
diff changeset
    91
}
hgs
parents:
diff changeset
    92
hgs
parents:
diff changeset
    93
void UT_LogsForegroundWatcher::cleanup()
hgs
parents:
diff changeset
    94
{
hgs
parents:
diff changeset
    95
    delete mWatcher;
hgs
parents:
diff changeset
    96
}
hgs
parents:
diff changeset
    97
hgs
parents:
diff changeset
    98
void UT_LogsForegroundWatcher::testConstructor()
hgs
parents:
diff changeset
    99
{
hgs
parents:
diff changeset
   100
    QVERIFY( mWatcher );
hgs
parents:
diff changeset
   101
}
hgs
parents:
diff changeset
   102
hgs
parents:
diff changeset
   103
void UT_LogsForegroundWatcher::testHandleLosingForeground()
hgs
parents:
diff changeset
   104
{
hgs
parents:
diff changeset
   105
    QSignalSpy spyGaining( mWatcher, SIGNAL(gainingForeground()) );
hgs
parents:
diff changeset
   106
    QSignalSpy spyLosing( mWatcher, SIGNAL(losingForeground()) );
hgs
parents:
diff changeset
   107
    mWatcher->HandleLosingForeground();
hgs
parents:
diff changeset
   108
    QVERIFY( spyGaining.count() == 0 );
hgs
parents:
diff changeset
   109
    QVERIFY( spyLosing.count() == 1 );
hgs
parents:
diff changeset
   110
}
hgs
parents:
diff changeset
   111
hgs
parents:
diff changeset
   112
void UT_LogsForegroundWatcher::testHandleGainingForeground()
hgs
parents:
diff changeset
   113
{
hgs
parents:
diff changeset
   114
    QSignalSpy spyGaining( mWatcher, SIGNAL(gainingForeground()) );
hgs
parents:
diff changeset
   115
    QSignalSpy spyLosing( mWatcher, SIGNAL(losingForeground()) );
hgs
parents:
diff changeset
   116
    mWatcher->HandleGainingForeground();
hgs
parents:
diff changeset
   117
    QVERIFY( spyGaining.count() == 1 );
hgs
parents:
diff changeset
   118
    QVERIFY( spyLosing.count() == 0 );
hgs
parents:
diff changeset
   119
}
hgs
parents:
diff changeset
   120
hgs
parents:
diff changeset
   121
void UT_LogsForegroundWatcher::testEnsureBackgroundStartup()
hgs
parents:
diff changeset
   122
{
hgs
parents:
diff changeset
   123
    // No commandline
hgs
parents:
diff changeset
   124
    mWatcher->ensureBackgroundStartup();
hgs
parents:
diff changeset
   125
    QVERIFY( !testCommandLineSetForProcess );
hgs
parents:
diff changeset
   126
    
hgs
parents:
diff changeset
   127
    // Command line already has bg command
hgs
parents:
diff changeset
   128
    testCommandlineExists = true;
hgs
parents:
diff changeset
   129
    testCommandLineCommandBg = true;
hgs
parents:
diff changeset
   130
    mWatcher->ensureBackgroundStartup();
hgs
parents:
diff changeset
   131
    QVERIFY( !testCommandLineSetForProcess );
hgs
parents:
diff changeset
   132
    
hgs
parents:
diff changeset
   133
    // Command line does not have bg command
hgs
parents:
diff changeset
   134
    testCommandLineCommandBg = false;
hgs
parents:
diff changeset
   135
    mWatcher->ensureBackgroundStartup();
hgs
parents:
diff changeset
   136
    QVERIFY( testCommandLineSetForProcess );   
hgs
parents:
diff changeset
   137
}
hgs
parents:
diff changeset
   138