Using QueryHelpers.ParseQuery for parsing query string.
Removed the helpers implemented in the test project.
This commit is contained in:
parent
3ce74b6c4e
commit
1867d11a43
|
|
@ -1,31 +0,0 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
|
||||
namespace System.Net
|
||||
{
|
||||
public static class Extensions
|
||||
{
|
||||
/// <summary>
|
||||
/// https://github.com/aspnet/HttpAbstractions/issues/121 - Helpers implemented here until that.
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public static Dictionary<string, string> ParseQueryString(this Uri uri)
|
||||
{
|
||||
var queryParameters = Uri.UnescapeDataString(uri.Query.TrimStart('?')).Split(new char[] { '&' }, StringSplitOptions.RemoveEmptyEntries);
|
||||
var queryItemCollection = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase);
|
||||
|
||||
if (queryParameters != null && queryParameters.Length > 0)
|
||||
{
|
||||
foreach (var queryParameter in queryParameters)
|
||||
{
|
||||
var queryParameterParts = queryParameter.Split(new char[] { '=' }, StringSplitOptions.RemoveEmptyEntries);
|
||||
var value = queryParameterParts.Length == 1 ? string.Empty : queryParameterParts[1];
|
||||
queryItemCollection.Add(queryParameterParts[0], value);
|
||||
}
|
||||
}
|
||||
|
||||
return queryItemCollection;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -3,6 +3,7 @@ using System.Threading;
|
|||
using System.Threading.Tasks;
|
||||
using System.Net;
|
||||
using MusicStore.Mocks.Common;
|
||||
using Microsoft.AspNet.WebUtilities;
|
||||
|
||||
namespace MusicStore.Mocks.Facebook
|
||||
{
|
||||
|
|
@ -14,7 +15,7 @@ namespace MusicStore.Mocks.Facebook
|
|||
protected async override Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
|
||||
{
|
||||
var response = new HttpResponseMessage();
|
||||
var queryParameters = request.RequestUri.ParseQueryString();
|
||||
var queryParameters = QueryHelpers.ParseQuery(request.RequestUri.Query);
|
||||
|
||||
if (request.RequestUri.AbsoluteUri.StartsWith("https://graph.facebook.com/oauth/access_token"))
|
||||
{
|
||||
|
|
|
|||
|
|
@ -16,27 +16,5 @@ namespace System.Net
|
|||
|
||||
return null;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// https://github.com/aspnet/HttpAbstractions/issues/121 - Helpers implemented here until that.
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public static Dictionary<string, string> ParseQueryString(this Uri uri)
|
||||
{
|
||||
var queryParameters = Uri.UnescapeDataString(uri.Query.TrimStart('?')).Split(new char[] { '&' }, StringSplitOptions.RemoveEmptyEntries);
|
||||
var queryItemCollection = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase);
|
||||
|
||||
if (queryParameters != null && queryParameters.Length > 0)
|
||||
{
|
||||
foreach (var queryParameter in queryParameters)
|
||||
{
|
||||
var queryParameterParts = queryParameter.Split(new char[] { '=' }, StringSplitOptions.RemoveEmptyEntries);
|
||||
var value = queryParameterParts.Length == 1 ? string.Empty : queryParameterParts[1];
|
||||
queryItemCollection.Add(queryParameterParts[0], value);
|
||||
}
|
||||
}
|
||||
|
||||
return queryItemCollection;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ using System.Collections.Generic;
|
|||
using System.Net.Http;
|
||||
using System.Net;
|
||||
using Xunit;
|
||||
using Microsoft.AspNet.WebUtilities;
|
||||
|
||||
namespace E2ETests
|
||||
{
|
||||
|
|
@ -27,7 +28,7 @@ namespace E2ETests
|
|||
var content = new FormUrlEncodedContent(formParameters.ToArray());
|
||||
response = httpClient.PostAsync("Account/ExternalLogin", content).Result;
|
||||
Assert.Equal<string>("https://www.facebook.com/dialog/oauth", response.Headers.Location.AbsoluteUri.Replace(response.Headers.Location.Query, string.Empty));
|
||||
var queryItems = response.Headers.Location.ParseQueryString();
|
||||
var queryItems = QueryHelpers.ParseQuery(response.Headers.Location.Query);
|
||||
Assert.Equal<string>("code", queryItems["response_type"]);
|
||||
Assert.Equal<string>("[AppId]", queryItems["client_id"]);
|
||||
Assert.Equal<string>(ApplicationBaseUrl + "signin-facebook", queryItems["redirect_uri"]);
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ using System.Collections.Generic;
|
|||
using System.Net.Http;
|
||||
using System.Net;
|
||||
using Xunit;
|
||||
using Microsoft.AspNet.WebUtilities;
|
||||
|
||||
namespace E2ETests
|
||||
{
|
||||
|
|
@ -27,7 +28,7 @@ namespace E2ETests
|
|||
var content = new FormUrlEncodedContent(formParameters.ToArray());
|
||||
response = httpClient.PostAsync("Account/ExternalLogin", content).Result;
|
||||
Assert.Equal<string>("https://accounts.google.com/o/oauth2/auth", response.Headers.Location.AbsoluteUri.Replace(response.Headers.Location.Query, string.Empty));
|
||||
var queryItems = response.Headers.Location.ParseQueryString();
|
||||
var queryItems = QueryHelpers.ParseQuery(response.Headers.Location.Query);
|
||||
Assert.Equal<string>("code", queryItems["response_type"]);
|
||||
Assert.Equal<string>("offline", queryItems["access_type"]);
|
||||
Assert.Equal<string>("[ClientId]", queryItems["client_id"]);
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ using System.Collections.Generic;
|
|||
using System.Net.Http;
|
||||
using System.Net;
|
||||
using Xunit;
|
||||
using Microsoft.AspNet.WebUtilities;
|
||||
|
||||
namespace E2ETests
|
||||
{
|
||||
|
|
@ -30,7 +31,7 @@ namespace E2ETests
|
|||
var content = new FormUrlEncodedContent(formParameters.ToArray());
|
||||
response = httpClient.PostAsync("Account/ExternalLogin", content).Result;
|
||||
Assert.Equal<string>("https://twitter.com/oauth/authenticate", response.Headers.Location.AbsoluteUri.Replace(response.Headers.Location.Query, string.Empty));
|
||||
var queryItems = response.Headers.Location.ParseQueryString();
|
||||
var queryItems = QueryHelpers.ParseQuery(response.Headers.Location.Query);
|
||||
Assert.Equal<string>("custom", queryItems["custom_redirect_uri"]);
|
||||
Assert.Equal<string>("valid_oauth_token", queryItems["oauth_token"]);
|
||||
//Check for the correlation cookie
|
||||
|
|
|
|||
|
|
@ -7,7 +7,8 @@
|
|||
"Microsoft.AspNet.Server.IIS": "1.0.0-*",
|
||||
"Microsoft.Framework.Runtime.Interfaces": "1.0.0-*",
|
||||
"Xunit.KRunner": "1.0.0-*",
|
||||
"Microsoft.AspNet.SignalR.Client": "2.1.1"
|
||||
"Microsoft.AspNet.SignalR.Client": "2.1.1",
|
||||
"Microsoft.AspNet.WebUtilities": "1.0.0-*"
|
||||
},
|
||||
"frameworks": {
|
||||
"aspnet50": {
|
||||
|
|
|
|||
Loading…
Reference in New Issue