public void ResponseWithNullRequestReturnsUnauthorized()
        {
            // Arrange
            var response = new HttpResponseMessage(HttpStatusCode.Unauthorized)
            {
                RequestMessage = null
            };

            // Act
            var handler = new BasicAuthMessageHandler(true, false);

            handler.OnOutboundResponse(response, CancellationToken.None);

            // Assert
            Assert.AreEqual("Basic", response.Headers.WwwAuthenticate.First().Scheme);
            Assert.AreEqual("realm=\"DNNAPI\"", response.Headers.WwwAuthenticate.First().Parameter);
        }
        public void SetsWwwAuthenticateHeaderOn401()
        {
            //Arrange
            var response = new HttpResponseMessage(HttpStatusCode.Unauthorized)
            {
                RequestMessage = new HttpRequestMessage()
            };

            //Act
            var handler = new BasicAuthMessageHandler();

            handler.OnOutboundResponse(response, new CancellationToken());

            //Assert
            Assert.AreEqual("Basic", response.Headers.WwwAuthenticate.First().Scheme);
            Assert.AreEqual("realm=\"DNNAPI\"", response.Headers.WwwAuthenticate.First().Parameter);
        }
        public void OmitsWwwAuthenticateHeaderOn401FromXmlHttpRequest()
        {
            // Arrange
            var response = new HttpResponseMessage(HttpStatusCode.Unauthorized)
            {
                RequestMessage = new HttpRequestMessage()
            };

            response.RequestMessage.Headers.Add("X-REQUESTED-WITH", "XmlHttpRequest");

            // Act
            var handler = new BasicAuthMessageHandler(true, false);

            handler.OnOutboundResponse(response, CancellationToken.None);

            // Assert
            CollectionAssert.IsEmpty(response.Headers.WwwAuthenticate);
        }
        public void MissingXmlHttpRequestValueDoesntThrowNullException()
        {
            // Arrange
            var response = new HttpResponseMessage(HttpStatusCode.Unauthorized)
            {
                RequestMessage = new HttpRequestMessage()
            };

            response.RequestMessage.Headers.Add("X-REQUESTED-WITH", string.Empty);

            // Act
            var handler = new BasicAuthMessageHandler(true, false);

            handler.OnOutboundResponse(response, CancellationToken.None);

            // Assert
            Assert.AreEqual("Basic", response.Headers.WwwAuthenticate.First().Scheme);
            Assert.AreEqual("realm=\"DNNAPI\"", response.Headers.WwwAuthenticate.First().Parameter);
        }