public void DeferredConnectionCapabilityAdvertiserAutoGO() { using (RemoteControllerLogGroup lg = new RemoteControllerLogGroup(remoteWFDController)) { // Start autonomous GO remoteWFDController.StartAutonomousGo(); // Connect string serviceName = remoteWFDController.GenerateUniqueServiceName(); ServicesPublishDiscoverConnectParameters connectParams = new ServicesPublishDiscoverConnectParameters( serviceName, new ServicesConnectOptions( callGetProvisioningInfo: true, expectDeferred: true, validateData: true ), autoAccept: false ); var pairResults = ExecutePublishDiscoverConnectScenario(connectParams); // Disconnect ExecuteDisconnectScenario( new ServicesDisconnectParameters( pairResults.ConnectResults[0].SeekerSessionHandle, pairResults.ConnectResults[0].AdvertiserSessionHandle ) ); CleanupBeforeReconnect(false); // Reconnect ServicesDiscoverConnectParameters reconnectParams = new ServicesDiscoverConnectParameters( pairResults.PublishResults[0].AdvertiserHandle, serviceName, ServicesDiscoveryType.Watcher, new ServicesConnectOptions( callGetProvisioningInfo: true, expectDeferred: true, validateData: true, expectGroupFormationNeeded: false ) ); var reconnectResults = ExecuteDiscoverConnectScenario(reconnectParams); Verify.AreEqual(1, reconnectResults.ConnectResults.Count); // Disconnect ExecuteDisconnectScenario( new ServicesDisconnectParameters( reconnectResults.ConnectResults[0].SeekerSessionHandle, reconnectResults.ConnectResults[0].AdvertiserSessionHandle ) ); remoteWFDController.StopAutonomousGo(); } }
public void ForgottenGroupAutoAcceptSeeker() { using (RemoteControllerLogGroup lg = new RemoteControllerLogGroup(remoteWFDController)) { // Connect string serviceName = remoteWFDController.GenerateUniqueServiceName(); ServicesPublishDiscoverConnectParameters connectParams = new ServicesPublishDiscoverConnectParameters( serviceName, new ServicesConnectOptions( callGetProvisioningInfo: true, validateData: true ) ); var pairResults = ExecutePublishDiscoverConnectScenario(connectParams); // Verify results before we start using them Verify.AreEqual(1, pairResults.PublishResults.Count); Verify.AreEqual(1, pairResults.ConnectResults.Count); // Disconnect (from advertiser side) ExecuteDisconnectScenario( new ServicesDisconnectParameters( pairResults.ConnectResults[0].AdvertiserSessionHandle, pairResults.ConnectResults[0].SeekerSessionHandle ), false ); CleanupBeforeReconnect(true); // Forget pairing on seeker side localWFDController.TryRemoveDafAssociation(remoteWFDController.DeviceAddress); localWFDController.FlushVisibleDeviceList(); // Reconnect, which should do pairing ServicesDiscoverConnectParameters reconnectParams = new ServicesDiscoverConnectParameters( pairResults.PublishResults[0].AdvertiserHandle, serviceName, ServicesDiscoveryType.Watcher, new ServicesConnectOptions( callGetProvisioningInfo: true, validateData: true ) ); var reconnectResults = ExecuteDiscoverConnectScenario(reconnectParams); Verify.AreEqual(1, reconnectResults.ConnectResults.Count); // Disconnect ExecuteDisconnectScenario( new ServicesDisconnectParameters( reconnectResults.ConnectResults[0].SeekerSessionHandle, reconnectResults.ConnectResults[0].AdvertiserSessionHandle ) ); } }
public void AutoAcceptSeekerGOReconnect() { using (RemoteControllerLogGroup lg = new RemoteControllerLogGroup(remoteWFDController)) { // Connect string serviceName = remoteWFDController.GenerateUniqueServiceName(); ServicesPublishDiscoverConnectParameters connectParams = new ServicesPublishDiscoverConnectParameters( serviceName, new ServicesConnectOptions( callGetProvisioningInfo: true, preferGO: true, validateData: true ), preferGO: false ); var pairResults = ExecutePublishDiscoverConnectScenario(connectParams); // Verify results before we start using them Verify.AreEqual(1, pairResults.PublishResults.Count); Verify.AreEqual(1, pairResults.ConnectResults.Count); // Disconnect (from advertiser side) ExecuteDisconnectScenario( new ServicesDisconnectParameters( pairResults.ConnectResults[0].AdvertiserSessionHandle, pairResults.ConnectResults[0].SeekerSessionHandle ), false ); CleanupBeforeReconnect(true); // Reconnect ServicesDiscoverConnectParameters reconnectParams = new ServicesDiscoverConnectParameters( pairResults.PublishResults[0].AdvertiserHandle, serviceName, ServicesDiscoveryType.Watcher, new ServicesConnectOptions( preferGO: true, validateData: true, expectGroupFormationNeeded: false ) ); var reconnectResults = ExecuteDiscoverConnectScenario(reconnectParams); Verify.AreEqual(1, reconnectResults.ConnectResults.Count); // Disconnect ExecuteDisconnectScenario( new ServicesDisconnectParameters( reconnectResults.ConnectResults[0].SeekerSessionHandle, reconnectResults.ConnectResults[0].AdvertiserSessionHandle ) ); } }
public ServicesDiscoverConnectScenario( WiFiDirectTestController seekerTestController, WiFiDirectTestController advertiserTestController, ServicesDiscoverConnectParameters discoveryConnectParameters ) { this.seekerTestController = seekerTestController; this.advertiserTestController = advertiserTestController; this.discoveryConnectParameters = discoveryConnectParameters; }
ServicesDiscoverConnectScenarioResult ExecuteDiscoverConnectScenario(ServicesDiscoverConnectParameters discoverConnectParams) { ServicesDiscoverConnectScenario scenario = new ServicesDiscoverConnectScenario( localWFDController, remoteWFDController, discoverConnectParams ); ServicesDiscoverConnectScenarioResult scenarioResult = scenario.Execute(); Verify.IsTrue(scenarioResult.ScenarioSucceeded); return(scenarioResult); }
public void SimpleAutoAcceptPairingReconnect() { using (RemoteControllerLogGroup lg = new RemoteControllerLogGroup(remoteWFDController)) { // Connect string serviceName = remoteWFDController.GenerateUniqueServiceName(); ServicesConnectOptions connectOptions = new ServicesConnectOptions(validateData: true); ServicesPublishDiscoverConnectParameters connectParams = new ServicesPublishDiscoverConnectParameters( serviceName, connectOptions ); var pairResults = ExecutePublishDiscoverConnectScenario(connectParams); // Verify results before we start using them Verify.AreEqual(1, pairResults.PublishResults.Count); Verify.AreEqual(1, pairResults.ConnectResults.Count); // Disconnect ExecuteDisconnectScenario( new ServicesDisconnectParameters( pairResults.ConnectResults[0].SeekerSessionHandle, pairResults.ConnectResults[0].AdvertiserSessionHandle ) ); CleanupBeforeReconnect(true); // Reconnect ServicesDiscoverConnectParameters reconnectParams = new ServicesDiscoverConnectParameters( pairResults.PublishResults[0].AdvertiserHandle, serviceName, ServicesDiscoveryType.Watcher, connectOptions ); var reconnectResults = ExecuteDiscoverConnectScenario(reconnectParams); Verify.AreEqual(1, reconnectResults.ConnectResults.Count); // Disconnect ExecuteDisconnectScenario( new ServicesDisconnectParameters( reconnectResults.ConnectResults[0].SeekerSessionHandle, reconnectResults.ConnectResults[0].AdvertiserSessionHandle ) ); } }
public void ForgottenGroupDeferredAdvertiser() { using (RemoteControllerLogGroup lg = new RemoteControllerLogGroup(remoteWFDController)) { // Connect string serviceName = remoteWFDController.GenerateUniqueServiceName(); ServicesPublishDiscoverConnectParameters connectParams = new ServicesPublishDiscoverConnectParameters( serviceName, new ServicesConnectOptions( callGetProvisioningInfo: true, preferredConfigMethod: WiFiDirectServiceConfigurationMethod.PinEntry, validateData: true, expectDeferred: true ), autoAccept: false ); var pairResults = ExecutePublishDiscoverConnectScenario(connectParams); // Verify results before we start using them Verify.AreEqual(1, pairResults.PublishResults.Count); Verify.AreEqual(1, pairResults.ConnectResults.Count); // Disconnect (from advertiser side) ExecuteDisconnectScenario( new ServicesDisconnectParameters( pairResults.ConnectResults[0].AdvertiserSessionHandle, pairResults.ConnectResults[0].SeekerSessionHandle ), false ); CleanupBeforeReconnect(true); // Forget pairing on advertiser side remoteWFDController.TryRemoveDafAssociation(localWFDController.DeviceAddress); remoteWFDController.FlushVisibleDeviceList(); // BUG: [TH2] Fix race where UE cancels back-to-back discoveries because set additional IEs OID preempts the scan Task.Delay(500).Wait(); // Reconnect, which should do pairing ServicesDiscoverConnectParameters reconnectParams = new ServicesDiscoverConnectParameters( pairResults.PublishResults[0].AdvertiserHandle, serviceName, ServicesDiscoveryType.Watcher, new ServicesConnectOptions( callGetProvisioningInfo: true, expectGroupFormationNeeded: true, preferredConfigMethod: WiFiDirectServiceConfigurationMethod.PinEntry, validateData: true, expectDeferred: true ) ); var reconnectResults = ExecuteDiscoverConnectScenario(reconnectParams); Verify.AreEqual(1, reconnectResults.ConnectResults.Count); // Disconnect ExecuteDisconnectScenario( new ServicesDisconnectParameters( reconnectResults.ConnectResults[0].SeekerSessionHandle, reconnectResults.ConnectResults[0].AdvertiserSessionHandle ) ); } }