|
1 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). |
|
2 // All rights reserved. |
|
3 // This component and the accompanying materials are made available |
|
4 // under the terms of "Eclipse Public License v1.0" |
|
5 // which accompanies this distribution, and is available |
|
6 // at the URL "http://www.eclipse.org/legal/epl-v10.html". |
|
7 // |
|
8 // Initial Contributors: |
|
9 // Nokia Corporation - initial contribution. |
|
10 // |
|
11 // Contributors: |
|
12 // |
|
13 // Description: |
|
14 // |
|
15 |
|
16 #include "cteststepbtromconfigrsocket001.h" |
|
17 #include <es_sock.h> |
|
18 #include <bt_sock.h> |
|
19 #include <bluetoothav.h> |
|
20 |
|
21 _LIT(KProtocolSdp, "SDP"); |
|
22 _LIT(KProtocolBtLinkManager, "BTLinkManager"); |
|
23 _LIT(KProtocolAvctp, "AVCTP"); |
|
24 |
|
25 CTestStepBtRomConfigRSocket001::~CTestStepBtRomConfigRSocket001() |
|
26 { |
|
27 } |
|
28 |
|
29 CTestStepBtRomConfigRSocket001::CTestStepBtRomConfigRSocket001 |
|
30 (CTestServer& aParent) |
|
31 : CTestStepBtRomConfigBase(aParent) |
|
32 { |
|
33 SetTestStepName(KTestNameRSocket001); |
|
34 } |
|
35 |
|
36 /** |
|
37 Static Constructor |
|
38 Note the lack of ELeave. This means that having insufficient memory will return NULL; |
|
39 */ |
|
40 CTestStepBtRomConfigRSocket001* CTestStepBtRomConfigRSocket001::New |
|
41 (CTestServer& aParent) |
|
42 { |
|
43 return new CTestStepBtRomConfigRSocket001(aParent); |
|
44 } |
|
45 |
|
46 /** |
|
47 See BT_ROMCONFIG_RSOCKET_001.script |
|
48 */ |
|
49 TVerdict CTestStepBtRomConfigRSocket001::doTestStepL() |
|
50 { |
|
51 INFO_PRINTF1(\ |
|
52 _L(">>CTestStepBtRomConfigRSocket001::doTestStepL()")); |
|
53 |
|
54 RSocketServ socketServer; |
|
55 User::LeaveIfError(socketServer.Connect()); |
|
56 RSocket sock; |
|
57 TInt err = KErrNone; |
|
58 TInt expectedError = KErrBadName; |
|
59 const TDesC* expectedErrorDesPtr = &KErrBadNameLit; |
|
60 TBool allCasesTested = EFalse; |
|
61 TInt testcase = 0; |
|
62 |
|
63 while( !allCasesTested ) |
|
64 { |
|
65 // test one of the RSocket open methods |
|
66 switch(testcase) |
|
67 { |
|
68 case 0: |
|
69 expectedError = ( iBtExcluded ? KErrNotFound : KErrNone ); |
|
70 expectedErrorDesPtr = ( iBtExcluded ? &KErrNotFoundLit : &KErrNoneLit ); |
|
71 err = sock.Open( socketServer, KRFCOMMDesC ); |
|
72 break; |
|
73 case 1: |
|
74 expectedError = ( iBtExcluded ? KErrNotFound : KErrNone ); |
|
75 expectedErrorDesPtr = ( iBtExcluded ? &KErrNotFoundLit : &KErrNoneLit ); |
|
76 err = sock.Open( socketServer, KL2CAPDesC ); |
|
77 break; |
|
78 case 2: |
|
79 expectedError = ( iBtExcluded ? KErrNotFound : KErrNone ); |
|
80 expectedErrorDesPtr = ( iBtExcluded ? &KErrNotFoundLit : &KErrNoneLit ); |
|
81 err = sock.Open( socketServer, KProtocolBtLinkManager); |
|
82 break; |
|
83 case 3: |
|
84 expectedError = ( iBtExcluded ? KErrNotFound : KErrNotSupported ); |
|
85 expectedErrorDesPtr = ( iBtExcluded ? &KErrNotFoundLit : &KErrNotSupportedLit ); |
|
86 err = sock.Open( socketServer, KProtocolSdp); |
|
87 break; |
|
88 case 4: |
|
89 expectedError = ( iBtExcluded ? KErrNotFound : KErrNone ); |
|
90 expectedErrorDesPtr = ( iBtExcluded ? &KErrNotFoundLit : &KErrNoneLit ); |
|
91 err = sock.Open( socketServer, KAVDTPProtocolName); |
|
92 break; |
|
93 |
|
94 case 5: |
|
95 expectedError = ( iBtExcluded ? KErrBadName : KErrNone ); |
|
96 expectedErrorDesPtr = ( iBtExcluded ? &KErrBadNameLit : &KErrNoneLit ); |
|
97 err = sock.Open( socketServer, KBTAddrFamily, KSockStream, KRFCOMM ); |
|
98 break; |
|
99 case 6: |
|
100 expectedError = ( iBtExcluded ? KErrBadName : KErrNone ); |
|
101 expectedErrorDesPtr = ( iBtExcluded ? &KErrBadNameLit : &KErrNoneLit ); |
|
102 err = sock.Open( socketServer, KBTAddrFamily, KSockSeqPacket, KL2CAP ); |
|
103 break; |
|
104 case 7: |
|
105 expectedError = ( iBtExcluded ? KErrBadName : KErrNotSupported ); |
|
106 expectedErrorDesPtr = ( iBtExcluded ? &KErrBadNameLit : &KErrNotSupportedLit ); |
|
107 err = sock.Open( socketServer, KBTAddrFamily, KSockStream, KSDP ); |
|
108 break; |
|
109 case 8: |
|
110 expectedError = ( iBtExcluded ? KErrBadName : KErrNone ); |
|
111 expectedErrorDesPtr = ( iBtExcluded ? &KErrBadNameLit : &KErrNoneLit ); |
|
112 err = sock.Open( socketServer, KBTAddrFamily, KUndefinedSockType, KBTLinkManager ); |
|
113 break; |
|
114 case 9: |
|
115 expectedError = ( iBtExcluded ? KErrBadName : KErrNone ); |
|
116 expectedErrorDesPtr = ( iBtExcluded ? &KErrBadNameLit : &KErrNoneLit ); |
|
117 err = sock.Open( socketServer, KBTAddrFamily, KSockDatagram, KAVCTP ); |
|
118 break; |
|
119 case 10: |
|
120 expectedError = ( iBtExcluded ? KErrBadName : KErrNone ); |
|
121 expectedErrorDesPtr = ( iBtExcluded ? &KErrBadNameLit : &KErrNoneLit ); |
|
122 err = sock.Open( socketServer, KBTAddrFamily, KSockDatagram, KAVDTP ); |
|
123 break; |
|
124 |
|
125 /* |
|
126 API overloads taking RConnections do not need to be tested as these are |
|
127 covered by BT-ROMCONFIG-PAN-001 |
|
128 */ |
|
129 |
|
130 default: |
|
131 allCasesTested = ETrue; |
|
132 break; |
|
133 } |
|
134 if ( allCasesTested ) |
|
135 { |
|
136 break; |
|
137 } |
|
138 // check the result of the call to Open |
|
139 if ( err!=expectedError ) |
|
140 { |
|
141 INFO_PRINTF5(\ |
|
142 _L("Subcase %d Failed: Expected error %S(%d) and got %d when calling Open for BT protocol"),\ |
|
143 testcase, expectedErrorDesPtr, expectedError, err); |
|
144 SetTestStepResult(EFail); |
|
145 } |
|
146 // may need to tidy up the socket if a test failed |
|
147 if ( sock.SubSessionHandle() ) |
|
148 { |
|
149 sock.Close(); |
|
150 } |
|
151 testcase++; |
|
152 } |
|
153 INFO_PRINTF2(\ |
|
154 _L("%d subcases for RSocket::Open() were tested"), testcase); |
|
155 socketServer.Close(); |
|
156 |
|
157 INFO_PRINTF1(\ |
|
158 _L("<<CTestStepBtRomConfigRSocket001::doTestStepL()")); |
|
159 CheckAndSetTestResult(); |
|
160 return TestStepResult(); |
|
161 } |
|
162 |
|
163 // EOF |