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