// _Unsupported_ Those API could be not implemented and return KErrNotSupported


[Define]
KErrNotFound -1
KErrNotSupported -5
KErrAlreadyExists -11
KErrNotReady -18
KErrAccessDenied -21

KErrEventPending -2000
KErrCallbackErrorCode -2001
KErrUnexpectedValue -2002
KErrNotificationPending -2005
KErrUnexpectedNotification -2006
KErrTimeoutController -2007



[Enddefine]


[Test]
title 1. Create Factory 
create RestrictedAOTestClass AO
AO CreateFactory
delete AO
[Endtest]

[Test]
title 2. Create RestrictedAO 
create RestrictedAOTestClass AO
AO CreateFactory
AO CreateRestrictedAO
delete AO
[Endtest]


[Test]
title 3. AppendAllowedOutput All
create RestrictedAOTestClass AO
AO CreateFactory
AO CreateRestrictedAO
AO AppendAllowedOutput All
delete AO
[Endtest]

[Test]
title 4. AppendAllowedOutput AudioAnalog
create RestrictedAOTestClass AO
AO CreateFactory
AO CreateRestrictedAO
AO AppendAllowedOutput AudioAnalog
delete AO
[Endtest]

[Test]
title 5. AppendAllowedOutput FM
create RestrictedAOTestClass AO
AO CreateFactory
AO CreateRestrictedAO
AO AppendAllowedOutput FM
delete AO
[Endtest]

[Test]
title 6. AppendAllowedOutput StereoBT
create RestrictedAOTestClass AO
AO CreateFactory
AO CreateRestrictedAO
AO AppendAllowedOutput StereoBT
delete AO
[Endtest]

[Test]
title 7. AppendAllowedOutput BTA2DP
create RestrictedAOTestClass AO
AO CreateFactory
AO CreateRestrictedAO
AO AppendAllowedOutput BTA2DP
delete AO
[Endtest]

[Test]
title 8. AppendAllowedOutput USB
create RestrictedAOTestClass AO
AO CreateFactory
AO CreateRestrictedAO
AO AppendAllowedOutput USB
delete AO
[Endtest]

[Test]
title 9. AppendAllowedOutput Record
create RestrictedAOTestClass AO
AO CreateFactory
AO CreateRestrictedAO
AO AppendAllowedOutput Record
delete AO
[Endtest]

[Test]
title 10. AppendAllowedOutput Visualization
create RestrictedAOTestClass AO
AO CreateFactory
AO CreateRestrictedAO
AO AppendAllowedOutput Visualization
delete AO
[Endtest]


[Test]
title 11. AppendAllowedOutput multiple 
create RestrictedAOTestClass AO
AO CreateFactory
AO CreateRestrictedAO
AO AppendAllowedOutput All
AO AppendAllowedOutput AudioAnalog
AO AppendAllowedOutput FM
AO AppendAllowedOutput StereoBT
AO AppendAllowedOutput BTA2DP
AO AppendAllowedOutput AudioUplink
AO AppendAllowedOutput USB
AO AppendAllowedOutput Record
AO AppendAllowedOutput Visualization
delete AO
[Endtest]


[Test]
title 12. RemoveAllowedOutput All
create RestrictedAOTestClass AO
AO CreateFactory
AO CreateRestrictedAO
AO Reset
AO AppendAllowedOutput All
AO RemoveAllowedOutput All
delete AO
[Endtest]

[Test]
title 13. RemoveAllowedOutput AudioAnalog
create RestrictedAOTestClass AO
AO CreateFactory
AO CreateRestrictedAO
AO Reset
AO AppendAllowedOutput AudioAnalog
AO RemoveAllowedOutput AudioAnalog
delete AO
[Endtest]

[Test]
title 14. RemoveAllowedOutput FM
create RestrictedAOTestClass AO
AO CreateFactory
AO CreateRestrictedAO
AO Reset
AO AppendAllowedOutput FM
AO RemoveAllowedOutput FM
delete AO
[Endtest]

[Test]
title 15. RemoveAllowedOutput StereoBT
create RestrictedAOTestClass AO
AO CreateFactory
AO CreateRestrictedAO
AO Reset
AO AppendAllowedOutput StereoBT
AO RemoveAllowedOutput StereoBT
delete AO
[Endtest]

[Test]
title 16. RemoveAllowedOutput BTA2DP
create RestrictedAOTestClass AO
AO CreateFactory
AO CreateRestrictedAO
AO Reset
AO AppendAllowedOutput BTA2DP
AO RemoveAllowedOutput BTA2DP
delete AO
[Endtest]

[Test]
title 17. RemoveAllowedOutput USB
create RestrictedAOTestClass AO
AO CreateFactory
AO CreateRestrictedAO
AO Reset
AO AppendAllowedOutput USB
AO RemoveAllowedOutput USB
delete AO
[Endtest]

[Test]
title 18. RemoveAllowedOutput Record
create RestrictedAOTestClass AO
AO CreateFactory
AO CreateRestrictedAO
AO Reset
AO AppendAllowedOutput Record
AO RemoveAllowedOutput Record
delete AO
[Endtest]

