public async void Settings_Disable_Push_Promise () { var url = new Uri ("http://localhost:8999/index.html"); var settings = new Http2ConnectionSettings (url) { DisablePushPromise = true }; var http = new Http2Client (settings); await http.Connect (); var didAck = false; var semaphoreSettings = new SemaphoreSlim (0); var cancelTokenSource = new CancellationTokenSource (); var connectionStream = await http.StreamManager.Get (0); connectionStream.OnFrameReceived += (frame) => { // Watch for an ack'd settings frame after we sent the frame with no push promise if (frame.Type == FrameType.Settings) { if ((frame as SettingsFrame).Ack) { didAck = true; semaphoreSettings.Release (); } } }; cancelTokenSource.CancelAfter (TimeSpan.FromSeconds (2)); await semaphoreSettings.WaitAsync (cancelTokenSource.Token); Assert.IsTrue (didAck); }
public async void Settings_Disable_Push_Promise() { var url = new Uri("http://localhost:8999/index.html"); var settings = new Http2ConnectionSettings(url) { DisablePushPromise = true }; var http = new Http2Client(settings); await http.Connect(); var didAck = false; var semaphoreSettings = new SemaphoreSlim(0); var cancelTokenSource = new CancellationTokenSource(); var connectionStream = await http.StreamManager.Get(0); connectionStream.OnFrameReceived += (frame) => { // Watch for an ack'd settings frame after we sent the frame with no push promise if (frame.Type == FrameType.Settings) { if ((frame as SettingsFrame).Ack) { didAck = true; semaphoreSettings.Release(); } } }; cancelTokenSource.CancelAfter(TimeSpan.FromSeconds(2)); await semaphoreSettings.WaitAsync(cancelTokenSource.Token); Assert.IsTrue(didAck); }