• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2012 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 package com.android.cts.verifier.p2p.testcase;
17 
18 import android.content.Context;
19 import android.net.wifi.p2p.nsd.WifiP2pDnsSdServiceRequest;
20 import android.net.wifi.p2p.nsd.WifiP2pUpnpServiceRequest;
21 
22 import com.android.cts.verifier.R;
23 
24 /**
25  * Service discovery requester test case to check removeServiceRequest() works well.
26  */
27 public class ServReqRemoveRequestTestCase extends ServReqTestCase {
28 
ServReqRemoveRequestTestCase(Context context)29     public ServReqRemoveRequestTestCase(Context context) {
30         super(context);
31     }
32 
33     @Override
executeTest()34     protected boolean executeTest() throws InterruptedException {
35 
36         notifyTestMsg(R.string.p2p_checking_serv_capab);
37 
38         ActionListenerTest actionListener = new ActionListenerTest();
39 
40         /*
41          * create some service requests.
42          */
43         WifiP2pUpnpServiceRequest upnpReq1 =
44                 WifiP2pUpnpServiceRequest.newInstance();
45         WifiP2pUpnpServiceRequest upnpReq2 =
46                 WifiP2pUpnpServiceRequest.newInstance("ssdp:all");
47         WifiP2pDnsSdServiceRequest bonjourReq1 =
48                 WifiP2pDnsSdServiceRequest.newInstance();
49         WifiP2pDnsSdServiceRequest bonjourReq2 =
50                 WifiP2pDnsSdServiceRequest.newInstance("_ipp._tcp");
51 
52         /*
53          * add request
54          */
55         mP2pMgr.addServiceRequest(mChannel, upnpReq1, actionListener);
56         if (!actionListener.check(ActionListenerTest.SUCCESS, TIMEOUT)) {
57             mReason = mContext.getString(R.string.p2p_add_service_request_error);
58             return false;
59         }
60         mP2pMgr.addServiceRequest(mChannel, upnpReq2, actionListener);
61         if (!actionListener.check(ActionListenerTest.SUCCESS, TIMEOUT)) {
62             mReason = mContext.getString(R.string.p2p_add_service_request_error);
63             return false;
64         }
65         mP2pMgr.addServiceRequest(mChannel, bonjourReq1, actionListener);
66         if (!actionListener.check(ActionListenerTest.SUCCESS, TIMEOUT)) {
67             mReason = mContext.getString(R.string.p2p_add_service_request_error);
68             return false;
69         }
70         mP2pMgr.addServiceRequest(mChannel, bonjourReq2, actionListener);
71         if (!actionListener.check(ActionListenerTest.SUCCESS, TIMEOUT)) {
72             mReason = mContext.getString(R.string.p2p_add_service_request_error);
73             return false;
74         }
75 
76         /*
77          * remove requests except for UPnP ssdp:all.
78          */
79         mP2pMgr.removeServiceRequest(mChannel, upnpReq1, actionListener);
80         if (!actionListener.check(ActionListenerTest.SUCCESS, TIMEOUT)) {
81             mReason = mContext.getString(R.string.p2p_remove_service_request_error);
82             return false;
83         }
84         mP2pMgr.removeServiceRequest(mChannel, bonjourReq1, actionListener);
85         if (!actionListener.check(ActionListenerTest.SUCCESS, TIMEOUT)) {
86             mReason = mContext.getString(R.string.p2p_remove_service_request_error);
87             return false;
88         }
89         mP2pMgr.removeServiceRequest(mChannel, bonjourReq2, actionListener);
90         if (!actionListener.check(ActionListenerTest.SUCCESS, TIMEOUT)) {
91             mReason = mContext.getString(R.string.p2p_remove_service_request_error);
92             return false;
93         }
94 
95         /*
96          * initialize test listener.
97          */
98         UPnPServiceResponseListenerTest upnpListener =
99                 new UPnPServiceResponseListenerTest(mTargetAddress);
100         DnsSdResponseListenerTest dnsSdListener =
101                 new DnsSdResponseListenerTest(mTargetAddress);
102         DnsSdTxtRecordListenerTest txtListener =
103                 new DnsSdTxtRecordListenerTest(mTargetAddress);
104 
105         mP2pMgr.setUpnpServiceResponseListener(mChannel, upnpListener);
106         mP2pMgr.setDnsSdResponseListeners(mChannel, dnsSdListener, txtListener);
107 
108         /*
109          * search UPnP service with ssdp:all
110          */
111         mP2pMgr.discoverServices(mChannel, actionListener);
112         if (!actionListener.check(ActionListenerTest.SUCCESS, TIMEOUT)) {
113             mReason = mContext.getString(R.string.p2p_discover_services_error);
114             return false;
115         }
116 
117         /*
118          * check that bonjour response NEVER received.
119          * check that just UPnP response is received
120          */
121         Timeout t = new Timeout(TIMEOUT);
122         if (!dnsSdListener.check(DnsSdResponseListenerTest.NO_DNS_PTR,
123                 t.getRemainTime())) {
124             mReason = getListenerError(dnsSdListener);
125             return false;
126         }
127         if (!txtListener.check(DnsSdTxtRecordListenerTest.NO_DNS_TXT,
128                 t.getRemainTime())) {
129             mReason = getListenerError(txtListener);
130             return false;
131         }
132         if (!upnpListener.check(
133                 UPnPServiceResponseListenerTest.ALL_UPNP_SERVICES,
134                 t.getRemainTime())) {
135             mReason = getListenerError(upnpListener);
136             return false;
137         }
138 
139         return true;
140     }
141 
142     @Override
getTestName()143     public String getTestName() {
144         return "Remove service requests test";
145     }
146 }
147