[Test]
title 19. RemoveAllowedOutput Visualization
create RestrictedAOTestClass AO
AO CreateFactory
AO CreateRestrictedAO
AO Reset
AO AppendAllowedOutput Visualization
AO RemoveAllowedOutput Visualization
delete AO
[Endtest]


[Test]
title 19. RemoveAllowedOutput NotAppended
create RestrictedAOTestClass AO
AO CreateFactory
AO CreateRestrictedAO
AO Reset
AO AppendAllowedOutput All
allownextresult KErrNotFound
AO RemoveAllowedOutput Visualization
AO RemoveAllowedOutput All
allownextresult KErrNotFound
AO RemoveAllowedOutput All
delete AO
[Endtest]


[Test]
title 20. AppendAllowedOutput twice
create RestrictedAOTestClass AO
AO CreateFactory
AO CreateRestrictedAO
AO Reset
AO AppendAllowedOutput All
allownextresult KErrAlreadyExists
AO AppendAllowedOutput All
delete AO
[Endtest]


[Test]
title 21. GetAllowedOutputCount
create RestrictedAOTestClass AO
AO CreateFactory
AO CreateRestrictedAO
AO Reset
AO AppendAllowedOutput All
allownextresult 1
AO GetAllowedOutputCount
AO AppendAllowedOutput AudioAnalog
AO AppendAllowedOutput FM
AO AppendAllowedOutput StereoBT
AO AppendAllowedOutput BTA2DP
AO AppendAllowedOutput AudioUplink
AO AppendAllowedOutput USB
AO AppendAllowedOutput Record
AO AppendAllowedOutput Visualization
allownextresult 9
AO GetAllowedOutputCount
delete AO
[Endtest]


[Test]
title 22. Reset
create RestrictedAOTestClass AO
AO CreateFactory
AO CreateRestrictedAO
AO Reset
AO AppendAllowedOutput All
allownextresult 1
AO GetAllowedOutputCount
AO AppendAllowedOutput AudioAnalog
AO AppendAllowedOutput FM
AO AppendAllowedOutput StereoBT
AO AppendAllowedOutput BTA2DP
AO AppendAllowedOutput AudioUplink
AO AppendAllowedOutput USB
AO AppendAllowedOutput Record
AO AppendAllowedOutput Visualization
allownextresult 9
AO GetAllowedOutputCount
AO Reset
allownextresult 0
AO GetAllowedOutputCount
delete AO
[Endtest]


[Test]
title 23. GetAllowedOutput
create RestrictedAOTestClass AO
AO CreateFactory
AO CreateRestrictedAO
AO Reset
AO AppendAllowedOutput All
AO GetAllowedOutput All
AO AppendAllowedOutput AudioAnalog
AO GetAllowedOutput AudioAnalog
AO AppendAllowedOutput FM
AO GetAllowedOutput FM
AO AppendAllowedOutput StereoBT
AO GetAllowedOutput StereoBT
AO AppendAllowedOutput BTA2DP
AO GetAllowedOutput BTA2DP
AO AppendAllowedOutput AudioUplink
AO GetAllowedOutput AudioUplink
AO AppendAllowedOutput USB
AO GetAllowedOutput USB
AO AppendAllowedOutput Record
AO GetAllowedOutput Record
AO AppendAllowedOutput Visualization
AO GetAllowedOutput Record
delete AO
[Endtest]


[Test]
title 24. GetAllowedOutput after remove
create RestrictedAOTestClass AO
AO CreateFactory
AO CreateRestrictedAO
AO Reset
AO AppendAllowedOutput FM
AO GetAllowedOutput FM
AO AppendAllowedOutput StereoBT
AO GetAllowedOutput StereoBT
AO AppendAllowedOutput BTA2DP
AO GetAllowedOutput BTA2DP
AO RemoveAllowedOutput StereoBT
AO GetAllowedOutput BTA2DP
allownextresult KErrNotFound
AO GetAllowedOutput StereoBT
delete AO
[Endtest]


// Adding Test cases 26 and 27 for
// RIM CR 417-7642: HDMI with HDCP to Resctricted Audio Output API
// Adding new ENUMs to CRestrictedAudioOutput::TAllowedOutputPreference for HDMI and HDCP
// EAllowAudioHDMI and EAllowAudioHdmiHdcpRequired
//

[Test]
title 26. AppendAllowedOutput HDMI
create RestrictedAOTestClass AO
AO CreateFactory
AO CreateRestrictedAO
AO AppendAllowedOutput HDMI
delete AO
[Endtest]



[Test]
title 27. AppendAllowedOutput HdmiHdcpRequired
create RestrictedAOTestClass AO
AO CreateFactory
AO CreateRestrictedAO
AO AppendAllowedOutput HdmiHdcpRequired
delete AO
[Endtest]


//[Test]
//title 25. Commit
//create RestrictedAOTestClass AO
//AO CreateFactory
//AO CreateRestrictedAO
//AO Reset
//AO AppendAllowedOutput FM
//AO AppendAllowedOutput StereoBT
//AO AppendAllowedOutput BTA2DP
//AO Commit
//delete AO
//[Endtest]


//[Test]
//title  ExampleL 
//create RestrictedAOTestClass AO
//AO Example
//delete AO
//[Endtest]


