From 1867d11a434caf10a2881391f2cf678a9f5ae5cf Mon Sep 17 00:00:00 2001 From: Praburaj Date: Tue, 23 Sep 2014 20:08:59 -0700 Subject: [PATCH] Using QueryHelpers.ParseQuery for parsing query string. Removed the helpers implemented in the test project. --- src/MusicStore/Mocks/Common/Extensions.cs | 31 ------------------- .../FacebookMockBackChannelHttpHandler.cs | 3 +- test/E2ETests/Extensions.cs | 22 ------------- test/E2ETests/FacebookLoginScenarios.cs | 3 +- test/E2ETests/GoogleLoginScenarios.cs | 3 +- test/E2ETests/TwitterLoginScenarios.cs | 3 +- test/E2ETests/project.json | 3 +- 7 files changed, 10 insertions(+), 58 deletions(-) delete mode 100644 src/MusicStore/Mocks/Common/Extensions.cs diff --git a/src/MusicStore/Mocks/Common/Extensions.cs b/src/MusicStore/Mocks/Common/Extensions.cs deleted file mode 100644 index 9e2c89aecc..0000000000 --- a/src/MusicStore/Mocks/Common/Extensions.cs +++ /dev/null @@ -1,31 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; - -namespace System.Net -{ - public static class Extensions - { - /// - /// https://github.com/aspnet/HttpAbstractions/issues/121 - Helpers implemented here until that. - /// - /// - public static Dictionary ParseQueryString(this Uri uri) - { - var queryParameters = Uri.UnescapeDataString(uri.Query.TrimStart('?')).Split(new char[] { '&' }, StringSplitOptions.RemoveEmptyEntries); - var queryItemCollection = new Dictionary(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; - } - } -} \ No newline at end of file diff --git a/src/MusicStore/Mocks/Facebook/FacebookMockBackChannelHttpHandler.cs b/src/MusicStore/Mocks/Facebook/FacebookMockBackChannelHttpHandler.cs index 46ec1edb37..65a00d7294 100644 --- a/src/MusicStore/Mocks/Facebook/FacebookMockBackChannelHttpHandler.cs +++ b/src/MusicStore/Mocks/Facebook/FacebookMockBackChannelHttpHandler.cs @@ -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 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")) { diff --git a/test/E2ETests/Extensions.cs b/test/E2ETests/Extensions.cs index b864f677a6..4338731d9d 100644 --- a/test/E2ETests/Extensions.cs +++ b/test/E2ETests/Extensions.cs @@ -16,27 +16,5 @@ namespace System.Net return null; } - - /// - /// https://github.com/aspnet/HttpAbstractions/issues/121 - Helpers implemented here until that. - /// - /// - public static Dictionary ParseQueryString(this Uri uri) - { - var queryParameters = Uri.UnescapeDataString(uri.Query.TrimStart('?')).Split(new char[] { '&' }, StringSplitOptions.RemoveEmptyEntries); - var queryItemCollection = new Dictionary(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; - } } } diff --git a/test/E2ETests/FacebookLoginScenarios.cs b/test/E2ETests/FacebookLoginScenarios.cs index 4ba0bcba0d..9d9e42c049 100644 --- a/test/E2ETests/FacebookLoginScenarios.cs +++ b/test/E2ETests/FacebookLoginScenarios.cs @@ -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("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("code", queryItems["response_type"]); Assert.Equal("[AppId]", queryItems["client_id"]); Assert.Equal(ApplicationBaseUrl + "signin-facebook", queryItems["redirect_uri"]); diff --git a/test/E2ETests/GoogleLoginScenarios.cs b/test/E2ETests/GoogleLoginScenarios.cs index 2bc8a1ef02..d5bcd498c8 100644 --- a/test/E2ETests/GoogleLoginScenarios.cs +++ b/test/E2ETests/GoogleLoginScenarios.cs @@ -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("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("code", queryItems["response_type"]); Assert.Equal("offline", queryItems["access_type"]); Assert.Equal("[ClientId]", queryItems["client_id"]); diff --git a/test/E2ETests/TwitterLoginScenarios.cs b/test/E2ETests/TwitterLoginScenarios.cs index 2490d75142..07101ca79b 100644 --- a/test/E2ETests/TwitterLoginScenarios.cs +++ b/test/E2ETests/TwitterLoginScenarios.cs @@ -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("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("custom", queryItems["custom_redirect_uri"]); Assert.Equal("valid_oauth_token", queryItems["oauth_token"]); //Check for the correlation cookie diff --git a/test/E2ETests/project.json b/test/E2ETests/project.json index 46184ae54b..08e09dcb95 100644 --- a/test/E2ETests/project.json +++ b/test/E2ETests/project.json @@ -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": {