public void Select_Success()
{
RemoteInvoke(() =>
{
var myProxy = new MyWebProxy();
#pragma warning disable 0618 //GlobalProxySelection is Deprecated.
Assert.NotNull(GlobalProxySelection.Select);
Assert.Equal(GlobalProxySelection.Select, WebRequest.DefaultWebProxy);
#pragma warning restore 0618
WebRequest.DefaultWebProxy = myProxy;
Assert.Equal(WebRequest.DefaultWebProxy, myProxy);
#pragma warning disable 0618 //GlobalProxySelection is Deprecated.
Assert.Equal(GlobalProxySelection.Select, myProxy);
#pragma warning restore 0618
// GlobalProxySelection will return an instance of the internal class EmptyWebProxy instead of null.
WebRequest.DefaultWebProxy = null;
Assert.Null(WebRequest.DefaultWebProxy);
#pragma warning disable 0618 //GlobalProxySelection is Deprecated.
Assert.NotNull(GlobalProxySelection.Select);
Assert.True(GlobalProxySelection.Select.IsBypassed(null)); // This is true for EmptyWebProxy, but not for most proxies
GlobalProxySelection.Select = myProxy;
#pragma warning restore 0618
Assert.Equal(WebRequest.DefaultWebProxy, myProxy);
#pragma warning disable 0618 //GlobalProxySelection is Deprecated.
Assert.Equal(GlobalProxySelection.Select, myProxy);
// GlobalProxySelection will return an instance of the internal class EmptyWebProxy instead of null.
GlobalProxySelection.Select = null;
#pragma warning restore 0618
Assert.Null(WebRequest.DefaultWebProxy);
#pragma warning disable 0618 //GlobalProxySelection is Deprecated.
Assert.NotNull(GlobalProxySelection.Select);
Assert.True(GlobalProxySelection.Select.IsBypassed(null)); // This is true for EmptyWebProxy, but not for most proxies
#pragma warning restore 0618
return SuccessExitCode;
}).Dispose();
}