Using QueryHelpers.ParseQuery for parsing query string.

Removed the helpers implemented in the test project.
This commit is contained in:
Praburaj 2014-09-23 20:08:59 -07:00
parent 3ce74b6c4e
commit 1867d11a43
7 changed files with 10 additions and 58 deletions

View File

@ -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;
}
}
}

View File

@ -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"))
{

View File

@ -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;
}
}
}

View File

@ -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"]);

View File

@ -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"]);

View File

@ -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

View File

@ -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": {